5

从高层次的角度来看,使用 Yosys 定位新设备需要什么?我想以 Xilinx XC9572XL 为目标。我有一个这样的开发板:XC9572XL-CPLD-development-board-v1b此处的 Xilinx 文档很好地介绍了此 CPLD 的体系结构。

我认为我需要执行以下操作:

  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 是一个过时的部件......

4

2 回答 2

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

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

如果我要进行这项工作,我需要考虑哪些法律方面的问题?

伊纳尔。廷拉。

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

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

于 2015-08-26T17:54:06.797 回答
2

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

这些设备更新且功耗更低,而且内部架构更简洁且更易于定位(良好的常规 AND/OR 阵列与一些专用于某些 OR 术语的 pterm)。

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

编辑:克利福德是对的,在美国(17 USC 906),反转硅是明确合法的,而软件则更像是一个灰色地带。ISE 也是一个巨大的怪物,没有人会想对它进行逆向工程。该芯片更容易遵循。

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

于 2015-08-26T14:57:55.437 回答