【VCS】(5)Fast RTL-level Verification

前面的内容都是在说怎样进行仿真和验证,即如何使用 VCS 。
但是,仿真和验证是不是也有所讲究? 有没有一些标准来衡量设计代码和验证代码的质量?代码写不好导致仿真时间慢、占用资源多?
对于大规模SoC而言,如果代码写的不好的时候,会对仿真的性能影响很大。

为了提升 RTL仿真的性能,可以从两个角度出发:

① 良好的编码风格 (主导)

② 编译的时候,使用+rad选项 (辅助)

此外,就是要合理的控制编译和仿真的开关选项,以及减少重新编译的次数(一次修改尽可能多的源代码问题)。

在这里插入图片描述

General Coding Guidlines

在这里插入图片描述

(这里用不好用行数来限制,反正就是尽可能写的小一些就好。)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(这个好像用的不多)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

+prof统计分析代码各部分内容的的仿真时间和占用的内存大小,可以帮助找出仿真的瓶颈,优化代码。)

在这里插入图片描述
现在的 VCS 使用的统计分析命令是 -simprofile (+prof已经完全不能使用了)

Lab — simprofile

这里还是用了前面使用的 fsm 的例子。

首选需要在Makefile的编译指令中添加 -simprofile选项
在这里插入图片描述

因为该选项是用于大规模设计的仿真的,但是当前的设计规模太小了,可能统计不到内容,所以首先要扩大设计。

① 在testbench中实例化 1000个模块。
在这里插入图片描述在这里插入图片描述

(这里必须使用 genenrate + for 循环来实现,也要用 genvar 来定义变量 index。)

② 对 DPI 也进行适当的修改

在这里插入图片描述
(因为只输出一次的时候,统计不到信息,所以后面就改为10000次,增加 C 程序的执行时间。)

完成上述修改之后,执行编译仿真。

仿真结束之后,增加了如下内容:

在这里插入图片描述

profileReport.txt 的内容如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

$display() 输出彩色内容

在这里插入图片描述

在这里插入图片描述

基本语法格式:

$display("\033[31;41m Hello error!\033[0m");

\033 : Esc 键的ACSII 码
[31 : 字体颜色
41 : 底色
除了字体颜色和底色,还可以设置其他参数,如加粗、下划线等。多个参数之间以 ; 隔开
m : 结束表示符,终端以设定的格式输出内容后面的内容
\033[0m : [0m 表示后面的内容以终端默认的方式显示

这个其实是终端的功能,在 display 里面也可以使用。同样的 echo 也可以使用。

在这里插入图片描述
可以看出:
① 不同格式参数之间没有顺序要求,也就是说每一种各种对应了一种代码
\033[30m这个整体是格式化输出的起止标志

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值