串行外圍接口SPI功能模塊的設(shè)計
3.3 電路實現(xiàn)
為了保證RTL代碼的正確性,對IP的功能進行全面的仿真驗證。仿真包括RTL級和門級仿真驗證。RTL級仿真是將代碼文件調(diào)入硬件描述語言的仿真軟件進行功能仿真,門級仿真包括布局布線前和布局布線后仿真。布局布線后仿真,獲得精確的時延參數(shù)。將RTL級代碼轉(zhuǎn)換成門級網(wǎng)表,0.13um工藝標(biāo)準(zhǔn)單元庫。
在傳統(tǒng)的設(shè)計流程中進行功能驗證,首先需要通過寫測試矢量的方式給需要進行功能測試的模塊加激勵,然后通過觀察模塊的輸出結(jié)果,判斷模塊的功能是否正確。但是在寫測試矢量時,測試工程師是在自己對模塊功能理解的基礎(chǔ)上進行的。這樣就存在一個問題,測試矢量對模塊的激勵有可能是不完備的,還有可能是錯誤的,但測試矢量的激勵并沒有使錯誤體現(xiàn)出來;也有可能模塊的功能是正確的,誤報錯誤使驗證過程變得非常低效。為避免以上問題,對本設(shè)計模塊的功能驗證中,采用系統(tǒng)級驗證環(huán)境。該環(huán)境由IP總線、驅(qū)動器、監(jiān)視器、外部模塊和協(xié)調(diào)它們工作的腳本組成。組成系統(tǒng)的各模塊可以按需要加人環(huán)境。每次驗證過程就是相應(yīng)的激勵作用于環(huán)境的過程。驗證結(jié)果由環(huán)境產(chǎn)生、檢驗和輸出。以保證測試矢量的完備性和正確性。
該驗證環(huán)境在LINUX操作系統(tǒng)下,仿真器采用Cadence公司的Nc—verilog,支持C/C++、Verilog和VHDL協(xié)同仿真,可以直接把SPI模塊掛在驗證環(huán)境中,通過Verilog的$readmemh任務(wù)讀入軟件激勵進行驗證。
在系統(tǒng)時鐘為36MHz的情況下,圖5(a)給出了CPOL=0,CPHA=1時,發(fā)送6位數(shù)據(jù)的仿真結(jié)果。圖5(b)給出了在CPOL=0,CPHA=0的情況下,接收6位數(shù)據(jù)的仿真結(jié)果。
圖5 仿真結(jié)果
這兩個仿真結(jié)果說明本設(shè)計完全支持4種SPI傳輸協(xié)議,而且能夠以最大的速率無縫傳輸數(shù)據(jù)。
4 結(jié)束語
本設(shè)計的SPI可作為IP核嵌入監(jiān)控系統(tǒng)SOC芯片中。芯片通過流片驗證,各項指標(biāo)已達(dá)到了原設(shè)計的要求,通過板級測試,芯片中SPI能支持4種傳輸協(xié)議,工作的最高頻率可達(dá)18M bps,在一秒鐘內(nèi)能夠抓圖或者回顯l5幀圖像,達(dá)到業(yè)內(nèi)較高水平。本設(shè)計中的不足之處是沒有做數(shù)據(jù)校驗,隨著市場需求的提高,可在設(shè)計中增加CRC校驗以增加數(shù)據(jù)的正確性,提高系統(tǒng)效率。
評論