<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于SOPC的通用型JTAG調(diào)試器的設(shè)計(jì)

          基于SOPC的通用型JTAG調(diào)試器的設(shè)計(jì)

          作者: 時(shí)間:2015-01-07 來源:網(wǎng)絡(luò) 收藏

            ARM7TDMI IPcore,仿真調(diào)試IPcore,需要自主開發(fā)。其內(nèi)部邏輯用Verilog語言實(shí)現(xiàn),然后按照Altera IPcore的標(biāo)準(zhǔn)編寫IPcore描述文件,最后掛在三態(tài)總線上,完成全部調(diào)試功能。

          本文引用地址:http://www.ex-cimer.com/article/267831.htm

            TCK發(fā)生器,TCK脈沖產(chǎn)生邏輯,需要自主開發(fā)。它利用Nios的時(shí)鐘生成TCK信號,作為時(shí)鐘來驅(qū)動ARM7TDMI IPcore。它被做成一個(gè)小的功能模塊,通過PIO與三態(tài)總線通信。

            上述所介紹的IPcore使用Altera公司的開發(fā)工具Quartus II編譯,最后下載到Altera 中。本系統(tǒng)使用的CPGA芯片是Cyclone系列的EPlCl2。該芯片包含12 060個(gè)邏輯單元,具有239 616位RAM,片上集成2個(gè)鎖相環(huán),最大用戶I/O引腳達(dá)到249個(gè)。

            該硬件結(jié)構(gòu)很好地體現(xiàn)了的概念,所有的IPcore(包括Altera公司發(fā)布和自主開發(fā)的)集成在一片上。一個(gè)片上系統(tǒng)就基本包含了在線仿真器的絕大部分功能,任何硬件結(jié)構(gòu)設(shè)計(jì)的變化都在該片上,這使得通用在線仿真器這個(gè)概念得以實(shí)現(xiàn)。對其他芯片在線仿真,只需更改ARM7TDMI IPcore模塊,重新下載到FPGA中,便可以對另一種處理器芯片進(jìn)行在線仿真。該IPcore用Verilog語言實(shí)現(xiàn),保存為armjtag.v文件。通過Quartus II里的 Builder可以將該文件生成組件,再將其加入Nios系統(tǒng)中。器件引腳分配好后,就在Quartus II里全編譯,最后生成ice.pof文件。將該文件通過編程器燒寫到配置芯片EPCS4里面。這樣硬件系統(tǒng)就完成了。

            2.2 軟件設(shè)計(jì)與實(shí)現(xiàn)

            本系統(tǒng)的軟件部分包括2個(gè)模塊:一是PC端的開發(fā)調(diào)試界面,二是調(diào)試器里面的控制程序。2個(gè)模塊通過TCP/IP協(xié)議通信。

            PC端開發(fā)調(diào)試界面的主要功能是接收用戶的調(diào)試命令,并顯示調(diào)試結(jié)果。這是系統(tǒng)與用戶進(jìn)行交互的唯一方式。開發(fā)調(diào)試界面對上給用戶提供統(tǒng)一的調(diào)試功能接口,對下給調(diào)試器提供統(tǒng)一的調(diào)試命令。本系統(tǒng)使用VisualC++開發(fā)。

            調(diào)試器里的控制程序主要功能是將上層用戶調(diào)試命令轉(zhuǎn)換成特定的JTAG指令序列,并控制IPcore將其發(fā)送出去,同時(shí)接收J(rèn)TAG反饋信息并發(fā)送回用戶界面。本系統(tǒng)使用Nios IDE來開發(fā)。在Nios IDE的工程屬性中加入LwIP和μC/OS組件。主程序首先初始化μC/0S,初始化LwIP協(xié)議棧,再啟動μC/OS。所有程序控制放在μC/OS的OSStart()任務(wù)里。該任務(wù)首先建立一個(gè)套接字,然后在死循環(huán)中等待數(shù)據(jù)到來。當(dāng)收到來自PC端的調(diào)試命令后,從數(shù)據(jù)包中分離出命令字和參數(shù),將命令字轉(zhuǎn)換成IPcore需要的調(diào)試命令,通過Avalon總線將其發(fā)送到IPcore,并等待IPcore工作完成。最后將IPcore傳回的數(shù)據(jù)打包發(fā)回PC端。

            目前提供的通用調(diào)試命令如表1所列。

            

           

            在TCP/IP數(shù)據(jù)包中,有效數(shù)據(jù)為12字節(jié)。第1至4字節(jié)是命令代碼,第5至8字節(jié)為命令參數(shù)1,第9到12字節(jié)為命令參數(shù)2。命令參數(shù)1和命令參數(shù)2是否有效取決于命令代碼。主控制程序收到數(shù)據(jù)包后,將命令代碼發(fā)往JTAG IPcore的指令端口地址,并根據(jù)命令代碼向參數(shù)端口地址發(fā)送命令參數(shù)1。如果該命令代碼需要命令參數(shù)2,則在下一個(gè)周期發(fā)送。

            在的硬件系統(tǒng)設(shè)計(jì)中,所有的外設(shè)都是統(tǒng)一編址。將JTAG IPcore的指令端口地址和參數(shù)端口地址分別設(shè)置成0x00910850和0x00910860,端口位寬為32位。因此在程序里,往IPcore發(fā)送指令只需要往地址0x00910850寫32位數(shù)據(jù);往IPcore發(fā)送參數(shù)只需要往地址Ox00910860寫32位數(shù)據(jù)。反饋數(shù)據(jù)端口地址設(shè)置成Ox00910870,端口位寬為32位。因此在程序里,讀取JTAG反饋數(shù)據(jù)只需讀取地址0x00910870的32位數(shù)據(jù)。

            2.3 JTAG IPcore的實(shí)現(xiàn)

            JTAG IPcore是本調(diào)試器的核心,下面簡單介紹一下該部分的實(shí)現(xiàn)。

            IPcore的接口如圖3所示。

            

           

            該IPcore的對外接口由兩部分組成:一是與Avalon總線通信的接口部分,即圖中的左邊部分;二是與被調(diào)試CPU通信的接口部分,即圖中的右邊部分。另外,在整個(gè)實(shí)現(xiàn)中,定義了一些重要的寄存器。

            “reg[3000:O]tms,tdo"分別用來存放完成當(dāng)前操作的tms序列和tdo序列。像訪問存儲器這樣的操作需要很長的tms序列和tdo序列,因此用了3001位。IPcore每次從這2個(gè)寄存器讀取1位后,就向?qū)?yīng)的引腳發(fā)送數(shù)據(jù)。tdi寄存器只用了134位,因?yàn)椴皇敲總€(gè)tdi輸入對JTAG調(diào)試都有用。parmreg寄存器用來存放總線上傳來的參數(shù)。tdidata寄存器用來存放從tdi引腳讀取的有效數(shù)據(jù),將被發(fā)送到Avalon總線。tdicolJnter寄存器用來對tdi輸入數(shù)據(jù)計(jì)數(shù)。

            Avalon總線上來的指令發(fā)送到ins[31:0]端口。在調(diào)試器主程序里判斷指令,做出相應(yīng)的動作。當(dāng)IPcore讀取到某個(gè)指令后,根據(jù)命令代碼查找對應(yīng)的TMS命令序列,找到以后將命令序列送到tms寄存器。同時(shí),通過parm[31:O]端口讀取命令參數(shù),根據(jù)命令參數(shù)生成對應(yīng)的TDO序列,將其送到tdo寄存器。當(dāng)兩個(gè)寄存器的內(nèi)容準(zhǔn)備好后,在TCK時(shí)鐘的控制下,通過TMS引腳和TD0引腳分別串行輸出。在TDO引腳輸出的同時(shí)檢測TDI引腳,并在適當(dāng)時(shí)機(jī)將TDI引腳上的數(shù)據(jù)讀入IPcore,經(jīng)過處理后發(fā)送回總線。

            由于TMS序列長度較長且其對應(yīng)于各個(gè)調(diào)試命令是固定不變的,因此在本設(shè)計(jì)中,將TMS序列作成一個(gè)表,存放在IPcore里,而不是通過總線發(fā)送。需要時(shí),根據(jù)不同的命令代碼來讀取。這樣可以節(jié)約時(shí)間,提高調(diào)試速度。

            結(jié) 語

            本文介紹了一個(gè)基于SOPC的通用調(diào)試器的設(shè)計(jì)方案與實(shí)現(xiàn)過程。在開發(fā)過程中,IP復(fù)用、軟硬件協(xié)同設(shè)計(jì)等先進(jìn)的嵌入式設(shè)計(jì)思想對縮短開發(fā)時(shí)間、降低開發(fā)風(fēng)險(xiǎn)起到了很好的作用。同時(shí),自主開發(fā)的ARM7TDMIJTAG IPcore和C8051 JTAG IPcore體現(xiàn)了該調(diào)試器的通用性。接下來還將推出基于ARM其他系列和PowerPC系列的IPcore,本調(diào)試器的應(yīng)用價(jià)值將得到進(jìn)一步提高。


          上一頁 1 2 下一頁

          關(guān)鍵詞: SOPC JTAG FPGA

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();