在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

vcs學習筆記(常用選項/仿真流程/代碼覆蓋率/綜合后仿真/圖一樂技巧)

路科驗證 ? 來源:數字ICer ? 作者:數字ICer ? 2022-05-23 16:04 ? 次閱讀

本節主要介紹:
vcs常用選項
vcs仿真流程
vcs代碼覆蓋率
vcs綜合后仿真
圖一樂技巧

VCS是編譯型verilog仿真器,VCS先將verilog/systemverilog文件轉化為C文件,在linux下編譯生成的可執行文./simv即可得到仿真結果。

bc421940-da5c-11ec-ba43-dac502259ad0.png

vcs編譯后,生成可執行二進制文件simv:執行./simv進行仿真;

vcs常用選項

  • vcs -help :列出所有vcs編譯運行選項
  • -Mupdate :增量編譯
  • -R:編譯后立即執行仿真
  • -l:輸出編譯log的文件
  • -sverilog:支持systemverilog
  • +v2k:支持2001 verilog標準
  • -f:指定包含文件列表的filelist
  • -o:修改可執行文件simv文件名
  • -full64:支持64位模式下的編譯仿真
  • -fsdb:dump fsdb波形
  • -ucli:在UCLI命令行模式下執行simv
  • -gui :DVE 界面運行
  • -work library:將設計庫名稱映射到接收vlogan輸出的邏輯庫名稱work
  • -v lib_flie:搜索指定lib庫文件
  • -y lib_dir:搜索指定lib庫路徑
  • +libext+ext:搜索具有指定文件擴展名的文件,如+libext+.v +.sv
  • +incdir+directory:搜索指定include文件路徑
  • +define+macro:使用源代碼中`ifdef所定義的宏或者define源代碼中的宏
  • -parameters filename:將filename文件中指定的參數更改為此時指定的值
  • -timescale=1ns/1ns:設置仿真精度
  • -debug、debug_all、debug_pp:打開debug開關

vcs仿真流程

編寫makefie腳本運行仿真:

bc5ce7de-da5c-11ec-ba43-dac502259ad0.pngmakefie

執行下面編譯仿真:

makevcs
makesim

1.DVE圖形界面打開

在編譯時,使用 +vpdfile+filename 可以更改生成 VPD 文件的文件名,默認為vpdplus.vpd。

makefile中添加:

ALL_DEFINE=+define+DUMP_VPD
VPD_NAME=+vpdfile+simv.vpd

仿真文件tb.v中添加:

`ifdefDUMP_VPD
initialbegin
$display("DumpVPDwave!");
$vcdpluson();
//$vcdpluson(0,tb);//記錄tb及其所有子模塊的波形。
//$vcdpluson(1,tb );//只記錄tb層的波形
//$vcdpluson(2,tb );//記錄tb層和tb下一層的波形
end
`endif

在仿真完成后,生成了simv.vpd 這個文件,這個文件記錄了仿真過程中所有信號的波形,

可以使用dve打開:

dve-vpdsimv.vpd&
bc7f759c-da5c-11ec-ba43-dac502259ad0.png

選中所有信號 --> 右鍵Add to Waves --> New Wave View

bcb9d3c2-da5c-11ec-ba43-dac502259ad0.png

2.verdi圖形界面打開

通常使用VCS生成fsdb格式的波形文件,將其導入另一個軟件Verdi查看波形,代替DVE進行聯合仿真;

vcs選項加上-fsdb,仿真文件tb.v中添加:

initialbegin
$display("Dumpfsdbwave!");
$fsdbDumpfile("tb.fsdb");
$fsdbDumpvars;
end

仿真完成后執行下面命令打開verdi:

makeverdi

推薦查看verdi實用技巧fsdb實用技巧

代碼覆蓋率

在一個芯片驗證的工程中,通常以代碼覆蓋率和功能覆蓋率來體現驗證是否完備;

功能覆蓋率就是檢查設計的功能是否完善,需要考慮很多不同的情況,是使用SV的重點內容。

代碼覆蓋率是檢查代碼是否存在冗余,檢查所有的代碼是否都已經執行,包括:行,狀態機,翻轉,條件,分支覆蓋率等,這里只討論代碼覆蓋率。

VCS在統計代碼覆蓋率的過程中,需要在編譯和仿真命令上添加對應的開關選項,生成.vdb文件記錄覆蓋率情況。

再使用dve打開該文件進行查看覆蓋率。

代碼覆蓋率選項

bccedf10-da5c-11ec-ba43-dac502259ad0.png
  • -cm :打開對應類型覆蓋率,例如 -cm cond+tgl+lin+fsm+path為統計所有覆蓋率。
  • -cm_name:統計覆蓋率文件名字。
  • -cm_dir:指定生成.vdb文件目錄。
  • -cm_log+filename.log:記錄仿真過程中log信息
  • -cm_nocasedef: 在統計case語句的條件覆蓋率時,不考慮default條件未達到的情況。
  • -cm_hier xxx.cfg:通過.cfg文件選擇要查看覆蓋率的模塊或文件。

通過DVE查看覆蓋率(方法1)

仿真完成后執行下面命令dve -covdir *.vdb &打開dve查看覆蓋率:

makedve_cov

代碼覆蓋到的為綠色,沒有覆蓋到的為紅色:

bceada26-da5c-11ec-ba43-dac502259ad0.png

通過URG查看覆蓋率(方法2)

可以以文本格式或者網頁格式顯示覆蓋率;

bd33cf4c-da5c-11ec-ba43-dac502259ad0.png

或者:

urg-dir*.vdb-reporturgReport

進入urgReport目錄,執行下面命令打開網頁版,查看覆蓋率報告

firefox*.html
bd54e2ae-da5c-11ec-ba43-dac502259ad0.png

綜合后仿真

推薦查看綜合與時序分析

推薦查看后仿及反標

vcs門級網表仿真

當RTL功能仿真通過之后,DC工具中進行邏輯綜合,在邏輯綜合完成之后,需要對綜合生成的網表再進行仿真驗證。

綜合后包含電路的實際信息,如映射的門電路信息、寄生參數、.v的網表、SDF標準延時信息、SDC約束、工作條件等信息。

后仿選項

后仿不需要的選項

帶時序的后仿,一定要注意仿真器是否關閉了notimingcheck和nospecify的選項。

如果有-nospecify,那么SDF中的時序信息就反標不到仿真模型中;

如果有-notimingcheck,那么后仿過程中就不檢查時序違例,后仿就失去了意義。

后仿添加選項

  • +neg_tchk:若要使用負延時檢查,在編譯后仿時必須包含+neg_tchk選項。如果省略此選項,VCS將所有負延遲更改為0。
  • -negdelay:用于SDF文件中有負延遲,如果省略此選項,VCS將所有負延遲更改為0。

sdf_annotate反標

使用$sdf_annotate將SDF文件反標到網表中:

$sdf_annotate("sdf_file"[,module_instance][,"sdf_configfile"][,"sdf_logfile"][,"mtm_spec"][,"scale_factors"][,"scale_type"]);

在tb中加載sdf文件,指定反標模塊:

`ifdefGLS_SIM
initialbegin
$sdf_annotate("../../netlist_sim/sdf/TOP.sdf",tb.U_TOP,,"sdf.log","TYPICAL");
end
`endif

修改makefie腳本運行仿真:

LIB_NET_FILE指定的是基本的工藝庫單元,因為網表文件netlist_TOP.v中包括綜合后的由門電路和觸發器等例化形成的verilog文件,所以需要基本的工藝庫單元。

bd7860da-da5c-11ec-ba43-dac502259ad0.pngmakefile

rtl仿真和netlist仿真結果對比:

可以看到netlist仿真的輸出信號存在一些毛刺及延遲,與理想的沒有延遲信息的rtl仿真不同。

bde84c38-da5c-11ec-ba43-dac502259ad0.pngrtl仿真be13ac5c-da5c-11ec-ba43-dac502259ad0.pngnetlist仿真

圖一樂技巧

display打印彩色字/背景

可在仿真中加入顏色顯示case的情況,如:

be64ab52-da5c-11ec-ba43-dac502259ad0.pngbe8b1ed6-da5c-11ec-ba43-dac502259ad0.png

紅色:前景色31,背景色41:

$display("33[31;41mHelloerror!33[0m");

綠色:前景色32,背景色42:

$display("33[32;42mHellopass!33[0m");

黃色:前景色33,背景色43:

$display("33[33;43mHellowarning!33[0m");

涉及的顏色:

bebb9b7e-da5c-11ec-ba43-dac502259ad0.png涉及的顏色

原文標題:vcs實用技巧

文章出處:【微信公眾號:路科驗證】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210400
  • 仿真器
    +關注

    關注

    14

    文章

    1019

    瀏覽量

    83936
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110396
  • VCS
    VCS
    +關注

    關注

    0

    文章

    80

    瀏覽量

    9647

原文標題:vcs實用技巧

文章出處:【微信號:Rocker-IC,微信公眾號:路科驗證】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    文詳解Modelsim代碼覆蓋率功能使用

    )、toggle(信號翻轉)、fsm(有限狀態機)等多種覆蓋率情況。 1、編譯選項(compile option): 在Modelsim的Workspace里選中需要查看代碼覆蓋率的文
    的頭像 發表于 12-09 11:45 ?5951次閱讀

    怎么用Vivado做覆蓋率分析

    在做仿真的時候往往會去做代碼覆蓋率和功能覆蓋率的分析,來保證仿真是做的比較充分完備的。
    的頭像 發表于 01-03 12:34 ?1829次閱讀
    怎么用Vivado做<b class='flag-5'>覆蓋率</b>分析

    嵌入式仿真平臺SkyEye的覆蓋率分析相關資料下載

    代碼執娜行覆蓋情況的功能,來檢測代碼中未執行覆蓋情況。在覆蓋率分析時需要分析嵌入式軟件的指令覆蓋率
    發表于 12-17 07:27

    關于SpinalHDL中的驗證覆蓋率收集簡單說明

    通過指定withCoverage選項來開啟覆蓋率收集。在《SpinalHDL—基于Scala的測試框架》文中我們拍完仿真測試用例在相應目
    發表于 06-24 15:56

    基于linux系統的VCS使用及仿真說明

    代碼使用為例,進行VCS使用說明。簡要說明下該串口功能。該串口工作在波特為115200,無奇偶檢驗位。位停止位。當使能信號有效,就將8位數據發送出去,輸出結束
    發表于 07-18 16:18

    重點厘清覆蓋率相關的概念以及在芯片開發流程中跟覆蓋率相關的事項

    代碼覆蓋率種軟件和硬件開發都通用的手段,通過在仿真程序運行的過程中記錄統計數據,來說明代碼中哪些語句被分別執行了多少次。通過對
    發表于 09-14 11:57

    Verilog代碼覆蓋率檢查

    Verilog代碼覆蓋率檢查是檢查驗證工作是否完全的重要方法,代碼覆蓋率(codecoverge)可以指示Verilog代碼描述的功能有多少
    發表于 04-29 12:35 ?8490次閱讀

    嵌入式代碼覆蓋率統計方法和經驗

    )是軟件測試中的種度量,描述程式中源代碼被測試的比例和程度,所得比例稱為代碼覆蓋率。 ? 在進行代碼測試時,常常使用
    的頭像 發表于 01-06 15:06 ?3222次閱讀
    嵌入式<b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>統計方法和經驗

    統計嵌入式代碼覆蓋率的方法和經驗

    )是軟件測試中的種度量,描述程式中源代碼被測試的比例和程度,所得比例稱為代碼覆蓋率。 在進行代碼測試時,常常使用
    的頭像 發表于 03-29 11:58 ?1998次閱讀
    統計嵌入式<b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>的方法和經驗

    使用VCS兩種仿真flow的基本步驟

    的design,并且還提供了仿真和調試功能來驗證design,這些特性提供了源代碼級debug和仿真結果。支持原生測試平臺、SystemVerilog、驗證規劃、
    的頭像 發表于 05-07 14:20 ?5028次閱讀

    覆蓋率的Verilog代碼的編寫技巧

    設計工程師需要關心的主要有行覆蓋率(Block),條件覆蓋率(Expression),翻轉覆蓋率(Toggle),狀態機覆蓋率。本文從ASIC設計的角度上來討論,如何寫出高
    的頭像 發表于 05-26 17:30 ?4342次閱讀

    淺談VCS的兩種仿真flow

    幾乎所有的芯片設計、芯片驗證工程師,每天都在和VCS打交道,但是由于驗證環境的統化管理,般將不同的編譯仿真選項集成在
    的頭像 發表于 01-10 11:20 ?3996次閱讀

    EDA仿真驗證環境中的激勵、檢查和覆蓋率

    下圖是個典型的EDA仿真驗證環境,其中主要的組件就是激勵生成、檢查和覆蓋率收集。
    的頭像 發表于 04-15 10:13 ?1774次閱讀

    代碼覆蓋率記錄

    為確保具體的產品(例如,醫療或航空電子市場)質量合格, 通常需要提供語句覆蓋與判定覆蓋認證證明。對于各種嵌 入式系統,規范要求高度優化的代碼需要實時測試。禁止 代碼插裝和運行時篡
    發表于 11-03 11:02 ?0次下載
    <b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>記錄

    VCS 仿真option 解析

    VCS仿真選項分編譯(compile-time)選項和運行(run-time)選項。編譯選項
    的頭像 發表于 01-06 10:19 ?3196次閱讀
    主站蜘蛛池模板: 午夜爱爱毛片xxxx视频免费看 | 亚洲无吗在线视频 | 天天摸天天插 | 9299yy看片淫黄大片在线 | 国模私拍福利一区二区 | 亚洲资源在线观看 | 青娱乐伊人 | 美女一级毛片毛片在线播放 | 欧美人成在线观看 | 国产自在自线午夜精品视频在 | 色天使在线视频 | 韩国床戏合集三小时hd中字 | 国产色视频网站 | 一区二区不卡免费视频 | 欧美一区二区三区精品 | 天堂资源在线bt种子 | 一本到卡二卡三卡四卡 | 男人不识本网站上遍色站也枉然 | 亚洲欧美日韩国产一区二区三区精品 | 免费亚洲一区 | 狠久久| 四虎影院免费在线 | 视频亚洲一区 | 天天视频国产精品 | 欧美三级 欧美一级 | 一级做a爰片久久毛片美女图片 | 男人你懂的网站 | 都市激情综合 | 丁香婷五月 | 日本黄色片在线观看 | 午夜影院a| 国产美女精品久久久久中文 | 久久综合狠狠综合狠狠 | 免费在线视频播放 | 欧美系列在线观看 | 狠狠五月天 | 日本三级视频 | 激情伦成人综合小说 | 黄色香蕉网站 | 色爱区综合 | 国产看色免费 |