问题标签 [ice40]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1323 浏览

verilog - 如何使用 ICESTORM 工具在 Lattice ICE40 引脚上使用设置 LVDS 模式

我有一块 Lattice ICE40_8K 分线板,想知道如何将引脚对设置为 LVDS 模式输入。

如果设置为正常的单引脚是这样完成的:

如何将其修改为 LVDS 输入引脚,以及如何分配附加引脚。

谢谢

编辑:

会是这样吗?:

我知道 LVDS 输入仅在 Bank 3 中,任何人都可以指出 bank 3 的引脚列表是什么,所以我可以选择一个...

谢谢

0 投票
2 回答
279 浏览

yosys - 编程iceStorm二进制文件到哪个地址?

我正在尝试此处提供的第一个示例:http: //www.clifford.at/icestorm/

我正在尝试使用 digilent adept 程序 https://reference.digilentinc.com/reference/software/adept/start?redirect=1#software_downloads在 Windows 中对 iCEblink40-HX1K 板进行编程

当我启动 Adept 时,程序说:

正在加载板信息... 警告:找不到特定的板信息 已加载默认信息。

当我从 iCEstorm 选择 example.bin 程序时,adept 程序显示“地址无效。地址必须输入为二进制、十进制或十六进制值。”。

于是我直接输入零,点击“文件>>设备”上传二进制文件,程序说:

成功从 F:\me\fpga\example.bin 读取 32220 字节。

然而,该板已经附带的“闪烁灯”演示仍在继续运行。似乎什么都没有改变。

我认为 example.bin 文件中不包含正确的地址,或者缺少 digilent adept 程序的板信息是问题的原因。

无论如何,有人知道它可能是什么地址吗?

0 投票
1 回答
256 浏览

yosys - iCE40 I/O 模块与封装管脚的对应关系

iCE40 FPGA 的 I/O 模块与其驱动的封装引脚之间的对应关系是否记录在某处?

Project IceStorm的I/O tile 文档给出了 I/O 块列表,以及每个块的 IE 和 REN 位在比特流中的位置。此列表中缺少一些块:

这是否意味着这些块不存在?

虽然缺少文档,但通过检查 Yosys/arachne-pnr/Icestorm 流程生成的比特流,我能够推断出 iCE40-HX1K-TQ144 和 iCEstick 评估板上使用的引脚的以下对应关系:

但是,如果可能的话,我想交叉检查这些信息。

0 投票
2 回答
393 浏览

yosys - 了解为 iCE40 I/O 块生成的比特流

当我使用 Yosys 和 arachne-pnr 合成一个空电路时,我得到一些不规则的位:

这些也是到目前为止我可以生成的所有其他文件的一部分。由于未使用的 I/O tile 设置了两个 IE 位,因此我将其读取为:

  • 对于 IE/REN 块 6 17 0,启用输入缓冲区
  • 对于 IE/REN 块 6 0 0,启用输入缓冲器,禁用上拉电阻
  • 对于 IE/REN 模块 6 0 1,启用输入缓冲器,禁用上拉电阻

但是,根据文档,没有 IE/REN block 6 17 0。这些位是什么意思?如果块 6 17 0 的 IE 位由于该块不存在而未设置,那么为什么其他不存在的块的位也未设置?其他 IE/REN 块似乎对应于 I/O 块 6 0 1 和 7 0 0。这些块有什么作用,为什么它们总是配置为输入?

技术库条目没有SB_IO提到 IE 位。它与 PIN_TYPE 参数设置有什么关系?

当我使用 I/O 引脚作为输入时,设置 REN 位(禁用上拉电阻)。这表明上拉电阻主要用于防止未使用的引脚悬空,而不是为有条件连接的输入(例如按钮)提供上拉电阻。这个假设正确吗?可以为此目的使用内部上拉电阻吗?

技术库说如下:

这是否意味着 bank 3 没有上拉电阻,或者仅仅意味着它们不能使用 Verilog 重新启用?如果我手动清除 ASCII 比特流中的那个比特会发生什么?(我会尝试这个,但 iCEstick 评估板无法访问 bank 3 上的任何引脚 - 巧合? - 我不确定我是否想弄乱硬件。)

当我使用 I/O 引脚作为输出时,IE 位不会被清除,但输入引脚功能设置为 PIN_INPUT。这有什么影响,为什么要这样做?

0 投票
1 回答
351 浏览

fpga - Yosys 在ice40 FPGA 上优化了环形振荡器

我尝试使用yosys(0.7)为ice40 FPGA实现一个简单的环形振荡器,如下所示:

但是,即使我正在使用该keep属性,它似乎也得到了优化。我可以在 yosys 日志输出中看到这一点:

我怎样才能防止yosys这样做?

0 投票
1 回答
410 浏览

yosys - (icestorm) pcf 中未指定的引脚是否保持高阻抗

作为标题,另外你如何为单端输入/输出指定另一个电压电平,例如 LVCMOS18 - 我猜它不像 pcf 条目中的一个额外动词那么简单......

0 投票
1 回答
298 浏览

yosys - ICE40 up5k 内部内部振荡器和 ip

我可以看到icestorm 支持ice40 ultra plus up5k fpga,但是这个芯片有内部osc,有什么我用的例子吗?当然使用yosys,icestorm(开源),有没有一些我可以使用内置IP的例子,比如SPI,I2C,PWM?谢谢

0 投票
0 回答
139 浏览

fpga - 是否可以使用 ice40 设备的 icestorm 工具更改引脚的转换速率

我找不到任何设置转换或驱动速率的 pcf 文件示例。我查看了列出 io 端口原语的技术文件,似乎可以设置驱动器,但不能设置 slew。

0 投票
0 回答
247 浏览

fpga - LUT 级联是否可以通过任何工具与 iCE40 FPGA 中的进位链同时使用?

我尝试构建以下内容:

我用 Verilog 编写,并实例化 SB_LUT4、SB_CARRY、SB_DFFESS 原语。为了尝试获得 LUT 级联,我编辑了一个 .pcf 约束文件(set_cascading...)。但是,综合 (Lattice IceCube 2017.01.27914) 忽略了约束: W2401:忽略 LUT 实例“filt.blk_0__a.cmbA.ll”的级联约束,因为它在 LogicCell 中与 DFF/CARRY 打包在一起

在令人钦佩的 Project IceStorm 中,我看不出为什么不能使用级联 LUT 和进位链的组合。

我知道有一个(稍微)更新的 IceCube2 可用。我知道 Yosys/arachne-pnr/icepack/iceprog 工具链。但在更改工具链之前,谨慎地询问是否有人已经解决了这个问题,或者是否确实不可能将进位链和 LUT 级联结合起来?

更新 - Yosys/arachne-pnr/icetools 的快速安装在没有警告的情况下合成了我的设计,但 ice40_viewer(和日志输出)中的可视化表明使用链式 lut。

0 投票
1 回答
837 浏览

vhdl - 在 VHDL 中使用 SB_RGBA_DRV 原语

我在使用为 Lattice ICE40UP fpga 提供的 SB​​_RGBA_DRV 原语时遇到问题。技术库提供了一个我开始工作的 verilog 示例,但是当我尝试在 VHDL 中使用它时,P&R 失败,输出以下消息:

错误:非法连接:类型为“SB_RGBA_DRV”的实例“myrgb”的引脚“RGB2”应仅连接到一个顶部模块端口。它连接到以下端子:LED2_obuf/DOUT0

这是我的 .vhdl 文件: