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

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

最佳答案

原因是 Yosys BLIF 后端没有使用存储在 Yosys Wire 对象中的开始偏移和方向(向上/向下)的提示来生成单位网络名称。

现在已在提交 5c2c78e2dd 中修复.感谢您提醒我注意这一点。

更新到 Yosys 的最新 git head,你应该会得到你期望的结果。

关于yosys - 为什么 yosys 重新编号向量端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40753094/

相关文章:

yosys - yosys 是否保留端口顺序?

yosys - 定位新设备需要什么?

verilog - 使用 Yosys 导出 FSM

verilog - 如何在 Yosys 的初始 block 中分配 RAM 值?

fpga - 莱迪思 iCE40 JTAG

linux - iceprog .. 找不到 iCE FTDI USB 设备(Linux 权限问题??)