<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于SOPC的通用型JTAG調試器的設計

基于SOPC的通用型JTAG調試器的設計

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

  技術(shù)的發(fā)展,給仿真器指出了新的發(fā)展方向。所謂技術(shù),就是指用可編程技術(shù)將整個(gè)系統放在一塊硅片上。在傳統設計中電路級相互獨立的各個(gè)系統被集成到一塊芯片中。

本文引用地址:http://dyxdggzs.com/article/267831.htm

  的可重用性是一種先進(jìn)的設計思想。為了降低用戶(hù)的負擔,避免重復勞動(dòng),將一些在數字電路中常用但比較復雜的功能模塊,比如SDRAM控制器等,設計成可修改參數的模塊,用戶(hù)在設計系統時(shí)可以直接調用這些模塊。這些特定的功能模塊被稱(chēng)為IPcore(知識產(chǎn)權核)。由于IPcore通常是很成熟的,因此降低了開(kāi)發(fā)風(fēng)險。

  本文利用SOPC技術(shù)的特點(diǎn),設計一種通用型調試器。根據待調試目標板的CPU型號,將相應的調試IPcore和其他通用IPcore一起編譯生成一個(gè)嵌入式調試系統,下載到上,實(shí)現一個(gè)通用型調試器。在使用同一個(gè)硬件系統的情況下,可以選擇不同的調試IPcore來(lái)調試不同的CPU,而不同的IPcore可以方便的互相替換。該方法在設計靈活性、開(kāi)發(fā)成本、開(kāi)發(fā)周期、工作性能等方面都具有優(yōu)越性。具體的實(shí)現采用了Cyclone開(kāi)發(fā)板和Altera開(kāi)發(fā)套件。

  1 調試原理

  目前在線(xiàn)仿真調試器中使用最多的調試方法都是基于標準。1986年,聯(lián)合測試行動(dòng)組發(fā)表了最早的邊界掃描測試規范(Boundary Scan Testing),經(jīng)不斷改進(jìn),1990年被批準為IEEE Std 1149.1a標準,簡(jiǎn)稱(chēng)標準?,F在大多數復雜的IC芯片都帶有JTAG調試接口。本文所討論的調試方法也基于JTAG標準。下面首先簡(jiǎn)單介紹一下JTAG調試原理。

  JTAG調試原理的基礎是邊界掃描測試。它通過(guò)在芯片的每個(gè)I/0腳附加一個(gè)邊界掃描單元(BoundaryScan Cell,BSC)以及一些附加的測試控制邏輯來(lái)實(shí)現。每個(gè)BSC有兩個(gè)數據通道:一個(gè)是測試數據通道——測試數據輸入TDI(Test Data Input)、測試數據輸出TD0(Test Data 0utput);另一個(gè)是正常數據通道——正常數據輸入NDI(Normal Data Input)、正常數據輸出ND0(Normal Data Output)。在正常工作狀態(tài),輸入和輸出數據可以自由通過(guò)每個(gè)BSC,正常工作數據從NDI進(jìn),從NDO出。在測試狀態(tài),可以選擇數據流動(dòng)的通道:對于輸入引腳,可以選擇從NDI或從TDI輸入數據;對于輸出引腳,可以選擇從BSC輸出數據至NDO或至TDO。芯片輸入輸出引腳上的邊界掃描寄存器單元可以相互連接起來(lái),在芯片周?chē)纬梢粋€(gè)掃描鏈。利用邊界掃描鏈就可以控制芯片的輸入,觀(guān)察芯片的輸出。一般來(lái)說(shuō),芯片都提供了若干條掃描鏈來(lái)完成測試功能。例如ARM7TDMI核提供了3條掃描鏈。

  JTAG控制器主要由3部分組成:測試端口控制器(Test Access Port,TAP)、指令寄存器和數據寄存器。其中,TAP控制器是JTAG的核心控制器,需要以下5個(gè)控制信號:TCK(邊界掃描時(shí)鐘)、TMS(JTAG測試模式選擇)、TDI(串行邊界掃描輸入數據)、TDO(串行邊界掃描輸出數據)和TRST(JTAG測試邏輯復位)。正是通過(guò)TAP控制器狀態(tài)的不斷變化,JTAG控制器得以控制CPU的運行。TAP控制器的狀態(tài)機如圖1所示。

  

 

  2 系統設計與實(shí)現

  2.1 硬件設計與實(shí)現

  本文采用A1tera的器件實(shí)現了圖2所示的硬件結構。

  

 

  上圖列出了所需要的各類(lèi)IPcore,其中大部分在A(yíng)ltera的開(kāi)發(fā)包中可以找到,主要包括:

  Nios II/f CPU,50 MHz,Altera提供的免費軟核CPU。

  Avalon總線(xiàn),用于數據通信。

  Flash控制器,用于控制和操作Flash芯片。Flash芯片中靜態(tài)存放操作系統、1wIP協(xié)議棧及其他調試代碼。本系統中使用的Flash芯片為Am29LVl60D,容量為2MB。

  SDRAM控制器,用于控制和操作SDRAM芯片。SDRAM芯片用于動(dòng)態(tài)執行調試程序。本系統中使用的SDRAM芯片為三星公司的K4S640432,容量為8 MB。

  Ethernet控制器,用于控制和操作網(wǎng)卡芯片。仿真器使用這個(gè)以太網(wǎng)口與PC部分的集成開(kāi)發(fā)環(huán)境通信。本系統中使用的網(wǎng)卡芯片為L(cháng)AN91C111。


上一頁(yè) 1 2 下一頁(yè)

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>