一種jtag接口與內(nèi)部用戶(hù)邏輯之間的連接裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及JTAG技術(shù)領(lǐng)域,尤其涉及一種JTAG接口與芯片內(nèi)部用戶(hù)邏輯之間的連 接裝置。
【背景技術(shù)】
[0002] 近年來(lái),隨著微處理器技術(shù)的發(fā)展,越來(lái)越多的處理器和邏輯器件采用JTAG (Joint Test Action Group)接口作為其內(nèi)核與PC機(jī)通信的中介。JTAG接口是IEEE1149.1 規(guī)定的一種邊界掃描協(xié)議,JTAG協(xié)議常用于芯片內(nèi)部測(cè)試,現(xiàn)在多數(shù)的高級(jí)器件都支持 JTAG協(xié)議,如ARM、DSP、FPGA(Field-Programmable Gate Array)器件等。在FPGA中,JTAG接 口可作為配置功能模塊的一部分,PC機(jī)可通過(guò)JTAG接口對(duì)FPGA作編程配置,也可以通過(guò) JTAG接口訪問(wèn)內(nèi)部用戶(hù)邏輯(User APP IP) Wser APP IP可以是調(diào)試工具,比如內(nèi)嵌Debug core邏輯分析儀、SERDES調(diào)試工具、虛擬10工具,也可以是一些測(cè)試寄存器、DEMO設(shè)計(jì)接口 等。
[0003] 現(xiàn)有的JTAG接口與內(nèi)部用戶(hù)邏輯連接方法,如圖1所示,把JTAG接口連接一個(gè)控制 器處理模塊,再以控制器處理模塊為中心,輸出多路總線去連接各個(gè)內(nèi)部用戶(hù)邏輯,屬于星 型結(jié)構(gòu)。當(dāng)有η個(gè)內(nèi)部用戶(hù)邏輯時(shí),從控制器處理模塊輸出η路總線去連接各個(gè)內(nèi)部用戶(hù)邏 輯。
[0004] 在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下技術(shù)問(wèn)題:控制器 處理模塊到內(nèi)部用戶(hù)邏輯的接口連線過(guò)多,會(huì)占用過(guò)多的FPGA布線資源,由于控制器處理 模塊作為核心處理模塊占用較多的邏輯資源使得系統(tǒng)時(shí)序性能不高。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供的一種JTAG接口與內(nèi)部用戶(hù)邏輯之間的連接裝置,能夠減少FPGA布線 資源,提尚系統(tǒng)時(shí)序性能。
[0006] 本發(fā)明提供一種JTAG接口與內(nèi)部用戶(hù)邏輯之間的連接裝置,所述裝置包括集線器 模塊,JTAG接口通過(guò)JTAG總線與所述集線器模塊連接,所述集線器模塊通過(guò)一路集線器接 口總線連接多個(gè)內(nèi)部用戶(hù)邏輯,所述多個(gè)內(nèi)部用戶(hù)邏輯通過(guò)對(duì)應(yīng)所述各內(nèi)部用戶(hù)邏輯的片 選信號(hào)選擇通信。
[0007] 可選地,所述集線器模塊包括:
[0008] 判斷解析模塊,用于對(duì)所述加載到JTAG接口上的數(shù)據(jù)進(jìn)行奇偶幀判斷解析,奇數(shù) 幀時(shí)傳輸控制信息,偶數(shù)幀時(shí)傳輸傳遞給內(nèi)部用戶(hù)邏輯的數(shù)據(jù)信息;
[0009] 寄存器值生成模塊,用于當(dāng)所述加載到JTAG接口上的數(shù)據(jù)為奇數(shù)幀時(shí),對(duì)所述數(shù) 據(jù)進(jìn)行串并變換,得到控制寄存器值;
[0010]集線器接口總線數(shù)據(jù)生成模塊,用于當(dāng)所述加載到JTAG接口上的數(shù)據(jù)為偶數(shù)幀 時(shí),將所述數(shù)據(jù)直接傳輸給集線器接口總線;并當(dāng)所述加載到JTAG接口上的數(shù)據(jù)為奇數(shù)幀 時(shí),根據(jù)所述寄存器值生成模塊得到的寄存器值獲得集線器接口總線上的每個(gè)內(nèi)部用戶(hù)邏 輯的片選信號(hào)以及各個(gè)內(nèi)部用戶(hù)邏輯中的邏輯子模塊標(biāo)識(shí)信號(hào)。
[0011] 可選地,所述集線器接口總線數(shù)據(jù)生成模塊還用于將來(lái)自所述JTAG總線上的JTAG 的CAPTURE DR狀態(tài)位信號(hào)傳遞至集線器接口總線上。
[0012] 可選地,所述集線器模塊還包括:
[0013] 集線器接收模塊,用于根據(jù)所述控制寄存器值hub_data選擇接收來(lái)自各內(nèi)部用戶(hù) 邏輯回傳的JTAG的輸出信號(hào);
[0014] JTAG輸出信號(hào)傳輸模塊,用于當(dāng)所述加載到JTAG接口上的數(shù)據(jù)為奇數(shù)幀時(shí)將所述 控制信息傳輸至JTAG總線,當(dāng)所述加載到JTAG接口上的數(shù)據(jù)為偶數(shù)幀時(shí)將傳輸至所述集線 器接收模塊的JTAG輸出信號(hào)回送至JTAG總線。
[0015] 本發(fā)明實(shí)施例提供的JTAG接口與內(nèi)部用戶(hù)邏輯之間的連接裝置,多個(gè)內(nèi)部用戶(hù)邏 輯連接在同一個(gè)總線上,通過(guò)片選信號(hào)選擇通信,由于該裝置只有一路總線,故而減少了芯 片的布線資源。同時(shí)集線器模塊處理也簡(jiǎn)單化,標(biāo)準(zhǔn)化,同時(shí)優(yōu)化了邏輯結(jié)構(gòu),提高了時(shí)序 性能。
【附圖說(shuō)明】
[0016] 圖1為現(xiàn)有技術(shù)中JTAG接口與內(nèi)部用戶(hù)邏輯連接方案結(jié)構(gòu)示意圖;
[0017]圖2為本發(fā)明實(shí)施例提供的JTAG接口與內(nèi)部用戶(hù)邏輯之間的連接裝置的結(jié)構(gòu)示意 圖;
[0018] 圖3為本發(fā)明實(shí)施例提供的集線器模塊的結(jié)構(gòu)示意圖;
[0019] 圖4為本發(fā)明實(shí)施例提供的集線器模塊與JTAG接口的時(shí)序圖;
[0020] 圖5為本發(fā)明實(shí)施例提供的集線器模塊與內(nèi)部用戶(hù)邏輯接口的時(shí)序圖。
【具體實(shí)施方式】
[0021] 為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅 僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù) 人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。 [00 22]在JTAG調(diào)試當(dāng)中,邊界掃描(Boundary-Scan)是一個(gè)很重要的概念。邊界掃描技術(shù) 的基本思想是在靠近芯片的輸入輸出管腳上增加一個(gè)移位寄存器單元。因?yàn)檫@些移位寄存 器單元都分布在芯片的邊界上(周?chē)?,所以被稱(chēng)為邊界掃描寄存器(Boundary-Scan Register Cell)。當(dāng)芯片處于調(diào)試狀態(tài)的時(shí)候,這些邊界掃描寄存器可以將芯片和外圍的 輸入輸出隔離開(kāi)來(lái)。通過(guò)這些邊界掃描寄存器單元,可以實(shí)現(xiàn)對(duì)芯片輸入輸出信號(hào)的觀察 和控制。對(duì)于芯片的輸入管腳,可以通過(guò)與之相連的邊界掃描寄存器單元把信號(hào)(數(shù)據(jù))加 載到該管腳中去;對(duì)于芯片的輸出管腳,也可以通過(guò)與之相連的邊界掃描寄存器"捕獲" (CAPTURE)該管腳上的輸出信號(hào)。芯片輸入輸出管腳上的邊界掃描(移位)寄存器單元可以 相互連接起來(lái),在芯片的周?chē)纬梢粋€(gè)邊界掃描鏈(Boundary-Scan Chain)。邊界掃描鏈可 以串行的輸入和輸出,通過(guò)相應(yīng)的時(shí)鐘信號(hào)和控制信號(hào),就可以方便的觀察和控制處在調(diào) 試狀態(tài)下的芯片。
[0023] 在IEEE 1149. 1標(biāo)準(zhǔn)里面,寄存器被分為兩大類(lèi):數(shù)據(jù)寄存器(DR -Data Register)和指令寄存器(IR - Instruction Register)。邊界掃描鏈屬于數(shù)據(jù)寄存器中很 重要的一種,邊界掃描鏈用來(lái)實(shí)現(xiàn)對(duì)芯片的輸入輸出的觀察和控制。而指令寄存器用來(lái)實(shí) 現(xiàn)對(duì)數(shù)據(jù)寄存器的控制,例如:在芯片提供的所有邊界掃描鏈中,選擇一條指定的邊界掃描 鏈作為當(dāng)前的目標(biāo)掃描鏈,并作為訪問(wèn)對(duì)象。
[0024] 在JTAG中,TAP(Test Access Port)是一個(gè)通用的端口,通過(guò)TAP可以訪問(wèn)芯片提 供的所有數(shù)據(jù)寄存器(DR)和指令寄存器(IR)。對(duì)整個(gè)TAP的控制是通過(guò)JTAG TAP控制器來(lái) 完成的。TAP總共包括5個(gè)信號(hào)接口 了0^1^、了01、了00和了1?1'。一般,我們見(jiàn)到的開(kāi)發(fā)板上都 有一個(gè)JTAG接口,該JTAG接口的主要信號(hào)接口就是這5個(gè)。其中TCK(Test Clock Input)為 TAP的操作提供了一個(gè)獨(dú)立的、基本的時(shí)鐘信號(hào),TAP的所有操作都是通過(guò)這個(gè)時(shí)鐘信號(hào)來(lái) 驅(qū)動(dòng)的。TMS(Test Mode Selection Input)信號(hào)用來(lái)控制TAP狀態(tài)機(jī)的轉(zhuǎn)換,通過(guò)TMS信號(hào), 可以控制TAP在不同的狀態(tài)間相互轉(zhuǎn)換,TMS信號(hào)在TCK的上升沿有效。TDI (Test Data Input)是數(shù)據(jù)輸入的接口,所有要輸入到特定寄存器的數(shù)據(jù)都是通過(guò)TDI接口一位一位串 行輸入的。TD0(Test Data Output)是數(shù)據(jù)輸出的接口,所有要從特定的寄存器中輸出的數(shù) 據(jù)都是通過(guò)TD0接口一位一位串行輸出的。TRST(Test Reset Input)可以用來(lái)對(duì)TAP控制器 進(jìn)行復(fù)位(初始化),不過(guò)這個(gè)信號(hào)接口在IEEE 1149.1標(biāo)準(zhǔn)里是可選的,并不是強(qiáng)制要求 的,因?yàn)橥ㄟ^(guò)TMS也可以對(duì)TAP控制器進(jìn)行復(fù)位(初始化)。
[0025] TAP控制器的狀態(tài)包括:
[0026] Test-Logic Reset:
[0027] 系統(tǒng)上電后,TAP Controller自動(dòng)進(jìn)入該狀態(tài),在該狀態(tài)下,測(cè)試部分的邏輯電路 全部被禁用,以保證芯片核心邏輯電路的正常工作。
[0028] Run-Test/Idle:
[0029] 這個(gè)是TAP Controlle