Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complete AXI wrapper generator #1934

Merged
merged 30 commits into from
Feb 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
d3ac4c6
WIP axi-gen main component
nathanielnrn Jan 29, 2024
7498f38
Add clearer exceptions in invokes
nathanielnrn Feb 2, 2024
d12071f
get invoke of channels working
nathanielnrn Feb 2, 2024
e8cb4ba
Add `*=` for par block control composition
nathanielnrn Feb 5, 2024
7262a54
Add small runt test for `+=` and `*=`
nathanielnrn Feb 5, 2024
f558c28
add some documentation about *=
nathanielnrn Feb 5, 2024
f6fd273
Merge branch 'main' into builder-qol
nathanielnrn Feb 5, 2024
b507509
better exceptions py builder
nathanielnrn Feb 9, 2024
7a28be6
Merge branch 'main' into py-axi-gen-main
nathanielnrn Feb 9, 2024
a9628ce
Merge branch 'builder-qol' into py-axi-gen-main
nathanielnrn Feb 9, 2024
c626bc0
AXI generator that creates a valid calyx program
nathanielnrn Feb 12, 2024
eb3e451
Revert "Merge branch 'builder-qol' into py-axi-gen-main"
nathanielnrn Feb 12, 2024
ebec96c
Add invocation and instantiaion of main_compute
nathanielnrn Feb 14, 2024
75dafbb
Attempt at generalizing attributes
nathanielnrn Feb 17, 2024
e043f59
Add component attribute support to builder
nathanielnrn Feb 17, 2024
3e0a741
update invoke.py in test/
nathanielnrn Feb 17, 2024
0aadcfa
typo fix in docs
nathanielnrn Feb 17, 2024
2763154
Merge branch 'builder-attributes' into py-axi-gen-main
nathanielnrn Feb 17, 2024
5431d97
Add toplevel attribute to `wrapper`
nathanielnrn Feb 17, 2024
fcfa0c8
Make fake yxi align with vec-add memory widths
nathanielnrn Feb 17, 2024
9f624ce
Cleanup and add dynamic-wrapped-vec-add
nathanielnrn Feb 17, 2024
806b985
Get generated wrapper to run properly
nathanielnrn Feb 19, 2024
f089ddd
Add working generated wrapper + vec_add
nathanielnrn Feb 24, 2024
78078a4
Merge branch 'main' into py-axi-gen-main
nathanielnrn Feb 24, 2024
50516ec
remove redundant attributes argument in py_ast
nathanielnrn Feb 24, 2024
5419b3d
Add space to py_ast.py to pass runt tests
nathanielnrn Feb 25, 2024
10b4ef2
rename read_en to content_en
nathanielnrn Feb 25, 2024
09f1dc9
Merge branch 'py-axi-gen-main' of github.com:calyxir/calyx into py-ax…
nathanielnrn Feb 25, 2024
883cac8
add runt test on generation of calyx-py axi wrapper
nathanielnrn Feb 27, 2024
05743f1
Merge branch 'main' into py-axi-gen-main
nathanielnrn Feb 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion calyx-py/calyx/py_ast.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ def doc(self) -> str:
ins = ", ".join([s.doc() for s in self.inputs])
outs = ", ".join([s.doc() for s in self.outputs])
latency_annotation = (
f"static<{self.latency}> " if self.latency is not None else ""
f"static<{self.latency}> " if self.latency is not None else ""
)
attribute_annotation = f"<{', '.join([f'{a.doc()}' for a in self.attributes])}>" if self.attributes else ""
signature = f"{latency_annotation}component {self.name}{attribute_annotation}({ins}) -> ({outs})"
Expand Down
7 changes: 7 additions & 0 deletions runt.toml
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,13 @@ fud e {} -s verilog.cycle_limit 500 \
--to dat -q
"""

[[tests]]
name = "calyx-py AXI wrapper generation"
paths = ["yxi/axi-calyx/axi-generator.py"]
cmd = """
python3 {}
"""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good for now! In the future, you can imagine this using a set of YXI inputs as the test files, so we see different AXI-wrapper code generated for each one.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mentioned this in #1928, which is not very fleshed out currently, but I think(?) points to what you're getting at.


##### Xilinx Tests ######
[[tests]]
name = "AXI wrapper generation"
Expand Down
Loading
Loading