0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优化编译和仿真的VCS使用技巧

sanyue7758 来源:处芯积律 2024-03-08 14:02 次阅读

1简介

冗长的编译和仿真,对于稍大的工程,编译加上仿真可能需要1个小时以上并且占用大量内存,而跑回归更是消耗大量的时间以及内存资源,本文主要给大家带来VCS使用技巧,DPO,DPO全称是Dynamic Performance Optimizer,主要用于优化编译和仿真(时间/内存),减少资源的使用,属于VCS的高级功能。仅需要很少的命令即可引入当前工程,体验来看,优化基本都在30%以上(数据来自亦安自己的测试,具体以实际为准)。

2DPO的特性

接入工程简单,只需要简单的命令

深度优化编译和仿真,包含时间和内存的优化

3该怎么使用DPO

目前该功能可能需要较高版本VCS DPO才比较完善。

使用逻辑非常简单:第一步,学习(learn)以及合并(merge)。第二步,应用(apply)。例如有500个case,我们先在learn模式跑完case,然后merge,之后便可以在应用(apply)模式下跑项目。最终会有比较好的编译和仿真优化,一般情况下,工程没有巨大改变,不需要重新learn。

我们打开VCS_HOME目录下,doc/examples/dpo/dpo_use_model,官方给了一个demo,Makefile如下(部分),主要涉及参考,学习,合并,获得建议,应用,报告。涉及的命令非常的简单,如果想更深入了解请参阅手册。该目录下执行make即可跑demo。

dpo_reference:
vcs-sverilog-full64-ntb_optsuvm-1.2ubus_tb_top-debug_access+all-lca-lcomp_ref.log-dpo-dpo_optsapps=vcsgd+user_tag=reference
./simv+UVM_NO_RELNOTES+UVM_TESTNAME=test_2m_4s-lsimv_ref.log

dpo_learn:
rm-rfsimvsimv.daidircsrcvc_hdrs.h*.keyvcs.cfg
vcs-sverilog-full64-ntb_optsuvm-1.2ubus_tb_top-debug_access+all-lca-lcomp_learn.log-dpo-dpo_optsmode=learn+apps=default,lint,upfopt,pgates+user_tag=learn+dbdir=dpo_learndb-dpo_optscfg=cfg
./simv+UVM_NO_RELNOTES+UVM_TESTNAME=test_2m_4s-lsimv_learn.log

merge_db:
dporgmerge-ddpo_learndb

dump_reco:
dporgdump-ddpo_learndb
echo"#####EnablingallrecommendationsdumpedbyDPOfromdpo_reco.csv#####"
sed-i"s/^N,/Y,/g"dpo_reco.csv

dpo_apply:
rm-rfsimvsimv.daidircsrcvc_hdrs.h*.keyvcs.cfg
vcs-sverilog-full64-ntb_optsuvm-1.2ubus_tb_top-debug_access+all-lca-lcomp_apply.log-dpo-dpo_optsreco_file=dpo_reco.csv+apps=default,fgp,lint,upfopt,pgates+user_tag=apply+learn_dbdir=dpo_learndb+cfg=cfg
./simv+UVM_NO_RELNOTES+UVM_TESTNAME=test_2m_4s-lsimv_apply.log

dpo_report:
dporgreport-ddpo_dbdir

4查看DPO报告

dporgReport目录下用浏览器打开即可,可以打开相关的报告。可以看到相关的优化比率,CT(Compile Time),RT(Run Time),RM(Memory)。

45aa2f7c-d8af-11ee-a297-92fbcf53809c.png

5DPO设置的权衡

任何事情的选择很难是各个方面都会带来优势,所以需要结合自己的项目去权衡应该优化那些方面,哪里是关键的设计,那么选择优化该方向。相关建议可以在文件dpo_reco.csv打开查看。

45bdee40-d8af-11ee-a297-92fbcf53809c.png

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    8

    文章

    3020

    浏览量

    74019
  • VCS
    VCS
    +关注

    关注

    0

    文章

    79

    浏览量

    9602

原文标题:如何让你的仿真编译性能优化?(VCS 高级特性)

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    vcs实用技巧

    VCS编译型verilog仿真器,VCS先将verilog/systemverilog文件转化为C文件,在linux下编译生成的可执行文.
    的头像 发表于 10-25 17:22 1078次阅读
    <b class='flag-5'>vcs</b>实用技巧

    VCS仿真的注意事项

    VCS
    皮特派
    发布于 :2022年12月07日 11:38:35

    VCS仿真指南(第二版).pdf

    VCS-verilog compiled simulator是synopsys公司的产品.其仿真速度相当快,而且支持多种调用方式;使用的步骤和modelsim类似,都要先做编译,再调用仿真
    发表于 12-15 10:27

    nanosim和vcs混合仿真的过程是怎样的?

    nanosim和vcs为什么可以联合起来进行数字模拟混合仿真?nanosim和vcs混合仿真的过程是怎样的?
    发表于 06-18 08:28

    基于linux系统实现的vivado调用VCS仿真教程

    VCS-MX的版本,可以混合编译Verilog和VHDL语言 由于在linux系统中个人用户各种权限被限制,导致很多地方无法正常使用软件之间的协调工作。 为了以防万一,在此以个人用户去实现vivado调用VCS
    的头像 发表于 07-05 03:30 1.1w次阅读
    基于linux系统实现的vivado调用<b class='flag-5'>VCS</b><b class='flag-5'>仿真</b>教程

    如何使用Synopsys VCS仿真器进行ZYNQ BFM IPI设计仿真

    了解如何使用Vivado中的Synopsys VCS仿真器使用ZYNQ BFM IPI设计运行仿真。 我们将演示如何编译仿真库,为IP或整
    的头像 发表于 11-29 06:59 4936次阅读

    如何使用Vivado中的Synopsys VCS仿真器进行仿真

    了解如何使用Vivado中的Synopsys VCS仿真器使用MicrBlaze IPI设计运行仿真。 我们将演示如何编译仿真库,为IP或
    的头像 发表于 11-29 06:57 7426次阅读

    使用VCS两种仿真flow的基本步骤

    VCS是一个高性能、高容量的编译代码仿真器,它将高级抽象的验证技术集成到一个开放的本地平台中。它能够分析、编译编译Verilog、VHDL
    的头像 发表于 05-07 14:20 4898次阅读

    vcs学习笔记(常用选项/仿真流程/代码覆盖率/综合后仿真/图一乐技巧)

    VCS编译型verilog仿真器,VCS先将verilog/systemverilog文件转化为C文件,在linux下编译生成的可执行文.
    的头像 发表于 05-23 16:04 9725次阅读

    浅谈VCS的两种仿真flow

    几乎所有的芯片设计、芯片验证工程师,每天都在和VCS打交道,但是由于验证环境的统一化管理,一般将不同的编译仿真选项集成在一个文件里,只需要一两个人维护即可。所以大部分人比较少有机会去深入地学习
    的头像 发表于 01-10 11:20 3739次阅读

    EDA仿真VCS编译Xilinx仿真步骤

    选择VCS,再指定库文件存放的路径;如果VCS的环境变量设置好了,那么会自动跳出Simulator executable path的路径的。
    发表于 03-31 10:21 2197次阅读

    VCS编译选项:-y及+libext+

    VCS是一款常见的Verilog编译工具,它提供很多编译选项来控制编译过程及其输出。本文主要介绍以下两个编译选项。
    的头像 发表于 05-29 14:46 1.2w次阅读

    VCS实用技巧分享

    VCS编译型verilog仿真器,VCS先将verilog/systemverilog文件转化为C文件,在linux下编译生成的可执行文.
    的头像 发表于 05-30 09:26 1410次阅读
    <b class='flag-5'>VCS</b>实用技巧分享

    记录VCS仿真的IP核只有VHDL文件的解决方法

    使用VCS仿真Vivado里面的IP核时,如果Vivado的IP核的仿真文件只有VHDL时,仿真将变得有些困难,VCS不能直接
    的头像 发表于 06-06 11:15 2231次阅读
    记录<b class='flag-5'>VCS</b><b class='flag-5'>仿真的</b>IP核只有VHDL文件的解决方法

    VCS 仿真option 解析

    VCS仿真选项分编译(compile-time)选项和运行(run-time)选项。编译选项用于RTL/TB的编译,一遍是
    的头像 发表于 01-06 10:19 2802次阅读