首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对格ICE40中SB_IO本原的理解

对格ICE40中SB_IO本原的理解
EN

Stack Overflow用户
提问于 2020-03-31 18:59:43
回答 1查看 2K关注 0票数 0

我正在使用cliffordwolf/picorv32 32,并且在理解picosoc (链接到源)中的以下片段时遇到了一些问题:

代码语言:javascript
复制
SB_IO #(
    .PIN_TYPE(6'b 1010_01),
    .PULLUP(1'b 0)
) flash_io_buf [3:0] (
    .PACKAGE_PIN({flash_io3, flash_io2, flash_io1, flash_io0}),
    .OUTPUT_ENABLE({flash_io3_oe, flash_io2_oe, flash_io1_oe, flash_io0_oe}),
    .D_OUT_0({flash_io3_do, flash_io2_do, flash_io1_do, flash_io0_do}),
    .D_IN_0({flash_io3_di, flash_io2_di, flash_io1_di, flash_io0_di})
);

我在格点iCE40技术库文档中找到了对格点iCE40技术库文档原语的图形描述,但我仍然无法理解它的用途,因为它太复杂了,我无法解释。有关于原语的另一个问题,在阅读之后,我假设它会创建某种双向连接,但我不明白这与使输出引脚"tristated“有什么关系。

我希望能对SB_IO单元在这种特殊配置下的效果进行高级别的描述。哪个引脚与哪个引脚相连?哪些是投入,哪些是产出?实例化这个单元格的目的是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-02 08:51:10

之所以使用此实例,是因为当时Yosys在Verilog中没有很好地支持tristate,但在一般情况下,FPGA工具链中的三状态支持并不总是可信的。

可以用以下通用Verilog代替,从0到4重复4次。

代码语言:javascript
复制
assign flash_io0 = flash_io0_oe ? flash_io0_do : 1'bz;
assign flash_io0_di = flash_io0;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60957971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档