我的顶级verilog模块为myStorm ice40板上的四个LED指示信号,这些LED标记为" LED1-LED4"。
module top (
output [4:1] LED
);
assign LED = 4'b1010;
endmodule
我在.pcf文件中使用相同的编号:
set_io LED[1] 37
set_io LED[2] 38
set_io LED[3] 39
set_io LED[4] 41
但是在.blif输出中,yosys重新编号了信号:
.model top
.inputs
.outputs LED[0] LED[1] LED[2] LED[3]
...
所以arachne-pnr抱怨道:
top.pcf:4: fatal error: no port `LED[4]' in top-level module `top'
yosys是否期望顶级矢量端口始终从零开始编号?
答案 0 :(得分:3)
原因是Yosys BLIF后端没有使用存储在Yosys Wire对象中的起始偏移和方向(upto / downto)的提示来生成单比特网名。
现在已在提交5c2c78e2dd中修复此问题。谢谢你引起我的注意。
更新到Yosys的最新git主管,您应该得到您期望的结果。