定位新设备需要什么?

Mik*_*ght 5 yosys

从高层次的角度来看,使用Yosys定位新设备需要什么?我想针对Xilinx XC9572XL.我有一个这样的开发板:XC9572XL-CPLD-development-board-v1b.此CPLD的架构在此处的Xilinx文档中得到了很好的介绍.

我想我需要做以下事情:

  1. 弄清楚如何让Yosys将设计综合到基于产品和D型触发器的网表.
  2. 从Yosys输出网表作为BLIF格式.
  3. 为XC9572XL创建一个'fitter'(类似于ICE40 FPGA的arachne-pnr)
  4. 输出JEDEC文件,其中包含需要设置的相应熔丝,以实现上一步中的设计.
  5. 使用xc3sprog将设计刷新到CPLD.

看起来很可能.困难在于构建一个"更健康"的工具.该工具需要了解CPLD的资源,然后需要一些聪明的算法来适应设计并以JEDEC格式输出所需的熔丝.一个导入缺失的部分是物理CPLD中的"熔丝"与JEDEC文件中的熔丝之间的映射.这必须是逆向工程.我注意到Xilinx WebPACK ISE的JEDEC文件包含46656个保险丝.其中每个都映射回CPLD中的某个可配置节点.

我想知道其他人对这种方法的看法.我可能会遇到哪些类型的问题?

如果我要这样做,我需要考虑哪些法律方面的问题?如果我决定要对他们的工具生成的JEDEC文件进行逆向工程,我是否应该首先写信给Xilinx并寻求他们的许可?

XC9572XL是一个过时的部分......

Cli*_*nna 4

  1. 了解如何让 Yosys 将设计综合到基于乘积和和 D 型触发器的网表。
  2. 从 Yosys 将该网表输出为 BLIF 格式。

您可以使用逻辑级 BLIF 文件中的 ABC 进行两级综合。例如:

$ yosys -p synth -o test.blif tests/simple/fiedler-cooley.v
$ yosys-abc
abc> read_blif test.blif
abc> collapse
abc> write_pla test.pla
Run Code Online (Sandbox Code Playgroud)

现在,您可以编写一个程序,将 .pla 文件(加上您需要编写的 yosys 插件可能生成的辅助信息)转换为 JEDEC 文件。

如果我要这样做,我需要考虑哪些法律方面的问题?

IANAL。廷拉。

当您通过分析芯片供应商提供的软件对其进行逆向工程时:在这种情况下,这实际上取决于您所居住的国家/地区。例如,在欧洲,您可以在某些情况下对软件进行逆向工程,甚至反汇编,即使在软件 EULA 禁止这样做。我在这里更深入地解释这一点。

我认为在北美等地,对硅本身进行逆向工程(而不是分析软件)的问题较少。

  • 谢谢克利福德。这是很好的答案。你的工具链做得很好。非常令人印象深刻,并且有一些干净的代码。 (2认同)