无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

HDLBits (175) — 測(cè)試平臺(tái)1

2022-06-22 15:11 作者:僚機(jī)Wingplane  | 我要投稿

本題鏈接:

https://hdlbits.01xz.net/wiki/Tb/tb1

創(chuàng)建一個(gè) Verilog testbench,它將的輸出 A 和 B 是以下波形:

題目

答案

輸出波形

testbench

testbench 一般結(jié)構(gòu)如下:

其實(shí) testbench 最基本的結(jié)構(gòu)包括信號(hào)聲明、激勵(lì)和模塊例化。

根據(jù)設(shè)計(jì)的復(fù)雜度,需要引入時(shí)鐘和復(fù)位部分。當(dāng)然更為復(fù)雜的設(shè)計(jì),激勵(lì)部分也會(huì)更加復(fù)雜。根據(jù)自己的驗(yàn)證需求,選擇是否需要自校驗(yàn)和停止仿真部分。

當(dāng)然,復(fù)位和時(shí)鐘產(chǎn)生部分,也可以看做激勵(lì),所以它們都可以在一個(gè)語(yǔ)句塊中實(shí)現(xiàn)。也可以拿自校驗(yàn)的結(jié)果,作為結(jié)束仿真的條件。

1)信號(hào)聲明

testbench 模塊聲明時(shí),一般不需要聲明端口。因?yàn)榧?lì)信號(hào)一般都在 testbench 模塊內(nèi)部,沒(méi)有外部信號(hào)。

聲明的變量應(yīng)該能全部對(duì)應(yīng)被測(cè)試模塊的端口。當(dāng)然,變量不一定要與被測(cè)試模塊端口名字一樣。但是被測(cè)試模塊輸入端對(duì)應(yīng)的變量應(yīng)該聲明為 reg 型,如 clk,rstn 等,輸出端對(duì)應(yīng)的變量應(yīng)該聲明為 wire 型,如 dout,dout_en。

2)時(shí)鐘生成

利用取反方法產(chǎn)生時(shí)鐘時(shí),一定要給 clk 寄存器賦初值。

利用參數(shù)的方法去指定時(shí)間延遲時(shí),如果延時(shí)參數(shù)為浮點(diǎn)數(shù),該參數(shù)不要聲明為 parameter 類(lèi)型。

3)復(fù)位生成

復(fù)位邏輯比較簡(jiǎn)單,一般賦初值為 0,再經(jīng)過(guò)一段小延遲后,復(fù)位為 1 即可。

4)激勵(lì)部分

激勵(lì)部分該產(chǎn)生怎樣的輸入信號(hào),是根據(jù)被測(cè)模塊的需要來(lái)設(shè)計(jì)的。

當(dāng)數(shù)據(jù)量相對(duì)較少時(shí),可以利用 Verilog 中的系統(tǒng)任務(wù) $readmemh 來(lái)按行直接讀取 16 進(jìn)制數(shù)據(jù)

5)模塊例化

利用 testbench 開(kāi)始聲明的信號(hào)變量,對(duì)被測(cè)試模塊進(jìn)行例化連接。

6)自校驗(yàn)

如果設(shè)計(jì)比較簡(jiǎn)單,完全可以通過(guò)輸入、輸出信號(hào)的波形來(lái)確定設(shè)計(jì)是否正確,此部分完全可以刪除。如果數(shù)據(jù)很多,有時(shí)候拿肉眼觀察并不能對(duì)設(shè)計(jì)的正確性進(jìn)行一個(gè)有效判定。此時(shí)加入一個(gè)自校驗(yàn)?zāi)K,會(huì)大大增加仿真的效率。

實(shí)例中,我們會(huì)在數(shù)據(jù)輸出使能 dout_en 有效時(shí),對(duì)輸出數(shù)據(jù) dout 與參考數(shù)據(jù) read_temp(激勵(lì)部分產(chǎn)生)做一個(gè)對(duì)比,并將對(duì)比結(jié)果置于信號(hào) err_cnt 中。最后就可以通過(guò)觀察 err_cnt 信號(hào)是否為 0 來(lái)直觀的對(duì)設(shè)計(jì)的正確性進(jìn)行判斷。

7)結(jié)束仿真

如果我們不加入結(jié)束仿真部分,仿真就會(huì)無(wú)限制的運(yùn)行下去,波形太長(zhǎng)有時(shí)候并不方便分析。Verilog 中提供了系統(tǒng)任務(wù) $finish 來(lái)停止仿真。

停止仿真之前,可以將自校驗(yàn)的結(jié)果,通過(guò)系統(tǒng)任務(wù) $display 在終端進(jìn)行顯示。

參考內(nèi)容:

6.6 Verilog 仿真激勵(lì) | 菜鳥(niǎo)教程 (runoob.com):

https://www.runoob.com/w3cnote/verilog-testbench.html


HDLBits (175) — 測(cè)試平臺(tái)1的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
台东县| 宣威市| 日土县| 靖安县| 外汇| 连城县| 马山县| 襄城县| 舟曲县| 钟山县| 韩城市| 富民县| 兴义市| 永兴县| 揭东县| 郴州市| 庆云县| 安乡县| 沁阳市| 栖霞市| 郎溪县| 林甸县| 枣强县| 探索| 石台县| 江达县| 卫辉市| 邳州市| 延吉市| 瓦房店市| 邯郸县| 巴青县| 微山县| 额尔古纳市| 渭南市| 顺义区| 灵川县| 汾西县| 渝中区| 辽阳县| 资源县|