虞致國,魏敬和
(中國電子科技集團公司第58研究所,無錫 214035)
傳統(tǒng)的SoC構(gòu)架在提高系統(tǒng)整體性能上已出現(xiàn)了一些瓶頸,多核SoC 正成為集成電路設(shè)計的研究熱點之一[1]。多核SoC指的是一個SoC中包含2個或2個以上的處理器核,這些處理器的類型可能是異構(gòu)的[2]。由于性能和功耗等方面的原因,高性能嵌入式系統(tǒng)多采用片上異質(zhì)多處理器系統(tǒng)。在開發(fā)復(fù)雜SoC應(yīng)用時,芯片的調(diào)試手段直接關(guān)系到開發(fā)的效率和進度,決定了應(yīng)用的質(zhì)量。沒有調(diào)試硬件環(huán)境支持的追蹤調(diào)試已經(jīng)不能勝任復(fù)雜SoC的應(yīng)用[3]。
另一方面,在SoC開發(fā)過程中,調(diào)試系統(tǒng)本身的驗證非常重要。對于調(diào)試系統(tǒng)的驗證,由于沒有相應(yīng)的RTL驗證環(huán)境,一般都放在FPGA原型驗證階段進行,并借助于一些邏輯分析儀對仿真波形進行采樣分析,延長了系統(tǒng)驗證時間且降低了驗證效率[4-5]。
在某控制雙核SoC的硬件設(shè)計基礎(chǔ)上,提出了一種基于JTAG的片上調(diào)試系統(tǒng)設(shè)計方案;基于SystemVerilog DPI[7]和Real View調(diào)試器,提出了一種雙核SoC的片上調(diào)試系統(tǒng)虛擬驗證環(huán)境。在該驗證環(huán)境中,利用DPI將軟件調(diào)試器集成到驗證過程中,可完成RTL級的JTAG調(diào)試接口仿真與驗證。該方法能夠?qū)⒁郧癋PGA原型驗證發(fā)現(xiàn)的調(diào)試系統(tǒng)錯誤提前到系統(tǒng)仿真驗證階段,縮短了系統(tǒng)周期,提高了驗證效率。
某異構(gòu)雙核SoC面向工業(yè)控制、多媒體應(yīng)用及其他消費類電子設(shè)計,其結(jié)構(gòu)如圖1所示。該SoC包括一個高性能具有較強運算能力的ARM7以及一個控制能力較強但占用資源較小的80515處理器核。整個SoC有以下幾個主要部分:ARM7子系統(tǒng)、80515子系統(tǒng)、共享總線以及共享存儲器。另外,SoC還包括PLL、時鐘及復(fù)位模塊和相關(guān)的配置單元。雙核通過共享固定內(nèi)存單元的機制進行通訊,來協(xié)調(diào)完成各種操作。
ARM調(diào)試軟件采用RealView[6]調(diào)試器,該調(diào)試器在綜合性能調(diào)試環(huán)境下提供最合適的調(diào)試功效。80515調(diào)試軟件采用Keil公司開發(fā)的Keil C51。Keil uVision集成開發(fā)環(huán)境開放了調(diào)試器與目標硬件接口,即Advanced Generic Debug Interface(AGDI)。器件廠商只要為它們自己的8051產(chǎn)品設(shè)計專用的驅(qū)動程序(動態(tài)鏈接庫DLL),就可以使Keil IDE的調(diào)試器在不改變圖形界面的情況下支持不同的硬件鏈接方法。
調(diào)試硬件設(shè)計如圖2所示,包括ARM和80515各自的調(diào)試系統(tǒng)、交叉觸發(fā)模塊。該SoC的同步調(diào)試主要分為兩類[8]:(1)單步、運行和停止(由用戶操作發(fā)出的命令);(2)交叉觸發(fā)(處理器運行過程中被觸發(fā),需要在片內(nèi)預(yù)設(shè)配置寄存器進行控制)。對寄存器和存儲空間的訪問,沒有采用同步機制,而是采用單核機制實現(xiàn)。
調(diào)試同步的寄存器在交叉觸發(fā)模塊(C r os s Trigger)中集中控制實現(xiàn)。Cross Trigger包含三個寄存器:交叉觸發(fā)命令廣播寄存器、軟件斷點同步配置寄存器、硬件斷點同步配置寄存器。交叉觸發(fā)模塊向CPU核發(fā)布命令來實現(xiàn)單步/運行/停止的同步執(zhí)行功能、軟/硬件斷點的同步。
結(jié)合集成調(diào)試環(huán)境和目標芯片,可構(gòu)成一個片上調(diào)試功能的驗證環(huán)境(如圖3所示)。該環(huán)境在UNIX環(huán)境中運行。集成調(diào)試環(huán)境為軟件調(diào)試器,包括RealView調(diào)試器、Keil C51調(diào)試器,JTAG調(diào)試代理、虛擬并口驅(qū)動、共享內(nèi)存區(qū)。為了實現(xiàn)驗證Tes t b en ch和集成調(diào)試環(huán)境的連接,我們基于SystemVerilog DPI編寫了一個調(diào)試DPI外殼。通過DPI,SystemVerilog可以調(diào)用所有的C/C++/System C的功能函數(shù),實現(xiàn)對共享內(nèi)存區(qū)的數(shù)據(jù)訪問。
在調(diào)試驗證環(huán)境中,我們用C語言開發(fā)了一組程序,用以實現(xiàn)對并口內(nèi)存區(qū)的訪問。在調(diào)試外殼中,使用簡單的i m p o r t聲明把C函數(shù)導(dǎo)入到SystemVerilog中。驗證環(huán)境中利用C語言函數(shù)調(diào)用共享內(nèi)存中的數(shù)據(jù)。調(diào)試DPI外殼和驗證Testbench一起采用VCS進行編譯。
驗證Testbench采用SystemVerilog[7]實現(xiàn),驗證Testbench結(jié)構(gòu)如圖4所示。驗證Testbench模擬目標芯片及芯片外圍環(huán)境,包括目標SoC、外部存儲器、時鐘、復(fù)位等,采用RTL代碼及其他行為模型描述。在驗證過程中,用HDL函數(shù)$readmem讀入功能仿真程序的十六進制文件(.dat)。
仿真軟件采用Synopsys公司的VCS軟件。該軟件是編譯器、仿真器和其他一些工具組成的工具集。調(diào)試DPI必須編譯并鏈接到Verilog仿真器。
仿真中,RealView和Keil C51界面把數(shù)據(jù)寫到內(nèi)存中的虛擬并口數(shù)據(jù)區(qū),TAP中調(diào)用調(diào)試DPI外殼從這個數(shù)據(jù)區(qū)中交換數(shù)據(jù),這樣就在仿真器上實現(xiàn)了與主機調(diào)試軟件的通信。RealView和Keil C51本身支持源碼級調(diào)試,只要調(diào)試代理正確地實現(xiàn)了RealView及Keil C51的遠程調(diào)試協(xié)議,本驗證系統(tǒng)就可實現(xiàn)源碼級調(diào)試。
調(diào)試接口的設(shè)計是多核SoC設(shè)計中的重要環(huán)節(jié),調(diào)試系統(tǒng)驗證對于SoC的設(shè)計非常重要。基于JTAG接口和操作系統(tǒng)的基礎(chǔ),文中實現(xiàn)了某控制多核SoC片上調(diào)試功能,可實現(xiàn)芯片的調(diào)試控制和存儲訪問。在此基礎(chǔ)上,提出和設(shè)計了一種基于SystemVerilog DPI和Real View、Keil C51已有調(diào)試功能的SoC調(diào)試系統(tǒng)驗證環(huán)境。利用該平臺,在RTL仿真驗證時便可以通過JTAG對基于ARM核 的SoC進行調(diào)試,這使對SoC的調(diào)試從以往的FPGA驗證提前到RTL仿真驗證階段進行,可有效縮短集成SoC設(shè)計周期,并提高SoC驗證效率。
[1]成杏梅,劉鵬,鐘耿,等. 嵌入式MPSoC的調(diào)試功能實現(xiàn)[J]. 計算機輔助設(shè)計與圖形學(xué)學(xué)報,2008,20(4):438-445.
[2]邵利群,張文婷. 異構(gòu)多處理器系統(tǒng)芯片的設(shè)計與研究[J].中國集成電路,2008,17(3):49-52.
[3]凱思·諾頓. 嵌入式系統(tǒng)的挑戰(zhàn)[J]. Information Quartely,2004,1:45-46.
[4]韓可,鄧中亮,施樂寧,等.針對JTAG調(diào)試的RTL驗證環(huán)境設(shè)計原理[J].電子測量技術(shù),2008,31(1):72-76.
[5]虞致國,魏敬和. 一種基于JTAG的SoC片上調(diào)試系統(tǒng)的設(shè)計[J].微電子學(xué)與計算機,2009,26(5):5-8.
[6]ARM Limited.RealView Debugger Version 3.0TraceUser Guide[EB/OL].http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0322a/Babgijgj.html/ARM DUI 0322A.pdf.
[7]Standard for SystemVerilog-Unified Hardware Design[C].Specification and Verification Language.IEEE Std 1800-2005.
[8]扈嘯,李杰,陳莉麗,等. 多核處理器YHFT-QDSP的調(diào)試系統(tǒng)[J].計算機工程,2008,30(9):116-118.