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

Produced VHDL cannot be used within Vivado block designs #2636

Open
bgamari opened this issue Jan 11, 2024 · 3 comments
Open

Produced VHDL cannot be used within Vivado block designs #2636

bgamari opened this issue Jan 11, 2024 · 3 comments

Comments

@bgamari
Copy link
Contributor

bgamari commented Jan 11, 2024

It turns out that Vivado's block design facility has the annoyingly arbitrary limitation that ports may only be of type std_logic or std_logic_vector. Unfortunately, this means that VHDL produced by Clash, which contains various types, cannot be used in this facility.

It would be great if there were a way to flatten ports to std_logic[_vector] to side-step this limitation.

@DigitalBrains1
Copy link
Member

DigitalBrains1 commented Jan 13, 2024

I know we turn a bunch of things into std_logic_vector if you give flag -fclash-hdlsyn Vivado to clash but I forgot the details. Do you already specify that flag when you observe the problem?

If that flag doesn't do the job, would a flag that turns all ports of the topEntity into std_logic{,_vector} fit the bill or perhaps on all entities with a Synthesize annotation?

[edit]
Perhaps add -fclash-no-render-enums as well (which appears to be missing from the documentation)
[/edit]

@bgamari
Copy link
Contributor Author

bgamari commented Jan 17, 2024

Indeed I observe the issue with -fclash-hdlsyn Vivado. Sadly -fclash-no-render-enums also does not appear to help.

In all cases I see things like:
clk : in wombat_types.clk_System; and s_axi_awvalid : in wombat_types.index_2

@martijnbastiaan
Copy link
Member

A workaround would be to translate to Verilog instead. Whether this is usable entirely depends on your situation of course.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants