如何将多个 Xilinx NGC 网表合并为一个新网表

How can I merge several Xilinx NGC netlists to an new netlist

我正在使用 XST(Xilinx ISE 14.7 套件中的综合工具)将 VHDL 源文件编译为网表(*.ngc 文件)。

我的代码使用了多个 Xilinx IP 核(如 ChipScope ILA)进行调试,它们也被预合成为 ngc 文件。我只想向我们的客户发送一个 ngc 文件。这是概念设计的证明,所以他应该看到一个简单的界面:
- 我们的 IPCore + VHDL 组件
- 他的 ChipScope ICON IP 核/网表,为我们的 IP 核提供 5 个开放端口

如何将这些 ngc 文件合并为一个 ngc 文件?

ISE 设计流程使用 "Translate" 将所有网表合并在一起并发出一个 ngd 文件,这是 "Map" 步骤的输入。

关于找到答案的难易程度的内部辩论有一些传播问题的原因,它是 Whosebug 中的答案。 Whosebug 的想法是在有人再次问同样的问题之前搜索资源,力争成为比在整个互联网上搜索发现的质量更高的资源。

在谷歌搜索 merge .ngc Xilinx 时,我发现第一个命中导致 Xilinx 网站上的答案(参见 NGC File include. NGC file problem asking how to merge Native Generic Compiler (ngc) netlists, the answer leading to a now dated v 1.2 UG628 Command线工具用户指南,最新的是 v 14.7,只能通过该版本的帮助中心获得,它不会出现在在线搜索中。

所以有一个名为 ngcbuild 的命令行工具,在命令行工具用户指南的第 24 章中被描述为能够合并 .ngc 网表:

The NGCBuild utility:

  • Compiles multiple source netlists (EDIF and NGC files) into a single NGC file that can be delivered as an atomic entity (also knownas “incremental linkage”).

  • Annotates a User Constraints File (UCF) onto an existing netlist or collection of netlists

我们查看链接的 Xilinx 支持项目,我们看到假设合并网表是针对 ChipScope 完成的,就像 Paebbel 的要求一样。这是大多数用于合并 .ngc 网表的常见线程。

这在 ChipScope Pro Software and User Guide、(UG029,v 14.3)中得到支持,它演示了用法。请参阅 编辑 CDC 项目步骤 :

部分

The Edit CDC Project step of the command line ChipScope Pro Core Inserter flow is used to bring up the ChipScope Pro Core Inserter GUI to edit an existing CDC project (see Figure 3-3). The ngcbuild tool is called during this step with the specified arguments following the -ngcbuild argument. The ngcbuild tool combines all netlists associated with the design into a single complete NGC netlist file. This allows the ChipScope Pro Core Inserter tool to provide full debug access to all levels and nodes in the design.

(无需重复调用 ChipScope。)

对于所问的问题,它似乎是正确的工具,根据谷歌搜索结果,Chipscope 的使用意味着在很多情况下都需要它。