使用Icestorm分析比特流

时间:2017-02-23 15:23:17

标签: yosys

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

  

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

  

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

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

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

  

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

icebox_vlog会产生更高级别的输出。但它不输出像I / O块这样的东西,所以它可能太高级别,无法满足您的需求。

  

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

目前不是。但扩展icebox_vlog以提供此功能应该不会太难。因此,如果您确实需要,可以在自己的范围内添加自己。