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个计数器下

    后面讲了

  • 打印出带颜色的字体


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM