一種數(shù)?;旌蟂oC設(shè)計協(xié)同仿真的驗證方法]
摘要:數(shù)?;旌闲盘柗抡嬉呀?jīng)成為SoC芯片驗證的重要環(huán)節(jié)。文章以一款固網(wǎng)短信電話專用SoC芯片為例,介紹一種使用Synopsys公司的NanoSim-VCS協(xié)同仿真環(huán)境進(jìn)行仿真的驗證方法。并給出了驗斑點結(jié)果。 關(guān)鍵詞:SoC 數(shù)模混合 協(xié)同仿真 固網(wǎng)短信電話 FSK 隨著微電子工藝制造技術(shù)和電子設(shè)計自動化技術(shù)的飛速發(fā)展,集成電路已經(jīng)進(jìn)入系統(tǒng)芯片即SoC(System on Chip)時代。SoC芯片設(shè)計將數(shù)字電路、模擬電路、微處理器等集成在單一的硅芯片上,構(gòu)成一個系統(tǒng),實現(xiàn)復(fù)雜的功能。如何評估和驗證數(shù)模混合SoC芯片,成為當(dāng)今芯片設(shè)計者一個新的挑戰(zhàn)。 1 固網(wǎng)短信電話專用SoC芯片介紹 固網(wǎng)短信是中國電信開通的一項通過固定電話網(wǎng)收發(fā)短信息的業(yè)務(wù),由中國電信、上海貝爾、步步高、中興通訊等公司聯(lián)合進(jìn)行固網(wǎng)信服務(wù)平臺的建設(shè)。目前已在許多地區(qū)開通了這項業(yè)務(wù)。 固網(wǎng)短信電話專用SoC芯片是固網(wǎng)信息電話終端專用的微處理器芯片(以下簡稱為SMS芯片)。其內(nèi)嵌了一個8位的微控制器(MCU,MicroController Unit),并且集成了電話主叫識別信息傳送模塊(CID,Calling Identity Delivery)和雙音多頻編碼模塊(DTMF,Dual Tone Multi Frequency),使固網(wǎng)電話支持在固網(wǎng)短信服務(wù)平臺上接收和發(fā)送短消息。 SMS芯片的主要功能是: ①CID模塊識別并解調(diào)電話線上的FSK調(diào)制信號;A/D接口模塊將解調(diào)后的模擬信號轉(zhuǎn)換為數(shù)字信號傳遞給MCU,MCU對該數(shù)字信號進(jìn)行一定的處理后在LCD上顯示信息。 ②MCU將鍵盤輸入的信息轉(zhuǎn)換為數(shù)字信號,經(jīng)A/D接口模塊傳遞給DTMF模塊,實現(xiàn)撥號功能。 SMS芯片的設(shè)計主要分為兩部分,數(shù)字部分和模擬部分并行實現(xiàn)。數(shù)字部分采用基于標(biāo)準(zhǔn)單元的ASIC設(shè)計流程,其中RAM為IP模塊;模擬部分采用全定制設(shè)計流程,最后將兩部分整合到一塊芯片上,構(gòu)成SoC芯片。芯片的功能和時序驗證是設(shè)計過程中的重要環(huán)節(jié)。為了實現(xiàn)芯片產(chǎn)業(yè)化,縮短設(shè)計周期,必須對數(shù)字部分、模擬部分和數(shù)模信號接口部分進(jìn)行嚴(yán)格的功能和時序驗證。 SMS芯片數(shù)?;旌显O(shè)計的特點使其無法簡單地使用一種仿真器進(jìn)行驗證,但考慮到其數(shù)模接口信號是數(shù)字的(如圖1),我們可以選擇以下幾種驗證方案。 (1)傳統(tǒng)的驗證方法 數(shù)字部分采用級仿真,通過反復(fù)調(diào)試,盡可能發(fā)現(xiàn)問題;模擬部分采用晶體管級仿真,以驗證其正確性,如果模擬部分規(guī)模較大可以自底向上進(jìn)行驗證。這種驗證方法無法對整個系統(tǒng)進(jìn)行同步仿真,因此需要分別對數(shù)字部分和模擬部分的接口引腳時序進(jìn)行嚴(yán)格的定義和驗證。 (2)僅使用數(shù)字仿真器的驗證方法 首先對芯片的模擬部分進(jìn)行晶體管級仿真,然后根據(jù)仿真結(jié)構(gòu)對模擬部分輸出的數(shù)字信號時序進(jìn)行Verilog行為級建模,再將該模型和數(shù)字部分一起用數(shù)字仿真器驗證。這種方法仿真速度比較快,但模擬部分每進(jìn)行一次修改,設(shè)計者就得重新對其進(jìn)行仿真和建模;而這樣的修改對于模擬部分又是比較頻繁的,因此這種驗證方法需要花費大量人力進(jìn)行建模。 整個系統(tǒng)不論數(shù)字部分還是模擬部分都采用晶體管級仿真,這種驗證方法不需要設(shè)計者進(jìn)行任何建模,相對比較簡單;但其用于仿真的時間比較長,特別是當(dāng)芯片規(guī)模達(dá)到一定程度時,仿真需要花費的時間往往是設(shè)計者所不能接受的。 (4)數(shù)字仿真器與模擬仿真器協(xié)同仿真的驗證方法 為了充分利用數(shù)字仿真器和模擬仿真器各自的優(yōu)點,解決混合信號同步仿真問題,許多EDA供應(yīng)商提供一種協(xié)同仿真的方法,即通過一個“平臺”將一個模擬仿真器和一個數(shù)字仿真器連接起來。數(shù)字部分用數(shù)字仿真器仿真,模擬部分用模擬仿真器仿真,數(shù)字部分和模擬部分的接口信號通過“平臺”實現(xiàn)同步。這種驗證方法提高了仿真效率,實現(xiàn)了對整個系統(tǒng)的仿真。不過雖然“平臺”可以提供兩個仿真器間的同步功能,但卻忽視了混合信號建模的主要問題,使設(shè)計者必須人工地在兩個仿真器間并行混合信號模型的劃分。 SMS芯片中數(shù)字電路MCU不適合也不需要采用晶體管級仿真。同時,由于數(shù)字部分和模擬部分之間存在數(shù)據(jù)的傳送和接收,這就使數(shù)模接口部分的功能和時序驗證顯得尤為重要。因此,我們將采用數(shù)?;旌蠀f(xié)同仿真技術(shù)對SMS芯片進(jìn)行驗證,數(shù)字部分采用門級仿真,模擬部分采用晶體管級仿真,通過“平臺”實現(xiàn)對整個系統(tǒng)的同步仿真,以驗證其數(shù)字部分和模擬部分接口的功能和時序。 在我們所采用的仿真環(huán)境中,數(shù)字仿真器使用Synopsys公司的VCS,模擬仿真器使用該公司的NanoSim,VCS-ACE則是連接這二者的“平臺”。這三者之間的關(guān)系如圖2所示。 (1)VCS VCS是編譯型Verilog模擬器,完全支持OVI標(biāo)準(zhǔn)的Verilog HDL語言、PLI和SDF。VCS具有目前行業(yè)中最高的模擬性能,支持千萬門級的ASIC設(shè)計,而其模擬精度也完全滿足深亞微米ASIC Sign-Off的要求。VCS是Synopsys完整的驗證解決方案核心。 (2)NanoSim NanoSim集成了業(yè)界最優(yōu)秀的電路仿真技術(shù),是一種具有高速、高處理能力的新一代深亞微米晶體管級電路仿真器;支持Verilog-A和VCS仿真器的接口,能夠進(jìn)行高級電路的仿真,其中包括存儲器仿真和混合信號的仿真。 4 驗證過程與結(jié)果 在進(jìn)行SMS芯片整體系統(tǒng)仿真之前,首先要分別對芯片的數(shù)字部分和模擬部分單獨進(jìn)行仿真,以確保這兩部分功能和時序的正確性。然后將這兩部分合并,驗證其接口的同步性。 下面以驗證FSK調(diào)制信號的接收功能為例,構(gòu)建圖3所示的驗證平臺。 (1)FSK調(diào)制器建模 為了模擬電話線(TIP和RING,電話的接入線)上的FSK調(diào)制信號,可以在CID模擬的外圍添加一個FSK調(diào)制器。用Verilog-A語言對其進(jìn)行行為級建模,提供CID模塊的輸入信號。 該FSK調(diào)制器要求產(chǎn)生相位連續(xù)的FSK信號,即在碼元轉(zhuǎn)換時刻的相位是連接的。其調(diào)制信號可以寫作: 式中:A是載波的振幅,fc是未調(diào)載波的頻率,θc表示載波的初始相位,Δfd為峰值偏頻,m(t)為歸一化基帶信號。 又由于TIP與RING上的信號相位相反,取電壓偏置為2.5V,初始相位為0,所以FSK調(diào)制器的行為級模型為: ‘ihclude “std.va” ‘include “const.va” module fsk_modu(in,TIP,RING); inout in; inout TIP,RING; electrical in,TIP,RING; parameter real Vbias=2.5; parameter real A=0.28; parameter real fc=1700; parameter real delta_fd=500; real time; analog begin time=$realtime(); V(TIP)<+(Vbias+A*cos(2*3.14*fc*time+2*3.14*delta_fd*idt ((1-V(in)/2.5),0.0))); V(RING)<+(Vbias+A*cos(2*3.14*fc*time+2*3.14*delta_fd*idt((1-V(in)/2.5),0.0)+3.14)); end endmodule FSK調(diào)制器的仿真波形如圖4所示。 其中in為待調(diào)制碼元信號,a為電話線TIP線信號,b為電話線RING線信號。 在TESTBENCH中需要例比數(shù)字部分和模擬部分,而TESTBENCH是用Verilog語言編寫的,因此需要對用SPICE語言描述的模擬部分進(jìn)行Verilog建模。這種建模相對比較簡單,只需要用Verilog語言給出模擬部分輸入、輸出引腳定義。 (3)模擬部分測試矢量 待調(diào)制信號的測試矢量必須滿足CID模擬與MCU之間的硬件通信協(xié)議,即:每幀數(shù)據(jù)由10位組成,第一位必須為“0”,作為起始位;最后一位必須為“1”,作為結(jié)束位,即0XXXXXXXX1。軟件通信協(xié)議暫不考慮。 考慮到當(dāng)“0”和“1”交替出現(xiàn)時是CID模擬FSK解調(diào)的最壞情況,因此取待調(diào)制信號的測試矢量為0101010101。 (4)數(shù)字部分測試程序 ROM為Verilog語言編寫的行為級程序寄存器模型,通過讀入編譯過的匯編指令文件完成程序的裝載,MCU則從ROM取指令,完成相位的功能。MCU執(zhí)行程序如圖5所示。 (5)驗證的理論結(jié)果 根據(jù)硬件通信協(xié)議,當(dāng)測試矢量為“0101010101”時,有效的數(shù)據(jù)為“10101010”,即十六進(jìn)制數(shù)據(jù)“0AAH”,所以MCU累加器將接收到數(shù)據(jù)“0AAH”。 (6)驗證的實際結(jié)果 驗證結(jié)果如圖6所示。圖6中,in為待調(diào)制信號;R_CLK為FSK數(shù)據(jù)接收時鐘信號,由CID模塊產(chǎn)生,MCU在該時鐘信號的上升沿接收數(shù)據(jù),暫存在FSK數(shù)據(jù)接收寄存器中;R_FDRN為數(shù)據(jù)準(zhǔn)備好信號,由CID產(chǎn)生,根據(jù)匯編程序,MCU查詢到該信號有產(chǎn),則將FSK數(shù)據(jù)接收寄存器中的數(shù)據(jù)寫入累加器acc_[7:0]中。從圖6中可以看出,最后累加器接收到由模擬部分傳遞的數(shù)據(jù)0AAH,這與理論分析的結(jié)果相一致。因此可以得出結(jié)論:SMS芯片F(xiàn)SK數(shù)據(jù)接收的功能和時序符合設(shè)計要求。 5 結(jié)論 隨著系統(tǒng)級芯片(SoC)應(yīng)用的增加,對混合信號仿真的需求也將不斷擴(kuò)大。數(shù)?;旌戏抡嬉呀?jīng)成為當(dāng)今SoC設(shè)計中的重要一環(huán),采用高效的仿真技術(shù)不但能顯著提高設(shè)計質(zhì)量,而且還可以減少產(chǎn)生面市時間。 SMS芯片采用數(shù)?;旌蠀f(xié)同仿真技術(shù)進(jìn)行驗證,充分利用了各個仿真器的優(yōu)點,大大綜合了仿真時間,實現(xiàn)了對整個芯片系統(tǒng)的同步仿真。驗證得到的正確結(jié)果增強(qiáng)了我們投片的信號。不可否認(rèn)數(shù)?;旌蠀f(xié)同仿真技術(shù)是一種高效的仿真技術(shù)。當(dāng)然,這種仿真技術(shù)也存在不足:其一,使用兩種仿真引擎導(dǎo)致設(shè)計成本增加;其二,需要人工進(jìn)行數(shù)模劃分。我們相信在不久的將來會出現(xiàn)更為理想、更為高效的數(shù)?;旌戏抡婕夹g(shù)。 |
|