引言 JTAG(聯(lián)合測試行動(dòng)小組)是一種國際標準測試協(xié)議(IEEE 1149.1兼容),目前主要用于芯片內部測試,F在多數的高級器件都支持JTAG協(xié)議,如DSP、FPGA器件等。標準的JTAG接口是4線(xiàn):TMS(模式選擇)、TCK(時(shí)鐘)、TDI(數據輸入)、TDO(數據輸出線(xiàn))。本文利用JTAG標準協(xié)議設計一種針對同類(lèi)FPGA進(jìn)行動(dòng)態(tài)重構配置的重構控制器。 重構控制器硬件系統組成 本文介紹一種基于“ARM處理器+FPGA”架構的重構控制器,重構控制器中的FPGA能夠根據 ARM處理器傳送來(lái)的命令,對目標可編程器件JTAG接口進(jìn)行控制,并模擬JTAG接口中TAP 狀態(tài)機產(chǎn)生激勵信號(TMS、TDI、TCK序列),向目標可編程器件的JTAG接口提供所需的激勵,使目標可編程器件內的TAP 狀態(tài)機進(jìn)行狀態(tài)轉換,將指令和數據掃描到FPGA內部邊界掃描電路指令寄存器和數據寄存器中。完成一次目標可編程器件配置,實(shí)現用戶(hù)此時(shí)所要求功能,在下一時(shí)段,可根據用戶(hù)新的要求,調用重構控制器內部存儲器中不同方案在系統重新配置目標可編程器件,實(shí)現硬件的時(shí)分復用,靈活快速的改變系統功能,節省邏輯資源,滿(mǎn)足大規模應用需求。 其主要功能是控制按照用戶(hù)不同需求調用不同的方案配置目標可編程器件。它主要包括ARM處理器、FPGA、Flash 存儲器,各功能部件主要功能如下: (1) ARM處理器,其主要功能是控制模擬JTAG接口的FPGA讀取 Flash存儲器中的重構方案,實(shí)現在系統配置; (2) FPGA協(xié)處理器選用 Xilinx公司SPARTEN3AN系列,是基于非易失性存儲的FPGA,自身帶有 PROM,它作為外部總線(xiàn)和ARM控制器之間的雙端口,主要功能是模擬JTAG接口實(shí)現TAP控制器時(shí)序,完成配置方案數據的并串轉換并輸出至外部總線(xiàn); (3)FLASH存儲器容量為32M×16bit,用于處理器的上電引導、存放多種重構配置方案。由于要求的存儲容量較大,采用SPANSION公司[1]S29GL512P(32M×16bit)的存儲空間,訪(fǎng)問(wèn)速度 110ns,可以達到25ns快速頁(yè)存取和相應的90ns隨機存取時(shí)間; (4) 測試線(xiàn)TCK 、TMS 、TDI 和TDO,是重構控制器向目標可編程器件提供所需的JTAG TAP 激勵,分別控制目標多個(gè)FPGA的重構配置和反饋重構信息。 系統實(shí)現 重構控制器 本文設計的重構控制器采用ARM微處理器作為主控制器,以FPGA芯片作為協(xié)處理器配合主控制器工作。用戶(hù)事先根據需求設計出不同的配置方案,并存儲在重構控制器內部的存儲器中,上電后,重構控制器就可以按需求將不同設計方案分時(shí)定位到目標可編程器件內,同時(shí)保持其他部分電路功能正常,實(shí)現在系統靈活配置,提高系統工作效率。 重構控制器框圖如圖1所示。ARM執行的初始化工作包括程序更新加載運行,FPGA參數設定等 (見(jiàn)圖2)。FPGA初始化包括設定內部命令寄存器和邏輯狀態(tài)的初始值、內部緩沖區數據清零等。ARM處理器一方面通過(guò)ARM總線(xiàn)讀取外部Flash中的配置方案,將其存儲到TDI模塊的緩存中;另一方面重構控制器中模擬TAP控制器的FPGA,通過(guò)執行 ARM處理器發(fā)出的配置指令,模擬產(chǎn)生TCK 、TMS 、TDI 和TDO信號,作為目標可編程器件的JTAG接口激勵,與目標可編程器件的JTAG口串聯(lián)成菊花鏈,對目標可編程器件進(jìn)行在系統編程。 ![]() 重構控制器模塊 ARM接口模塊 如圖1所示,ARM接口模塊主要作為FPGA和ARM處理器之間的接口,完成ARM的命令控制和參數傳遞。當系統上電后,ARM處理器將預先設定好的各種配置信息傳送至ARM接口模塊,完成對FPGA及各外圍模塊進(jìn)行配置。系統正常運行時(shí),該模塊處于閑置狀態(tài)。直到ARM處理器請求進(jìn)行新的配置時(shí),ARM接口模塊再次傳遞新的配置信息,完成目標板重新配置。 ![]() 仲裁與時(shí)序控制模塊 仲裁與時(shí)序控制模塊主要完成對重構控制器內部各模塊的仲裁與時(shí)序控制。協(xié)調各模塊之間的數據流向。其具體的功能包括提供內部各模塊所需的時(shí)鐘信號,并進(jìn)行相應的時(shí)序控制;以及對內部數據流的切換控制。 TCK,TMS,TDI,TDO產(chǎn)生模塊 TCK: JTAG配置時(shí)鐘輸入,所有基于JTAG的操作都必須同步于JTAG時(shí)鐘信號TCK。關(guān)鍵時(shí)序關(guān)系是:TMS和TDI采樣于TCK的上升邊沿,一個(gè)新的 TDO值將于TCK下降邊沿后出現,因此一般情況下JTAG的時(shí)鐘不會(huì )太高。 TMS:模式選擇,控制JTAG狀態(tài)轉移,同步時(shí)鐘TCK上升沿時(shí)刻TMS的狀態(tài)決定狀態(tài)轉移過(guò)程。 TDI :配置數據輸入,配置數據在TCK的上升沿采樣進(jìn)入數據移位寄存器(SDR); TDO:配置數據輸出,在TCK的下降沿從移位寄存器移出,輸出數據與輸入到TDI的數據應不出現倒置。 目標板 目標板上被重構的FPGA由支持重構的Xilinx公司的VIRTEX-4系列FPGA來(lái)實(shí)現,以菊花鏈方式串聯(lián),支持JTAG 邊界掃描模式配置。 JTAG 邊界掃描配置的FPGA實(shí)現 TAP控制器是16個(gè)狀態(tài)的有限狀態(tài)機,主要為JTAG接口提供控制邏輯。主要有四大狀態(tài):復位(RESET),空閑(idle),數據寄存器移位(SDR)和指令寄存器移位(SIR)狀態(tài), 在TCK,TMS的控制下,根據輸入的配置指令實(shí)現狀態(tài)的轉移。Xlinx公司Virtex4系列 FPGA器件的邊界掃描指令集中有三條專(zhuān)用于配置的邊界掃描指令:CFG_IN、BYPASS和JSTART(10個(gè)bit位)。其中CFG_IN的代碼:0101001111;BYPASS的代碼:1111111111;JSTART的代碼:0011001111。執行CFG_IN指令可以訪(fǎng)問(wèn)器件內部的配置總線(xiàn),通過(guò)串行移入配置文件中的命令和數據執行對內部配置寄存器的讀寫(xiě),從而完成對FPGA的配置。 BYPASS指令在對多個(gè)目標器件配置時(shí)可以旁路不需要重配置的器件。JSTART指令使用TCK時(shí)鐘觸發(fā)啟動(dòng)時(shí)序,使FPGA完成從配置狀態(tài)到操作狀態(tài)的轉換,激活FPGA。圖3為可重構控制器模擬TAP 狀態(tài)機配置指令執行的狀態(tài)轉移圖。 ![]() 系統仿真 仿真在A(yíng)ctive-HDL7.1軟件下運行,所有仿真是基于對單器件配置的過(guò)程。 圖4為JTAG 邊界掃描方式核心控制TAP 狀態(tài)機仿真波形 ,本文把整個(gè)下載模擬過(guò)程設計為三步,分別為T(mén)AP_Reset、TAP_CFG、TAP_JStart,ARM分別給三步提供一個(gè)啟動(dòng)命令,三個(gè)步驟分時(shí)按順序由自己獨立的狀態(tài)機實(shí)現,由圖可以看出狀態(tài)銜接正確。 ![]() 圖5為各狀態(tài)機個(gè)狀態(tài)下接口輸出波形,TCK、TMS、TDI時(shí)序和輸出值滿(mǎn)足JTAG掃描方式配置Virtex-4系列FPGA接口激勵要求。 ![]() 本系統ARM工作時(shí)鐘為50MHz,TCK輸出為25MHz,為便于觀(guān)察,TAP_CFG部分狀態(tài)機中SDR狀態(tài)項實(shí)際由配置方案文件bit位數決定,仿真圖有所壓縮。 如果目標板FPGA是Virtex-4 XC4VLX25,其配置方案文件為995KB,整個(gè)配置過(guò)程大約所需時(shí)間327ms。 結語(yǔ) 本文介紹的重構控制器具有相對通用性,適用于對同一類(lèi)FPGA芯片實(shí)現可編程器件在系統配置,使得硬件信息(可編程器件的配置信息)也可以象軟件程序一樣被動(dòng)態(tài)調用或修改,從而動(dòng)態(tài)的改變電路的結構和功能,對電路中出現的錯誤和故障進(jìn)行實(shí)時(shí)動(dòng)態(tài)重構,達到高可靠性的目的,有效節省邏輯資源,通過(guò)設計和仿真驗證了此方法的可行性。 參考文獻: [1] Xilinx, Virtex-4 Configuration Guide, UG071 (v1.5). 2007 [2] IEEE Std.1149.1—2001, Test Access Port and Boundary Scan Architecture[S], IEEE, 2001 [3] Xilinx, Configuration and Readback of the Spartan-II and Spartan-IIE Families[D]. 2002 [4] 趙蕙. 邊界掃描測試技術(shù)在遠程實(shí)驗系統中的應用研究[D]. 江蘇大學(xué), 2005 [5] ARM. ARM9TDMI Technical Reference Manual[EB/OL]. 2008 作者:方超 龔龍慶 張寶利 西安微電子技術(shù)研究所 來(lái)源:電子產(chǎn)品世界 2010-2 |