为什么yosys重新编号矢量端口?

时间:2016-11-22 22:48:57

标签: yosys

我的顶级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是否期望顶级矢量端口始终从零开始编号?

1 个答案:

答案 0 :(得分:3)

原因是Yosys BLIF后端没有使用存储在Yosys Wire对象中的起始偏移和方向(upto / downto)的提示来生成单比特网名。

现在已在提交5c2c78e2dd中修复此问题。谢谢你引起我的注意。

更新到Yosys的最新git主管,您应该得到您期望的结果。