我正在使用ghdl(0.32rc1)运行自动化测试平台。我的一些测试平台需要Xilinx ISE的unisim原语。
我准备了两个external files,如果有人想测试我的例子。要运行我的示例,您需要安装Xilinx ISE或Vivado,以便找到MUXCY原语。它位于<InstallDir>\ISE_DS\ISE\vhdl\src\unisims\primitive
文件夹中。
我使用以下ghdl命令分析了这三个文件:
PS D:\Temp\ghdl> C:\Tools\GHDL\0.32RC1\bin\ghdl.exe -a --work=work C:\Xilinx\14.7\ISE_DS\ISE\vhdl\src\unisims\primitive\MUXCY.vhd
PS D:\Temp\ghdl> C:\Tools\GHDL\0.32RC1\bin\ghdl.exe -a --work=poc .\arith_prefix_and.vhdl
PS D:\Temp\ghdl> C:\Tools\GHDL\0.32RC1\bin\ghdl.exe -a --work=test .\arith_prefix_and_tb.vhdl
.\arith_prefix_and_tb.vhdl:96:16:warning: universal integer bound must be numeric literal or attribute
到目前为止没有错误。
现在我开始模拟,在Windows上只是ghdl.exe -r(Linux:-e和-r):
PS D:\Temp\ghdl> C:\Tools\GHDL\0.32RC1\bin\ghdl.exe -r --work=test arith_prefix_and_tb
.\arith_prefix_and.vhdl:79:40:warning: 'mux' is not bound
.\arith_prefix_and.vhdl:43:14:warning: (in default configuration of arith_prefix_and(rtl))
现在ghdl报告mux
无法绑定
我还尝试了参数--syn-binding
和-P.
,但没有任何改变。
如何绑定MUXCY组件?
P.S。有人可以创造一个&#39; ghdl&#39;标签?我没有足够的声誉:)
答案 0 :(得分:2)
以下是我将如何解决这个问题:
首先,按照预期分析unisim库中的MUXCY
,如下所示:
ghdl -a --work=unisim C:\Xilinx\14.7\ISE_DS\ISE\vhdl\src\unisims\primitive\MUXCY.vhd
请注意该命令中的--work=unisim
。
然后,请务必在library UNISIM;
文件的顶部添加arith_prefix_and.vhdl
。
应该这样做。
我认为这里发生的是,因为在分析work
时,您使用poc
覆盖--work=poc
库的名称为arith_prefix_and.vhdl
,但它不会请参阅名为MUXCY
的实际库中分析的work
实体,因此无法找到要绑定MUXCY
组件的默认实体。