隨著微電子工藝制造技術和電子設計自動化技術的飛速發展,集成電路已經進入系統芯片即SoC(System on Chip)時代。SoC芯片設計將數字電路、模擬電路、微處理器等集成在單一的硅芯片上,構成一個系統,實現復雜的功能。如何評估和驗證數模混合SoC芯片,成為當今芯片設計者一個新的挑戰。 1 固網短信電話專用SoC芯片介紹 固網短信是中國電信開通的一項通過固定電話網收發短信息的業務,由中國電信、上海貝爾、步步高、中興通訊等公司聯合進行固網信服務平臺的建設。目前已在許多地區開通了這項業務。 固網短信電話專用SoC芯片是固網信息電話終端專用的微處理器芯片(以下簡稱為SMS芯片)。其內嵌了一個8位的微控制器(MCU,MicroController Unit),并且集成了電話主叫識別信息傳送模塊(CID,Calling Identity Delivery)和雙音多頻編碼模塊(DTMF,Dual Tone Multi Frequency),使固網電話支持在固網短信服務平臺上接收和發送短消息。 SMS芯片的結構框圖如圖1所示。 ![]() SMS芯片的主要功能是: ①CID模塊識別并解調電話線上的FSK調制信號;A/D接口模塊將解調后的模擬信號轉換為數字信號傳遞給MCU,MCU對該數字信號進行一定的處理后在LCD上顯示信息。 ②MCU將鍵盤輸入的信息轉換為數字信號,經A/D接口模塊傳遞給DTMF模塊,實現撥號功能。 SMS芯片的設計主要分為兩部分,數字部分和模擬部分并行實現。數字部分采用基于標準單元的ASIC設計流程,其中RAM為IP模塊;模擬部分采用全定制設計流程,最后將兩部分整合到一塊芯片上,構成SoC芯片。芯片的功能和時序驗證是設計過程中的重要環節。為了實現芯片產業化,縮短設計周期,必須對數字部分、模擬部分和數模信號接口部分進行嚴格的功能和時序驗證。 2 SMS芯片驗證方案 SMS芯片數模混合設計的特點使其無法簡單地使用一種仿真器進行驗證,但考慮到其數模接口信號是數字的(如圖1),我們可以選擇以下幾種驗證方案。 (1)傳統的驗證方法 數字部分采用級仿真,通過反復調試,盡可能發現問題;模擬部分采用晶體管級仿真,以驗證其正確性,如果模擬部分規模較大可以自底向上進行驗證。這種驗證方法無法對整個系統進行同步仿真,因此需要分別對數字部分和模擬部分的接口引腳時序進行嚴格的定義和驗證。 (2)僅使用數字仿真器的驗證方法 首先對芯片的模擬部分進行晶體管級仿真,然后根據仿真結構對模擬部分輸出的數字信號時序進行Verilog行為級建模,再將該模型和數字部分一起用數字仿真器驗證。這種方法仿真速度比較快,但模擬部分每進行一次修改,設計者就得重新對其進行仿真和建模;而這樣的修改對于模擬部分又是比較頻繁的,因此這種驗證方法需要花費大量人力進行建模。 (3)僅使用模擬仿真器的驗證方法 整個系統不論數字部分還是模擬部分都采用晶體管級仿真,這種驗證方法不需要設計者進行任何建模,相對比較簡單;但其用于仿真的時間比較長,特別是當芯片規模達到一定程度時,仿真需要花費的時間往往是設計者所不能接受的。 (4)數字仿真器與模擬仿真器協同仿真的驗證方法 為了充分利用數字仿真器和模擬仿真器各自的優點,解決混合信號同步仿真問題,許多EDA供應商提供一種協同仿真的方法,即通過一個“平臺”將一個模擬仿真器和一個數字仿真器連接起來。數字部分用數字仿真器仿真,模擬部分用模擬仿真器仿真,數字部分和模擬部分的接口信號通過“平臺”實現同步。這種驗證方法提高了仿真效率,實現了對整個系統的仿真。不過雖然“平臺”可以提供兩個仿真器間的同步功能,但卻忽視了混合信號建模的主要問題,使設計者必須人工地在兩個仿真器間并行混合信號模型的劃分。 SMS芯片中數字電路MCU不適合也不需要采用晶體管級仿真。同時,由于數字部分和模擬部分之間存在數據的傳送和接收,這就使數模接口部分的功能和時序驗證顯得尤為重要。因此,我們將采用數模混合協同仿真技術對SMS芯片進行驗證,數字部分采用門級仿真,模擬部分采用晶體管級仿真,通過“平臺”實現對整個系統的同步仿真,以驗證其數字部分和模擬部分接口的功能和時序。 3 仿真環境 在我們所采用的仿真環境中,數字仿真器使用Synopsys公司的VCS,模擬仿真器使用該公司的NanoSim,VCS-ACE則是連接這二者的“平臺”。這三者之間的關系如圖2所示。 ![]() (1)VCS VCS是編譯型Verilog模擬器,完全支持OVI標準的 Verilog HDL語言、PLI和SDF。VCS具有目前行業中最高的模擬性能,支持千萬門級的ASIC設計,而其模擬精度也完全滿足深亞微米ASIC Sign-Off的要求。VCS是Synopsys完整的驗證解決方案核心。 (2)NanoSim NanoSim集成了業界最優秀的電路仿真技術,是一種具有高速、高處理能力的新一代深亞微米晶體管級電路仿真器;支持Verilog-A和VCS仿真器的接口,能夠進行高級電路的仿真,其中包括存儲器仿真和混合信號的仿真。 4 驗證過程與結果 在進行SMS芯片整體系統仿真之前,首先要分別對芯片的數字部分和模擬部分單獨進行仿真,以確保這兩部分功能和時序的正確性。然后將這兩部分合并,驗證其接口的同步性。 下面以驗證FSK調制信號的接收功能為例,構建圖3所示的驗證平臺。 ![]() (1)FSK調制器建模 為了模擬電話線(TIP和RING,電話的接入線)上的FSK調制信號,可以在CID模擬的外圍添加一個FSK調制器。用Verilog-A語言對其進行行為級建模,提供CID模塊的輸入信號。 該FSK調制器要求產生相位連續的FSK信號,即在碼元轉換時刻的相位是連接的。其調制信號可以寫作: ![]() 式中:A是載波的振幅,fc是未調載波的頻率,θc表示載波的初始相位,Δfd為峰值偏頻,m(t)為歸一化基帶信號。 ![]() 又由于TIP與 RING上的信號相位相反,取電壓偏置為2.5V,初始相位為0,所以FSK調制器的行為級模型為: '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調制器的仿真波形如圖4所示。 ![]() 其中in為待調制碼元信號,a為電話線TIP線信號,b為電話線RING線信號。 (2)模擬部分 Verilog建模 在TESTBENCH中需要例比數字部分和模擬部分,而TESTBENCH是用Verilog語言編寫的,因此需要對用SPICE語言描述的模擬部分進行Verilog建模。這種建模相對比較簡單,只需要用Verilog語言給出模擬部分輸入、輸出引腳定義。 (3)模擬部分測試矢量 待調制信號的測試矢量必須滿足CID模擬與MCU之間的硬件通信協議,即:每幀數據由10位組成,第一位必須為“0”,作為起始位;最后一位必須為“1”,作為結束位,即0XXXXXXXX1。軟件通信協議暫不考慮。 考慮到當“0”和“1”交替出現時是CID模擬FSK解調的最壞情況,因此取待調制信號的測試矢量為0101010101。 (4)數字部分測試程序 ROM為Verilog語言編寫的行為級程序寄存器模型,通過讀入編譯過的匯編指令文件完成程序的裝載,MCU則從ROM取指令,完成相位的功能。 MCU執行程序如圖5所示。 ![]() (5)驗證的理論結果 根據硬件通信協議,當測試矢量為“0101010101”時,有效的數據為“10101010”,即十六進制數據“0AAH”,所以MCU累加器將接收到數據“0AAH”。 (6)驗證的實際結果 驗證結果如圖6所示。 ![]() 圖6中,in為待調制信號;R_CLK為FSK數據接收時鐘信號,由CID模塊產生,MCU在該時鐘信號的上升沿接收數據,暫存在 FSK數據接收寄存器中;R_FDRN為數據準備好信號,由CID產生,根據匯編程序,MCU查詢到該信號有產,則將FSK數據接收寄存器中的數據寫入累加器acc_[7:0]中。從圖6中可以看出,最后累加器接收到由模擬部分傳遞的數據0AAH,這與理論分析的結果相一致。因此可以得出結論:SMS芯片 FSK數據接收的功能和時序符合設計要求。 同樣采用數模混合協同仿真技術,我們對SMS芯片的其它功能時序進行了驗證,得到的結論符合設計要求。2002年12月,我們將芯片在CSMC采用0.6μmCMOS工藝進行流處制造,其物理版圖如圖7所示。 ![]() 5 結論 隨著系統級芯片(SoC)應用的增加,對混合信號仿真的需求也將不斷擴大。數模混合仿真已經成為當今SoC設計中的重要一環,采用高效的仿真技術不但能顯著提高設計質量,而且還可以減少產生面市時間。 SMS芯片采用數模混合協同仿真技術進行驗證,充分利用了各個仿真器的優點,大大綜合了仿真時間,實現了對整個芯片系統的同步仿真。驗證得到的正確結果增強了我們投片的信號。不可否認數模混合協同仿真技術是一種高效的仿真技術。當然,這種仿真技術也存在不足:其一,使用兩種仿真引擎導致設計成本增加;其二,需要人工進行數模劃分。我們相信在不久的將來會出現更為理想、更為高效的數模混合仿真技術。 參考文獻 1. 郭梯云 數據傳輸 1998 2. Lai Xinquan.Zhang Yue.Li Yushan.Liu Xuemei Behavioral Modeling of Electronic Circuit Module with Verilog-A Language [會議論文] 2000 3. YDN069-1997 YDN069-1997. 電話主叫識別信息傳送及顯示功能的技術要求和測試方法(暫行規定) 1998 作 者:東南大學 金肖科 凌明 茆邦琴 來 源: 單片機與嵌入式系統應用 2004(1) |