逻辑仿真工具VCS

06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客

  • verdi只进行debug进行使用,不进行编译,只进行产生波形之后的debug
  • 仿真速度和代码质量有关系,选项也会影响仿真速度,行为级>RTL>门级
  • 信号的可见性和可追踪性

1.系统函数Debug

  • display() -- 在active region;$monitor() -- 在monitor region执行
  • $time -- 仿真时间(不是CPU时间)
  • $readmemh()读取十六进制文件!

2.命令行Debug(基本不会使用)

06-逻辑仿真工具VCS-Debug-小白菜博客

  • -debug打开部分开关
  • -debug_all打开全部开关
  • -debug_pp在保证打开最多开关的情况下,对性能影响最小
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客

  • ctrl+c -- 仿真出现死循环卡住的时候
  • 通过kill命令杀死进程

  • 在循环的时候可以加上$display(),在死循环的时候知道仿真停在哪里

3.DVE Debug

06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客

  • verdi使用的波形文件格式是fsdb
  • # - 管理员权限;$ - 普通用户权限
  • & 后台执行
  • ctrl+o -- 打开波形文件
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客
    06-逻辑仿真工具VCS-Debug-小白菜博客

06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客
06-逻辑仿真工具VCS-Debug-小白菜博客
在Verilog中调用C语言程序

  1. 先写好C代码(.c文件)
#include <stdio.h>
// 调用dpi必须有的文件
#include "svdpi.h"  

void hello(char*str){
  printf("%s\n",str);
}
  1. 在verilog中调用
import "DPI" function void hello(string str);  // 导入函数 返回值 函数名(参数)

initial begin
  hello("Hello SystemVerilog");
end
  1. 编译的时候将c代码加入
vcs xx.v xxx.v xxx.c ...