国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種芯片調試方法與裝置的制造方法

      文檔序號:9375428閱讀:248來源:國知局
      一種芯片調試方法與裝置的制造方法
      【技術領域】
      [0001]本發(fā)明涉及一種芯片調試方法,特別的,涉及一種JTAG片上調試方法。
      【背景技術】
      [0002]隨著集成電路技術的快速發(fā)展,片上系統(tǒng)的功能和復雜度越來越高,在開發(fā)過程中,不可避免的會出現(xiàn)各種錯誤,只有經(jīng)過反復的調試修正才能滿足設計要求。據(jù)統(tǒng)計,調試一般占用整個系統(tǒng)開發(fā)時間的20% -50%,儼然已成為集成電路開發(fā)的關鍵環(huán)節(jié),因此調試工具的開發(fā)就變得尤為重要。
      [0003]如何有效地訪問集成電路內部的信號是對片上系統(tǒng)進行調試的關鍵。通過增加可訪問測試端口來實現(xiàn)調試的方法會使得芯片面積過大,引起信號完整性問題,甚至需要重新進行設計。這就需要在芯片面積與可訪問能力之間尋求一個平衡,即以盡量小的代價增加可訪問的信號。
      [0004]JTAG的出現(xiàn)解決了這一問題。目前,工業(yè)界和學術界都在IEEE1149.1的基礎上對JATG進行了廣泛的應用開發(fā),金輝等人發(fā)表的《基于JTAG標準的處理器片上調試的分析和實現(xiàn)》中設計的JTAG片上調試系統(tǒng)實現(xiàn)了調試的基本功能,但它對處理器內核進行了一系列修改;ARM的JTAG已經(jīng)很成熟,但是它的指令具有固定編碼長度,這對于指令插入等操作更容易,而IC設計應用范圍最廣的DW-8051指令的編碼長度和執(zhí)行周期并不相同。本發(fā)明為了增強該系統(tǒng)的可調試性以及提高系統(tǒng)可靠性,基于IEEE1149.1標準,在幾乎不改動內核的基礎上,設計了 JTAG片上調試系統(tǒng)。

      【發(fā)明內容】

      [0005]本發(fā)明涉及一種芯片調試方法,在不改變內核的條件下,解決了指令編碼長度不一以及指令執(zhí)行周期不一致給調試帶來的困難,實現(xiàn)了單步執(zhí)行、指令插入等功能。具體的,該方法包括以下步驟:
      [0006]系統(tǒng)接收調試信號,進入調試模式,同時進行時鐘切換,由調試時鐘控制芯片的內核與外設;
      [0007]根據(jù)調試需要,可選的進行單步調試、指令插入、內核執(zhí)行、外部數(shù)據(jù)存儲器調試、特殊寄存器調試或內部寄存器調試。
      [0008]其中,進入調試模式的途徑可以是狀態(tài)位置低、調試接口單元發(fā)出的請求信號、觸發(fā)斷點或者觸發(fā)觀察點,其中,只有在系統(tǒng)處于非安全模式下才可以通過后三種方法進入調試模式。
      [0009]其中,采用門控時鐘和多路選擇器來實現(xiàn)時鐘切換,即進入調試模式后,內核和外設的時鐘被門控,內核停止指令執(zhí)行,芯片調試模塊輸出狀態(tài)位有效信號,重新給外設時鐘驅動,這時外設時鐘為調試時鐘。
      [0010]其中,所述的內核程序重啟、運行、停止通過時鐘切換協(xié)助完成,即在調試過程中,內核時鐘是停止的,只有當單步執(zhí)行和插入指令執(zhí)行時,內核才有時鐘驅動,此時時鐘來源于調試模塊輸出調試時鐘。根據(jù)權利要求I所述的芯片調試方法,其特征在于,單步調試和指令插入操作時,內核與內部ram、外部數(shù)據(jù)存儲器、外設重新建立連接,操作完成連接關系解除。
      [0011]其中,系統(tǒng)處于調試狀態(tài)時,除了單步調試和指令插入的指令執(zhí)行階段,內核與內部寄存器,外部數(shù)據(jù)存儲器以及特殊功能寄存器是斷開連接的。
      [0012]相應的,本發(fā)明提供了一種芯片調試裝置,該裝置包括:信號接收模塊、調試狀態(tài)判斷模塊、單步調試模塊、指令插入模塊、內核執(zhí)行模塊、外部數(shù)據(jù)存儲器調試模塊、特殊寄存器調試模塊以及內部寄存器調試模塊。
      [0013]從上述技術方案可以看出,本發(fā)明具有以下有益效果:幾乎沒有改動內核,不需要繁多的現(xiàn)場保護措施,結構簡單、代價??;時鐘控制網(wǎng)絡利用門控時鐘和設計上嚴格保證門控單元控制信號的時序關系,時鐘切換具有穩(wěn)定有效的時鐘輸出;解決了指令編碼長度不一、指令執(zhí)行周期不一致給調試帶來的困難。
      【附圖說明】
      [0014]圖I芯片調試硬件結構圖;
      [0015]圖2調試入口及進入調試狀態(tài)后系統(tǒng)各部分的時鐘狀態(tài);
      [0016]圖3單步調試、指令插入流程圖。
      【具體實施方式】
      [0017]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
      [0018]如圖I所示,本發(fā)明實施例中芯片調硬件結構圖。硬件平臺采用8位MCU,該平臺采用DW-8051內核,采用16位地址總線,8位數(shù)據(jù)總線的方式,進行數(shù)據(jù)傳輸??梢钥闯觯鱿到y(tǒng)結構基于8051內核,包括ADC、CAN、LIN、PffM等外設,一個32k的外部數(shù)據(jù)存儲器,一個64k的程序存儲器和256Byte的內部ram。內核通過訪問特殊功能寄存器sfr,控制外設的工作狀態(tài),通過存儲器地址和數(shù)據(jù)線讀寫數(shù)據(jù)和程序存儲器,通過內部ram地址和數(shù)據(jù)線讀寫內部ram。
      [0019]具體的,本發(fā)明實例將結合系統(tǒng)進入調試模式、單步調試、指令插入、訪問內部ram、外部數(shù)據(jù)存儲器、特殊功能寄存器、退出調試狀態(tài)等過程分別進行詳細說明。
      [0020]首先,系統(tǒng)進入調試模式,根據(jù)本發(fā)明,系統(tǒng)可通過四條途徑進入調試模式,如圖2所示,下面將對這四種情況逐一說明。
      [0021]在實施例I中,復位時PO. 7/DEBUG置低,系統(tǒng)自動進入調試模式,之后指令寄存器中移入4’ bOOll,執(zhí)行go指令,系統(tǒng)由調試狀態(tài)回到正常工作狀態(tài)。
      [0022]在實施例2中,系統(tǒng)在非安全模式下,通過JTAG調試接口控制單元發(fā)出request請求信號,內核在執(zhí)行完當前指令后,進入調試狀態(tài),之后指令寄存器移入指令4’ b0100,執(zhí)行指令Debug_Register,選擇調試接口寄存器,配置斷點、觀察點、單步調試等調試信息;最后令寄存器中移入4’ bOOll,執(zhí)行go指令,系統(tǒng)由調試狀態(tài)回到正常工作狀態(tài)。
      [0023]在實施例3中,系統(tǒng)在非安全模式下,內核輸出pc值,即當前執(zhí)行指令的地址與斷點寄存器地址匹配,通過觸發(fā)斷點進入調試狀態(tài),內核在執(zhí)行完當前指令后,進入調試狀態(tài);之后執(zhí)行單步調試操作,指令插入操作;最后指令寄存器中移入4’ bOOll,執(zhí)行go指令,系統(tǒng)由調試狀態(tài)回到正常工作狀態(tài)。
      [0024]在實施例4中,系統(tǒng)在非安全模式下,內核訪問外部數(shù)據(jù)存儲器,且當前執(zhí)行的地址和數(shù)據(jù)與斷點寄存器地址和數(shù)據(jù)匹配,通過觸發(fā)觀察點進入調試狀態(tài),內核在執(zhí)行完當前指令后,進入調試狀態(tài);之后根據(jù)調試需要訪問內部ram、外部數(shù)據(jù)存儲器或特殊功能寄存器;最后指令寄存器中移入4’ bOOll,執(zhí)行go指令,系統(tǒng)由調試狀態(tài)回到正常工作狀態(tài)。
      [0025]系統(tǒng)進入調試模式的同時,采用門控時鐘和多路選擇器進行時鐘切換,內核和外設的時鐘被門控,內核停止指令執(zhí)行,調試模塊輸出狀態(tài)位有效信號,重新給外設時鐘驅動,這時外設時鐘為調試時鐘TCK。
      [0026]系統(tǒng)進入調試模式后,根據(jù)調試需要選擇單步調試、內核執(zhí)行等不同的調試過程,下面將結合圖3,對單步調試和內核執(zhí)行的過程進行詳細說明。
      [0027]在實施例5中,系統(tǒng)進入調試模式之后,進行單步調試操作,具體步驟如下:
      [0028]在步驟SlOl中,系統(tǒng)進入調試狀態(tài)后,指令寄存器移入指令4’ b0100,執(zhí)行指令Debug_Register,選擇調試接口寄存器,單步調試控制寄存器移入“ I ”,調試模塊發(fā)起單步調試命令。
      [0029]在步驟S102中:調試模塊輸出單步執(zhí)行時鐘使能信號,作為調試時鐘TCk門控控制信號,其輸出作為內核時鐘輸入;
      [0030]在步驟S103中:內核與程序存儲器重新建立起連接關系;內核與內部ram、外部數(shù)據(jù)存儲器、外設也重新建立連接關系;
      [0031]在步驟S104中:內核根據(jù)pc值,從程序存儲器取指令,開始執(zhí)行指令,這時pc值按照程序運行正常變化;
      [0032]在步驟S105中:當該條指令執(zhí)行完,調試模塊檢測到指令執(zhí)行完畢標志;調試模塊停止調試時鐘輸出到內核,內核程序運行停止,同時內核與程序存儲器斷開連接,單步調試操作完成。
      [0033]在實施例6中,系統(tǒng)進入調試模式之后,進行指令插入操作,具體步驟如下:
      [0034]在步驟S201中,系統(tǒng)進入調試狀態(tài)后,指令寄存
      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1