驗(yàn)證和testbench
Design?Verication?(DV)是任何產(chǎn)品開(kāi)發(fā)中必不可少的步驟。作為質(zhì)量測(cè)試的一部分,DV確保設(shè)計(jì)的產(chǎn)品是與預(yù)期的產(chǎn)品spec相同。不幸的是,許多設(shè)計(jì)項(xiàng)目沒(méi)有完成徹底的DV導(dǎo)致產(chǎn)品不符合客戶要求期望并需要昂貴車(chē)成本去修改設(shè)計(jì)。
可以和DV結(jié)合使用的質(zhì)量測(cè)試手段:Requirements Management、Configuration Management、FMEA(Function Safety)、Formal(形式驗(yàn)證)、DFT。
testbench是一種驗(yàn)證的手段。首先,任何設(shè)計(jì)都是會(huì)有輸入輸出的。但是在軟環(huán)境中沒(méi)有激勵(lì)輸入,也不會(huì)對(duì)你設(shè)計(jì)的輸出正確性進(jìn)行評(píng)估。那么此時(shí)便有一種,模擬實(shí)際環(huán)境的輸入激勵(lì)和輸出校驗(yàn)的一種“虛擬平臺(tái)”的產(chǎn)生。在這個(gè)平臺(tái)上你可以對(duì)你的設(shè)計(jì)從軟件層面上進(jìn)行分析和校驗(yàn),這個(gè)就是testbench的含義。
testbench里面包含了兩個(gè)東西。1激勵(lì)生成:這個(gè)只用來(lái)生成輸出,他自己沒(méi)有輸入,只是按照一定的規(guī)律去給你的設(shè)計(jì)激勵(lì),激勵(lì)通過(guò)設(shè)計(jì)的輸入端口送到你的設(shè)計(jì)中。其余的事情不管。這里的激勵(lì),都是預(yù)先設(shè)想好的,比如根據(jù)某個(gè)協(xié)議,或者某種通信方式傳遞。2輸出校驗(yàn):校驗(yàn)?zāi)愕妮敵?。他所管的事情就是,接收你設(shè)計(jì)的輸入,然后通過(guò)校驗(yàn)輸出,找出對(duì)應(yīng)的問(wèn)題。
反相器的verilog設(shè)計(jì)和仿真
如大家所知,verilog是模塊化設(shè)計(jì),設(shè)計(jì)的時(shí)候我們首先需要考慮:模塊名、模塊的功能、端口數(shù)量和端口的input/output/inout屬性。然后需要思考:用什么語(yǔ)句和命令實(shí)現(xiàn)該模塊。
對(duì)于反相器,一共只有兩個(gè)端口,分別是輸入和輸出,輸入和輸出之間就是一個(gè)單純的取反關(guān)系,可以用數(shù)據(jù)流描述語(yǔ)句assign對(duì)其進(jìn)行描述,用取反運(yùn)算符“~”對(duì)其進(jìn)行數(shù)據(jù)運(yùn)算。
使用在線綜合器對(duì)其進(jìn)行綜合
使用在線仿真器對(duì)其進(jìn)行仿真
一種反相器testbench示例:
在線仿真器使用的是其內(nèi)置的testbench進(jìn)行仿真: