胡小剛,趙琳娜,虞致國*,魏敬和,顧曉峰
(1.江南大學電子工程系輕工過程先進控制教育部重點實驗室,江蘇無錫214122;2.中國電子科技集團公司第五十八研究所,江蘇無錫214035)
?
一種數(shù)模混合SoC的系統(tǒng)級后仿真驗證平臺*
胡小剛1,趙琳娜1,虞致國1*,魏敬和2,顧曉峰1
(1.江南大學電子工程系輕工過程先進控制教育部重點實驗室,江蘇無錫214122;
2.中國電子科技集團公司第五十八研究所,江蘇無錫214035)
摘要:針對傳統(tǒng)大規(guī)模數(shù)模混合SoC后仿真驗證過慢的問題,提出了一種數(shù)?;旌蟂oC系統(tǒng)級后仿真驗證平臺。該平臺充分利用主流EDA工具,在傳統(tǒng)Verilog-cdl后仿真驗證平臺的基礎上,將原本網(wǎng)表中耗時長的模塊用Verilog模型替換,使用Verilog-cdl-Verilog仿真方法,明顯加快了仿真速度。從驗證環(huán)境搭建、系統(tǒng)腳本設計、仿真接口設計3個方面詳述了仿真平臺的設計流程,并通過指令集功能的仿真實現(xiàn),證明了平臺的可行性和可靠性。該驗證平臺有助于縮短大規(guī)模數(shù)?;旌蟂oC的開發(fā)周期。
關鍵詞:數(shù)?;旌舷到y(tǒng)芯片;后仿真; Verilog-cdl-Verilog;驗證平臺
系統(tǒng)芯片(System-on-a-Chip,SoC)集成了微處理器核、模擬/數(shù)字IP(Intellectual Property)核、存儲器及周邊外設,其設計與應用吸引了廣泛的研究[1-3]。然而,影響SoC技術發(fā)展的一個重大挑戰(zhàn)便是驗證[4],包括設計驗證、形式驗證、靜態(tài)時序分析和時序驗證、物理驗證等。其中,設計驗證是最復雜、最靈活和工作量最大的部分,而設計驗證中最具有挑戰(zhàn)性的是系統(tǒng)級后仿真驗證。
后仿真是對電路功能和性能最全面、最真實的仿真,需要考慮寬長比、多晶、源漏電阻、外界溫度及各類寄生參數(shù)等?;赩erilog-cdl的系統(tǒng)級后仿真驗證平臺能滿足規(guī)模較小的芯片的系統(tǒng)級驗證需求,但對于大規(guī)模電路,電路的復雜性會導致后仿真驗證極其耗時,因此需要一個更好的驗證方法來提高設計行為的運行速率和驗證過程的有效性。本文以一款基于通用串行總線(USB)數(shù)據(jù)傳輸?shù)腟oC系統(tǒng)級驗證過程為背景,針對上述后仿真速度過慢的問題,設計了一種Verilog-cdl-Verilog系統(tǒng)級后仿真驗證平臺,明顯改善了仿真速度。
基于USB數(shù)據(jù)傳輸?shù)腟oC系統(tǒng)結構如圖1所示,包括IIC控制器、鎖相環(huán)(PLL)、內部存儲器、FIFO端點緩存、錯誤檢查糾正(ECC)、USB收發(fā)器、串行接口引擎(SIE)、增強型8051微控制器和通用可編程接口(GPIF)等。芯片使用外部24 MHz晶振,通過PLL為內置8051內核及其他數(shù)字外設提供時鐘。芯片通過外部EEPROM加載程序啟動。
圖1 基于USB數(shù)據(jù)傳輸?shù)腟oC結構
SoC的系統(tǒng)級后仿真驗證環(huán)境主要由協(xié)調各方面操作的互相關聯(lián)的模型集合、用于各類仿真的電子設計自動化(EDA)工具、系統(tǒng)腳本和各類仿真程序等4個部分組成。相互關聯(lián)的模型集合包含了待驗證SoC、外部虛擬器件和測試模型等。虛擬器件和測試模型是一些常用的外部接口電路的行為級描述,是具有標準規(guī)范的接口協(xié)議,其工作模式由激勵文件配置。驗證時,外部模塊完成初始化后,與待驗證SoC進行數(shù)據(jù)傳送,類似于提供標準的測試向量[5-9]。本文對這些驗證組件的具體設計方法不再贅述,而是側重于討論如何有效管理多模塊SoC后仿真驗證環(huán)境的目錄結構,以及如何靈活應用如此龐大的模型,從而構建一個靈活高效的系統(tǒng)級后仿真驗證環(huán)境。
2.1驗證環(huán)境工具及設計實現(xiàn)
系統(tǒng)級后仿真驗證環(huán)境的EDA工具采用Ncsim與Hsim。Cadence公司的Ncsim仿真器可用來仿真Verilog語言編寫的數(shù)字邏輯電路,在專用集成電路(ASIC)和SoC設計中有廣泛的應用。Synopsys公司的Hsim是一個滿足深亞微米設計需求的全電路、層次化的晶體管級仿真器,可以準確仿真電路的各種行為,包括電路功能、電壓和電流波形、時序和功率信息、電源網(wǎng)絡的電壓降等。仿真過程中,對于數(shù)字模塊需要設定輸入輸出方向、輸出電平、輸入閾值電壓;對于模擬模塊接口,通過設定不同的仿真參數(shù)來定義驅動強度、電平上升下降沿斜率[10]。在基于USB數(shù)據(jù)傳輸?shù)腟oC驗證中,SoC規(guī)模大且功能復雜,模擬模塊多,包括PLL、低壓差線性穩(wěn)壓器(LDO)、高速數(shù)據(jù)收發(fā)器十幾個隨機存取存儲器(RAM)。因此,用Hsim進行系統(tǒng)級晶體管后仿真時,導致SoC進入功能驗證的過程耗時非常大(如PLL鎖相時間在5 μs左右),程序從存儲器加載到仿真結束要運行很長時間,效率非常低。為提高效率、加快仿真,在傳統(tǒng)的系統(tǒng)級后仿真驗證平臺基礎上,設計了一種Verilog-cdl-Verilog系統(tǒng)級后仿真驗證平臺,將芯片內部耗時長的模塊(如PLL、RAM等)選擇替換為Verilog模塊。
設計的SoC系統(tǒng)級后仿真驗證環(huán)境如圖2所示。TOP層為Verilog語言編寫的Testbench測試平臺,掛上了不同虛擬器件及模塊,如外部數(shù)據(jù)存儲器(EXT PROGRAM ROM)、外部程序存儲器(EXT DATA RAM)、復位模塊(RESET)、晶振(EXT XTAL)、外部移位寄存器(SHIFT REGS)及結果比較器(COMP)等。其中,COMP模塊用于比較輸出響應(extacs.txt)與期望(acscomp.txt),并輸出結果文件(result.txt)。
圖2 SoC系統(tǒng)級后仿真驗證環(huán)境
圖2中Verilog形式的TOP層和其他IP核使用Ncsim仿真,以cdl網(wǎng)表形式存在的模擬電路使用Hsim仿真,芯片內被替換的PLL、RAM模塊使用Ncsim仿真。兩個仿真器產(chǎn)生的信號通過混仿接口傳輸?shù)綌?shù)字電路或模擬電路。
2.2驗證環(huán)境層次結構
在芯片的仿真驗證過程中,當驗證不同的模塊時,構成測試平臺的組件也不盡相同。如果將所有的模塊都放入一個文件夾,容易出錯且不易管理,不利于對整個驗證環(huán)境進行配置。高效的數(shù)據(jù)組織和管理方法能提高驗證平臺的自動化程度,同時也有助于形成清晰的目錄結構。因此,為了解決以上問題,采取如下措施:
(1)將構成平臺的各功能模塊根據(jù)其特性分成如下3類:①芯片電路的代碼及網(wǎng)表部分;②外部虛擬器件,用于輔助驗證的器件模型部分(如外部存儲器等);③系統(tǒng)環(huán)境部分,預先編寫的提供測試激勵的向量集。
(2)分配目錄給各功能模塊接口配置文件以及腳本,這些接口文件中描述了構成測試平臺必要的信息,同時又不涉及模塊具體的設計細節(jié),有利于腳本進行統(tǒng)一的處理。
(3)最后歸一測試程序目錄,有利于控制測試程序的數(shù)量以及完備性。
項目的目錄結構如圖3所示,其中SoC_test為仿真驗證的根目錄。根目錄下有以下4個分支:
(1)Simulation:仿真腳本層,包含每種功能的仿真腳本目錄,如Cosim_op為8051指令的仿真腳本目錄;每個仿真目錄又由兩個子目錄組成,包括Cosim_macros(混合仿真csh腳本及其配置文件)、Cosim_scripts(配置混合仿真驗證平臺的Tcl腳本)。
(2)CDL_src:包含仿真所用的所有cdl網(wǎng)表。
(3)Src:包含驗證平臺的Testbench及仿真所需要的外設,如Mem_env(外部存儲設備和結果比較模塊)、IIC_env(IIC啟動時的EEPROM)等。
(4)Tests:包含所有的測試文件,如指令測試、外設測試等。
圖3 系統(tǒng)級驗證環(huán)境層次結構
2.3系統(tǒng)腳本設計
系統(tǒng)腳本是整個驗證環(huán)境的關鍵,同時也是形成自動化的驗證環(huán)境的基礎。系統(tǒng)腳本會根據(jù)不同的參數(shù)靈活地配置系統(tǒng)測試平臺,從而完成需要的仿真模式和生成結果文件[11]。在系統(tǒng)腳本的設計中,為了提高其可配置性和易維護性,采用分步的設計思想。通常情況下,系統(tǒng)腳本要完成如下任務:
(1)對接口文件、配置文件和測試平臺模板文件進行處理,提取仿真所需的信息并構成測試平臺文件,完成仿真模型的建立。
(2)調用仿真工具、EDA工具,對輸入激勵進行處理,運行仿真并比較仿真輸出和標準輸出文件,最后給出報告。
(3)系統(tǒng)腳本執(zhí)行的過程是[12]:首先針對特定的仿真程序選擇所需的全局定義,這將被定義到執(zhí)行該程序的模塊中;然后對要用的模塊進行編譯,包括芯片的外設模塊、時鐘模塊和Testbench等;再調用所需的仿真工具,如Hsim、Ncsim、VCS等各類仿真軟件;最后定義生成的報告文件所在的路徑和名稱。
2.4數(shù)?;旌戏抡娼涌谠O計
在數(shù)?;旌虾蠓抡骝炞C中,Hsim需通過配置腳本文件才能調用SPICE、cdl等語言的網(wǎng)表文件及給仿真過程中網(wǎng)表形式的模塊提供激勵。另外,Hsim腳本可配置仿真精度、速度、溫度,掃描電壓和電流,打印節(jié)點等。仿真接口設計方法如下:
(1)為使Hsim仿真能與Ncsim仿真混合使用,必須例化芯片cdl網(wǎng)表中電路的端口,將其保存的文件名改為*.cs,并在其模塊里加入下述初始化代碼:
initial $nsda_module()
(2)新建映射文件hdl.var,使cs文件能被調用,并加入下述映射語句:
DEFINE VIEW_MAP(.cs=>cosim)
(3)*.cfg配置文件的使用,可配置仿真參數(shù)和設置cdl網(wǎng)表仿真激勵文件路徑,如:
set_port_prop-logichv 3.3-logiclv 0
(4)為了在cdl網(wǎng)表中引用Verilog時鐘模塊,需在*.cfg配置文件中添加下述聲明:
analog_cell top-ext cs-dir.<cell name>-vmod<verilog module name>..
其中,analog_cell top-ext cs代表生成包含$ nsda_ module()語言的Verilog臨時模塊;<cell name>指用于Hsim仿真的模塊,也即SoC芯片的網(wǎng)表部分; -vmod是全局操作,表示在cdl網(wǎng)表中用Verilog模塊替換原來的cdl部分;<verilog module name>代表所要替換的Verilog模塊。
(5)在芯片cdl網(wǎng)表激勵文件中設置電壓幅值、地、打印節(jié)點電壓/電流、掃描精度等參數(shù):
vvdd vdd 0 3.3v
vgnd gnd 0 0v
.include‘TOP.Cdl’
.print v(*)
.tran 0.1n 10n
(6)do腳本文件的使用,如用于仿真的編譯、描述等:
ncvlog top.v gate.cs
ncelab-loadvpi libvpihsim.so:nsda_vpi_startup-access+ rwc-LIBNAME cosim_lib cosim_lib.top-snapshot cosim_lib.top:cosim
ncsim-loadvpi libvpihsim.so:
nsda_vpi_startup+nsda+”cosim.cfg”
其中:參數(shù)ncvlog表示對Verilog文件編譯;參數(shù)ncelab表示描述設計,并調用配置文件;參數(shù)ncsim表示調用Ncsim與Hsim仿真器對設計進行仿真。
3.1驗證環(huán)境的工作過程
后仿真驗證環(huán)境運行時,Linux終端可在系統(tǒng)仿真時調用系統(tǒng)腳本,將腳本中的選擇項顯示在終端供用戶選擇;還可顯示一些提示信息,如當前正在執(zhí)行的代碼段,運行結果正確或錯誤等;另外還能觸發(fā)一些事件,事件中的內容由用戶定義。
系統(tǒng)腳本完成整個系統(tǒng)的編譯和鏈接后,會把外部程序存儲器掛載到芯片上,并將十六進制程序編碼存儲在存儲器中。在進行數(shù)?;旌戏抡娴倪^程中,芯片內的CPU讀取存儲器中存儲的指令,完成CPU對硬件的各種操作。
3.2仿真結果分析
3.2.1網(wǎng)表模塊替換仿真
為了用Verilog模塊替換網(wǎng)表中的模塊,需要運行兩次腳本。第1次運行腳本生成Verilog形式的數(shù)模接口模塊,生成的LOG文件如圖4所示。
圖4 第1次仿真LOG文件
該LOG文件中,Generating hsim_ top Verilog netlist顯示數(shù)模接口臨時模塊生成; crystal、com_ ag1234_bak指要替換的時鐘模塊,macro_ram3指要替換的內部RAM; 3 instances replaced by Verilog in hsim_top顯示在臨時模塊中內部RAM和時鐘被替換。
第2次運行腳本驗證網(wǎng)表中的模塊是否被正確替換,生成的LOG文件如圖5所示。
圖5 第2次仿真LOG文件
該LOG文件說明仿真進行時,被Veriolg模塊替換的單元正常工作。
為考察模塊替換前后的效果,驗證上述改進的可行性與正確性,對比了改進前單獨的模塊仿真波形與改進后整體的混合仿真波形。圖6為PLL的Verilog模塊單獨用Ncsim仿真得到的波形,圖7為模塊替換后用Ncsim與Hsim混合仿真得到的波形。對比發(fā)現(xiàn),兩個波形相同,說明Verilog模塊產(chǎn)生的時鐘波形被正確輸入到Hsim模擬仿真接口中,并驗證了網(wǎng)表中的PLL模塊被正確替換。
圖6 PLL單獨用Ncsim仿真得到的時鐘波形
圖7 模塊替換后用Ncsim與Hsim混合仿真得到的時鐘波形
3.2.2基于驗證平臺的系統(tǒng)后仿真
網(wǎng)表中的PLL及RAM被替換完成后,需進行系統(tǒng)級的Hsim與Ncsim混合仿真,驗證整體仿真環(huán)境功能的實現(xiàn)。此處以8051指令集的仿真為例,詳述其仿真過程。
首先,用戶通過系統(tǒng)腳本選擇芯片要加載的程序;接著,Ncsim仿真器調用Testbench模塊,Testbench將產(chǎn)生的時鐘信號、復位信號以及二進制格式的程序通過數(shù)?;旌戏抡孑斎氲絊oC網(wǎng)表中;然后,通過配置文件調用Hsim仿真器,對SoC的cdl網(wǎng)表部分仿真,cdl內部的PLL及RAM部分調用Ncsim仿真器仿真,程序執(zhí)行后將輸出的響應寫入extacs.txt文件;最后,比較正確的期望文件與驗證新設計產(chǎn)生的響應文件,可判定設計是否正確。
圖8顯示了運行匯編指令(MOV R7,A)程序后,被替換RAM的輸入輸出變化情況波形。在仿真過程中,內部復雜的PLL、RAM模擬模塊被替換,減少了PLL原本5 μs的鎖相時間,程序從復位開始執(zhí)行,仿真速度明顯加快,證明了用Verilog模塊替換原有的復雜而耗時長的模塊是可行的。
圖8 RAM網(wǎng)表內部Verilog模塊地址變化
提出了一種系統(tǒng)級后仿真驗證平臺,并成功應用于大規(guī)模數(shù)?;旌蟂oC的驗證。驗證環(huán)境基于Hsim與Ncsim建立的后仿真驗證平臺,使用Verilog-cdl-Verilog仿真方法。仿真結果表明,在帶有數(shù)字/模擬模塊的SoC系統(tǒng)級后仿真驗證中,用Verilog模塊替換一些復雜的影響仿真速度的模塊,可明顯加快仿真速度,改善工作效率。此外,在系統(tǒng)級對模塊進行了功能和時序仿真,證明了該平臺具有可配置性、靈活性及可移植性等特點。
參考文獻:
[1]Lin G H,Wen Y N,Wu X L,et al.Design of a SIMD Multimedia SoC Platform[C]//IEEE International SOC Conference.Hsinchu,Taiwan.2007:51-54.
[2]Huang C M,Lee K J,Yang C C,et al.Multi-Project System-on-Chip (MP-SoC):A Novel Test Vehicle for SoC Silicon Prototyping[C]//IEEE International SOC Conference.Taipei,Taiwan.2006:137-140.
[3]王波,楊永明,汪金剛,等.基于PSoC的無線傳感器網(wǎng)絡節(jié)點設計[J].傳感技術學報,2009,22(3):413-416.
[4]Feng L,Dai Z,Li W,et al.Design and Application of Reusable SoC Verification Platform[C]//IEEE 9th International Conference on ASIC(ASICON’11).Xiamen,China.2011:957-960.
[5]姚愛紅,孫盟哲,袁莉娜.基于模擬的SoC功能驗證研究[J].微電子學與計算機,2013,30(5):1-9.
[6]Kong L,Wu W C,He Y,et al.Design of SoC Verification Platform Based on VMM Methodology[C]//IEEE 8th International Conference on ASIC(ASICON’09).Hunan,China.2009:1272-1275.
[7]侯大志,李麗.USB2.0 IP核功能驗證的研究和應用[J].電子測量技術,2009,30(5):1-5.
[8]廖永波,李平,阮愛武,等.SoC軟硬件協(xié)同仿效系統(tǒng)的通訊協(xié)議設計[J].微電子學,2010,40(2):1-5.
[9]周德新,金志威,王鵬,等.基于SystemVerilog的SRAM控制器IP核驗證[J].電子器件,2012,35(5):619-622.
[10]SYNOPSYS.HSIMplus?Reference Manual,Version C-2009.06 [Z].USA:2009-06.
[11]孫延騰,吳艷霞,顧國昌.基于VHDL語言的參數(shù)化設計方法[J].計算機工程與應用,2010,46(31):68-71.
[12]杜敏,王世明.一款高端數(shù)字SOC設計的系統(tǒng)級驗證[J].計算機工程,2005,31(21):1-5.
胡小剛(1988-),男,漢族,江蘇省南京市,碩士研究生,主要研究方向為集成電路設計,huxiaogang_230@126.com;
虞致國(1979-),男,漢族,江西省萬年市,副教授,碩士生導師,主要研究方向為集成電路設計與測試技術,yuzhg @139.com。
Design and Performance Analysis for Improved Algorithm Based on Logistic Chaotic Binary Sequences*
FAN Chunlei,DING Qun*
(Signal and Information Processing Key Laboratory,Heilongjiang University,Harbin 150080,China)
Abstract:Aiming at machine with finite precision would make digital chaotic binary sequences into similar short period sequences so that it lowers the security of chaotic encryption system for the problem.An improved algorithm is proposed with the purpose of overcoming the disadvantage,which combines Logistic chaotic sequences with Arnold transformation.Besides,some comparative experiments are done about autocorrelation and randomness of new binary sequences.Moreover,Digital image is encrypted and decrypted through this improved algorithm in the experiment,the results indicate that the new algorithm of Logistic chaotic sequences has a good performance on safety and has the ability to meet the requirements of confidential communication.
Key words:Chaotic system; Arnold transformation; MATLAB simulation; binary sequences; image encryption
doi:EEACC:614010.3969/j.issn.1005-9490.2015.04.009
收稿日期:2014-10-15修改日期:2014-11-01
中圖分類號:TP302.1
文獻標識碼:A
文章編號:1005-9490(2015)04-0754-05
項目來源:江蘇省自然科學基金項目(BK20130156);中央高?;究蒲袠I(yè)務費專項資金項目(JUSRP1026,JUSRP51323B);江蘇省科技廳產(chǎn)學研聯(lián)合創(chuàng)新資金項目(BY2013015-19);江蘇省六大人才高峰項目(DZXX-027);江蘇省普通高校研究生實踐創(chuàng)新計劃項目(SJZZ_0148)