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

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

3天內不再提示

如何搭建一個加法器的UVM驗證平臺

電子工程師 ? 來源:CSDN技術社區(qū) ? 作者:Andy_ICer ? 2021-04-15 14:10 ? 次閱讀

因為最近事情還挺多的,有一段時間沒有更新了,然后想想還是再積累一下再寫新的文章,結果就一個月過去了。。。。所以避免拖延癥繼續(xù)發(fā)作還是寫一篇一直想寫的文章吧。

最近自己嘗試搭建一個簡單的驗證平臺,入門就先從簡單開始!

1 RTL設計

a349cdea-9dac-11eb-8b86-12bb97331649.png

RTL就是一個帶時序的1bit加法器,然后驗證是否功能正確。理論上的正確功能應該是輸入數據a和數據b之后的下個周期輸出結果sum等于a+b。

2 UVM驗證平臺建立

將整個UVM驗證平臺分為4個部分agent、env、test、tb,逐層遞進,關于層次大小結構圖可以看這篇文章,下圖是整個驗證平臺的hierarchy。

AndyICer,公眾號:Andy的ICer之路路由器的System Verilog驗證平臺

a365804e-9dac-11eb-8b86-12bb97331649.png

2.1 agent

2.1.1 add_seq_item

首先建立一個transaction,即建立一個數據包。

a3c01dc4-9dac-11eb-8b86-12bb97331649.png

2.1.2 add_seq

建立一個sequence,用來發(fā)送transaction。發(fā)送transaction的方式有兩種,一種是用start_item()和finish_item(),另外一種是用`uvm_do()的宏。但是兩種方法的原理是一樣的。

法一:

a3e61088-9dac-11eb-8b86-12bb97331649.png

法二:

a43d3ee4-9dac-11eb-8b86-12bb97331649.png

2.1.3 add_sequencer

建立一個sequencer用于與其他模塊通信

a47c69de-9dac-11eb-8b86-12bb97331649.png

2.1.4 add_driver

driver模塊進行給DUT傳輸數據,reset phase進行DUT復位,main phase進行激勵輸入。

a4a39c34-9dac-11eb-8b86-12bb97331649.png

2.1.5 add_monitor

monitor模塊接收DUT發(fā)來的數據,并通過TLM通信發(fā)送給scoreboard。

a4cc8b76-9dac-11eb-8b86-12bb97331649.png

2.1.6 add_if

定義一個Interface,里面包含有兩個clocking block,定義了driver和monitor接口的輸入輸出方向。

a51c36e4-9dac-11eb-8b86-12bb97331649.png

2.2 env

2.2.1 add_scoreboard

建立scoreboard,進行硬件結果和軟件結果的對比。

a55c977a-9dac-11eb-8b86-12bb97331649.png

2.2.2 add_reference_model

這里的邏輯比較簡單,就沒有使用到reference model了,但是還是保留有這個模塊。

a59e980a-9dac-11eb-8b86-12bb97331649.png

2.2.3 add_env

env就是把agent、scoreboard、reference model都build并connect起來。

a5c67cc6-9dac-11eb-8b86-12bb97331649.png

2.3 test

test是驗證環(huán)境的頂層,頂層中將env建立好并將configure也建立好,在頂層中進行設置。

a602a980-9dac-11eb-8b86-12bb97331649.png

a65e3516-9dac-11eb-8b86-12bb97331649.png

2.4 Testbench

將硬件DUT和軟件驗證環(huán)境聯(lián)系起來,形成一個完成的測試平臺。

a6e00622-9dac-11eb-8b86-12bb97331649.png

a72d59e0-9dac-11eb-8b86-12bb97331649.png

3 驗證結果

可以看出驗證功能正確,并且通過對于driver和monitor時序的調整可以控制輸出結果的時序,大家也可以嘗試搭建一個驗證平臺,對于UVM會有一個更加直觀的感受。

a74f997e-9dac-11eb-8b86-12bb97331649.png

編輯:lyn

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 加法器
    +關注

    關注

    6

    文章

    183

    瀏覽量

    30046
  • UVM
    UVM
    +關注

    關注

    0

    文章

    181

    瀏覽量

    19114

原文標題:一個加法器的UVM驗證平臺設計

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    想用同相加法器實現(xiàn)-1.4v到0變?yōu)?到2.5v左右的輸出,請問用什么運放比較好?

    我想用同相加法器實現(xiàn)-1.4v到0變?yōu)?到2.5v左右的輸出,請問用什么運放比較好。呵呵,后面接跟隨器再接ADC
    發(fā)表于 09-25 06:48

    用opa2228制作了同向加法器,可輸出出現(xiàn)了震蕩怎么解決?

    請問下,我用opa2228制作了同向加法器,可輸出出現(xiàn)了震蕩(其中正向輸入的兩信號分別是峰峰值為1.36V頻率4kHZ的正弦波,和
    發(fā)表于 09-20 06:58

    LM258反向加法器輸出信號出現(xiàn)斷點怎么解決?

    LM258反向加法器輸出信號出現(xiàn)斷點的問題,求各位老師解答 電路圖如下: 采用正負5V供電 輸入輸出如下: 上面是輸出,下面是輸入。輸入兩樣的正弦信號,輸出信號出現(xiàn)斷點是怎么回事呢? 發(fā)現(xiàn)輸入大信號出現(xiàn)上述現(xiàn)象,小信號
    發(fā)表于 09-20 06:49

    實現(xiàn)兩頻率正弦波相加的加法器的芯片選取有什么特殊要求嗎?opa2320可以嗎?

    實現(xiàn)兩頻率正弦波相加的加法器的芯片選取有什么特殊要求嗎?opa2320可以嗎?
    發(fā)表于 09-11 08:30

    用OPA454做了簡單的加法器電路,電壓有明顯降低是怎么回事?

    小弟最近碰到問題,我用OPA454做了簡單的加法器電路:運放反相端接3V電壓源和
    發(fā)表于 08-30 07:00

    加法器是時序邏輯電路嗎

    意味著,對于給定的輸入,組合邏輯電路的輸出是確定且立即的,沒有時間延遲(除了傳播延遲)。加法器就是這樣種電路,它將兩或多個二進制數相加,并立即產生和的結果,不需要考慮之前的狀態(tài)或時間信息。 相比之下,時序邏輯
    的頭像 發(fā)表于 08-28 11:05 ?293次閱讀

    用單電源運放實現(xiàn)加法器混音左右聲道,輸出經功放后有較明顯沙沙聲,怎么解決?

    左右聲道經過加法器混音的原理示意圖如下: 運放選擇的是LME49726,5V電源是從DCDC 18V經過78M05后得到的,然后從這個5V經過1117-2.5得到2.5V電源。 問題:經過這個
    發(fā)表于 08-28 06:13

    請問全差分運算放大器能像般運算放大器樣設計加法器嗎?

    全差分運算放大器能像般運算放大器樣設計加法器嗎?
    發(fā)表于 08-09 06:26

    GS8522加法器電路迷之短路

    嘗試只焊第級的運放和周圍電阻,現(xiàn)象相同。電路仿真使用OPA2140代替GS8522時仿真測試結果正常。 對此我不明白的是,此電路的功能為加法器,第級由兩電壓跟隨器組成(使用芯片G
    發(fā)表于 07-05 16:39

    請問增益為1的加法器有哪些?

    增益為1的加法器指的是輸出信號的幅度與輸入信號幅度相等的加法器。這類加法器在模擬電路設計中非常重要,因為它們在執(zhí)行加法運算的同時,不會改變信號的幅度。
    的頭像 發(fā)表于 05-23 15:10 ?924次閱讀

    串行加法器和并行加法器的區(qū)別?

    串行加法器和并行加法器是兩種基本的數字電路設計,用于執(zhí)行二進制數的加法運算。它們在設計哲學、性能特點以及應用場景上有著明顯的區(qū)別。
    的頭像 發(fā)表于 05-23 15:06 ?1768次閱讀

    加法器的原理是什么 加法器有什么作用

    加法器是數字電路中的基本組件之,用于執(zhí)行數值的加法運算。加法器的基本原理和作用可以從以下幾個方面進行詳細闡述。
    的頭像 發(fā)表于 05-23 15:01 ?2043次閱讀
    <b class='flag-5'>加法器</b>的原理是什么 <b class='flag-5'>加法器</b>有什么作用

    同相加法器和反相加法器的區(qū)別是什么

    同相加法器和反相加法器是運算放大器在模擬電路設計中常用的兩種基本電路結構,它們在信號處理方面有著不同的特性和應用場景。
    的頭像 發(fā)表于 05-23 14:35 ?1968次閱讀

    加法器ICL7660M/TR芯片發(fā)熱問題?

    沒有焊反,另外拿新芯片單獨在8腳和3腳加5V和GND檢測,不發(fā)熱,重新拿這個新芯片焊接上去后,在8腳和3腳加5V和GND檢測,芯片再次發(fā)熱冒煙,而原芯片卸下后同方法測試不發(fā)熱。好像問題出現(xiàn)在我畫的板子上,求助各位伙伴指點,問題在哪? !
    發(fā)表于 05-06 16:32

    如何設計16比特的減法器呢?

    減法電路是基本集成運放電路的種,算術運算電路主要包括數字**加法器電路、數字減法器電路、數字乘法器電路和數字除法器電路。
    的頭像 發(fā)表于 02-19 10:00 ?743次閱讀
    如何設計<b class='flag-5'>一</b><b class='flag-5'>個</b>16比特的減<b class='flag-5'>法器</b>呢?