亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ICE中調(diào)試模塊IP軟核的設(shè)計(jì)與實(shí)現(xiàn)

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

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

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

        隨著片上系統(tǒng)集成度越來(lái)越高,嵌入式技術(shù)得到廣泛應(yīng)用,尤其是在消費(fèi)電子產(chǎn)品中的應(yīng)用,芯片在線仿真器(In-Circuit Emulator,ICE)的研發(fā)也變得越來(lái)越重要,然而市場(chǎng)上的大部分ICE都是適用于幾款或一個(gè)系列的芯片,市場(chǎng)中的BD12000、TRACE32等通用仿真器并不能滿足需求,一些提出通用仿真器的方案卻并沒(méi)有提出調(diào)試模塊的IPcore具體的實(shí)現(xiàn)方法[1-4]。使得開發(fā)人員在開發(fā)相應(yīng)在線仿真器時(shí),周期大幅增長(zhǎng),成本相應(yīng)增加。基于此,提出一種具體實(shí)現(xiàn)調(diào)試模塊IPcore的方法,實(shí)現(xiàn)通用性,縮短開發(fā)周期,減少成本。整個(gè)過(guò)程的開發(fā)選擇了在Xilinx Spartan系列XC3S700AN開發(fā)板套件中進(jìn)行。

        1 特點(diǎn)及其應(yīng)用

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

        2 系統(tǒng)實(shí)現(xiàn)

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

        圖1 ICE機(jī)制實(shí)現(xiàn)流程圖

        2.1 調(diào)試模塊IP核的實(shí)現(xiàn)

        PC端軟件部分和USB的接口部分為在線仿真器提供了方便,而整個(gè)ICE硬件電路的實(shí)現(xiàn)則需要在FPGA上實(shí)現(xiàn),硬件電路的質(zhì)量直接決定著在線仿真器的質(zhì)量,而調(diào)試模塊則又是實(shí)現(xiàn)ICE機(jī)制的關(guān)鍵。

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

        圖2 調(diào)試模塊實(shí)現(xiàn)狀態(tài)流程圖

        2.2 關(guān)鍵邏輯設(shè)計(jì)

        下面列出調(diào)試模塊端口中比較重要的信號(hào):

        debug_k2,//連接mcu,總開關(guān)控制對(duì)寄存器的操作;

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

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

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

        debug_addr_w,//地址信息用來(lái)表示要讀取或?qū)懭氲氖悄膫€(gè)寄存器;

        debug_k2是總的寄存器讀寫控制端口,當(dāng)微處理器處于停止?fàn)顟B(tài)時(shí),通過(guò)控制debug_k2來(lái)實(shí)現(xiàn)對(duì)寄存器進(jìn)行讀寫,當(dāng)其為1時(shí),可以對(duì)微處理器內(nèi)部寄存器進(jìn)行讀寫,當(dāng)進(jìn)行讀操作時(shí),此時(shí)需要將debug_rd置1,當(dāng)進(jìn)行寫操作時(shí),將debug_rd置0之后將debug_wr置1即可,對(duì)于讀哪些寄存器時(shí)需要近似于RAM地址線的debug_addr_w進(jìn)行控制,定義其為9位的位寬,當(dāng)其取不同值時(shí)定義其對(duì)應(yīng)不同的寄存器即可。

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

        reg adlkcon;//停止命令的“?!笨刂菩盘?hào),當(dāng)其為1時(shí)應(yīng)讓CPU停止運(yùn)行

        reg ddlkcon;//單步命令時(shí)“?!笨刂菩盘?hào),當(dāng)其為1時(shí)應(yīng)讓CPU停止運(yùn)行

        reg edlkcon;//斷點(diǎn)命令時(shí)“?!笨刂菩盘?hào),當(dāng)其為1時(shí)應(yīng)讓CPU停止運(yùn)行

        reg bdlkcon;//運(yùn)行命令的控制信號(hào),當(dāng)其為0時(shí)CPU運(yùn)行

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

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

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

        2.3 查錯(cuò)設(shè)計(jì)

        有數(shù)據(jù)發(fā)送就難免有錯(cuò)誤,由于USB通訊本身的優(yōu)點(diǎn),從電腦端發(fā)送到調(diào)試模塊總線端口的數(shù)據(jù)出錯(cuò)的幾率較小,但為了避免出錯(cuò)造成對(duì)字節(jié)命令的影響,在定義字節(jié)含義時(shí),在每一條命令相關(guān)的最后一個(gè)字節(jié)都帶有兩字節(jié)的校驗(yàn)和用來(lái)檢驗(yàn),當(dāng)發(fā)生錯(cuò)誤時(shí)會(huì)自動(dòng)重新發(fā)送,從而保證數(shù)據(jù)傳輸?shù)恼_性。

        3 板上驗(yàn)證

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

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

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

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

        圖3 斷點(diǎn)停止

        4 結(jié)束語(yǔ)

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

        [1] 李舸,桑楠,熊光澤.一種通用在線仿真調(diào)試器的設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2007,27(4):875-876.

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

        [3] 郭金懷,劉丹非,王誠(chéng).嵌入式CPU的設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2003,16(增刊):59-62.

        [4] 王祖強(qiáng),張華,李玲.8位RISC MCU IP軟核仿真的新方法[J].計(jì)算機(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ā)實(shí)用教程[M].北京:清華大學(xué)出版社,2008.

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

        [10]柴欣,張紅梅.Visual C++程序設(shè)計(jì)基礎(chǔ)[M].2版.北京:中國(guó)鐵道出版社,2007.

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

        [12]朱武星.65C02 MCU在線仿真器的設(shè)計(jì)研究[D].廈門:廈門大學(xué),2008.

        猜你喜歡
        仿真器斷點(diǎn)寄存器
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        一類無(wú)限可能問(wèn)題的解法
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        主導(dǎo)電回路發(fā)生斷點(diǎn)故障判斷方法探討
        基于多線程的慣導(dǎo)邏輯仿真器設(shè)計(jì)
        天文測(cè)量仿真器模擬星圖精度分析
        并行片上網(wǎng)絡(luò)仿真器ParaNSim的設(shè)計(jì)及性能分析
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        TKScope仿真調(diào)試Cortex-M3內(nèi)核的高級(jí)手段
        基于32位SPARC處理器的JTAG仿真器設(shè)計(jì)與實(shí)現(xiàn)
        国产一级黄色性生活片| 蕾丝女同一区二区三区| 插入日本少妇一区二区三区| 日韩精品极品视频在线观看免费| 亚洲综合av在线在线播放| 日本熟妇hd8ex视频| 久久精品韩国日本国产| 国产午夜精品视频观看| 欧美老肥妇做爰bbww| 无码任你躁久久久久久| 久久免费网国产AⅤ| 久久精品国产亚洲片| 免费看黄视频亚洲网站| 国产成人综合亚洲看片| 国产一级农村无码| 四虎精品国产一区二区三区| 亚洲av毛片一区二区久久| 国产av自拍视频在线观看| 一本一道av无码中文字幕麻豆| 18禁美女裸身无遮挡免费网站 | 国产女在线| 日本精品人妻一区二区三区| 日本中文字幕婷婷在线| 精品国产一区av天美传媒 | 免费福利视频二区三区| 亚洲一区二区免费在线观看视频| 欧美日韩国产码高清综合人成| 四虎精品成人免费观看| 久久精品中文字幕免费| 亚洲av日韩av卡二| 国产精品久久久久久影视 | 国产一区二区三区免费精品视频| 日韩精品久久久久久久电影蜜臀 | 色多多a级毛片免费看| 又黄又爽的成人免费视频| 亚洲日韩图片专区小说专区| 国产精品亚洲在钱视频| 九九九免费观看视频| 欧美最猛黑人xxxx黑人表情 | 亚洲精品无码不卡| 国产精品免费久久久久影院仙踪林 |