<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的通用在線(xiàn)調試器設計

基于SoPC的通用在線(xiàn)調試器設計

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


參數指令傳遞模塊用于合并總線(xiàn)讀寫(xiě)模塊接收的參數和指令。當寫(xiě)有效且主控模塊沒(méi)有工作時(shí),將從Avalon總線(xiàn)接收的前128位數據拼接起來(lái)存放在參數寄存器中,后32位數據由指令寄存器接收;當寫(xiě)無(wú)效時(shí)停止輸入,并且啟動(dòng)狀態(tài)機模塊。參數寄存器和指令寄存器均在在本模塊中定義。

狀態(tài)機模塊負責仿真JTAG狀態(tài)機中的16個(gè)狀態(tài),憑借主控模塊中TMS序列驅動(dòng)實(shí)現狀態(tài)間的轉移,同時(shí)向JTAG的TMS端口送出TMS序列,以控制目標機中JTAG狀態(tài)機的運行。在SHIFT_IR和SHIFT_DR狀態(tài)下,相應的目標機指令(如ARM指令)和數據通過(guò)JTAG的TDI端口送入目標機。

目標機TDO序列接收模塊負責接收目標機傳來(lái)的數據,并將其存放在相應的寄存器中。

主控模塊在JTAG狀態(tài)機運行之前,根據參數指令傳遞模塊中指令寄存器的值更新?tīng)顟B(tài)機的TMS和TDI序列數據;然后初始化TMS寄存器、TDI寄存器、標志寄存器,通過(guò)標志寄存器的值判斷JTAG狀態(tài)機的運行;在其運行結束后,在狀態(tài)機結束處理子模塊中把目標機傳來(lái)的數據送到輸出寄存器,并設置讀有效以啟動(dòng)總線(xiàn)讀寫(xiě)模塊。

1.2 JTAG IP core接口程序

仿真子系統中,JTAG IP core接口為JTAG IPcore子系統與NiosII CPU硬件環(huán)境之間提供數據交互服務(wù)。接口程序分成宏定義、寫(xiě)數據、讀數據3個(gè)部分。

宏定義部分,JTAG IP core中的操作指令包括:進(jìn)入調試狀態(tài)、獲取CPU IDCODE、讀/寫(xiě)寄存器、讀/寫(xiě)內存、設置斷點(diǎn)、設置觀(guān)察點(diǎn)、跳出調試狀態(tài)等。

寫(xiě)數據部分,目標機的內存地址和寄存器號作為參數數據傳遞到JTAG IP core子系統中,調試指令(即宏定義中的指令)與參數一起被寫(xiě)入JTAG IP core子系統中。部分程序代碼如下:



其中,pi表示參數數據(i=0,…,3),ir表示指令。IOWR_32DIRECT(JTAGTEST_0_BASE,ADDR(i),pi)表示將pi或ir的值寫(xiě)入JTAG IP core。

讀數據部分的功能是從JTAG IP core子系統中讀取目標機傳回的數據。當仿真子系統的Nios II CPU準備從JTAG IP core子系統中讀取數據時(shí),JTAG IP core子系統中的寄存器數據不一定是有效數據,因而需設置一個(gè)寄存器(命名為read_ready)來(lái)循環(huán)檢測數據是否有效。如果寄存器的值不為0,則允許讀取數據。



2 JTAG IP core子系統仿真驗證

JTAG IP core子系統完成后,為了驗證邏輯的正確性,在QuartusII環(huán)境下對該IP core模塊進(jìn)行了仿真驗證。在仿真中,將NiosII CPU給出的觸發(fā)信號cLK修改為2分頻,以便能較直觀(guān)地看清觸發(fā)子系統允許的TCK信號的產(chǎn)生。當JTAG IP core接口程序被啟動(dòng)時(shí),總線(xiàn)讀寫(xiě)模塊開(kāi)始從Avalon總線(xiàn)上讀取參數和指令(如圖4所示,writedata、address、instOreg_in[0,1,4]及ir寄存器中出現數據)。當參數指令傳遞模塊中的palm和ir寄存器中出現數據后,主控模塊開(kāi)始工作;同時(shí),主控模塊的busy_flag信號觸發(fā)狀態(tài)機模塊工作。從圖中可看到,TMS序列出現數據,TDI端口開(kāi)始送出數據。JTAG IP core模塊能按照預定輸出TMS和TDI調試序列,說(shuō)明該IPcore在邏輯上是正確的。

結 語(yǔ)

本文提出了以知識產(chǎn)權核(即IP core)復用技術(shù)為主的思路以及實(shí)現方法。下一步,可以ARM、MIPS系列芯片,結合本文的解決方案實(shí)現具體的IP core,同時(shí)增加多線(xiàn)程調試等優(yōu)化工作。

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

評論


相關(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>