我有一块莱迪思 ICE40_8K 分线板,想知道如何将引脚对设置为 LVDS 模式输入。
如果设置为普通单引脚是这样完成的:
SB_IO #(.PIN_TYPE(6'b0000_00)) _io (
.PACKAGE_PIN(pin),
.INPUT_CLK(clk),
.D_IN_0(rd));
Run Code Online (Sandbox Code Playgroud)
如何将其修改为 LVDS 输入引脚,以及如何分配附加引脚。
谢谢
编辑:
会是这样吗?:
SB_IO #(.PIN_TYPE(6'b0000_00), .IO_STANDARD("SB_LVDS_INPUT")) _io (
.PACKAGE_PIN(pin),
.INPUT_CLK(clk),
.D_IN_0(rd));
Run Code Online (Sandbox Code Playgroud)
我知道 LVDS 输入仅在第 3 行中,谁能指出我对第 3 行的引脚列表是什么,所以我可以选择一个...
谢谢
当我使用 Yosys 和 arachne-pnr 合成一个空电路时,我得到了一些不规则的位:
\n\n.io_tile 6 17\nIoCtrl IE_1\n\n.io_tile 6 0\nIoCtrl REN_0\nIoCtrl REN_1\n
Run Code Online (Sandbox Code Playgroud)\n\n这些也是我迄今为止可以生成的所有其他文件的一部分。由于未使用的 I/O 块同时设置了 IE 位,因此我将其读作:
\n\n但是,根据文档,没有 IE/REN 块 6 17 0。\n这些位的含义是什么?如果因为块不存在而未设置块 6 17 0 的 IE 位,为什么其他不存在块的位也未设置呢?其他 IE/REN 块似乎对应于 I/O 块 6 0 1 和 7 0 0。这些块的作用是什么?为什么它们总是配置为输入?
\n\n技术库条目SB_IO
没有提及 IE 位。与PIN_TYPE参数设置有何关系?
当我使用 I/O 引脚作为输入时,REN 位被设置(上拉电阻被禁用)。这表明上拉电阻主要是为了防止未使用的引脚浮动,而不是为有条件连接的输入(例如按钮)提供上拉电阻。这个假设正确吗?使用内部上拉电阻可以达到这个目的吗? …
我正在玩cliffordwolf/picorv32,并且在理解以下代码片段picosoc
(源代码链接)时遇到一些问题:
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})
);
Run Code Online (Sandbox Code Playgroud)
SB_IO
我在Lattice iCE40 技术库文档中找到了该原语的图形描述,但我仍然无法理解它的用途,因为它对我来说太复杂了,无法解释。关于原语还有另一个问题,读完后我认为它创建了某种双向连接,但我无法理解这与使输出引脚“三态”有何关系。
我希望能够对这种特定配置下的电池效果进行高级描述SB_IO
。哪个引脚连接到哪个引脚?哪些是输入,哪些是输出?实例化这个单元格的目的是什么?