1

我正在尝试了解 Yosys/arachne-pnr 生成的比特流,如http://www.clifford.at/icestorm/上所述:

学习如何使用本文档的推荐方法是使用 Yosys 和 Arachne-pnr 合成非常简单的电路,icebox_explain在生成的比特流文件上运行 icestorm 工具,并使用上述数据库的 HTML 导出分析结果。icebox_vlog可用于将比特流转换为 Verilog。该工具的输出文件还将在添加到生成的 Verilog 代码的注释中概述信号路径。

为了了解比特流变化的影响,如果我可以更改.ex文件并将其转换回 ASCII 比特流(而不必手动识别比特)以上传到 FPGA,将会很有帮助。有没有办法这样做?

我有点担心用无效的比特流损坏 FPGA。是否存在已知会发生这种情况的情况?有没有办法模拟比特流?

此外,拥有某种“更高级别”的解释格式会很有帮助,例如显示它们对应的 I/O 块上的 IE/REN 位,而不是必须在比特流中设置的那个. 有这样的格式吗?

我知道生成等效 Verilog 电路的可能性,但这样做的问题是它通常不允许我无损地往返返回到比特流。有没有办法生成等效的 Verilog 电路(例如通过显式实例化块)在使用 Yosys/arachne-pnr 处理时产生完全相同的比特流?

4

1 回答 1

1

我有点担心用无效的比特流损坏 FPGA。是否存在已知会发生这种情况的情况?有没有办法模拟比特流?

到目前为止,我还没有损坏任何 FPGA。(然而,在运行一些循环重新编程的测试后,我设法损坏了一根冰棒上的串行闪存。)

但这并不意味着您不能通过使用无效比特流对其进行编程来损坏您的 FPGA。理论上,您可以以产生驱动程序-驱动程序冲突的方式配置 FPGA。我不知道硬件如何处理这样的事情。我没有进行任何实验来找出答案。

此外,拥有某种“更高级别”的解释格式会很有帮助,例如显示它们对应的 I/O 块上的 IE/REN 位,而不是必须在比特流中设置的那个. 有这样的格式吗?

icebox_vlog产生更高层次的输出。但它不输出 I/O 块之类的东西,所以它可能对您的需求来说太高级了。

我知道生成等效 Verilog 电路的可能性,但这样做的问题是它通常不允许我无损地往返返回到比特流。有没有办法生成等效的 Verilog 电路(例如通过显式实例化块)在使用 Yosys/arachne-pnr 处理时产生完全相同的比特流?

现在不行。icebox_vlog但是扩展以提供此功能应该不会太难。因此,如果您真的需要它,添加自己可能是您力所能及的。

于 2017-02-28T16:02:20.153 回答