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