国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發布時間:2015-11-10 14:07    發布者:designapp
關鍵詞: SOPC , JTAG , FPGA
  SOPC技術的發展,給仿真器指出了新的發展方向。所謂SOPC技術,就是指用可編程技術將整個系統放在一塊硅片上。在傳統設計中電路級相互獨立的各個系統被集成到一塊FPGA芯片中。
  SOPC的可重用性是一種先進的設計思想。為了降低用戶的負擔,避免重復勞動,將一些在數字電路中常用但比較復雜的功能模塊,比如SDRAM控制器等,設計成可修改參數的模塊,用戶在設計系統時可以直接調用這些模塊。這些特定的功能模塊被稱為IPcore(知識產權核)。由于IPcore通常是很成熟的,因此降低了開發風險。
  本文利用SOPC技術的特點,設計一種通用型調試器。根據待調試目標板的CPU型號,將相應的調試IPcore和其他通用IPcore一起編譯生成一個嵌入式調試系統,下載到FPGA上,實現一個通用型調試器。在使用同一個硬件系統的情況下,可以選擇不同的調試IPcore來調試不同的CPU,而不同的IPcore可以方便的互相替換。該方法在設計靈活性、開發成本、開發周期、工作性能等方面都具有優越性。具體的實現采用了Cyclone開發板和Altera開發套件。
  1 JTAG調試原理
  目前在線仿真調試器中使用最多的調試方法都是基于JTAG標準。1986年,聯合測試行動組發表了最早的邊界掃描測試規范(Boundary Scan Testing),經不斷改進,1990年被批準為IEEE Std 1149.1a標準,簡稱JTAG標準。現在大多數復雜的IC芯片都帶有JTAG調試接口。本文所討論的調試方法也基于JTAG標準。下面首先簡單介紹一下JTAG調試原理。
  JTAG調試原理的基礎是邊界掃描測試。它通過在芯片的每個I/0腳附加一個邊界掃描單元(BoundaryScan Cell,BSC)以及一些附加的測試控制邏輯來實現。每個BSC有兩個數據通道:一個是測試數據通道——測試數據輸入TDI(Test Data Input)、測試數據輸出TD0(Test Data 0utput);另一個是正常數據通道——正常數據輸入NDI(Normal Data Input)、正常數據輸出ND0(Normal Data Output)。在正常工作狀態,輸入和輸出數據可以自由通過每個BSC,正常工作數據從NDI進,從NDO出。在測試狀態,可以選擇數據流動的通道:對于輸入引腳,可以選擇從NDI或從TDI輸入數據;對于輸出引腳,可以選擇從BSC輸出數據至NDO或至TDO。芯片輸入輸出引腳上的邊界掃描寄存器單元可以相互連接起來,在芯片周圍形成一個掃描鏈。利用邊界掃描鏈就可以控制芯片的輸入,觀察芯片的輸出。一般來說,芯片都提供了若干條掃描鏈來完成測試功能。例如ARM7TDMI核提供了3條掃描鏈。
  JTAG控制器主要由3部分組成:測試端口控制器(Test Access Port,TAP)、指令寄存器和數據寄存器。其中,TAP控制器是JTAG的核心控制器,需要以下5個控制信號:TCK(邊界掃描時鐘)、TMS(JTAG測試模式選擇)、TDI(串行邊界掃描輸入數據)、TDO(串行邊界掃描輸出數據)和TRST(JTAG測試邏輯復位)。正是通過TAP控制器狀態的不斷變化,JTAG控制器得以控制CPU的運行。TAP控制器的狀態機如圖1所示。
  


  2 系統設計與實現
  2.1 硬件設計與實現
  本文采用A1tera的FPGA器件實現了圖2所示的硬件結構。
  


  上圖列出了所需要的各類IPcore,其中大部分在Altera的開發包中可以找到,主要包括:
  Nios II/f CPU,50 MHz,Altera提供的免費軟核CPU。
  Avalon總線,用于數據通信。
  Flash控制器,用于控制和操作Flash芯片。Flash芯片中靜態存放操作系統、1wIP協議棧及其他調試代碼。本系統中使用的Flash芯片為Am29LVl60D,容量為2MB。
  SDRAM控制器,用于控制和操作SDRAM芯片。SDRAM芯片用于動態執行調試程序。本系統中使用的SDRAM芯片為三星公司的K4S640432,容量為8 MB。
  Ethernet控制器,用于控制和操作網卡芯片。仿真器使用這個以太網口與PC部分的集成開發環境通信。本系統中使用的網卡芯片為LAN91C111。
                               
                                                               
                               
                  ARM7TDMI JTAG IPcore,仿真調試IPcore,需要自主開發。其內部邏輯用Verilog語言實現,然后按照Altera IPcore的標準編寫IPcore描述文件,最后掛在三態總線上,完成全部調試功能。
  TCK發生器,TCK脈沖產生邏輯,需要自主開發。它利用Nios的時鐘生成TCK信號,作為時鐘來驅動ARM7TDMI JTAG IPcore。它被做成一個小的功能模塊,通過PIO與三態總線通信。
  上述所介紹的IPcore使用Altera公司的開發工具Quartus II編譯,最后下載到Altera FPGA中。本系統使用的CPGA芯片是Cyclone系列的EPlCl2。該芯片包含12 060個邏輯單元,具有239 616位RAM,片上集成2個鎖相環,最大用戶I/O引腳達到249個。
  該硬件結構很好地體現了SOPC的概念,所有的IPcore(包括Altera公司發布和自主開發的)集成在一片FPGA上。一個片上系統就基本包含了在線仿真器的絕大部分功能,任何硬件結構設計的變化都在該片FPGA上,這使得通用在線仿真器這個概念得以實現。對其他芯片在線仿真,只需更改ARM7TDMI JTAG IPcore模塊,重新下載到FPGA中,便可以對另一種處理器芯片進行在線仿真。該IPcore用Verilog語言實現,保存為armjtag.v文件。通過Quartus II里的SOPC Builder可以將該文件生成組件,再將其加入Nios系統中。器件引腳分配好后,就在Quartus II里全編譯,最后生成ice.pof文件。將該文件通過編程器燒寫到配置芯片EPCS4里面。這樣硬件系統就完成了。
  2.2 軟件設計與實現
  本系統的軟件部分包括2個模塊:一是PC端的開發調試界面,二是調試器里面的控制程序。2個模塊通過TCP/IP協議通信。
  PC端開發調試界面的主要功能是接收用戶的調試命令,并顯示調試結果。這是系統與用戶進行交互的唯一方式。開發調試界面對上給用戶提供統一的調試功能接口,對下給調試器提供統一的調試命令。本系統使用VisualC++開發。
  調試器里的控制程序主要功能是將上層用戶調試命令轉換成特定的JTAG指令序列,并控制IPcore將其發送出去,同時接收JTAG反饋信息并發送回用戶界面。本系統使用Nios IDE來開發。在Nios IDE的工程屬性中加入LwIP和μC/OS組件。主程序首先初始化μC/0S,初始化LwIP協議棧,再啟動μC/OS。所有程序控制放在μC/OS的OSStart()任務里。該任務首先建立一個套接字,然后在死循環中等待數據到來。當收到來自PC端的調試命令后,從數據包中分離出命令字和參數,將命令字轉換成IPcore需要的調試命令,通過Avalon總線將其發送到IPcore,并等待IPcore工作完成。最后將IPcore傳回的數據打包發回PC端。
  目前提供的通用調試命令如表1所列。
  


  在TCP/IP數據包中,有效數據為12字節。第1至4字節是命令代碼,第5至8字節為命令參數1,第9到12字節為命令參數2。命令參數1和命令參數2是否有效取決于命令代碼。主控制程序收到數據包后,將命令代碼發往JTAG IPcore的指令端口地址,并根據命令代碼向參數端口地址發送命令參數1。如果該命令代碼需要命令參數2,則在下一個周期發送。
  在SOPC的硬件系統設計中,所有的外設都是統一編址。將JTAG IPcore的指令端口地址和參數端口地址分別設置成0x00910850和0x00910860,端口位寬為32位。因此在程序里,往IPcore發送指令只需要往地址0x00910850寫32位數據;往IPcore發送參數只需要往地址Ox00910860寫32位數據。反饋數據端口地址設置成Ox00910870,端口位寬為32位。因此在程序里,讀取JTAG反饋數據只需讀取地址0x00910870的32位數據。
  2.3 JTAG IPcore的實現
  JTAG IPcore是本調試器的核心,下面簡單介紹一下該部分的實現。
  IPcore的接口如圖3所示。
  


  該IPcore的對外接口由兩部分組成:一是與Avalon總線通信的接口部分,即圖中的左邊部分;二是與被調試CPU通信的接口部分,即圖中的右邊部分。另外,在整個實現中,定義了一些重要的寄存器。
  “reg[3000:O]tms,tdo"分別用來存放完成當前操作的tms序列和tdo序列。像訪問存儲器這樣的操作需要很長的tms序列和tdo序列,因此用了3001位。IPcore每次從這2個寄存器讀取1位后,就向對應的引腳發送數據。tdi寄存器只用了134位,因為不是每個tdi輸入對JTAG調試都有用。parmreg寄存器用來存放總線上傳來的參數。tdidata寄存器用來存放從tdi引腳讀取的有效數據,將被發送到Avalon總線。tdicolJnter寄存器用來對tdi輸入數據計數。
  Avalon總線上來的指令發送到ins[31:0]端口。在調試器主程序里判斷指令,做出相應的動作。當IPcore讀取到某個指令后,根據命令代碼查找對應的TMS命令序列,找到以后將命令序列送到tms寄存器。同時,通過parm[31:O]端口讀取命令參數,根據命令參數生成對應的TDO序列,將其送到tdo寄存器。當兩個寄存器的內容準備好后,在TCK時鐘的控制下,通過TMS引腳和TD0引腳分別串行輸出。在TDO引腳輸出的同時檢測TDI引腳,并在適當時機將TDI引腳上的數據讀入IPcore,經過處理后發送回總線。
  由于TMS序列長度較長且其對應于各個調試命令是固定不變的,因此在本設計中,將TMS序列作成一個表,存放在IPcore里,而不是通過總線發送。需要時,根據不同的命令代碼來讀取。這樣可以節約時間,提高調試速度。
  結 語
  本文介紹了一個基于SOPC的通用調試器的設計方案與實現過程。在開發過程中,IP復用、軟硬件協同設計等先進的嵌入式設計思想對縮短開發時間、降低開發風險起到了很好的作用。同時,自主開發的ARM7TDMIJTAG IPcore和C8051 JTAG IPcore體現了該調試器的通用性。接下來還將推出基于ARM其他系列和PowerPC系列的IPcore,本調試器的應用價值將得到進一步提高。
                               
                                                               
                               
               
本文地址:http://m.qingdxww.cn/thread-155901-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品一区二区三区免费 | 欧美成人www在线观看网页 | 狠狠综合欧美综合欧美色 | 中字毛片 | 四虎影视永久在线精品免费 | 国产一级特黄生活片 | 日韩在线观看精品 | 青青青手机视频在线观看 | 成人欧美一区二区三区黑人免费 | 欧美精品伊人久久 | 国产伦理片在线观看 | 黄网址大全免费观看免费 | 天天综合久久久网 | 极品美女高清视频在线观看 | 国产精品一区二区久久精品 | 四虎国产精品永久免费网址 | 久久精品国产2020 | 狠狠丁香激情久久综合 | 精品国产一区二区三区国产馆 | 国产69精品久久久久99 | 日韩精品在线视频 | 91华人在线 | 国产麻豆一级在线观看 | 国产99欧美精品久久精品久久 | 一级毛片免费全部播放 | 中国女人特级毛片 | 青青青青青青青青草 | 国产午夜精品不卡观看 | 在线观看日韩一区 | 国产在线视频99 | 日韩精品视频在线观看免费 | 99精品视频在线成人精彩视频 | 免费黄色网战 | 中文字幕免费人成乱码中国 | 欧美大片大片播放网站 | 最近中文字幕完先锋资源 | 99 久久99久久精品免观看 | 日韩中文字幕在线亚洲一区 | 国产国语一级a毛片高清视频 | h视频在线免费看 | 精品一区二区三区免费毛片爱 |