使用iCE40 FOSS IceStorm FPGA流程:如何使用yosys / iceStorm为三态I / O引脚(如双向数据总线引脚)编写Verilog?
当前,只有有限的支持才能从行为代码中推断非平凡的IO缓冲区。因此,创建双向IO缓冲区的最佳方法是手动实例化SB_IO单元。例如:
SB_IO #(
.PIN_TYPE(6'b 1010_01),
.PULLUP(1'b 0)
) raspi_io [8:0] (
.PACKAGE_PIN(iopin),
.OUTPUT_ENABLE(dout_en),
.D_OUT_0(dout),
.D_IN_0(din)
);
Run Code Online (Sandbox Code Playgroud)
(iopin作为顶级模块端口。)
有关SB_IO和其他iCE40原语的更多详细信息,请参见莱迪思iCE40技术库文档。