欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

Verdi查看task內(nèi)部變量

CHANBAEK ? 來(lái)源:數(shù)字IC與好好生活的兩居室 ? 作者:除夕之夜啊 ? 2023-03-26 16:08 ? 次閱讀

任務(wù)(task)可以用來(lái)描述共同的代碼段,并在模塊內(nèi)任意位置被調(diào)用,讓代碼更加的直觀易讀。task 更像一個(gè)過(guò)程,過(guò)程內(nèi)一般按順序執(zhí)行,完成各種邏輯控制。

調(diào)試 testbench 中的 task 時(shí),新手可能會(huì)遇到一些問(wèn)題。典型的問(wèn)題有兩個(gè),一個(gè)是 task 內(nèi)部聲明使用的變量為什么不能在 Verdi 波形中查看,另一個(gè)是 task 輸出端連接的信號(hào)為什么不隨 task 內(nèi)部賦值變量的變化而變化。本節(jié)將對(duì)這兩個(gè)問(wèn)題進(jìn)行講解說(shuō)明。

Verdi 查看 task 內(nèi)部變量

創(chuàng)建一個(gè)簡(jiǎn)單的 task,包含內(nèi)部變量 reg 和 output,如下所示。

//varialbes in task
       task reg_in_task  ;
              output [7:0]       data_test1 ;
              reg [7:0]              data_test2 ;
              begin
                     #100 ;
                     data_test1 = 8'h13 ;
                     data_test2 = 8'h24 ;
                     #100 ;
                     data_test1 = 8'h1a ;
                     data_test2 = 8'h2b ;
              end
       endtask

在 testbench 的 initial 語(yǔ)句中調(diào)用該task,并定義變量 data_test1_t,連接到該 task 輸出端,如下所示。

`timescale 1ns/1ps
module test ;
   ......
       reg [7:0]       data_test1_t ;
       initial begin
              reg_in_task(data_test1_t) ;
       end
endmodule

使用 simv 進(jìn)行仿真,不用添加特殊選項(xiàng),如下所示。

./simv -ucli -i wave_gen.tcl -l sim.log

打開(kāi) Verdi 和 fsdb 波形文件,添加 task 內(nèi)部的變量 data_test1 和輸出端 data_test2 時(shí),會(huì)提示相關(guān)信號(hào)無(wú)法找到。

圖片

為解決上述問(wèn)題,使用 simv 進(jìn)行仿真時(shí)需要添加特殊選項(xiàng) +fsdb+functions,如下所示。

./simv +fsdb+functions -ucli -i wave_gen.tcl -l sim.log

此時(shí)再在 Verdi 中添加 task 內(nèi)部的變量 data_test2 和輸出端 data_test1,其變化過(guò)程會(huì)在波形上顯示,如下所示。

圖片

◆ 小結(jié):VCS 仿真時(shí),需要在 simv 仿真時(shí)添加 fsdb+functions 參數(shù),才可在 Verdi 中打開(kāi) fsdb 波形并查看 task 內(nèi)部變量的變化情況。

TASK 操作全局變量

上述仿真波形中,細(xì)心的讀者可能會(huì)看到,雖然連線信號(hào) data_test1_t 連接的是 task 輸出端,但是 data_test1_t 并不隨 task 輸出端的變化而變化。

圖片

這是因?yàn)?testbench 中的代碼一般是順序執(zhí)行,并沒(méi)有對(duì)應(yīng)的實(shí)際硬件結(jié)構(gòu)。所以 task 輸出端連接的對(duì)應(yīng)信號(hào)不可以理解為連續(xù)賦值,而是理解為一個(gè)返回值。即 task 執(zhí)行完畢時(shí),只返回輸出端連接的信號(hào)一個(gè)最終結(jié)果。所以,data_test1_t 只會(huì)在 task 結(jié)束時(shí) (對(duì)應(yīng)200ns) 被賦值為 8'h1a,并不會(huì)體現(xiàn)中間的變化過(guò)程。

如果一個(gè)信號(hào)在 task 中的變化能夠體現(xiàn)在 task 外部,則該信號(hào)需要定義為全局變量。即信號(hào)需要定義在 task 外部,但是在 task 內(nèi)部中驅(qū)動(dòng)。

上述示例中,刪除輸出端 data_test1,并在 task 中直接對(duì)全局變量 data_test1_t 進(jìn)行賦值驅(qū)動(dòng)。

`timescale 1ns/1ps
module test ;


    reg [7:0]       data_test1_t
    //varialbes in task
    task reg_in_task  ;
        reg [7:0]              data_test2 ;
        begin
           #100 ;
           data_test1_t = 8'h13 ;
           data_test2   = 8'h24 ;
           #100 ;
           data_test1_t = 8'h1a ;
           data_test2   = 8'h2b ;
       end
    endtask


    initial begin
       reg_in_task ;
    end
endmodule

仿真結(jié)果如下。此時(shí)全局變量 data_test1_t 的變化過(guò)程并不局限于 task 內(nèi)部。

圖片

testbench 不用“Think In Hardware”,寫(xiě)法比較自由。在多個(gè) task 中對(duì)同一個(gè)全局變量信號(hào)進(jìn)行多驅(qū)動(dòng)也是沒(méi)有問(wèn)題的,只要時(shí)間軸上分開(kāi)驅(qū)動(dòng)事件的先后順序即可。

上述示例中再增加一個(gè) task ,用以驅(qū)動(dòng)全局信號(hào) data_test1_t,則代碼和仿真結(jié)果如下。這里不再分析。

task task_mult_drive  ;
        begin
            #150 ;
            data_test1_t = 8'hc8 ;
        end
    endtask


    initial begin
        task_mult_drive ;
    end

圖片

小結(jié):task 執(zhí)行完畢時(shí),只返回輸出端連接的信號(hào)一個(gè)最終結(jié)果。如果 task 中信號(hào)的變化過(guò)程能夠在 task 外部實(shí)時(shí)體現(xiàn),則該信號(hào)也需要定義在 task 外部。

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

    關(guān)注

    7

    文章

    2738

    瀏覽量

    47802
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2809

    瀏覽量

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

    關(guān)注

    30

    文章

    4841

    瀏覽量

    69144
  • Verdi
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    8824
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28478
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    高速接口MIPI DPHY配置task函數(shù)

    景芯SoC訓(xùn)練營(yíng)有同學(xué)問(wèn)Verdi如何加載task函數(shù)里面的波形,這里以高速圖像接口MIPI為例,給大家介紹下吧。
    的頭像 發(fā)表于 11-18 16:59 ?1008次閱讀
    高速接口MIPI DPHY配置<b class='flag-5'>task</b>函數(shù)

    請(qǐng)教VCS和verdi怎么聯(lián)合使用

    最近要用到VCS仿真后生成FSDB文件,然后在Verdi中進(jìn)行自動(dòng)偵錯(cuò),請(qǐng)問(wèn)我怎么安裝Verdi這個(gè)軟件以及如何啟動(dòng)license,并且怎么寫(xiě)testbench文件才可以產(chǎn)生FSDB文件。請(qǐng)懂得人給我支支招,我也是剛開(kāi)始學(xué)習(xí)這個(gè)軟件的使用。
    發(fā)表于 01-22 14:53

    Verdi工具怎么安裝?如何破解?

    本文介紹Verdi工具的安裝及破解過(guò)程
    發(fā)表于 06-21 07:15

    VCS+Verdi如何安裝?怎么破解?

    VCS+Verdi如何安裝?怎么破解?
    發(fā)表于 06-21 06:11

    IAR 在線調(diào)試查看各種變量的不同方法

    IAR在線調(diào)試查看各種變量的不同方法
    的頭像 發(fā)表于 03-12 10:00 ?1.4w次閱讀

    如何通過(guò)自動(dòng)化腳本實(shí)現(xiàn)Questasim和Verdi的聯(lián)合仿真

    : 《VERDI_HOME》/share/PLI/MODELSIM/${PLATFORM}。 首先需要把上面的庫(kù)文件路徑添加到系統(tǒng)的環(huán)境變量LD_LIBRARY_PATH 中,如下:
    的頭像 發(fā)表于 06-13 17:00 ?4710次閱讀
    如何通過(guò)自動(dòng)化腳本實(shí)現(xiàn)Questasim和<b class='flag-5'>Verdi</b>的聯(lián)合仿真

    分享《verdi用法小結(jié)》的pdf

    分享Verdi用法小結(jié)的pdf文檔
    的頭像 發(fā)表于 02-18 20:21 ?1289次閱讀
    分享《<b class='flag-5'>verdi</b>用法小結(jié)》的pdf

    全網(wǎng)最實(shí)用的Verdi教程1

    過(guò)程中,常常用來(lái)調(diào)試(debug)一些錯(cuò)誤的情況。Verdi既可以閱讀調(diào)試代碼,又可以查看波形,包括數(shù)字設(shè)計(jì)的波形和模擬設(shè)計(jì)的波形。
    的頭像 發(fā)表于 05-05 14:49 ?1.7w次閱讀
    全網(wǎng)最實(shí)用的<b class='flag-5'>Verdi</b>教程1

    全網(wǎng)最實(shí)用的Verdi教程2

    過(guò)程中,常常用來(lái)調(diào)試(debug)一些錯(cuò)誤的情況。Verdi既可以閱讀調(diào)試代碼,又可以查看波形,包括數(shù)字設(shè)計(jì)的波形和模擬設(shè)計(jì)的波形。
    的頭像 發(fā)表于 05-05 14:53 ?9198次閱讀
    全網(wǎng)最實(shí)用的<b class='flag-5'>Verdi</b>教程2

    全網(wǎng)最實(shí)用的Verdi教程3

    過(guò)程中,常常用來(lái)調(diào)試(debug)一些錯(cuò)誤的情況。Verdi既可以閱讀調(diào)試代碼,又可以查看波形,包括數(shù)字設(shè)計(jì)的波形和模擬設(shè)計(jì)的波形。
    的頭像 發(fā)表于 05-05 14:53 ?5984次閱讀
    全網(wǎng)最實(shí)用的<b class='flag-5'>Verdi</b>教程3

    如何用vcs+verdi仿真Verilog文件并查看波形呢?

    我們以一個(gè)簡(jiǎn)單的加法器為例,來(lái)看下如何用vcs+verdi仿真Verilog文件并查看波形。
    的頭像 發(fā)表于 05-08 16:00 ?6554次閱讀
    如何用vcs+<b class='flag-5'>verdi</b>仿真Verilog文件并<b class='flag-5'>查看</b>波形呢?

    如何用vcs+verdi仿真Verilog文件

    我們以一個(gè)簡(jiǎn)單的加法器為例,來(lái)看下如何用vcs+verdi仿真Verilog文件并查看波形。 源文件內(nèi)容如下:
    的頭像 發(fā)表于 05-11 17:03 ?2003次閱讀
    如何用vcs+<b class='flag-5'>verdi</b>仿真Verilog文件

    如何用Verdi查看UVM環(huán)境中的變量

    我們常用的debug UVM的方法是通過(guò)打印log實(shí)現(xiàn)。有沒(méi)有辦法像 debug RTL代碼一樣將 UVM 中變量拉到波形上看呢?答案是有的,下面讓我們看看是怎么做到的。
    的頭像 發(fā)表于 06-25 16:01 ?1904次閱讀
    如何用<b class='flag-5'>Verdi</b><b class='flag-5'>查看</b>UVM環(huán)境中的<b class='flag-5'>變量</b>?

    GDB調(diào)試如何進(jìn)行變量查看

    變量查看 變量查看: 最常見(jiàn)的使用便是使用print(可簡(jiǎn)寫(xiě)為p)打印變量內(nèi)容。 以上述程序?yàn)槔?gdb helloworld break
    的頭像 發(fā)表于 09-26 16:17 ?2036次閱讀

    verilog task和function區(qū)別

    verilog中的task和function都是用于實(shí)現(xiàn)模塊中的可重復(fù)的功能,并且可以接收參數(shù)和返回結(jié)果。但是它們?cè)诰帉?xiě)和使用上有一些區(qū)別。下面將詳細(xì)介紹task和function的區(qū)別。 語(yǔ)法結(jié)構(gòu)
    的頭像 發(fā)表于 02-22 15:53 ?1203次閱讀