• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      ICE中調試模塊IP軟核的設計與實現

      2014-04-25 02:18:32江正斌周建偉李德安彭崇梅袁國順
      電子科技 2014年5期
      關鍵詞:仿真器斷點寄存器

      江正斌,周建偉,李德安,彭崇梅,袁國順

      (1.河北工業(yè)大學 微電子研究所,天津300130;2.北京中科微電子技術有限公司 研發(fā)部,北京100029;)

      隨著片上系統(tǒng)集成度越來越高,嵌入式技術得到廣泛應用,尤其是在消費電子產品中的應用,芯片在線仿真器(In-Circuit Emulator,ICE)的研發(fā)也變得越來越重要,然而市場上的大部分ICE都是適用于幾款或一個系列的芯片,市場中的BD12000、TRACE32等通用仿真器并不能滿足需求,一些提出通用仿真器的方案卻并沒有提出調試模塊的IPcore具體的實現方法[1-4]。使得開發(fā)人員在開發(fā)相應在線仿真器時,周期大幅增長,成本相應增加?;诖耍岢鲆环N具體實現調試模塊IPcore的方法,實現通用性,縮短開發(fā)周期,減少成本。整個過程的開發(fā)選擇了在Xilinx Spartan系列XC3S700AN開發(fā)板套件中進行。

      1 特點及其應用

      仿真器從應用性角度可分為兩類:(1)特定在線仿真器。包括使用BDM、JTAG等,屬某一類或者某一系列的。(2)通用型仿真器。一類是用硬件搭建程序來實現的,這種仿真器并沒有很好的適用度,但可以作為基本的開發(fā)實驗,另一類則是基于FPGA用IP核來實現[5-9],將要實現ICE的所有IP軟核下載到FPGA中實現,這種方案雖然通用,然而受調試模塊IP的限制,想要針對不同處理器進行ICE開發(fā)需要較長的周期,且沒有固定的方案,可重復率較小,基于此,文中列出實現ICE調試模塊IP的詳細框架,并列出時鐘控制塊的詳細邏輯,使得其重復利用率大幅提高,縮短了開發(fā)周期。

      2 系統(tǒng)實現

      一般通用在線仿真器系統(tǒng)的實現可以分為:PC端軟件部分,USB(Universal Serial Bus)接口部分和以FPGA為主的硬件部分,3個部分缺一不可。從實現功能上來說,以FPGA為主的硬件部分是ICE機制實現的關鍵[10-12]。圖1為在線仿真器實現的系統(tǒng)圖。

      圖1 ICE機制實現流程圖

      2.1 調試模塊IP核的實現

      PC端軟件部分和USB的接口部分為在線仿真器提供了方便,而整個ICE硬件電路的實現則需要在FPGA上實現,硬件電路的質量直接決定著在線仿真器的質量,而調試模塊則又是實現ICE機制的關鍵。

      圖2中雙向箭頭表示數據經過調試模塊通過USB和電腦端進行雙向通訊,電腦端發(fā)數據到FPGA視為寫數據,FPGA向電腦端發(fā)數據視為讀過程,整個框圖表示的其實是一個讀寫的狀態(tài)機,FPGA等待接收數據,之后按照自定義的協(xié)議將字節(jié)信息進行分類,以識別不同命令,根據命令發(fā)出相應的控制CPU運行的動作,之后對發(fā)出數據進行校驗,如果正確則轉入讀寄存器狀態(tài),將讀完的數據進行校驗,正確后轉入寫等待即等待輸入新的命令,整個狀態(tài)機可以較好地實現和電腦端的交互過程。圖2是實現調試模塊的具體的狀態(tài)圖。

      圖2 調試模塊實現狀態(tài)流程圖

      2.2 關鍵邏輯設計

      下面列出調試模塊端口中比較重要的信號:

      debug_k2,//連接mcu,總開關控制對寄存器的操作;

      dclkcon,//連接mcu總的時鐘控制線,1有效,有效時MCU時鐘被屏蔽;

      debug_wr,//連接mcu表示寫寄存器命令;

      debug_rd,//連接mcu表示讀寄存器命令;

      debug_addr_w,//地址信息用來表示要讀取或寫入的是哪個寄存器;

      debug_k2是總的寄存器讀寫控制端口,當微處理器處于停止狀態(tài)時,通過控制debug_k2來實現對寄存器進行讀寫,當其為1時,可以對微處理器內部寄存器進行讀寫,當進行讀操作時,此時需要將debug_rd置1,當進行寫操作時,將debug_rd置0之后將debug_wr置1即可,對于讀哪些寄存器時需要近似于RAM地址線的debug_addr_w進行控制,定義其為9位的位寬,當其取不同值時定義其對應不同的寄存器即可。

      調試模塊中如何正確有效的控制CPU的運行是實現ICE機制的關鍵,定義其為1時CPU停止運行,為0時CPU繼續(xù)運行。然而,斷點運行、單步運行、全速運行3種命令之中都隱含有使微處理器運行的命令。同理,斷點運行、單步運行、停止命令3種命令之中都隱含有使微處理器停止運行的命令。多個命令控制同一個時鐘時,一個觸發(fā)器是不可能實現的,必須對控制同一寄存器時鐘的信號進行邏輯組合,進行優(yōu)先級的劃分,方能實現對整個時鐘的控制,以下是根據情況對應不同命令定義的不同的時鐘控制分量:

      reg adlkcon;//停止命令的“?!笨刂菩盘?,當其為1時應讓CPU停止運行

      reg ddlkcon;//單步命令時“停”控制信號,當其為1時應讓CPU停止運行

      reg edlkcon;//斷點命令時“?!笨刂菩盘?,當其為1時應讓CPU停止運行

      reg bdlkcon;//運行命令的控制信號,當其為0時CPU運行

      要實現正確的時鐘邏輯,則需要上述四個分量共同決定dclkcon的時序,經過分析可知,當FPGA接收到斷點運行、“單步、“全速運行”命令時,必須將bdlkcon置0,從而使時鐘控制信號dclkcon為0,微處理器開始運行,當運行到指定要求時斷點運行、單步命令對應的時鐘分量必須被置1,使時鐘控制信號dclkcon置1,微處理器停止運行,并且各分量對時鐘信號的控制必須滿足命令循環(huán)重復的情況。

      當adlkcon,ddlkcon,edlkcon為1時,微處理器需停止運行,此時時鐘控制信號dclkcon必須被置1,當bdlkcon為0時微處理器需開始運行,此時時鐘控制信號dclkcon必須被置0,然而,當adlkcon,ddlkcon,edlkcon由1變?yōu)?或者是bdlkcon由0變?yōu)?時,并不希望dclkcon的值發(fā)生變化,此時,時鐘信號必須保持不變,也就是使其保持原值即可。

      通過時序的驗證,以上時序邏輯控制能夠較好地滿足所需要求。當出現跟運行有關的命令時,bdlkcon由1變?yōu)?,時鐘信號dclkcon被置1,緊接著bdlkcon置1,時序邏輯進入到下一層進行邏輯判斷,當遇到跟停止有關的命令時,adlkcon或ddlkcon或edlkcon由0變1,由于bdlkcon為1,時鐘控制邏輯直接進入到下一層進行判斷,整個時鐘控制邏輯得以實現。

      2.3 查錯設計

      有數據發(fā)送就難免有錯誤,由于USB通訊本身的優(yōu)點,從電腦端發(fā)送到調試模塊總線端口的數據出錯的幾率較小,但為了避免出錯造成對字節(jié)命令的影響,在定義字節(jié)含義時,在每一條命令相關的最后一個字節(jié)都帶有兩字節(jié)的校驗和用來檢驗,當發(fā)生錯誤時會自動重新發(fā)送,從而保證數據傳輸的正確性。

      3 板上驗證

      選用EM78P447S的IP軟核并結合調試模塊在Xilinx Spartan系列XC3S700AN開發(fā)板套件中成功進行了驗證。

      一般的仿真器斷點實現方法是將斷點地址事先存入斷點寄存器,執(zhí)行時斷點地址與程序地址進行比較,當相等時則CPU停止運行,然而這樣在隨時取消斷點的同時實現起來較麻煩。如果采用軟硬件結合的辦法,無論設多少個斷點,只在點擊斷點運行命令時將離當前運行位置最近的斷點作為地址發(fā)送至內部FPGA,并且每次運行只發(fā)一個地址,這樣就可以保證在設置了多個斷點地址時,在運行了一部分后隨意取消之前設置的斷點,就可實現任意設置和取消斷點,并且每次斷點運行只發(fā)一次地址的簡便實現方法。

      單步的實現既可用保存地址而后進行比較的方法實現,最簡單的辦法則是根據處理器的芯片執(zhí)行流水線特性選擇關鍵點,此次選用的EM78P447S為兩級流水線,PC變化時表示上一條指令剛執(zhí)行完成,根據其特性,采樣PC變化,在單步執(zhí)行時每變化一次則停止一次即可實現單步功能

      圖3為單步運行邏輯分析儀采樣圖,單步停下的地址為007H,然后讀出相應寄存器的值。t_mfd為雙向數據總線,將“單步”停止后各個寄存器的值傳回電腦端,如圖3所示,dclkcon為總的時鐘控制信號,當其為高時CPU停止運行,為低時CPU運行,bdlkcon為0時CPU運行,ddlkcon為“單步“命令時控制信號,當“單步”時,ddlkcon發(fā)出一個高電平脈沖,由上述總時鐘控制邏輯可以看出,當bdlkcon低電平到來時觸發(fā)dclkcon變低,CPU開始運行,當bdlkcon脈沖結束后,if(adlkcon==1edlkcon==1)并不滿足所以dclkcon繼續(xù)保持邏輯,等到ddlkcon變?yōu)?之后,使得dclkcon變1則CPU停止運行,PC的值增加1,CPU執(zhí)行了一條指令后停止,停止后PC的值為0007H。

      圖3 斷點停止

      4 結束語

      設計的硬件電路能夠較好地實現“全速運行”,“停止”,“斷點運行”,“單步運行”,并且讀寫相應的寄存器,在整個系統(tǒng)中,軟硬件結合設計才能有效地完成在線仿真器的開發(fā)?;诖嗽O計方法,可以廣泛應用于MCU,ARM等芯片的在線仿真器開發(fā)中。本IP核具有如下優(yōu)點:(1)整個程序層次分明、邏輯清晰、可重復利用、易于修改。(2)不受具體器件的限制,根據具體器件的特性稍加改動便可兼容。(3)具有良好的檢驗差錯重發(fā)能力,避免了出錯帶來的錯誤結果。(4)適用性強,為研發(fā)人員提供了方便,大幅節(jié)約了調試的成本。(5)擺脫對某些特定種類在線仿真器的束縛,實現了仿真器的通用化。至此,結合通用仿真器方案,將調試模塊的IP加入,則可在FPGA上實現具體芯片的ICE機制。

      [1] 李舸,桑楠,熊光澤.一種通用在線仿真調試器的設計[J].計算機應用,2007,27(4):875-876.

      [2] 曹健雄,嚴壯志.基于FPGA的單片機仿真器設計[J].中國醫(yī)療器械雜志,2010,34(6):424-426.

      [3] 郭金懷,劉丹非,王誠.嵌入式CPU的設計與仿真[J].現代電子技術,2003,16(增刊):59-62.

      [4] 王祖強,張華,李玲.8位RISC MCU IP軟核仿真的新方法[J].計算機工程,2007,33(11):248-249.

      [5]Xilinx Conpraion.Spartan-3A FPGA family data sheet[M].CA USA:Xilinx Conpraion,2009.

      [6]Intel.Universal serial bus specification[M].CA USA:Intel Conpration,1998.

      [7]Cypress.CY7C68013 EZ-USB FX2 USB microcontroller high-speed USB peripheral controller[M].CA USA:Cypress Conpration,2012.

      [8] 田耕,徐文波.Xilinx FPGA開發(fā)實用教程[M].北京:清華大學出版社,2008.

      [9] 夏宇聞.Verilog數字系統(tǒng)設計教程[M].2版.北京:北京航空航天大學出版社,2008.

      [10]柴欣,張紅梅.Visual C++程序設計基礎[M].2版.北京:中國鐵道出版社,2007.

      [11]宋存杰.基于6502的MCU的開發(fā)及其ICE機制的實現[D].哈爾濱:哈爾濱工業(yè)大學,2010.

      [12]朱武星.65C02 MCU在線仿真器的設計研究[D].廈門:廈門大學,2008.

      猜你喜歡
      仿真器斷點寄存器
      Lite寄存器模型的設計與實現
      計算機應用(2020年5期)2020-06-07 07:06:44
      一類無限可能問題的解法
      分簇結構向量寄存器分配策略研究*
      主導電回路發(fā)生斷點故障判斷方法探討
      基于多線程的慣導邏輯仿真器設計
      計算機工程(2015年4期)2015-07-05 08:28:57
      天文測量仿真器模擬星圖精度分析
      并行片上網絡仿真器ParaNSim的設計及性能分析
      高速數模轉換器AD9779/AD9788的應用
      TKScope仿真調試Cortex-M3內核的高級手段
      基于32位SPARC處理器的JTAG仿真器設計與實現
      沙洋县| 延边| 东台市| 吉隆县| 青铜峡市| 青海省| 安庆市| 峡江县| 宜黄县| 修水县| 莱州市| 长宁县| 韶山市| 图片| 文安县| 潮安县| 通辽市| 博罗县| 疏附县| 灵川县| 逊克县| 南昌县| 浦东新区| 绿春县| 安义县| 荆门市| 临海市| 镇雄县| 东乌珠穆沁旗| 宣汉县| 壶关县| 衡水市| 靖远县| 巴林左旗| 杨浦区| 德化县| 恩施市| 瑞金市| 宜章县| 永安市| 浠水县|