基于SOPC的通用型JTAG調(diào)試器的策劃_第1頁
基于SOPC的通用型JTAG調(diào)試器的策劃_第2頁
基于SOPC的通用型JTAG調(diào)試器的策劃_第3頁
基于SOPC的通用型JTAG調(diào)試器的策劃_第4頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于SOPC的通用型JTAG調(diào)試器的策劃SOPC技術(shù)的進展,給器指出了新的進展方向。所謂SOPC技術(shù),就是指用可編程技術(shù)將囫圇系統(tǒng)放在一塊硅片上。在傳統(tǒng)設計中級互相自立的各個系統(tǒng)被集成到一塊芯片中。 SOPC的可重用性是一種先進的設計思想。為了降低用戶的負擔,避開重復勞動,將一些在數(shù)字電路中常用但比較復雜的功能模塊,比如SDRAM控制器等,設計成可修改參數(shù)的模塊,用戶在設計系統(tǒng)時可以挺直調(diào)用這些模塊。這些特定的功能模塊被稱為IPcore(學問產(chǎn)權(quán)核)。因為IPcore通常是很成熟的,因此降低了開發(fā)風險。本文利用SOPC技術(shù)的特點,設計一種通用型調(diào)試器。按照待調(diào)試目標板的CPU型號,將相應的調(diào)試

2、IPcore和其他通用IPcore一起編譯生成一個調(diào)試系統(tǒng),下載到FPGA上,實現(xiàn)一個通用型調(diào)試器。在用法同一個硬件系統(tǒng)的狀況下,可以挑選不同的調(diào)試IPcore來調(diào)試不同的CPU,而不同的IPcore可以便利的相互替換。該辦法在設計靈便性、開發(fā)成本、開發(fā)周期、工作性能等方面都具有優(yōu)越性。詳細的實現(xiàn)采納了Cyclone開發(fā)板和開發(fā)套件。1 JTAG調(diào)試原理目前在線仿真調(diào)試器中用法最多的調(diào)試辦法都是基于JTAG標準。1986年,聯(lián)合測試行動組發(fā)表了最早的邊界掃描測試規(guī)范(Boundary Scan Testing),經(jīng)不斷改進,1990年被批準為IEEE Std 1149.1a標準,簡稱JTAG標

3、準?,F(xiàn)在大多數(shù)復雜的IC芯片都帶有JTAG調(diào)試接口。本文所研究的調(diào)試辦法也基于JTAG標準。下面首先容易介紹一下JTAG調(diào)試原理。JTAG調(diào)試原理的基礎是邊界掃描測試。它通過在芯片的每個I/0腳附加一個邊界掃描單元(BoundaryScan Cell,BSC)以及一些附加的測試控制規(guī)律來實現(xiàn)。每個BSC有兩個數(shù)據(jù)通道:一個是測試數(shù)據(jù)通道測試數(shù)據(jù)輸入TDI(Test Data Input)、測試數(shù)據(jù)輸出TD0(Test Data 0utput);另一個是正常數(shù)據(jù)通道正常數(shù)據(jù)輸入NDI(Normal Data Input)、正常數(shù)據(jù)輸出ND0(Normal Data Output)。在正常工作狀態(tài)

4、,輸入和輸出數(shù)據(jù)可以自由通過每個BSC,正常工作數(shù)據(jù)從NDI進,從NDO出。在測試狀態(tài),可以挑選數(shù)據(jù)流淌的通道:對于輸入引腳,可以挑選從NDI或從TDI輸入數(shù)據(jù);對于輸出引腳,可以挑選從BSC輸出數(shù)據(jù)至NDO或至TDO。芯片輸入輸出引腳上的邊界掃描寄存器單元可以互相銜接起來,在芯片周圍形成一個掃描鏈。利用邊界掃描鏈就可以控制芯片的輸入,觀看芯片的輸出。普通來說,芯片都提供了若干條掃描鏈來完成測試功能。例如7TDMI核提供了3條掃描鏈。JTAG控制器主要由3部分組成:測試端口控制器(Test Access Port,TAP)、命令寄存器和數(shù)據(jù)寄存器。其中,TAP控制器是JTAG的核心控制器,需要

5、以下5個控制信號:TCK(邊界掃描時鐘)、TMS(JTAG測試模式挑選)、TDI(串行邊界掃描輸入數(shù)據(jù))、TDO(串行邊界掃描輸出數(shù)據(jù))和TRST(JTAG測試規(guī)律復位)。正是通過TAP控制器狀態(tài)的不斷變幻,JTAG控制器得以控制CPU的運行。TAP控制器的狀態(tài)機1所示。2 系統(tǒng)設計與實現(xiàn)2.1 硬件設計與實現(xiàn)本文采納A1tera的FPGA器件實現(xiàn)了圖2所示的硬件結(jié)構(gòu)。上圖列出了所需要的各類IPcore,其中大部分在Altera的開發(fā)包中可以找到,主要包括:Nios II/f CPU,50 MHz,Altera提供的免費軟核CPU。Avalon,用于數(shù)據(jù)通信。Flash控制器,用于控制和操作F

6、lash芯片。Flash芯片中靜態(tài)存放操作系統(tǒng)、1wIP協(xié)議棧及其他調(diào)試代碼。本系統(tǒng)中用法的Flash芯片為Am29LVl60D,容量為2MB。SDRAM控制器,用于控制和操作SDRAM芯片。SDRAM芯片用于動態(tài)執(zhí)行調(diào)試程序。本系統(tǒng)中用法的SDRAM芯片為三星公司的K4S640432,容量為8 MB。Ethernet控制器,用于控制和操作網(wǎng)卡芯片。仿真器用法這個以太網(wǎng)口與PC部分的集成開發(fā)環(huán)境通信。本系統(tǒng)中用法的網(wǎng)卡芯片為LAN91C111。ARM7TDMI JTAG IPcore,仿真調(diào)試IPcore,需要自主開發(fā)。其內(nèi)部規(guī)律用語言實現(xiàn),然后根據(jù)Altera IPcore的標準編寫IPco

7、re描述文件,最后掛在三態(tài)總線上,完成所有調(diào)試功能。TCK發(fā)生器,TCK脈沖產(chǎn)生規(guī)律,需要自主開發(fā)。它利用Nios的時鐘生成TCK信號,作為時鐘來驅(qū)動ARM7TDMI JTAG IPcore。它被做成一個小的功能模塊,通過PIO與三態(tài)總線通信。上述所介紹的IPcore用法Altera公司的開發(fā)工具 II編譯,最后下載到Altera FPGA中。本系統(tǒng)用法的CPGA芯片是Cyclone系列的EPlCl2。該芯片包含12 060個規(guī)律單元,具有239 616位RAM,片上集成2個鎖相環(huán),最大用戶I/O引腳達到249個。該硬件結(jié)構(gòu)很好地體現(xiàn)了SOPC的概念,全部的IPcore(包括Altera公司發(fā)

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

9、這樣硬件系統(tǒng)就完成了。2.2 軟件設計與實現(xiàn)本系統(tǒng)的軟件部分包括2個模塊:一是PC端的開發(fā)調(diào)試界面,二是調(diào)試器里面的控制程序。2個模塊通過TCP/IP協(xié)議通信。PC端開發(fā)調(diào)試界面的主要功能是接收用戶的調(diào)試指令,并顯示調(diào)試結(jié)果。這是系統(tǒng)與用戶舉行交互的唯一方式。開發(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ā)送出去,同時接收JTAG反饋信息并發(fā)送回用戶界面。本系統(tǒng)用法Nios IDE來開發(fā)。在Nios IDE的工程屬性中加入LwIP和C

10、/OS組件。主程序首先初始化C/0S,初始化LwIP協(xié)議棧,再啟動C/OS。全部程序控制放在C/OS的OSStart()任務里。該任務首先建立一個套接字,然后在死循環(huán)中等待數(shù)據(jù)到來。當收到來自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是否有效取決于指令代碼

11、。主控制程序收到數(shù)據(jù)包后,將指令代碼發(fā)往JTAG IPcore的命令端口地址,并按照指令代碼向參數(shù)端口地址發(fā)送指令參數(shù)1。假如該指令代碼需要指令參數(shù)2,則在下一個周期發(fā)送。在SOPC的硬件系統(tǒng)設計中,全部的外設都是統(tǒng)一編址。將JTAG IPcore的命令端口地址和參數(shù)端口地址分離設置成0 x00910850和0 x00910860,端口位寬為32位。因此在程序里,往IPcore發(fā)送命令只需要往地址0 x00910850寫32位數(shù)據(jù);往IPcore發(fā)送參數(shù)只需要往地址Ox00910860寫32位數(shù)據(jù)。反饋數(shù)據(jù)端口地址設置成Ox00910870,端口位寬為32位。因此在程序里,讀取JTAG反饋數(shù)據(jù)

12、只需讀取地址0 x00910870的32位數(shù)據(jù)。2.3 JTAG IPcore的實現(xiàn)JTAG IPcore是本調(diào)試器的核心,下面容易介紹一下該部分的實現(xiàn)。IPcore的接口3所示。該IPcore的對外接口由兩部分組成:一是與Avalon總線通信的接口部分,即圖中的左邊部分;二是與被調(diào)試CPU通信的接口部分,即圖中的右邊部分。另外,在囫圇實現(xiàn)中,定義了一些重要的寄存器?!皉eg3000:Otms,tdo分離用來存放完成當前操作的tms序列和tdo序列。像拜訪存儲器這樣的操作需要很長的tms序列和tdo序列,因此用了3001位。IPcore每次從這2個寄存器讀取1位后,就向?qū)囊_發(fā)送數(shù)據(jù)。td

13、i寄存器只用了134位,由于不是每個tdi輸入對JTAG調(diào)試都實用。parmreg寄存器用來存放總線上傳來的參數(shù)。tdidata寄存器用來存放從tdi引腳讀取的有效數(shù)據(jù),將被發(fā)送到Avalon總線。tdicolJnter寄存器用來對tdi輸入數(shù)據(jù)計數(shù)。Avalon總線上來的命令發(fā)送到ins31:0端口。在調(diào)試器主程序里推斷命令,做出相應的動作。當IPcore讀取到某個命令后,按照指令代碼查找對應的TMS指令序列,找到以后將指令序列送到tms寄存器。同時,通過parm31:O端口讀取指令參數(shù),按照指令參數(shù)生成對應的TDO序列,將其送到tdo寄存器。當兩個寄存器的內(nèi)容預備好后,在TCK時鐘的控制下,通過TMS引腳和TD0引腳分離串行輸出。在TDO引腳輸出的同時檢測TDI引腳,并在適當初機將TDI引腳上的數(shù)據(jù)讀入IPcore,經(jīng)過處理后發(fā)送回總線。因為TMS序列長度較長且其對應于各個調(diào)試指令是固定不變的,因此在本設計中,將TMS序列作成一個表,存放在IPcore里,而不是通過總線發(fā)送。需要時,按照不同的指令代碼來讀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論