基于Flash和JTAG的FPGA系統

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