【发布时间】:2019-05-10 16:29:45
【问题描述】:
我很好奇是否有人有幸为 GHDL 模拟器编译了整个 Xilinx ISE unisims 库?我试图只编译 unisims 的包文件,但它给了我一个错误。
我想知道它是否会通过注释掉 VHDL 代码中不受支持的部分来完全编译......或者还有其他一些事情需要完成,例如编译不同的重要库或使用不同的版本 --std。 因为我知道我可以取出一个 unisims 组件并使用 ghdl 进行编译……只是想知道如何完成剩下的 90% 的组件。
$ ghdl -a --std=08 --work=unisims C:/Xilinx/14.7/ISE_DE/ISE/vhdl/src/unisims/unisim_VCOMP.vhd
$ ghdl -a --std=08 --work=unisims C:/Xilinx/14.7/ISE_DE/ISE/vhdl/src/unisims/unisim_VPKG.vhd
ERROR: ../../src/vital2000/timing_p.vhdl:152:14: result subtype of a pure function cannot have access subelements
【问题讨论】:
-
VITAL 不再受 IEEE 支持,VITAL TIMING 包不符合 VHDL 标准。 FUNCTION VitalTimingDataInit 返回类型 VitalTimingDataType 具有访问类型元素。不纯函数不是形式证明,需要大量重写或语义混淆。请参阅 ghdl issue 716,其中显示了成功分析timing_p.vhdl 所需的内容:
ghdl -a --std=08 -frelaxed-rules timing_p.vhdl。命令行标志将对此问题产生警告而不是错误,并且可以在 Paebbel 的脚本中找到。 -
您需要受保护的类型(VHDL -2002、-2008)以避免花招修复,其中 VITAL 2000 也与 -1993 一起使用,并且大多数历史 VITAL 使用是 VITAL 1995,它具有软件包vital_timing中的相同问题。
标签: vhdl xilinx-ise ghdl