VCS课时6:VCS的仿真效率
大型SoC的设计:大部分时间在做优化,设计,写代码是其次。更多的是Debug
衡量仿真的效率:仿真速度快,CPU资源少,内存少
这节课并不是最重要的,但是涉及仿真的高效性和思想
课程目标

- 好的编码风格
- 利用VCS提供的开关选项, +rad开关
工具其实有限的,最重要的是人的设计
1. 仿真的效率
PPT1

- 适当的选择开关选项
- 三个小问题改完了再去编译,而不是盖一个编译一次,门级仿真编译更慢
PPT2 VCS的架构

VCS处理代码的过程
第一遍就考虑把事情做好,一气呵成
2. 通用代码建议
PPT1

- 可综合Verilog语法集
- 提升你的抽象层次,RTL级>门级>原语级。后仿真(门级)的速度很慢,适当的用状态机
- 避免效率的低的语句,原语级,双向口
- 使用小的激励块,module不要写的太大,不利用维护,激励多用task去包装。
- 使用基于文本的激励输入readmemh,是否dump数组到波形
readmenh和writemenh用的最多,最后把结果保存到文本文件中
PPT2
在设计里面避免

PPT3

- 避免门级结构 (gate-level UDP)
- 数据类型,常用reg wire 和integer
- 跨模块的引用
3. VCS优化代码方法
PPT1

PPT2 使用rad优化的例子1

PPT3 使用rad优化例子2

PPT4

PPT5 配置文件

4. prof性能分析
PPT1

统计分析哪个模块占用资源比较多
PPT2

PPT3

PPT4 报告的内容




PPT5

5. 实验环节
- 没有加的仿真时间

加上了+rad的仿真时间

- 加上了编译型的开关
+prof,多出了vcs.prof文件
warning可以看看,有帮助

性能分析,往往是针对大型的项目
gVim下删除一行的快捷键的连线敲两个d
-
+prof未来的版本不支持该命令改用+simprofile -
例化多个模块,
generate例化module是不能用数组的
例如1000个计数器下

后面讲了 -
打印出带颜色的字体


浙公网安备 33010602011771号