问题标签 [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.
verilog - 如何使用 ICESTORM 工具在 Lattice ICE40 引脚上使用设置 LVDS 模式
我有一块 Lattice ICE40_8K 分线板,想知道如何将引脚对设置为 LVDS 模式输入。
如果设置为正常的单引脚是这样完成的:
如何将其修改为 LVDS 输入引脚,以及如何分配附加引脚。
谢谢
编辑:
会是这样吗?:
我知道 LVDS 输入仅在 Bank 3 中,任何人都可以指出 bank 3 的引脚列表是什么,所以我可以选择一个...
谢谢
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 程序的板信息是问题的原因。
无论如何,有人知道它可能是什么地址吗?
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 评估板上使用的引脚的以下对应关系:
但是,如果可能的话,我想交叉检查这些信息。
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。这有什么影响,为什么要这样做?
fpga - Yosys 在ice40 FPGA 上优化了环形振荡器
我尝试使用yosys
(0.7)为ice40 FPGA实现一个简单的环形振荡器,如下所示:
但是,即使我正在使用该keep
属性,它似乎也得到了优化。我可以在 yosys 日志输出中看到这一点:
我怎样才能防止yosys
这样做?
yosys - (icestorm) pcf 中未指定的引脚是否保持高阻抗
作为标题,另外你如何为单端输入/输出指定另一个电压电平,例如 LVCMOS18 - 我猜它不像 pcf 条目中的一个额外动词那么简单......
yosys - ICE40 up5k 内部内部振荡器和 ip
我可以看到icestorm 支持ice40 ultra plus up5k fpga,但是这个芯片有内部osc,有什么我用的例子吗?当然使用yosys,icestorm(开源),有没有一些我可以使用内置IP的例子,比如SPI,I2C,PWM?谢谢
fpga - 是否可以使用 ice40 设备的 icestorm 工具更改引脚的转换速率
我找不到任何设置转换或驱动速率的 pcf 文件示例。我查看了列出 io 端口原语的技术文件,似乎可以设置驱动器,但不能设置 slew。
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。
vhdl - 在 VHDL 中使用 SB_RGBA_DRV 原语
我在使用为 Lattice ICE40UP fpga 提供的 SB_RGBA_DRV 原语时遇到问题。技术库提供了一个我开始工作的 verilog 示例,但是当我尝试在 VHDL 中使用它时,P&R 失败,输出以下消息:
错误:非法连接:类型为“SB_RGBA_DRV”的实例“myrgb”的引脚“RGB2”应仅连接到一个顶部模块端口。它连接到以下端子:LED2_obuf/DOUT0
这是我的 .vhdl 文件: