VCS编译xilinx IP核

1. 背景

vivado2018.03
vcs O-2018.09-SP2

2. 出现的问题

2.1 vivado编译IP库时显示版本不对

ERROR: [Vivado 12-4686] Simulator version check command failed:"/home/fpga-0/software/synopsys2018/vcs_2018.09/bin/vlogan -ID -full64". Please make sure that this version of simulator support the options specified in this command. For more details on this failure, open the '.cxl.vcs_mx.version' file.
ERROR: [Vivado 12-4688] Unsupported simulator version. Please run 'compile_simlib -help' for the supported 'vlogan script version' version.

解决方案:

  1. 确实是版本不匹配,我的vcs版本一开始是2016.06,他就不支持Vivado2018.03
  2. 用命令行开启vivado,这是在网上查出来一个说开启管理员模式解决了这个问题。我一开始是通过点击Vivado图标的方式启动的,但是一直报版本不匹配这个问题,最后通过命令行启动,这个问题解决了

2.2 vhdlan编译一直报错

ERROR - can't find /home/fpga-0/software/synopsys2018/vcs_2018.09/linux/bin/vhdlan1, check installation.
        exiting ...

这个问题是vhdlan使用方法错误,如果安装的是linux64的版本,在使用vhdlan时一定要加上-full64的参数

2.3 编译报错undefined identifier

Error-[OVNOSELECT1_LIB] Undefined identifier
/home/fpga-0/NGS_prj/UVM/matrix7_uvm/rtl/lib/self_iplib/fifo_512x512.vhd, 57
FIFO_512X512
  
  USE fifo_generator_v13_2_3.fifo_generator_v13_2_3;
                             ^
  The symbol named 'FIFO_GENERATOR_V13_2_3' cannot be found in library 
  'FIFO_GENERATOR_V13_2_3'.


Error-[IEEEVHDLNOENT] Missing compiled design unit
/home/fpga-0/NGS_prj/UVM/matrix7_uvm/rtl/lib/self_iplib/fifo_512x512.vhd, 74
analysis-Parsing, "FIFO_512X512"
  
  ARCHITECTURE fifo_512x512_arch OF fifo_512x512 IS
                                    ^
  The compiled design unit for entity 'FIFO_512X512' is not found in WORK 
  library.

这个问题目前还没有解决,首先我已经把synopsys_sim.setup文件复制到脚本所在的文件夹下了,并且我编译加法器和减法器的.vhd文件是没有报错的,.setup文件是起了作用的。这是.setup文件下的IP映射

fifo_generator_v13_2_3 : /home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3

这是该路径下的IP编译的库

/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/.cxl.verilog.fifo_generator_v13_2_3.fifo_generator_v13_2_3.lin64.cmd
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/.cxl.verilog.fifo_generator_v13_2_3.fifo_generator_v13_2_3.lin64.cmf
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/.cxl.verilog.fifo_generator_v13_2_3.fifo_generator_v13_2_3.lin64.rpt
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/.cxl.vhdl.fifo_generator_v13_2_3.fifo_generator_v13_2_3.lin64.cmd
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/.cxl.vhdl.fifo_generator_v13_2_3.fifo_generator_v13_2_3.lin64.cmf
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/.cxl.vhdl.fifo_generator_v13_2_3.fifo_generator_v13_2_3.lin64.rpt
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/64
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/64/.vhdl_lib_lock
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/64/vhdl.sdb
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/64/vhmra.sdb
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/.vcs_lib_lock
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/AllModulesSkeletons.sdb
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/compat.db
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/debug_dump
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/dumpcheck.db
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/dve.sdb
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/make.vlogan
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/modfilename.db
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/str.db
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/str.index.db
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/str.info.db
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/vir.sdb
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/vir_global.sdb
/home/fpga-0/NGS_prj/minimap_fpga_PU8/minimap_fpga.cache/compile_simlib/vcs/fifo_generator_v13_2_3/AN.DB/vloganopts.db

目前这个问题还没有解决,我在xilinx社区上提了一下遇到的问题,可以确定的是setup文件是起了作用的,IP库我看了一下也是确定编译正确0error和0warning的,目前想不出可能哪里出现了问题,先总结成这样吧。

### 如何在VCS中仿真Xilinx原语 #### 配置环境与准备 为了能够在 Synopsys VCS 中成功仿真的 Xilinx 原语,需先配置好相应的开发环境。这涉及到安装并设置正确的工具链版本以及获取必要的库文件和支持包。 #### 编译仿真库 对于 Xilinx 设备的功能性和门级仿真支持,在 VCS 上实现之前要确保已经完成了对特定于 FPGA 的 Verilog 或 VHDL 模型的编译工作。通常情况下,这一过程由 `compile_simlib` 工具自动化处理[^2]。该工具能够识别所使用的 EDA 平台,并据此创建适合 VCS 使用的形式化描述文件集合。 #### 启动仿真流程 当所有准备工作完成后,可以启动实际的模拟测试环节。有两种主要的方式来进行这项操作: - **Precompiled(预编译)方式**:这种方式下预先构建好的二进制对象可以直接加载到内存当中用于加速初始化阶段;它适用于那些不经常变动的设计项目。 - **Dynamic(动态调用)模式**:允许更灵活地调整参数选项而无需每次都重新生成整个库结构。这对于频繁迭代修改逻辑电路的情况特别有用[^1]。 #### 加密 IP 处理 如果涉及到了受保护的心模块,则需要注意额外的安全措施。例如,在运行 VCS / VCS-MX 时应当附加 `-lca` 参数以激活某些特殊权限下的特性集,从而使得被锁定的内容得以正常解析和验证[^4]。 #### 调试技巧 最后但同样重要的是利用 Vivado Simulator 提供的强大调试能力来辅助分析可能出现的问题点。这里主要包括但不限于波形查看、断言机制及变量监视等功能[^3]。 ```bash vcs -f my_design.f +incdir+$XILINX_VIVADO/data/verilog/src/unisims \ -R -Mcompilervars=MY_VAR=my_value -lca ``` 上述命令展示了如何指定包含原始组件定义路径的同时开启受限访问特性的一个实例。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值