当前位置: 代码迷 >> 综合 >> VCS 视频教程 笔记 第二课
  详细解决方案

VCS 视频教程 笔记 第二课

热度:98   发布时间:2023-12-18 22:44:10.0

第二课

UCLI

  • VCS Debugging Support

三种方式:1.System Task Call 2.VCS UCLI 3.VCS DVE(GUI)

DVE用的情况较多,但现在用的更多的是verdi,verdi不用做编译和仿真,只用作debug。

四个需要考虑的因素:

1.simulation speed 

取决于电脑本身的性能,代码的质量,开关选项以及仿真的级别。一般来说仿真速度是行为级>RTL级>网表

2.signal visibility 第二点与第三点相辅相成

3.signal tractability

4.usability   UCLI命令行的可用性比DVE要差一些

 

**$time显示的是仿真时间不是系统时间

**$readmemh,readmemb指在用到存储单元(如RAM、ROM、FIFO)时,若要初始化大量数组,可以将初始化的数据放到文件当中,利用系统函数$readmemh,readmemb把文件里的数据读入存储单元中。readmdmh读取16进制文件,readmemb读取二进制文件,其它用法完全相同。

 

  • Compile and invoke UCLI debugger
$vcs source.v -debug/debug_all -R -ucli

 

几个debug选项的区别:-debug只打开一部分开关;-debug_pp保证打开足够多开关的情况下,性能保持最好,对仿真影响最小;debug_all打开所有开关。

-l log_filename; -i input_filename; -k key_filename

 

  • Probelms in simulation

如果写出延迟为0的循环则有可能陷入死循环,此时按ctrl+c可以强制退出仿真,也可以找出进程号(PID),使用 "kill PID" 关闭程序。

建议:开发过程中在循环语句里插入$display信息,可以帮助判断循环进程。

 

DVE

  • 模式介绍

软件本身自带的参考文件:

两种模式:(1)Interactive 实时 (2)post-simulation analysis 后处理

图形界面可以通过右键调出菜单,也可以拖拽。

两种以Interactive模式打开dve的方式:

$vcs source.v -R -gui -debug_all
$simv -gui

Post-Process Mode打开dve:

$dve &
$dve -vpd <filename>

打开database(后缀为vcd/vpd)即可以查看波形文件,波形文件一般会比较大。

补充:Verdi的波形文件以fsdb为后缀。

 

  • 操作介绍

step icon在遇到task或者function的时候会进入模块中一条一条执行,但是next icon会直接将task和function语句当作一条完整的语句执行。

查找功能:

比较功能:

*delta cycle; list window

打开断言(assertion)的选项:-debug -assert dve 

C文件编译选项:-g ;PLI Call:$ZeroMinder(hour_sig,min_sig,sec_sig);

verilog的缺点在于没有数据结构或者说缺少复杂的数据结构(例如二叉树)因此有些复杂的数据结构模型就需要利用DPI或PLI界面调用C语言。

追踪功能:

 

  • 实际操作

波形界面中调试状态机时,可以用“State Name”以状态名显示波形

可以使用搜索功能,搜索某一个信号是否出现了特定值

 

***DPI/PLI接口

先写一个简单的C程序

然后在verilog中通过DPI接口调用这个文件

编译时需要将 -sverilog 的选项打开

 

 

 

 

  相关解决方案