摘要:軟件調(diào)試所處的環(huán)境作為硬件和軟件之間的橋梁,為將SoC推向市場的時間縮短,所以必須盡快的將軟件開發(fā)調(diào)試環(huán)境建立起來,在項目當中系統(tǒng)驗證的時候使用FPGA階段的同時進行軟件開發(fā)環(huán)境的建立,使得同步在硬件和軟件兩者之間進行設計,這就實現(xiàn)軟件調(diào)試在FPGA上,使得SoC的成本得以降低和上市時間得到縮短,從而再目標芯片上進行FPGA傷感軟件開發(fā)。本文根據(jù)多年從事軟件環(huán)境調(diào)試經(jīng)驗,對其設計進行探索,而這實現(xiàn)則完全是使用軟件,不需要硬件的支持,使得硬件設計得到更加的簡化,并且做得到多SoC的開發(fā)周期與成本得到有效的縮短。
關鍵詞:FPGA;驗證系統(tǒng);軟件調(diào)試環(huán)境
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1674-7712 (2012) 06-0083-01
在進行SoC系統(tǒng)的開發(fā)當中,其中所包含的內(nèi)容為硬件和軟件開發(fā)。而在進行傳統(tǒng)的開發(fā)當中,從流程上來看,首先是要設計硬件,在進行設計軟件。通常來說,根據(jù)這一的流程則是串行進行設計軟硬件,這使得SoC推向市場的時間縮短。而在進行同步進行設計軟硬件,這也成為SoC設計領域的熱門話題之一。筆者根據(jù)實踐經(jīng)驗,對協(xié)同設計軟硬件的方法進行有效探索,使得在實際中做到同步進行設計軟硬件。
一、設計嵌入式SoC軟件調(diào)試環(huán)境的相關概況
由于在進行設計SoC的過程中所綜合的是嵌入式軟件和IP模塊,而IC這一傳統(tǒng)的設計方法所遵循的基礎是功能設計,這已經(jīng)對新設計需求無法做到有效適應,所以必須要變革這一傳統(tǒng)的設計方法,基礎由功能設計轉變?yōu)楣δ芙M裝。在進行設計SoC的過程中所遵循的關鍵要求是進行深入的系統(tǒng)級分析和設計,做到協(xié)同驗證和設計軟硬件。
軟件調(diào)試環(huán)境在FPGA驗證階段就開始建立所具備的意義非凡,這主要是由于芯片行為能夠在FPGA的作用下基本上能夠做到全面和正確的仿真,而在諸如指令模擬器等其他仿真環(huán)境當中則不能夠做到對其芯片行為進行全面性仿真,特別是當出現(xiàn)中斷以及外圍模塊則不能夠做到根據(jù)指令進行模擬仿真。這就顯示出有著十分重要的必要性在進行軟件的開發(fā)過程中要對指令模擬器和FPGA上面,通常來說,立足于FPGA之上的軟件開發(fā)基本可以再目標芯片上進行,這就做到開發(fā)軟件在進行硬件設計的FPGA驗證階段,使得進行項目開發(fā)的時間大大縮短,并且開發(fā)廠家所關心的成本得到迅速的降低。根據(jù)筆者對相關文獻的考證,目前軟件開發(fā)環(huán)境當中使用比較多的基本上為以下兩種類型:
一是軟斷點法。并不需要使用比較特點的硬件支持在嵌入式的微處理器內(nèi)部,所需要的軟件主要為:HOST軟件在PC端所進行使用;能夠給用戶進行程序調(diào)試提供的界面、接口函數(shù)能夠和仿真板進行連接使得通信得以實現(xiàn)等;在仿真板上面的監(jiān)控程序,在仿真板上的特定位置能夠進行存放作業(yè)的只讀存儲器當中。這種方法所具備的特點是使用起來廉價方便,發(fā)揮作用并不需要特別的硬件進行支持;而這種方法的弊端是效率顯得過低,而且只能夠調(diào)試RAM程序。
二是JTAG+ICE法。這種方法主要是通過在芯片當中進行ICE模塊的設計于在線仿真器當中。也就是說,通過嵌入式的ICE模塊在芯片內(nèi)部設計,ICE模塊則是嵌入式微處理器和開發(fā)系統(tǒng)兩者之間所形成的橋梁進行連接,目標系統(tǒng)當中所存在的真實處理器這也就是在線仿真器當中的嵌入式微處理器。與前一種方法相比,這種方法所具備的效率顯得更高,并且能夠調(diào)試ROM程序,可是這必須依賴于特殊的硬件進行支持。
二、軟件調(diào)試環(huán)境的設計原理
軟件調(diào)試環(huán)境當使用FPGA進行驗證過程開發(fā)的時候,所具備的基本功能主要為:通過對加載程序的應用,做到將系統(tǒng)所編譯生成的二進制文件在HOST機轉移到目標系統(tǒng)所屬的RAM區(qū)當中的某一特定區(qū)域;績效斷點的設置和取消,使得設置斷點在RAM區(qū)的程序當中;對目標系統(tǒng)的狀態(tài)進行查看,其中主要包括ROM所具有的數(shù)據(jù)值,RAM的目標系統(tǒng)以及CPU寄存器所顯示的數(shù)值等;STEP功能,能夠單步運行程序;GO功能,能夠做到開始讓程序運行。
而所具備的基本思想是當通過系統(tǒng)的CPU啟動后,CPU去0X00000000(在ROM區(qū)域)去取指令,同時片選邏輯產(chǎn)生ROM(系統(tǒng)設計中此段地址是用來存放MONITOR程序)的片選信號,這樣CPU運行ROM的監(jiān)控程序,系統(tǒng)由ROM中的MONITOR程序接管。MONITOR程序作了一些基本配置(片選、串口、中斷控制器等的配置)完后,等待HOST端發(fā)來命令。需要被調(diào)試的用戶程序被加載到RAM(通過MONITOR),用戶所設斷點的地方被換成一條陷入MONITOR程序的指令(可用軟陷指令或擴展指令等),陷入MONITOR程序后,MONITOR程序把CPU的寄存器值保存到指定RAM中,然后再把這些值通過串口發(fā)給HOST端,HOST端再把寄存器的值顯示出來。另外一個重要問題就是MONITOR和HOST間通信協(xié)議的定義,要保證通信的可靠信和高效性。
三、總結
這種插樁調(diào)試方法最大的特點就是靈活簡單、不需要特殊硬件支持??稍赟oC開發(fā)過程中的系統(tǒng)驗證階段(FPGA驗證)引入,縮短SoC系統(tǒng)的開始周期。在FPGA驗證過程中,同時建立軟件開發(fā)環(huán)境,這可以縮短整個項目的開發(fā)時間,實現(xiàn)了軟硬件開發(fā)并行進行?,F(xiàn)在我們在FPGA驗證系統(tǒng)上建立了一套軟件開發(fā)環(huán)境(匯編級調(diào)試),這樣我們就能在FPGA系統(tǒng)板上開發(fā)操作系統(tǒng)和其他應用軟件。在SoC流水的過程中同樣能進行程序開發(fā),在我們的項目中,在FPGA上開發(fā)的OS和應用程序都能平移到ASICSoC上,這就節(jié)約了不少時間,實現(xiàn)軟硬件設計同步進行。
參考文獻:
[1]王強,龔龍慶,時晨.一種面向嵌入式SoC設計的混合級硬/軟件協(xié)同驗證技術[J].現(xiàn)代電子技術,2007,9
[2]羅春.基于仿真的系統(tǒng)芯片功能驗證技術研究[D].東南大學,2006
[3]程剛.基于System Verilog的功能驗證方法研究[D].華南理工大學,2010
[4]豐玉田,付宇卓,趙峰.大規(guī)模SoC設計中的高效FPGA驗證技術的研究與實現(xiàn)[J].電子技術應用,2006,2