问题描述
设计中有一个黑盒子模块,配有EDIF / NGC网表。在翻译期间发出以下错误和警告:
“ERROR:NgdBuild:770 – IBUF’b_IBUF’和网络’b_IBUF’上的IBUF’b_ibuf’是串联的行数。相同方向的缓冲器不能串联。
我该如何解决这些错误?
解决/修复方法
发出这些错误是因为子模块EDIF / NGC网表包含IBUF / OBUF。 XST还将IBUF和OBUF添加到顶层,以便它们排成一行或者焊盘由非缓冲组件驱动/驱动。
当EDIF / NGC网表用作另一种设计的子模块时,必须满足以下条件:
- 如果子模块的输入/输出端口直接连接到顶层模块端口,如下图中的port1,则IBUFs / OBUF可以放在子模块中,但必须检查XST属性“Read Cores”。然后,XST将读取项目目录中的网表或“核心搜索目录”中指定的位置,并且不会在这些顶级端口上添加额外的IBUF / OBUF。
- 如果子模块的输入/输出端口未直接连接到顶层模块端口,如下图中的端口2,则不得将IBUF / OBUF放入子模块中。
以下是此问题的一些解决方案。
- 生成子模块网表时禁用IBUF / OBUF插入。将所有IBUF / OBUF添加到顶层。
- 对于XST,请转到综合属性 – > Xilinx特定选项 – >取消选中“添加I / O缓冲区”
- 对于Synplify Pro,请转到实施选项 – >器件选项卡 – >选中“禁用I / O插入”
- 有选择地禁用未直接连接到顶部模块端口的输入/输出端口上的IBUF / OBUF插入。
- 对于XST,请使用“buffer_type”约束。请参阅XST用户指南。
- 有关Synplify Pro的信息,请参阅(Xilinx答复4508) 。
- 如果在子模块中实例化IBUF / OBUF,则禁用IBUF / OBUF插入不会从子模块中删除缓冲区。如果是这种情况,请从子模块中删除IBUF / OBUF的即时性,并在顶级实例化它们。
没有回复内容