衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

vcs實(shí)用技巧

rfdqdzdg ? 來(lái)源: 數(shù)字ICer ? 2023-10-25 17:22 ? 次閱讀

本節(jié)主要介紹:
vcs常用選項(xiàng)
vcs仿真流程
vcs代碼覆蓋率
vcs綜合后后仿
圖一樂(lè)技巧

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

617d1ba8-730e-11ee-939d-92fbcf53809c.png

vcs編譯后,生成可執(zhí)行二進(jìn)制文件simv:執(zhí)行./simv進(jìn)行仿真;

vcs常用選項(xiàng)

vcs -help :列出所有vcs編譯運(yùn)行選項(xiàng)

-Mupdate :增量編譯

-R:編譯后立即執(zhí)行仿真

-l:輸出編譯log的文件

-sverilog:支持systemverilog

+v2k:支持2001 verilog標(biāo)準(zhǔn)

-f:指定包含文件列表的filelist

-o:修改可執(zhí)行文件simv文件名

-full64:支持64位模式下的編譯仿真

-fsdb:dump fsdb波形

-ucli:在UCLI命令行模式下執(zhí)行simv

-gui :DVE 界面運(yùn)行

-work library:將設(shè)計(jì)庫(kù)名稱(chēng)映射到接收vlogan輸出的邏輯庫(kù)名稱(chēng)work

-v lib_flie:搜索指定lib庫(kù)文件

-y lib_dir:搜索指定lib庫(kù)路徑

+libext+ext:搜索具有指定文件擴(kuò)展名的文件,如+libext+.v +.sv

+incdir+directory:搜索指定include文件路徑

+define+macro:使用源代碼中`ifdef所定義的宏或者define源代碼中的宏

-parameters filename:將filename文件中指定的參數(shù)更改為此時(shí)指定的值

-timescale=1ns/1ns:設(shè)置仿真精度

-debug、debug_all、debug_pp:打開(kāi)debug開(kāi)關(guān)

vcs仿真流程

編寫(xiě)makefie腳本運(yùn)行仿真:

618f3770-730e-11ee-939d-92fbcf53809c.png

makefie

執(zhí)行下面編譯仿真:

makevcs
makesim

1.DVE圖形界面打開(kāi)

在編譯時(shí),使用 +vpdfile+filename 可以更改生成 VPD 文件的文件名,默認(rèn)為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 這個(gè)文件,這個(gè)文件記錄了仿真過(guò)程中所有信號(hào)的波形,

可以使用dve打開(kāi):

dve-vpdsimv.vpd&

619367be-730e-11ee-939d-92fbcf53809c.png

選中所有信號(hào) --> 右鍵Add to Waves --> New Wave View

61aabe82-730e-11ee-939d-92fbcf53809c.png

2.verdi圖形界面打開(kāi)

通常使用VCS生成fsdb格式的波形文件,將其導(dǎo)入另一個(gè)軟件Verdi查看波形,代替DVE進(jìn)行聯(lián)合仿真;

vcs選項(xiàng)加上-fsdb,仿真文件tb.v中添加:

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

仿真完成后執(zhí)行下面命令打開(kāi)verdi:

makeverdi

推薦查看verdi實(shí)用技巧和fsdb實(shí)用技巧

代碼覆蓋率

在一個(gè)芯片驗(yàn)證的工程中,通常以代碼覆蓋率和功能覆蓋率來(lái)體現(xiàn)驗(yàn)證是否完備;

功能覆蓋率就是檢查設(shè)計(jì)的功能是否完善,需要考慮很多不同的情況,是使用SV的重點(diǎn)內(nèi)容。

代碼覆蓋率是檢查代碼是否存在冗余,檢查所有的代碼是否都已經(jīng)執(zhí)行,包括:行,狀態(tài)機(jī),翻轉(zhuǎn),條件,分支覆蓋率等,這里只討論代碼覆蓋率。

VCS在統(tǒng)計(jì)代碼覆蓋率的過(guò)程中,需要在編譯和仿真命令上添加對(duì)應(yīng)的開(kāi)關(guān)選項(xiàng),生成.vdb文件記錄覆蓋率情況。

再使用dve打開(kāi)該文件進(jìn)行查看覆蓋率。

代碼覆蓋率選項(xiàng)

61b288ba-730e-11ee-939d-92fbcf53809c.png

-cm :打開(kāi)對(duì)應(yīng)類(lèi)型覆蓋率,例如 -cm cond+tgl+lin+fsm+path為統(tǒng)計(jì)所有覆蓋率。

-cm_name:統(tǒng)計(jì)覆蓋率文件名字。

-cm_dir:指定生成.vdb文件目錄。

-cm_log+filename.log:記錄仿真過(guò)程中l(wèi)og信息

-cm_nocasedef: 在統(tǒng)計(jì)case語(yǔ)句的條件覆蓋率時(shí),不考慮default條件未達(dá)到的情況。

-cm_hier xxx.cfg:通過(guò).cfg文件選擇要查看覆蓋率的模塊或文件。

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

仿真完成后執(zhí)行下面命令dve -covdir *.vdb &打開(kāi)dve查看覆蓋率:

makedve_cov

代碼覆蓋到的為綠色,沒(méi)有覆蓋到的為紅色:

61bd4a0c-730e-11ee-939d-92fbcf53809c.png

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

可以以文本格式或者網(wǎng)頁(yè)格式顯示覆蓋率;

61cbf75a-730e-11ee-939d-92fbcf53809c.png

或者:

urg-dir*.vdb-reporturgReport

進(jìn)入urgReport目錄,執(zhí)行下面命令打開(kāi)網(wǎng)頁(yè)版,查看覆蓋率報(bào)告

firefox*.html

61d6e28c-730e-11ee-939d-92fbcf53809c.png

綜合后仿真

推薦查看綜合與時(shí)序分析

推薦查看后仿及反標(biāo)

vcs門(mén)級(jí)網(wǎng)表仿真

當(dāng)RTL功能仿真通過(guò)之后,DC工具中進(jìn)行邏輯綜合,在邏輯綜合完成之后,需要對(duì)綜合生成的網(wǎng)表再進(jìn)行仿真驗(yàn)證。

綜合后包含電路的實(shí)際信息,如映射的門(mén)電路信息、寄生參數(shù)、.v的網(wǎng)表、SDF標(biāo)準(zhǔn)延時(shí)信息、SDC約束、工作條件等信息。

后仿選項(xiàng)

后仿不需要的選項(xiàng)

帶時(shí)序的后仿,一定要注意仿真器是否關(guān)閉了notimingcheck和nospecify的選項(xiàng)。

如果有-nospecify,那么SDF中的時(shí)序信息就反標(biāo)不到仿真模型中;

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

后仿添加選項(xiàng)

+neg_tchk:若要使用負(fù)延時(shí)檢查,在編譯后仿時(shí)必須包含+neg_tchk選項(xiàng)。如果省略此選項(xiàng),VCS將所有負(fù)延遲更改為0。

-negdelay:用于SDF文件中有負(fù)延遲,如果省略此選項(xiàng),VCS將所有負(fù)延遲更改為0。

sdf_annotate反標(biāo)

使用$sdf_annotate將SDF文件反標(biāo)到網(wǎng)表中:

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

在tb中加載sdf文件,指定反標(biāo)模塊:

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

修改makefie腳本運(yùn)行仿真:

LIB_NET_FILE指定的是基本的工藝庫(kù)單元,因?yàn)榫W(wǎng)表文件netlist_TOP.v中包括綜合后的由門(mén)電路和觸發(fā)器等例化形成的verilog文件,所以需要基本的工藝庫(kù)單元。

61efe7be-730e-11ee-939d-92fbcf53809c.png

makefile

rtl仿真和netlist仿真結(jié)果對(duì)比:

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

61f7446e-730e-11ee-939d-92fbcf53809c.png

rtl仿真

6201b19c-730e-11ee-939d-92fbcf53809c.png

netlist仿真

圖一樂(lè)技巧

display打印彩色字/背景

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

621b03c2-730e-11ee-939d-92fbcf53809c.png

622ac1c2-730e-11ee-939d-92fbcf53809c.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");

涉及的顏色:

62364402-730e-11ee-939d-92fbcf53809c.png

涉及的顏色

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11345

    瀏覽量

    210395
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1019

    瀏覽量

    83935
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110394
  • VCS
    VCS
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    9647
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4827

    瀏覽量

    69052

原文標(biāo)題:vcs實(shí)用技巧

文章出處:【微信號(hào):數(shù)字芯片設(shè)計(jì)工程師,微信公眾號(hào):數(shù)字芯片設(shè)計(jì)工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    VCS仿真的注意事項(xiàng)

    VCS
    皮特派
    發(fā)布于 :2022年12月07日 11:38:35

    LabVIEW 實(shí)用技巧.

    Labview實(shí)用技巧
    發(fā)表于 06-29 12:38

    vcs-mx和vcs的區(qū)別在哪里?

    vcs-mx是什么?vcs又是什么?vcs-mx和一般的vcs有什么區(qū)別?
    發(fā)表于 06-21 08:05

    什么是VCS

    VCS是編譯型Verilog模擬器,它完全支持OVI標(biāo)準(zhǔn)的Verilog HDL語(yǔ)言、PLI和SDF。VCS具有目前行業(yè)中最高的模擬性能,其出色的內(nèi)存管理能力足以支持千萬(wàn)門(mén)級(jí)的ASIC設(shè)計(jì),而其模擬精度也完全
    發(fā)表于 07-28 16:28 ?1.4w次閱讀

    基于linux系統(tǒng)實(shí)現(xiàn)的vivado調(diào)用VCS仿真教程

    在linux系統(tǒng)上實(shí)現(xiàn)vivado調(diào)用VCS仿真教程 作用:vivado調(diào)用VCS仿真可以加快工程的仿真和調(diào)試,提高效率。 前期準(zhǔn)備:確認(rèn)安裝vivado軟件和VCS軟件 VCS軟件最
    的頭像 發(fā)表于 07-05 03:30 ?1.2w次閱讀
    基于linux系統(tǒng)實(shí)現(xiàn)的vivado調(diào)用<b class='flag-5'>VCS</b>仿真教程

    LabVIEW編程的實(shí)用技巧系列(17)

    LabVIEW編程的實(shí)用技巧系列第十七講視頻教程
    的頭像 發(fā)表于 06-26 03:44 ?2771次閱讀
    LabVIEW編程的<b class='flag-5'>實(shí)用技巧</b>系列(17)

    LabVIEW編程的實(shí)用技巧系列(12)

    LabVIEW編程的實(shí)用技巧系列第十二講視頻教程
    的頭像 發(fā)表于 06-26 00:09 ?2379次閱讀
    LabVIEW編程的<b class='flag-5'>實(shí)用技巧</b>系列(12)

    LabVIEW編程的實(shí)用技巧系列(10)

    LabVIEW編程的實(shí)用技巧系列第十講視頻教程
    的頭像 發(fā)表于 06-26 00:10 ?2486次閱讀
    LabVIEW編程的<b class='flag-5'>實(shí)用技巧</b>系列(10)

    LabVIEW編程的實(shí)用技巧系列(8)

    LabVIEW編程的實(shí)用技巧系列第八講視頻教程
    的頭像 發(fā)表于 06-26 13:44 ?2852次閱讀
    LabVIEW編程的<b class='flag-5'>實(shí)用技巧</b>系列(8)

    LabVIEW編程的實(shí)用技巧系列(5)

    LabVIEW編程的實(shí)用技巧系列第五講視頻教程
    的頭像 發(fā)表于 06-25 12:11 ?2232次閱讀
    LabVIEW編程的<b class='flag-5'>實(shí)用技巧</b>系列(5)

    LabVIEW編程的實(shí)用技巧系列(20)

    LabVIEW編程的實(shí)用技巧系列第二十講視頻教程
    的頭像 發(fā)表于 06-24 02:09 ?2809次閱讀

    EDA仿真:VCS編譯Xilinx仿真步驟

    選擇VCS,再指定庫(kù)文件存放的路徑;如果VCS的環(huán)境變量設(shè)置好了,那么會(huì)自動(dòng)跳出Simulator executable path的路徑的。
    發(fā)表于 03-31 10:21 ?2312次閱讀

    vcs工作環(huán)境

    vcs工作環(huán)境
    發(fā)表于 05-15 09:38 ?0次下載

    VCS實(shí)用技巧分享

    VCS是編譯型verilog仿真器,VCS先將verilog/systemverilog文件轉(zhuǎn)化為C文件,在linux下編譯生成的可執(zhí)行文./simv即可得到仿真結(jié)果。
    的頭像 發(fā)表于 05-30 09:26 ?1467次閱讀
    <b class='flag-5'>VCS</b><b class='flag-5'>實(shí)用技巧</b>分享

    PLC日常應(yīng)用中的實(shí)用技巧

    PLC日常應(yīng)用中的實(shí)用技巧,希望能對(duì)大家在日常使用PLC有所幫助。
    的頭像 發(fā)表于 07-10 14:39 ?583次閱讀
    百家乐官网园sun811 | 百家乐官网平台注册送彩金| 大发888在线开户| 百家乐娱乐求指点呀| 百家乐官网赌博千术| 明升国际网址| 怎么玩百家乐的玩法技巧和规则 | 神人百家乐官网赌博| 修水县| 大发888赢钱| 百家乐新规则| 芝加哥百家乐官网的玩法技巧和规则 | 百家乐怎么对冲打| 百家乐官网赌马| 建德市| 星空棋牌下载| 防伪百家乐筹码币套装| 百家乐技巧和规律| 百家乐官网龙虎扑克牌游戏技巧打| 百家乐官网路单用处| 娱乐城注册送58| 百家乐视频画面| 现金百家乐赌法| 属虎和属猴牛人做生意| 百家乐官网官方游戏下载| 百家乐官网注册就送| 皇家赌场| 全讯网5532888| 百家乐道具扫描| 百家乐视频表演| 打百家乐官网纯打庄的方法| 百家乐官网连线游戏下载| 皇冠在线赌场| 大发888古怪猴子| 全讯网qtqnet好玩| 网上百家乐真的假| 百家乐娱乐城体育| 百家乐官网bp| 鑫鼎百家乐官网娱乐城| 百家乐官网庄闲机率分析| 太仆寺旗|