Vhdl GHDL:如何绑定组件?

Vhdl GHDL:如何绑定组件?,vhdl,xilinx-ise,ghdl,Vhdl,Xilinx Ise,Ghdl,我使用ghdl(0.32rc1)运行自动测试台。我的一些测试台需要Xilinx ISE的unisim原语 如果有人想测试我的例子,我准备了两个。要运行我的示例,需要安装Xilinx ISE或Vivado,以便找到MUXCY原语。它位于文件夹\ISE\u DS\ISE\vhdl\src\unisims\primitive中 我使用以下ghdl命令分析了这三个文件: PS D:\Temp\ghdl> C:\Tools\GHDL\0.32RC1\bin\ghdl.exe -a --work=wo

我使用ghdl(0.32rc1)运行自动测试台。我的一些测试台需要Xilinx ISE的unisim原语

如果有人想测试我的例子,我准备了两个。要运行我的示例,需要安装Xilinx ISE或Vivado,以便找到MUXCY原语。它位于文件夹
\ISE\u 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(Linux:-e和-r)上的ghdl.exe-r:

现在ghdl报告说,
mux
无法绑定。
我还尝试了参数
--syn binding
-P.
,但没有改变

绑定MUXCY组件需要做什么?


另外,有人能创建一个“ghdl”标签吗?我没有足够的声誉:)

以下是我将如何解决这个问题:

首先,按预期分析unisim库中的
MUXCY
,如下所示:

ghdl -a --work=unisim C:\Xilinx\14.7\ISE_DS\ISE\vhdl\src\unisims\primitive\MUXCY.vhd
注意该命令中的
--work=unisim

然后,确保添加
库UNISIM
位于
arith\u prefix\u和.vhdl文件的顶部

应该这样做


我认为这里发生的是,由于在分析
arith\u前缀和.vhdl
时,您正在使用
--work=poc
work
库的名称覆盖到
poc
,因此它没有看到在名为
work
的实际库中分析的
MUXCY
实体,因此,它找不到将
MUXCY
组件绑定到的默认实体。

这些文件应该为使用modelsim的Altera进行编译。您可以尝试将供应商更改为Altera。在这种情况下,将使用通用的carrychain实现。因为modelsim不知道unisim,所以我无法向它添加库引用。我知道我可以为ModelSim编译Xilinx原语,但不是我们库的每个用户都安装了XST或Vivado。@Paebells我明白你的意思。在没有Vivado或ISE的系统上创建一个空的
UNISIM
库怎么样,这对您的用例来说可以接受吗?如果供应商设置为Altera,你不需要任何东西在图书馆,你只需要它存在。我认为这个答案是一个解决方案…(等待进一步答复)
ghdl -a --work=unisim C:\Xilinx\14.7\ISE_DS\ISE\vhdl\src\unisims\primitive\MUXCY.vhd