It seems like net names are not properly escaped for vivado tcl scripts, atleast $ is causing problems.
This example:
from nmigen import *
from nmigen_boards.zturn_lite_z010 import *
class Test(Elaboratable):
def elaborate(self, plat):
m = Module()
dummy1 = Signal()
clk = Signal(name="clk$1")
m.d.comb += dummy1.eq(clk)
plat.add_clock_constraint(clk, 100_000_000)
return m
plat = ZTurnLiteZ010Platform()
t = Test()
plat.build(t)
causes vivado to emit the following message:
Parsing XDC File [/data/projects/nmigen_bugs/build/top.xdc]
CRITICAL WARNING: [Common 17-1548] Command failed: can't read "1": no such variable
[/data/projects/nmigen_bugs/build/top.xdc:2]
Finished Parsing XDC File [/data/projects/nmigen_bugs/build/top.xdc]
dummy1 is merely used to work around / avoid #374.
Vivado fails later due to the design being empty, but I don't think that matters for this bug.
Full build folder: build.zip
It seems like net names are not properly escaped for vivado tcl scripts, atleast
$is causing problems.This example:
causes vivado to emit the following message:
dummy1is merely used to work around / avoid #374.Vivado fails later due to the design being empty, but I don't think that matters for this bug.
Full build folder: build.zip