專(zhuān)利名稱(chēng):多核微處理器jtag調(diào)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器芯片的基于JTAG標(biāo)準(zhǔn)的調(diào)試方法,尤 其是對(duì)多核微處理器芯片進(jìn)行JTAG調(diào)試的方法。
背景技術(shù):
隨著問(wèn)題規(guī)模的增大和對(duì)實(shí)時(shí)性要求的提高,單核微處理 器的處理能力已難以滿(mǎn)足需求。多核技術(shù)為設(shè)備開(kāi)發(fā)人員帶來(lái)了前所未有 的優(yōu)勢(shì)體驗(yàn),包括更高的處理器性能、更高的功率利用效率和針對(duì)嵌入式 設(shè)備的更小的物理內(nèi)存體積。然而,多核結(jié)構(gòu)顯著增加了系統(tǒng)的復(fù)雜度, 隨著單芯片內(nèi)多核結(jié)構(gòu)的普及,多處理器系統(tǒng)的調(diào)試問(wèn)題越顯突出。
目前,大多數(shù)IP ( Intellectual Property,知識(shí)產(chǎn)權(quán))模塊都采用IEEE 1149. 1標(biāo)準(zhǔn)的JTAG接口作為其調(diào)試接口 ,這就帶來(lái)了 一個(gè)問(wèn)題這個(gè)芯片上 有多個(gè)TAP (Test Access Port,測(cè)試訪問(wèn)端口 )控制器。 一些IP提供商已 經(jīng)利用自己開(kāi)發(fā)的芯片級(jí)通道支持調(diào)試單個(gè)IP模塊。為了能夠?qū)Χ鄠€(gè)內(nèi)核進(jìn) 行調(diào)試, 一個(gè)標(biāo)準(zhǔn)的可訪問(wèn)所有TAP控制器的芯片級(jí)通道十分必要。另外一
個(gè)復(fù)雜的系統(tǒng)芯片上,多個(gè)不同的內(nèi)核會(huì)使用不同的調(diào)試工具,如何讓這些 單個(gè)IP模塊的調(diào)試工具繼續(xù)發(fā)揮作用也是一個(gè)重要問(wèn)題。如果僅僅在多核微 處理器芯片上集成多個(gè)需要調(diào)試的IP就需要開(kāi)發(fā)新的調(diào)試軟件顯然是一種 浪費(fèi)。最好的辦法是能夠重用那些針對(duì)單IP的調(diào)試工具,軟件上不作修改或 只做少量的修改。
在多內(nèi)核處理器中,開(kāi)發(fā)人員希望通過(guò)片外單一的JTAG接口訪問(wèn)片內(nèi)集 成的多個(gè)內(nèi)核就可以對(duì)這些內(nèi)核進(jìn)行調(diào)試。目前,多核處理器JTAG調(diào)試最常 用的方法是菊花鏈連接(Daisy-chain)方法,所有IP核的TDI (Test Data
Input,測(cè)試數(shù)據(jù)輸入)和TD0 (Test Data Output,測(cè)試數(shù)據(jù)輸出)連接成一 個(gè)串行的鏈,IP,的TDO連接到IP,+, 1,"為IP核的個(gè)數(shù))的TDI。
控制信號(hào)TCK(Test Clock,測(cè)試時(shí)鐘)、TMS(Test Mode Select,測(cè)試模式選 擇)和TRST(Test Reset,測(cè)試復(fù)位)連接到所有IP核的TAP控制器上。在指令 掃描操作時(shí),指令被串行移入每個(gè)IP核TAP的指令寄存器,這樣就可以同時(shí) 對(duì)多個(gè)TAP控制器進(jìn)行訪問(wèn),捕捉同一時(shí)刻各個(gè)IP核邊界上的輸入和輸出信 號(hào),對(duì)于互聯(lián)測(cè)試非常有價(jià)值。然而,這種單芯片上的菊花鏈連接方式存在 兩個(gè)缺點(diǎn)首先,它與IEEE 1149. l協(xié)議不兼容;其次,它使得對(duì)n個(gè)IP核中 的單個(gè)TAP控制器的測(cè)試訪問(wèn)變得復(fù)雜。
為達(dá)到與IEEE 1149. l協(xié)議的兼容性,有人提出一種增加TAP連接模塊TLM (TAP Linking Module)的方案,在多核微處理器芯片上只提供一個(gè)完全與 IEEE 1149. 1協(xié)議兼容的TAP接口 ,對(duì)外提供TDI、 TMS、 TCK、 TRST和TD05個(gè) 引腳,仿真器的JTAG調(diào)試接口通過(guò)TLM連接到各個(gè)TAP, TLM負(fù)責(zé)把JTAG調(diào)試 接口的信號(hào)連接到某一個(gè)指定的要測(cè)試的IP核的TAP上,而芯片內(nèi)部IP核的 TAP與TLM進(jìn)行互連,每個(gè)TAP除了綁定的JTAG調(diào)試接口的5根信號(hào)線外,還增 加了選擇信號(hào)SEL和使能信號(hào)ENA,通過(guò)SEL和ENA確定哪一個(gè)或哪幾個(gè)IP核的 TAP連接到仿真器的JTAG調(diào)試接口上。TLM根據(jù)SEL和ENA將仿真器的測(cè)試信號(hào) TDI、 TMS、 TCK、 TRST傳送到片內(nèi)某個(gè)TAP相應(yīng)的TDI、 TMS、 TCK和TRST端口, 將該TAP的TDO端口輸出的數(shù)據(jù)通過(guò)TDO引腳經(jīng)過(guò)JTAG仿真器送達(dá)調(diào)試主機(jī), 以實(shí)現(xiàn)對(duì)多核芯片中的某個(gè)IP核的JTAG調(diào)試。但這種方法必須為IP核內(nèi)部的 TAP增加額外的選擇和使能信號(hào),這就必須修改IP核內(nèi)部的TAP,將ENA和SEL 信號(hào)加入TAP的設(shè)計(jì)中。每個(gè)TAP的TAP控制器從TLM獲得的EM作為輸入使能
或禁止該TAP, TAP中的指令寄存器增加SEL信號(hào)輸出到TLM以響應(yīng)掃入其指令
寄存器的指令,這使硬件設(shè)計(jì)變得復(fù)雜,如果IP核是硬核,這種修改是不可 能的。由于TLM可以連接多個(gè)IP核的TAP,且硬件上對(duì)TAP的修改使得除了要
把原有的單IP核的調(diào)試軟件進(jìn)行修改外還要將修改后的單核調(diào)試軟件集成 為多核芯片的調(diào)試軟件,這也使得調(diào)試軟件的設(shè)計(jì)變得復(fù)雜,可重用性不好。 因此,多核處理器調(diào)試領(lǐng)域亟需一種能夠兼容IEEE1149. l協(xié)議,可重用各個(gè)內(nèi)核的調(diào)試方法,對(duì)多核處理器各個(gè)內(nèi)核進(jìn)行調(diào)試。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題就是如何基于IEEE 1149. l標(biāo)準(zhǔn),使得能夠通過(guò) 單一JTAG調(diào)試接口對(duì)多核處理器內(nèi)集成的多個(gè)IP核進(jìn)行JTAG調(diào)試。
本發(fā)明的技術(shù)方案包括以下步驟
第一步,在具有n個(gè)IP核的多核微處理器中增加一個(gè)芯片級(jí)的TAP控 制器一一調(diào)試支持模塊DSM(Debug Support Module)。
調(diào)試支持模塊的設(shè) 計(jì)方法是
調(diào)試支持模塊是整個(gè)多核芯片的調(diào)試接口,它具有與IEEE 1149.1協(xié) 議兼容的JTAG接口,除具有TDI、 TMS、 TCK、 TRST、 TDO這五個(gè)引腳與仿 真器的JTAG調(diào)試接口相連外,還添加一個(gè)多核調(diào)試選擇引腳接受鏈選命 令的使能信號(hào)MDS (Muti卜core Debug Select); MDS由仿真器產(chǎn)生,選 擇JTAG仿真器的E固O(píng) (Emulation 0,仿真腳O)或是EMU1 ((Emulation 1, 仿真腳l)引腳作為MDS信號(hào)的輸出引腳。調(diào)試支持模塊與片內(nèi)所有的IP 核都相連,它將從仿真器輸入的測(cè)試信號(hào)TDI、 TMS、 TCK和TRST信號(hào)傳 送到片內(nèi)某個(gè)TAP相應(yīng)的TDI、 TMS、 TCK和TRST端口,將該TAP的TD0
端口輸出的數(shù)據(jù)通過(guò)TDO引腳經(jīng)過(guò)JTAG仿真器送達(dá)調(diào)試主機(jī),以實(shí)現(xiàn)對(duì) 多核芯片中的某個(gè)IP核的JTAG調(diào)試。
調(diào)試支持模塊由鏈選指令寄存器、譯碼器、第一多路選擇器和第二多 路選擇器組成。JTAG仿真器的TCK和TRST直接與每個(gè)IP核的TAP控制器
相連。鏈選指令寄存器的長(zhǎng)度為<formula>formula see original document page 8</formula>n為多核芯片中
集成的IP核的個(gè)數(shù))位,它的輸入端與JTAG仿真器的TDI和EMUO (或 E畫(huà)l)引腳相連,從JTAG仿真器獲得TDI和MDS,其輸出端與譯碼器相連, MDS為低電平且保持A個(gè)TCK時(shí)鐘時(shí),串行輸入的TDI逐位移入鏈選指令 寄存器,MDS在第^ + l個(gè)TCK時(shí)鐘的上升沿由低電平變?yōu)楦唠娖剑藭r(shí)鏈 選指令寄存器將從TDI獲得的"立二進(jìn)制碼作為鏈選指令碼傳送給譯碼 器;譯碼器的輸入端與EMUO (或EMU1)引腳和鏈選指令寄存器相連,輸 出端與第一多路選擇器和第二多路選擇器相連,MDS為高電平時(shí),譯碼器 將從鏈選指令寄存器輸入的鏈選指令碼譯碼成某個(gè)IP核的標(biāo)識(shí)號(hào)(即IP 核的序號(hào)),并將譯碼結(jié)果傳送給第一多路選擇器和第二多路選擇器;第 一多路選擇器的輸入端既與JTAG仿真器的TDI、 TMS相連,又與譯碼器的 輸出端相連,輸出端與所有IP核的TAP的TDI和TMS相連,它從JTAG仿 真器獲得TDI和TMS,從譯碼器獲得譯碼結(jié)果,根據(jù)譯碼結(jié)果將TDI和TMS 送給某個(gè)IP核TAP的TDI和TMS;第二多路選擇器的輸入端既與所有IP 核TAP的TDO相連,又與譯碼器的輸出端相連,其輸出端與JTAG仿真器 的TDO相連,根據(jù)譯碼結(jié)果將某個(gè)IP核傳來(lái)的TDO送到JTAG仿真器的TDO 引腳。
第二步,將原有單IP核的調(diào)試軟件集成為多核芯片調(diào)試軟件,并在多
核芯片的調(diào)試軟件中增加一條鏈選命令,鏈選命令格式為int SelectIP(int IpNum),功能是將IpNum發(fā)送到仿真器,參數(shù)IpNum是各IP 核的標(biāo)識(shí)號(hào),當(dāng)IpNum為y時(shí),表示選擇第y 個(gè)IP核進(jìn)行調(diào)試。
第三步,由JTAG仿真器保持yfc個(gè)TCK時(shí)鐘低電平的MDS信號(hào)。方法是 在JTAG仿真器的可編程邏輯中定義一個(gè)長(zhǎng)度為p 卩og^] + l(A^2 w為自然數(shù))
(
)位、計(jì)數(shù)單位為的計(jì)數(shù)器Counter,
1og2A:(^^2",w為自然數(shù))
Counter初值置為/t, JTAG仿真器接收到調(diào)試主機(jī)發(fā)送的鏈選命令后, Counter在TCK時(shí)鐘控制下開(kāi)始計(jì)數(shù),將EMUO (或EMUl )引腳的輸出置為 低電平,同時(shí)將從調(diào)試主機(jī)傳來(lái)的IpNum從仿真器TDI引腳串行輸出; Counter的值減到0時(shí),將EMUO (或EMUl )引腳的輸出置為高電平。這樣 在JTAG仿真器的可編程邏輯中就生成了 *個(gè)TCK周期低電平的MDS信號(hào)。
第四步,采用調(diào)試支持模塊對(duì)多核微處理器進(jìn)行調(diào)試,方法是
步驟一,調(diào)試主機(jī)執(zhí)行鏈選命令,將參數(shù)IpNum送給HAG仿真器。
步驟二, JTAG仿真器收到IpNum后,生成保持A個(gè)TCK時(shí)鐘低電平的 MDS信號(hào),由仿真器的EMUO (或EMUl )引腳輸出到調(diào)試支持模塊的多核調(diào) 試選擇引腳,同時(shí)將IpNum逐位輸出到JTAG調(diào)試接口的TDI引腳。
步驟三,當(dāng)MDS為低電平時(shí)(前A個(gè)TCK時(shí)鐘),TDI串行移入調(diào)試支 持模塊的鏈選指令寄存器,當(dāng)MDS由低電平變?yōu)楦唠娖綍r(shí)(第A + l個(gè)TCK
時(shí)鐘),譯碼器開(kāi)始譯碼。
步驟四,根據(jù)IpNum的不同,譯碼器將鏈選指令碼譯碼為第/個(gè)IP核
的標(biāo)識(shí)號(hào),第一多路選擇器收到譯碼結(jié)果后將從JTAG仿真器獲得的TDI 和TMS傳送到第/個(gè)IP核的TAP的TDI,和TMS,,第二多路選擇器收到譯 碼結(jié)果后將該IP核TAP的輸出TDO,傳送到芯片調(diào)試接口的TDO然后經(jīng)仿 真器送達(dá)調(diào)試主機(jī),調(diào)試主機(jī)調(diào)用集成在多核芯片調(diào)試軟件中的IP,原有 的單IP核調(diào)試軟件對(duì)IP,.進(jìn)行調(diào)試。
采用本發(fā)明可以得到以下技術(shù)效果
1. 采用本發(fā)明開(kāi)發(fā)人員可經(jīng)由一個(gè)JTAG調(diào)試接口調(diào)試多核芯片中多個(gè)離 散狀態(tài)的內(nèi)核,它避免了菊花鏈方法中所遇到的比特移位隨著集成的內(nèi) 核的數(shù)目而改變的問(wèn)題,因而在多核芯片結(jié)構(gòu)中具有更高的性能。
2. 只需在多核芯片的調(diào)試軟件中增加簡(jiǎn)單的鏈選命令,執(zhí)行完鏈選命令 之后,調(diào)用集成在多核芯片調(diào)試軟件中的IP核原有的調(diào)試軟件就可對(duì) 多核芯片任意一個(gè)IP核進(jìn)行調(diào)試,因此原有IP核的調(diào)試軟件可重用。 在主機(jī)端,無(wú)論是原有IP核的片上調(diào)試硬件還是調(diào)試軟件都可以得到 很好的重用性。在多核芯片中,無(wú)論芯片中集成的是哪種結(jié)構(gòu)的IP核, 只需將這些IP核原有的調(diào)試接口與調(diào)試支持模塊進(jìn)行互連,便可在多 核芯片中復(fù)用這些IP核的片上調(diào)試硬件和原有的調(diào)試功能。
3. 是一種可高度擴(kuò)展的解決方法,由于鏈選指令寄存器為A位,可支持多 達(dá)^條鏈選命令,因此能夠支持多達(dá)^個(gè)內(nèi)核的調(diào)試。
圖1是背景技術(shù)采用菊花鏈方法對(duì)多核微處理器進(jìn)行調(diào)試時(shí)多個(gè)TAP的連
接示意圖2是釆用增加TLM方法對(duì)多核微處理器進(jìn)行調(diào)試時(shí)的多個(gè)TAP的連接示 意圖3是本發(fā)明調(diào)試支持模塊與片內(nèi)各個(gè)內(nèi)核TAP的互連結(jié)構(gòu)圖; 圖4是本發(fā)明調(diào)試支持模塊內(nèi)部邏輯結(jié)構(gòu)圖5是本發(fā)明調(diào)試支持模塊執(zhí)行鏈選命令時(shí)所要求的MDS信號(hào)時(shí)序圖。
具體實(shí)施例方式
圖l是釆用菊花鏈連接方法對(duì)多核微處理器進(jìn)行調(diào)試時(shí)n個(gè)TAP的連接圖 IPi的TAP的TDI連接到片外JTAG調(diào)試接口的TDI, IP,的TAP的TDO連接到IP,+1 ( 1
l)TAP的TDI, IP"TAP的TDO連接到片外JTAG調(diào)試接口的TDO。各個(gè)IP 核TAP的TDI信號(hào)和TDO信號(hào)連接成一個(gè)串行的鏈,控制信號(hào)TMS、 TCK和TRST 則是所有TAP共享,即片外JTAG調(diào)試接口的TMS、 TCK和TRST與所有TAP的TMS、 TCK和TRST都相連。這種方法在PCB板級(jí)的芯片互連測(cè)試中應(yīng)用非常普遍,也 可在單芯片中使用,實(shí)現(xiàn)對(duì)所有嵌入的TAP的訪問(wèn)以實(shí)現(xiàn)對(duì)多核微處理器各 個(gè)IP核的調(diào)試。但它與IEEE 1149. l協(xié)議不兼容,且菊花鏈的連接方式使得 對(duì)w個(gè)IP核中的單個(gè)TAP的測(cè)試訪問(wèn)變得復(fù)雜。
圖2是釆用增加TLM方法對(duì)多核微處理器進(jìn)行調(diào)試時(shí)的多個(gè)TAP的連接示 意圖。TLM作為芯片唯一的調(diào)試接口,它的輸入是TDI、 TMS、 TCK和TRST,輸 出是TD0。每個(gè)IP核TAP的5針信號(hào)TDI、 TMS、 TCK、 TRST和TDO都與TLM進(jìn)行互 連,TLM負(fù)責(zé)把JTAG調(diào)試接口的信號(hào)連接到某一個(gè)指定的要測(cè)試的IP核的TAP 上。這種方法需要為每個(gè)TAP增加選擇信號(hào)SEL和使能信號(hào)ENA與TLM相連,通
過(guò)SEL和EM確定選擇哪一個(gè)或哪幾個(gè)IP核的TAP連接到芯片的TAP接口上。因 此這種方法必須修改IP核內(nèi)部的TAP,將SEL和ENA加入TAP的設(shè)計(jì)中,使硬件 設(shè)計(jì)變得復(fù)雜。由于TLM可以連接多個(gè)IP核的TAP,且硬件上對(duì)TAP的修改使 得原有IP核的調(diào)試軟件必須進(jìn)行修改后才能集成在多核芯片的調(diào)試軟件中, 這使得調(diào)試軟件的設(shè)計(jì)變得復(fù)雜,可重用性不好。
圖3是本發(fā)明調(diào)試支持模塊與片內(nèi)各個(gè)內(nèi)核TAP的互連結(jié)構(gòu)圖。 調(diào)試支持模塊除具有TDI、 TMS、 TCK、 TRST、 TDO這五個(gè)輸入引腳與仿真 器的JTAG調(diào)試接口相連外,還有一個(gè)多核調(diào)試選擇引腳接受鏈選命令的使能 信號(hào)隨S, MDS由仿真器產(chǎn)生,JTAG仿真器的EMUO (或EMU1 )引腳是MDS信號(hào) 的輸入引腳。調(diào)試支持模塊的輸出TDI, TDI" TMSi TMS" TCLN, TRST—N 分別與IP! IP"的TAP的TDI、 TMS、 TCK、 TRST相連(即IP,的TAP的TDI、 TMS、 TCK、 TRST分別為輸入信號(hào)TDI,、 TMS, 、 TCK—N、 TRST—N),調(diào)試支持模塊將 仿真器的測(cè)試信號(hào)TDI、 TMS、 TCK和TRST信號(hào)傳送到片內(nèi)要調(diào)試的某個(gè)IP核 的TAP相應(yīng)的TDI、TMS、 TCK和TRST端口;調(diào)試支持模塊另有TD0i TD0"這"個(gè) 輸入分別與IPi IP"的TAP的輸出信號(hào)TDO相連,將被調(diào)試的IP核的TAP輸出 的數(shù)據(jù)通過(guò)TDO引腳經(jīng)過(guò)JTAG仿真器送達(dá)調(diào)試主機(jī)。調(diào)試支持模塊的輸入 TDI、 TMS、 TCK、 TRST、 MDS和輸出TDO連接至片外作為整個(gè)芯片統(tǒng)一的JTAG 接口,通過(guò)調(diào)試支持模塊這樣一個(gè)芯片級(jí)TAP控制器通道對(duì)多核芯片上的各 個(gè)IP核進(jìn)行JTAG調(diào)試。
圖4是本發(fā)明調(diào)試支持模塊邏輯結(jié)構(gòu)圖。調(diào)試支持模塊由鏈選指令寄 存器、譯碼器、第一多路選擇器和第二多路選擇器組成。鏈選指令寄存器 的輸入端與JTAG仿真器的TDI和EMUO (或EMU1 )相連,從仿真器獲得TDI
和MDS,輸出端與譯碼器相連,將鏈選指令碼送到譯碼器;譯碼器的輸入端與EMU0(或EMU1)和鏈選指令寄存器相連,輸出端與第一多路選擇器和第 二多路選擇器相連;第二多路選擇器的輸入端分別與所有IP核的TAP的 TDO和譯碼器的輸出端相連,其輸出端與JTAG仿真器的TD0相連,它在譯 碼結(jié)果的控制下,選擇某個(gè)IP核TAP的TDO送到仿真器的TDO引腳。MDS 信號(hào)為低電平時(shí),使能調(diào)試支持模塊中的鏈選指令寄存器,TDI串行移入鏈 選指令寄存器中。MDS信號(hào)維持/t個(gè)TCK時(shí)鐘周期之后由低電平變?yōu)楦唠娖剑?此時(shí)鏈選指令寄存器中存入的便是鏈選指令碼。當(dāng)鏈選命令是選擇IP, (1 < ;'《")時(shí),第一多路選擇器將TDI與IP,的測(cè)試輸入信號(hào)TDI,連接,TMS與IP,的測(cè)試輸入信號(hào)TMS,連接,第二多路選擇器將IP,的測(cè)試輸出信號(hào) TDO,連接到片外測(cè)試輸出信號(hào)TD0上。此時(shí),在芯片JTAG調(diào)試接口 (TDI、 TMS、 TCK、 TRST、 TD0 )和IP,的調(diào)試接口 (TDI, 、 TMS,、 TCK—N、 TRST—N、 TD07 )之間形成了一條通路,便可通過(guò)片外唯一的JTAG調(diào)試接口對(duì)片內(nèi)集 成的IP.,進(jìn)行JTAG調(diào)試。
圖5是調(diào)試支持模塊執(zhí)行鏈選命令時(shí)所需的MDS信號(hào)的時(shí)序圖JTAG 仿真器接收到鏈選命令請(qǐng)求后產(chǎn)生yt個(gè)TCK時(shí)鐘低電平的MDS信號(hào),由JTAG 仿真器的EMUO (或EMU1)引腳輸出到調(diào)試支持模塊的多核調(diào)試選擇引腳, 同時(shí)參數(shù)IpNum由JTAG仿真器的TDI引腳輸出到調(diào)試支持模塊的TDI。
權(quán)利要求
1. 一種多核微處理器JTAG調(diào)試方法,其特征在于包括以下步驟:第一步,在具有n個(gè)IP核的多核微處理器中增加一個(gè)芯片級(jí)的TAP控制器——調(diào)試支持模塊DSM作為整個(gè)多核芯片的調(diào)試接口,方法是:調(diào)試支持模塊具有與IEEE1149.1協(xié)議兼容的JTAG接口,除具有TDI、TMS、TCK、TRST、TDO這五個(gè)引腳與仿真器的JTAG調(diào)試接口相連外,還添加一個(gè)多核調(diào)試選擇引腳接受鏈選命令的使能信號(hào)MDS,MDS由仿真器產(chǎn)生,選擇JTAG仿真器的仿真腳0即EMU0或仿真腳1即EMU1引腳作為MDS信號(hào)的輸出引腳;調(diào)試支持模塊與片內(nèi)所有的IP核都相連,它將從仿真器輸入的測(cè)試信號(hào)TDI、TMS、TCK和TRST信號(hào)傳送到片內(nèi)某個(gè)TAP相應(yīng)的TDI、TMS、TCK和TRST端口,將該TAP的TDO端口輸出的數(shù)據(jù)通過(guò)TDO引腳經(jīng)過(guò)JTAG仿真器送達(dá)調(diào)試主機(jī);調(diào)試支持模塊由鏈選指令寄存器、譯碼器、第一多路選擇器和第二多路選擇器組成;JTAG仿真器的TCK和TRST直接與每個(gè)IP核的TAP控制器相連;鏈選指令寄存器的長(zhǎng)度為k位,它的輸入端與JTAG仿真器的TDI和EMU0或EMU1引腳相連,從JTAG仿真器獲得TDI和MDS,其輸出端與譯碼器相連,MDS為低電平且保持k個(gè)TCK時(shí)鐘時(shí),串行輸入的TDI逐位移入鏈選指令寄存器,MDS在第k+1個(gè)TCK時(shí)鐘的上升沿由低電平變?yōu)楦唠娖剑藭r(shí)鏈選指令寄存器將從TDI獲得的k位二進(jìn)制碼作為鏈選指令碼傳送給譯碼器;譯碼器的輸入端與EMU0或EMU1引腳和鏈選指令寄存器相連,輸出端與第一多路選擇器和第二多路選擇器相連,MDS為高電平時(shí),譯碼器將從鏈選指令寄存器輸入的鏈選指令碼譯碼成某個(gè)IP核的標(biāo)識(shí)號(hào),并將譯碼結(jié)果傳送給第一多路選擇器和第二多路選擇器;第一多路選擇器的輸入端既與JTAG仿真器的TDI、TMS相連,又與譯碼器的輸出端相連,輸出端與所有IP核的TAP的TDI和TMS相連,它從JTAG仿真器獲得TDI和TMS,從譯碼器獲得譯碼結(jié)果,根據(jù)譯碼結(jié)果將TDI和TMS送給某個(gè)IP核TAP的TDI和TMS;第二多路選擇器的輸入端既與所有IP核TAP的TDO相連,又與譯碼器的輸出端相連,其輸出端與JTAG仿真器的TDO相連,根據(jù)譯碼結(jié)果將某個(gè)IP核傳來(lái)的TDO送到JTAG仿真器的TDO引腳;第二步,將原有單IP核的調(diào)試軟件集成為多核芯片調(diào)試軟件,并在多核芯片的調(diào)試軟件中增加一條鏈選命令,鏈選命令格式為:int SelectIP(intIpNum),功能是將IpNum發(fā)送到仿真器,參數(shù)IpNum是各IP核的標(biāo)識(shí)號(hào),當(dāng)IpNum為j時(shí),表示選擇第j個(gè)IP核進(jìn)行調(diào)試,1≤j≤n;第三步,由JTAG仿真器保持k個(gè)TCK時(shí)鐘低電平的MDS信號(hào),方法是:在JTAG仿真器的可編程邏輯中定義一個(gè)長(zhǎng)度為p位、計(jì)數(shù)單位為k的計(jì)數(shù)器Counter,將Counter初值置為k,JTAG仿真器接收到調(diào)試主機(jī)發(fā)送的鏈選命令后,Counter在TCK時(shí)鐘控制下開(kāi)始計(jì)數(shù),將EMU0或EMU1引腳的輸出置為低電平,同時(shí)將從調(diào)試主機(jī)傳來(lái)的IpNum從仿真器TDI引腳串行輸出;Counter的值減到0時(shí),將EMU0或EMU1引腳的輸出置為高電平,這樣在JTAG仿真器的可編程邏輯中就生成了k個(gè)TCK周期低電平的MDS信號(hào);第四步,采用調(diào)試支持模塊對(duì)多核微處理器進(jìn)行調(diào)試,方法是:步驟一,調(diào)試主機(jī)執(zhí)行鏈選命令,將參數(shù)IpNum送給JTAG仿真器;步驟二,JTAG仿真器收到IpNum后,生成保持k個(gè)TCK時(shí)鐘低電平的MDS信號(hào),由仿真器的EMU0或EMU1引腳輸出到調(diào)試支持模塊的多核調(diào)試選擇引腳,同時(shí)將IpNum逐位輸出到JTAG調(diào)試接口的TDI引腳;步驟三,當(dāng)MDS為低電平時(shí),TDI串行移入調(diào)試支持模塊的鏈選指令寄存器,當(dāng)MDS由低電平變?yōu)楦唠娖綍r(shí),譯碼器開(kāi)始譯碼;步驟四,根據(jù)IpNum的不同,譯碼器將鏈選指令碼譯碼為第j個(gè)IP核的標(biāo)識(shí)號(hào),第一多路選擇器收到譯碼結(jié)果后將從JTAG仿真器獲得的TDI和TMS傳送到第j個(gè)IP核的TAP的TDIj和TMSj,第二多路選擇器收到譯碼結(jié)果后將該IP核TAP的輸出TDOj傳送到芯片調(diào)試接口的TDO然后經(jīng)仿真器送達(dá)調(diào)試主機(jī),調(diào)試主機(jī)調(diào)用集成在多核芯片調(diào)試軟件中的IPj原有的單IP核調(diào)試軟件對(duì)IPj進(jìn)行調(diào)試。
全文摘要
本發(fā)明公開(kāi)了一種多核微處理器JTAG調(diào)試方法,要解決的技術(shù)問(wèn)題是通過(guò)單一JTAG調(diào)試接口對(duì)多核處理器內(nèi)多個(gè)IP核進(jìn)行調(diào)試。技術(shù)方案是先在多核微處理器中增加一個(gè)由鏈選指令寄存器、譯碼器、第一多路選擇器、第二多路選擇器組成的調(diào)試支持模塊作為整個(gè)多核芯片的調(diào)試接口,且在多核芯片的調(diào)試軟件中增加一條鏈選命令,然后由JTAG仿真器保持k個(gè)TCK時(shí)鐘低電平的鏈選命令的使能信號(hào),最后采用調(diào)試支持模塊對(duì)多核微處理器進(jìn)行調(diào)試。采用本發(fā)明可經(jīng)由一個(gè)JTAG調(diào)試接口調(diào)試多核芯片中多個(gè)內(nèi)核,支持的內(nèi)核數(shù)多達(dá)2<sup>k</sup>個(gè),且原有單核的調(diào)試軟件可重用。
文檔編號(hào)G01R31/3185GK101382583SQ20081014344
公開(kāi)日2009年3月11日 申請(qǐng)日期2008年10月30日 優(yōu)先權(quán)日2008年10月30日
發(fā)明者孫海燕, 嘯 扈, 陳書(shū)明, 陳躍躍, 高曉梅 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)