基于Flash和JTAG的FPGA系統(tǒng)
3.1 設(shè)計(jì)的FPGA實(shí)現(xiàn)
控制FPGA實(shí)現(xiàn)的邏輯控制功能包括與上位機(jī)軟件iMPACT和串口工具通信、燒寫Flash以及配置FPGA器件。基于模塊化的設(shè)計(jì)思想將具體功能分解成多個(gè)模塊,如圖3所示,數(shù)據(jù)與地址通道上的下標(biāo)為其通道寬度。各模塊作用如下:
1,RS232接口模塊接收來(lái)自串口工具的配置文件地址及重配置信號(hào),配置文件地址譯碼后得到對(duì)Flash存儲(chǔ)器進(jìn)行各種操作時(shí)的起始地址,重配置信號(hào)則用來(lái)觸發(fā)FPGA配置文件的切換。
2,JTAG模塊包括JTAG接口模塊、數(shù)據(jù)緩存模塊及燒寫控制模塊。JTAG接口接收J(rèn)TAG下載線上的JTAG指令和數(shù)據(jù)后,若為FERASE或FPGM指令則向燒寫控制模塊發(fā)送擦除或燒寫信號(hào),若為FDATA0指令則接收TDI上的串行數(shù)據(jù)并存入數(shù)據(jù)緩存模塊中。數(shù)據(jù)緩存模塊利用片內(nèi)BRAM來(lái)實(shí)現(xiàn),可存放一幀配置碼流。燒寫控制模塊接收到擦除信號(hào)后,產(chǎn)生擦除命令和操作地址并發(fā)往狀態(tài)選擇模塊;接收到燒寫信號(hào)后,從數(shù)據(jù)緩存模塊讀取配置碼流,產(chǎn)生的寫命令、操作地址發(fā)往狀態(tài)選擇模塊,操作數(shù)據(jù)則直接發(fā)往Flash控制器。
3,FPGA配置模塊接收到來(lái)自RS232接口模塊的起始地址和重配置信號(hào)后,先向待配FPGA器件發(fā)送初始化信號(hào),等待初始化完成后向狀態(tài)選擇模塊連續(xù)發(fā)送讀命令和操作地址,并利用從Flash控制器返回的配置碼流來(lái)配置FPGA器件。
4,狀態(tài)選擇模塊根據(jù)外部的燒寫/配置信號(hào)選擇Flash控制器的輸入,從而決定控制FPGA目前處于燒寫Flash存儲(chǔ)器狀態(tài)還是配置FPGA器件狀態(tài)。若為“0”,則輸入燒寫控制模塊產(chǎn)生的命令和地址,控制FPGA處于燒寫Flash存儲(chǔ)器狀態(tài);若為“1”,則輸入配置控制模塊產(chǎn)生的命令和地址,控制FPGA處于配置FPGA器件狀態(tài)。
Flash控制器響應(yīng)這些輸入的命令、操作地址和數(shù)據(jù),產(chǎn)生與命令相對(duì)應(yīng)的Flash存儲(chǔ)器控制時(shí)序,并返回Flash存儲(chǔ)器的數(shù)據(jù)輸出。
3.2 性能實(shí)際測(cè)試
本方案處于編程模式時(shí),系統(tǒng)能夠通過(guò)JTAG接口和串口與上位機(jī)軟件進(jìn)行正常的通信,在加載合適的配置文件后,可以完成Flash存儲(chǔ)器的擦除和燒寫操作,實(shí)測(cè)燒寫速度為160 Kb.需要燒寫多個(gè)配置文件時(shí),通過(guò)串口工具發(fā)送配置文件地址,即可對(duì)不同的Flash空間進(jìn)行操作。
處于配置模式時(shí),以Virtex系列中XCV1000型FPGA為配置對(duì)象,其配置文件大小約為5.84 Mb,實(shí)測(cè)一次配置時(shí)間為60 ms,計(jì)算得知配置速度約為97 Mb/s,遠(yuǎn)大于System ACE解決方案的30 Mb/s.如需切換不同的配置文件,從串口工具發(fā)送配置文件地址及重配置信號(hào),即可實(shí)現(xiàn)多個(gè)配置文件的實(shí)時(shí)切換。
結(jié)語(yǔ)
本文分析了各種傳輸協(xié)議接口以及System ACE多配置解決方案的優(yōu)缺點(diǎn),根據(jù)實(shí)際應(yīng)用需求,提出了一種基于大容量NOR Flash并利用JTAG接口完成配置碼流下載的FPGA多配置系統(tǒng)解決方案。本系統(tǒng)采用Flash存儲(chǔ)器替代配置用PROM或CF卡,節(jié)省了硬件成本和空間,且理論上可以支持不限數(shù)量的配置文件切換,對(duì)FPGA的配置速度也達(dá)到了System ACE方案的3倍以上。
fpga相關(guān)文章:fpga是什么
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論