基于C++TCL PLI聯(lián)合仿真下的芯片驗(yàn)證方法研究
0 引 言
當(dāng)今社會,芯片技術(shù)與人們的生活密切相關(guān),在各種電子產(chǎn)品中都有芯片的身影,而且,它們往往是電子產(chǎn)品關(guān)鍵的核心技術(shù)。制造芯片的流程非常復(fù)雜而且資源投入巨大,保證芯片的設(shè)計(jì)質(zhì)量非常重要。驗(yàn)證工作是芯片制造過程中及其關(guān)鍵的一個環(huán)節(jié),無缺陷的芯片不是設(shè)計(jì)出來的,而是驗(yàn)證出來的,驗(yàn)證過程是否準(zhǔn)確與完備,在一定程度上決定了一個芯片的命運(yùn)。
目前在百萬門級以上的ASIC,IP,SoC設(shè)計(jì)時代,驗(yàn)證約消耗整個設(shè)計(jì)工作的70%,需要專職的驗(yàn)證團(tuán)隊(duì),而且驗(yàn)證團(tuán)隊(duì)人數(shù)通常是設(shè)計(jì)團(tuán)隊(duì)的1.5~2倍。隨著設(shè)計(jì)規(guī)模的擴(kuò)大,芯片驗(yàn)證的重要性達(dá)到了一個新的高度,但對驗(yàn)證方法也提出了更多的要求,怎樣搭建高效穩(wěn)定的驗(yàn)證模型成為目前研究的熱點(diǎn)。本文重點(diǎn)介紹如何搭建一種分層次的驗(yàn)證模型,以及如何使用這套驗(yàn)證模型進(jìn)行仿真。
1 驗(yàn)證架構(gòu)
驗(yàn)證架構(gòu)通常稱為testbench,如圖1所示,可以把驗(yàn)證架構(gòu)分為激勵源、發(fā)送器、接收器、參考模型和記分牌五個部分。激勵源屬于腳本層,發(fā)送器和接收器屬于時序?qū)樱瑓⒖寄P秃陀浄峙茖儆谲浖印?/p>
激勵源 仿真的數(shù)據(jù)在激勵源中生成,它是一個TCL腳本語言解釋器,激勵代碼采用TCL解釋性腳本語言編寫,激勵生成之后會放到發(fā)送端共享緩存區(qū)中,這個過程在設(shè)計(jì)代碼開始仿真之前。
發(fā)送器 當(dāng)仿真開始后發(fā)送器會根據(jù)設(shè)計(jì)條件把數(shù)據(jù)從發(fā)送端共享緩存區(qū)中取出來,傳遞到設(shè)計(jì)模塊和參考模型中,發(fā)送器由Verilog代碼編寫實(shí)現(xiàn),需要設(shè)計(jì)自己的PLI函數(shù)用來作為與發(fā)送端共享緩存區(qū)傳遞數(shù)據(jù)的接口。
接收器 接收器用來采集設(shè)計(jì)模塊處理后的數(shù)據(jù),并把數(shù)據(jù)放到接收端共享緩存區(qū)中,用于記分牌讀取數(shù)據(jù),接收器由Verilog代碼編寫實(shí)現(xiàn),需要設(shè)計(jì)自己的PLI函數(shù)用來作為和接收端共享緩存區(qū)傳遞數(shù)據(jù)的接口。
參考模型分析激勵源的數(shù)據(jù)并產(chǎn)生和設(shè)計(jì)模塊用來校驗(yàn)結(jié)果,由于驗(yàn)證人員和設(shè)計(jì)人員的理解思路不同,參考模型的功能和設(shè)計(jì)模塊的功能也不同,但隨著驗(yàn)證過程的推進(jìn),兩者應(yīng)該收斂于需求規(guī)格書,參考模型基于C++語言實(shí)現(xiàn)。記分牌記分牌從接收端共享緩存區(qū)取出數(shù)據(jù)和參考模型的分析結(jié)果并進(jìn)行比較,把每次比較的結(jié)果記錄下來,以便驗(yàn)證人員定位問題,記分牌基于C++語言實(shí)現(xiàn)。
評論