赞
踩
HDL仿真器编译代码的过程由编译,建模和仿真三个阶段(详情见该文第4大点:IC设计——Verilog HDL学习笔记_KGback的博客-CSDN博客),VCS将三个阶段独立开来,使compilation与elaboration可以通过仿真前的命令行单独执行,而simulation阶段则可以直接运行建立好的模型
因此VCS修改参数(parameter类型)需要在独立的elaboration阶段修改,类似的QuestaSim可在仿真阶段修改(后台事先会执行elaboration阶段)。
可参考链接:[VCS]VCS常用命令詳解 - it610.com
ucli命令
在database准备阶段,可以使用UFE工作流可以简化设计流程
在大型设计的仿真调试时,可以使用pre-load工作流来实现较快的打开速度和较少的内存花销
Temporal Flow View可以通过图形的方式将电路结构和信号时序表现出来,从而追寻引发触变的源信号。
基于TFV,可以使用TraceX组件,可以追寻信号被置为X的原因。
主要debug功能有:
verdi通过nCompare来比较两个fsdb文件,同时可以载入规则文件来设置比较的触发条件、误差的容忍值等,例如:
nCompare -rule <rule_file> -fsdb <a.fsdb> -fsdb <b.fsdb> -report <report_file>
vcs 覆盖率收集2——覆盖率选项 + 合并覆盖率_vcs覆盖率-CSDN博客
$> vcs -Mupdate -cm line -cm_dir my_cov source.v
$> simv -cm line -cm_dir int_dat_files
$> vcs -cm_pp -cm line -cm_dir my_cov -cm_dir int_dat_files
第一条命令是把source.v文件进行编译, 把编译结果放入my_cov文件夹中. 选项-cm line表示在编译时, 要加入line 覆盖率分析.
第二条命令运行仿真,同样选项-cm line选项表示仿真是加入line覆盖率分析, 并把结果存入ini_data_files目录中
第三条进行覆盖率分析, 分析文件从my_cov和int_dat_files这两个目录中读取, 进行line覆盖率的分析。现在一般用dve图形界面观察覆盖率报告。
cmView会将各自的仿真的中间文件合并,因此可以使用同一个testbench,编译一次,但多次仿真,就可以得到多次仿真的覆盖报告
参考链接:vcs initreg选项的使用_kevindas的博客-CSDN博客
vcs编译解决 module名重复的冲突问题_cy413026的博客-CSDN博客_vcs两步法和三步法区别
Error-[ITSFM] Illegal `timescale for module
Module "top" has `timescale but previous module(s)/package(s) do not.
编译时,要将带有`timescale或者宏定义的文件列在前面。
Error-[SV-IDOCBO] Illegally driving clocking block output
Clocking block output rtr_io.cb.reset_n is illegally driven by a blocking assignment.
interface里的clocking block里应使用非阻塞赋值 <=
Error-[...]找不到某些文件
这个时候先要确认该文件确实已经添加到VCS可遍历的目录里去,若源文件已添加仍找不到,可使用+incdir+选项将源文件所在目录添加进去;
其次观察一下编译的log文件,检查是否编译命令是否正确,经常会出现列举编译文件格式不规范,少加号、换行符的情况。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。