没有合适的资源?快使用搜索试试~ 我知道了~
入门资料,sv的pdf,包括sv,Verilog,协议
需积分: 10 0 下载量 106 浏览量
2022-10-16
23:03:55
上传
评论
收藏 36.92MB PDF 举报
温馨提示
试读
1226页
入门资料,sv的pdf,包括sv,Verilog,协议。
资源详情
资源评论
资源推荐
木秀于林,冲迎风霜 --
每天积累一点点
1
/
1226
VCS 篇
基本选项及命令介绍
Vcs 选项里面通过 –v 加库,-f file_list(该文件里面为 rtl 代码或测例),
或直接加.v/.sv 文件时,需要注意,文件内容一定为 module …end 或
program…endprogram 或 package…endpackage 格式,如果是
task ,function,class 则必须包含在上述模块内,如果是以-v 方式加入文件,
无法在 verdi 中 trace 到内部信号
1.编译项+vcs+initreg+random 可以给所有的寄存器和 memory 赋一个随
机的初始值,也可以设置为 0 或 1,指的是变量设置为 reg 类型(wire,bit
等不会被初始化),在编译选项需要加上+vcs+initreg+random,运行选
项加上+vcs+initreg+0/1/random,最后 reg 类型的变量将是运行选项的
值 0/1/random;注意:当使用了上述+vcs+initreg+选项,如果在最开始
又对某个 reg 类型的变量赋一个取反的值,则这时会有一个 0 宽度的脉
宽
2. +vcs+initmen+random(0|1|x) 初始化存储器和多维数组;--用于前仿
真
3.compier 选项先+tc 再加 tb,由于编译的顺序,可以在 tc 中改变 tb 中的
一些 define 或预先 define,所以在 tb 中的 define 要求加上 ifndef 的
判决
4.如何单步运行,定位无限 0 延时的循环:当仿真时间没前进,但Δt 时间
在进行,这一般是存在延时为 0 的循环,则可以通过逐行运行来调试使
用 ctrl+c 停止仿真,在 run,重复该动作,会显示运行的语句,不能+RI
编译后立即运行,要采用 2 步 法,先 complie 然后在 simv。选项要加
-debug_all
5.FSDB 转 VCD 的方法
用法: fsdb2vcd fsdb_fname [-o vcd_file_name] [options]
参数选择:
木秀于林,冲迎风霜 --
每天积累一点点
2
/
1226
[-bt time[unit]] [-et time[unit]]
[-s [-nocase] {signal_name [-level n] [-verilog|vhdl]}]
[-keep_last_time]
[-map_ns_u [0/x/z]] [-map_ns_y [0/x/z]] [-map_ns_z [0/x/z]]
[-sv] [-v] [-vcs] [-f config_file]
[-bt time[unit]]
指定起始时间,如果不指定,将从 FSDB 的起始时间开始。时间单位可
以是 Ms/Ks
/s/ms/us/ns/ps/fs。如果不指定,将采用 ns。
[-et time[unit]]
指定结束时间,如果不指定,将从 FSDB 的结束时间结束。时间单位可以是
Ms/Ks
/s/ms/us/ns/ps/fs。如果不指定,将采用 ns。
-level n
转换所指定的层次和其向下 n 级层次结构的信号。必须和选项-s 连着使
用
-o
指定输出 VCD 文件的名字
-s
指定需要提取的信号或者层次
例子:
1. 转换所有的信号
%fsdb2vcd verilog.fsdb –o output.vcd
2. 转换指定时间范围和层次的信号
%fsdb2vcd verilog.fsdb –s /system/i_cpu –level 1 –bt 10 –et 1000
更多的解释,请直接在命令行输入 fsdb2vcd,就会有详细参数的解释。
5.截取 FSDB 中一段波形的方法:
fsdbextract sorce.fsdb -bt (begintime) -et (endtime) -s
/tb/udut/tp -level 0 -o destine.fsdb 时间单位为 ns
木秀于林,冲迎风霜 --
每天积累一点点
3
/
1226
6.当开启 -fsdb 命令是,需要设置 debussy 的环境变量,否则会提示
Error-[VPI-LOAD] VPI -load library error 错误
7.DUT_CMP_OPTIONS += +neg_tchk +overlap +sdfverbose -negdelay
–sdfretain
# neg_tchk 负延迟检查;overlap SDF 反标后的精确时序检查;
#sdfverbose 打印出详细的 SDF 反标信息;negdelay 允许 SDF 文件中负延
迟反标
8.DUT_CMP_OPTIONS+=+warn=noTFIPC,noSDFCOM_CFTC,noSDFCOM_NIOD,noS
DFCOM_RCI,noSDFCOM_ANICD,noSDFCOM_PONF,noSDFCOM_CFIIS,noSDFCOM
_MINF,noSDFCOM_IANE,noSDFCOM_TANE,noSDFCOM_SWC
#不报这些 warning。这是 SDF 反标时出现的,一般都不用管,其中
TFIPC,SDFCOM_CFTC 都表示 message ID,
原句为 +warn=no[ID]|all|none
##DUT_CMP_OPTIONS += +notimingcheck+nospecify+delay_mode_zero
# notimingcheck 忽略仿真中的时序检查;把 nospecify 的功能包含进去了,
Specify 都是在 rtl 的 module 中
#nospecify :库中的 cell,会有 specify 语句,指定延时信息的。Nospecify
去除延时信息。注意:如果后仿时有该选项,那么 sdf 文件的反标信息就不
能起作用。
# delay_mode_zero 去除仿真中延迟信息
9.Using Verilog System Tasks(产生波形的那几个函数)
Compilation
This can be done in following two ways:
•% vcs -fsdb [compile_options] verilog_filelist
•For –P tab flow, replace vcsd.tab with novas.tab, where novas.tab
is available in:
<NOVAS_INST_DIR>/share/PLI/VCS/${PLATFORM}/novas.tab
The following is the use model change:
木秀于林,冲迎风霜 --
每天积累一点点
4
/
1226
% vcs -debug_pp -P $DEBUSSY_LIB/novas.tab $DEBUSSY_LIB/pli.a
[compile_options] verilog_filelist
使用 Verilog 系统函数需要使用 -P 那个包
但这时不能用 -fsdb 选项(2010.07 版本支持)它需要做如下环境变量设置
% setenv DEBUSSY_HOME Debussy_installation
% setenv DEBUSSY_LIB $DEBUSSY_HOME/share/PLI/VCS/LINUX
% setenv LD_LIBRARY_PATH
${DEBUSSY_HOME}/share/PLI/lib/LINUX:$DEBUSSY_LIB
% setenv LM_LICENSE_FILE[Debussy_license]:$LM_LICENSE_FILE
down 波形的步骤:
initial begin
$fdsbDumpfile(file_name); //生成波形的名字
$fsdbDumpvars(0,tb)//down 波形的层次,写了这句话,就会开始 down
波形;
//0 表示当前层及所有子层 ,1 表示当前层 ,2 表示往下一层,3,4..依
此类推.
$fsdbDumpon;
End
Stopping and resuming the dump ($dumpoff/$dumpon)
fsdbDumplimit - 限制 FSDB 文件 size
-- $fsdbDumpvars([], *)
fsdbDumpfile - 指定 FSDB 文件名
-- $fsdbDumpfile(“”)
fsdbDumpvars - Dump 指定的变量
--
fsdbDumpSingle - Dump 指定的信号
fsdbDumpvariable - Dump 指定的 VHDL 变量
木秀于林,冲迎风霜 --
每天积累一点点
5
/
1226
fsdbSwitchDumpFile - 将 dumping 切换到另一个 FSDB 文件
-- $fsdbSwitchDumpFile(“”)
fsdbAutoSwitchDumpfile - 限制文件大小并在数据量过大时自动创建新的
FSDB 文件
-- $fsdbAutoSwitchDumpfile(, “”,< number of file>)
fsdbDumpflush - Force to Dump Result to FSDB file
fsdbDumpMem - Dump 指定的 memory 的内容
-- $fsdbDumpMem(, [, []])
$fsdbDumpon - 打开 FSDB dumping
$fsdbDumpoff - 关闭 FSDB dumping
当 DUT 的某些信号无法显示在 verdi 中时,请注意 fsdb 波形是否配置为最
顶层,即注意是否有 down 此模块的波形
10. sva 在波形上显示的方法:在 tb.v 中 dump 波形地方加上:
$fsdbDumpSVA
11. 如果要增加 assert 语法,需要包含 sva_lib.sv 库
12. 用+incdir 可以改变`include "../../rtl" 语句的相对的路径,但对
于没有用`include,而直接使用../../../rtl/这种做法,则相对的路径
以 compile 所在的目录为基准
13. DUT_CMP_OPTIONS += +neg_tchk +overlap +sdfverbose -negdelay
–sdfretain
# neg_tchk 负延迟检查;overlap SDF 反标后的精确时序检查;
#sdfverbose 打印出详细的 SDF 反标信息;negdelay 允许 SDF 文件中负延迟
反标
14. DUT_CMP_OPTIONS+warn=noTFIPC,noSDFCOM_CFTC,noSDFCOM_NIOD,noS
DFCOM_RCI,noSDFCOM_ANICD,noSDFCOM_PONF,noSDFCOM_CFIIS,noSDFCOM
_MINF,noSDFCOM_IANE,noSDFCOM_TANE,noSDFCOM_SWC#不报这些
warning。这是 SDF 反标时出现的,一般都不用管,其中
剩余1225页未读,继续阅读
NobleGasex
- 粉丝: 287
- 资源: 45
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0