定位新设备需要什么?

时间:2015-08-26 04:20:19

标签: yosys

从高层次的角度来看,使用Yosys定位新设备需要什么?我想针对Xilinx XC9572XL。我有一个这样的开发板:XC9572XL-CPLD-development-board-v1b。 Xilinx文档here中详细介绍了此CPLD的体系结构。

我想我需要做以下事情:

  1. 了解如何让Yosys将设计综合到基于产品和D型触发器的网表。
  2. 将网表从Yosys输出为BLIF格式。
  3. 创建一个' fitter' (类似于ICE40 FPGA的arachne-pnr)用于XC9572XL
  4. 输出一个JEDEC文件,其中包含需要设置的相应保险丝,以实现上一步骤中的设计。
  5. 使用xc3sprog将设计刷新到CPLD。
  6. 看起来很可能。困难的是正在建造一个“钳工”。工具。该工具需要了解CPLD的资源,然后需要一些聪明的算法来适应设计并以JEDEC格式输出所需的熔丝。一个导入缺失的部分是'保险丝之间的映射。在物理CPLD和JEDEC文件中的保险丝。这必须是逆向工程。我注意到Xilinx WebPACK ISE的JEDEC文件包含46656个保险丝。其中每个都映射回CPLD中的某个可配置节点。

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

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

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

2 个答案:

答案 0 :(得分:4)

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

您可以从逻辑级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

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

  

如果我要进行此操作,我需要考虑哪些法律方面?

IANAL。 TINLA。

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

我认为反向工程硅本身(而不是分析软件)在北美这样的地方问题较少。

答案 1 :(得分:2)

您是否考虑过定位CoolRunner-II系列?我做了一些相当广泛的RE(https://recon.cx/2015/slides/recon2015-18-andrew-zonenberg-From-Silicon-to-Compiler.pdf)并理解了大部分比特流格式。一旦我弄清楚最后一个时钟网络结构,将Yosys移植到它的优先级列表中是很高的。

这些设备更新,功耗更低,而且内部架构更清晰,更容易定位(很好的常规AND / OR阵列,而且还有一些专用于某些OR术语的pterms)。

无论是哪种情况,请与我联系进一步讨论,我很乐意合作。

编辑:克利福德是对的,在美国(17 USC 906),反转芯片是明确合法的,而软件更像是灰色区域。 ISE也是一个巨大的怪物,没有人用头撞到右边会想要对它进行逆向工程;芯片更容易理解。

虽然XC9500XL系列是较旧的350nm系列(较少的金属层,较大的功能,在显微镜下更容易看到细节),但它也在逻辑和感觉中直接使用了许多令人讨厌的模拟技巧和浮动门EEPROM /闪存单元输出上的放大器。 CoolRunner-II是180nm,具有4或5个金属层,具体取决于密度,主逻辑阵列完全是数字化的,并且更容易进行逆向工程。