因?yàn)樽罱虑檫€挺多的,有一段時(shí)間沒(méi)有更新了,然后想想還是再積累一下再寫(xiě)新的文章,結(jié)果就一個(gè)月過(guò)去了。。。。所以避免拖延癥繼續(xù)發(fā)作還是寫(xiě)一篇一直想寫(xiě)的文章吧。
最近自己嘗試搭建一個(gè)簡(jiǎn)單的驗(yàn)證平臺(tái),入門(mén)就先從簡(jiǎn)單開(kāi)始!
1 RTL設(shè)計(jì)

RTL就是一個(gè)帶時(shí)序的1bit加法器,然后驗(yàn)證是否功能正確。理論上的正確功能應(yīng)該是輸入數(shù)據(jù)a和數(shù)據(jù)b之后的下個(gè)周期輸出結(jié)果sum等于a+b。
2 UVM驗(yàn)證平臺(tái)建立
將整個(gè)UVM驗(yàn)證平臺(tái)分為4個(gè)部分agent、env、test、tb,逐層遞進(jìn),關(guān)于層次大小結(jié)構(gòu)圖可以看這篇文章,下圖是整個(gè)驗(yàn)證平臺(tái)的hierarchy。
AndyICer,公眾號(hào):Andy的ICer之路路由器的System Verilog驗(yàn)證平臺(tái)

2.1 agent
2.1.1 add_seq_item
首先建立一個(gè)transaction,即建立一個(gè)數(shù)據(jù)包。

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

法二:

2.1.3 add_sequencer
建立一個(gè)sequencer用于與其他模塊通信。

2.1.4 add_driver
driver模塊進(jìn)行給DUT傳輸數(shù)據(jù),reset phase進(jìn)行DUT復(fù)位,main phase進(jìn)行激勵(lì)輸入。

2.1.5 add_monitor
monitor模塊接收DUT發(fā)來(lái)的數(shù)據(jù),并通過(guò)TLM通信發(fā)送給scoreboard。

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

2.2 env
2.2.1 add_scoreboard
建立scoreboard,進(jìn)行硬件結(jié)果和軟件結(jié)果的對(duì)比。

2.2.2 add_reference_model
這里的邏輯比較簡(jiǎn)單,就沒(méi)有使用到reference model了,但是還是保留有這個(gè)模塊。

2.2.3 add_env
env就是把a(bǔ)gent、scoreboard、reference model都build并connect起來(lái)。

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


2.4 Testbench
將硬件DUT和軟件驗(yàn)證環(huán)境聯(lián)系起來(lái),形成一個(gè)完成的測(cè)試平臺(tái)。


3 驗(yàn)證結(jié)果
可以看出驗(yàn)證功能正確,并且通過(guò)對(duì)于driver和monitor時(shí)序的調(diào)整可以控制輸出結(jié)果的時(shí)序,大家也可以嘗試搭建一個(gè)驗(yàn)證平臺(tái),對(duì)于UVM會(huì)有一個(gè)更加直觀的感受。

編輯:lyn
-
加法器
+關(guān)注
關(guān)注
6文章
183瀏覽量
31229 -
UVM
+關(guān)注
關(guān)注
0文章
183瀏覽量
19933
原文標(biāo)題:一個(gè)加法器的UVM驗(yàn)證平臺(tái)設(shè)計(jì)
文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
自寫(xiě)計(jì)算IP思路以及源碼
E203在基于wallace樹(shù)+booth編碼的乘法器優(yōu)化后的跑分結(jié)果
一個(gè)提升蜂鳥(niǎo)E203性能的方法:乘除法器優(yōu)化
E203V2長(zhǎng)周期乘法器核心booth算法解讀
蜂鳥(niǎo)E203乘法器的優(yōu)化——基8的Booth編碼+Wallace樹(shù)
Verilog實(shí)現(xiàn)使用Booth編碼和Wallace樹(shù)的定點(diǎn)補(bǔ)碼乘法器原理
改進(jìn)wallance樹(shù)乘法器優(yōu)化方法
關(guān)于E203內(nèi)核高性能乘法器優(yōu)化(一)
蜂鳥(niǎo)E203內(nèi)核乘法器的優(yōu)化
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)24: UVM 驗(yàn)證包設(shè)計(jì)
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)24: UVM 驗(yàn)證包設(shè)計(jì)
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)23:UVM驗(yàn)證平臺(tái)
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)23:UVM驗(yàn)證平臺(tái)
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)25:UVM驗(yàn)證平臺(tái)

如何搭建一個(gè)加法器的UVM驗(yàn)證平臺(tái)
評(píng)論