-
Notifications
You must be signed in to change notification settings - Fork 147
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
Vivado does not accept clock names with $ in Verilog #2242
Comments
Note that changing the |
Here's a small reproducer module ImplClock where
import Clash.Prelude
topEntity ::
HiddenClock System =>
Signal System (Unsigned 8) ->
Signal System (Unsigned 8)
topEntity = dflipflop
{-# NOINLINE topEntity #-} Note that this issue means f6a25e0 was an incomplete fix, as it only fixed VHDL, but not Verilog. |
We're going to work on fixing this at ZuriHac |
Changing the ID generation is indeed a little hairy here. The identifiers which cause problems ultimately come from Perhaps a solution could be to add a flag to actually do this mangling, i.e. |
Even though
$
is an accepted character in Verilog's basic identifiers. Vivado does not accept it in clock names.A constraint file with
create_clock -name {c$arg} -period 5.000 -waveform {0.000 2.500} [get_ports {c$arg}]
results in
[Vivado 12-2270] Clock names may not contain tcl special characters: '"{};$# - Skipping 'c$arg' [/filepath]
Possible fixes
$
in basic identifiers.c$
prefix.The text was updated successfully, but these errors were encountered: