通過USB接口實(shí)現(xiàn)FPGA的SelectMap配置
4.系統(tǒng)軟件的設(shè)計(jì)
4.1 EZ-USB固件程序設(shè)計(jì)
EZ -USB的固件框架[3]如圖 3所示,Cypress為大部分模塊提供了完整的代碼,本設(shè)計(jì)需要編寫的模塊有 TD_Init,TD_Poll和 USB請(qǐng)求解析模塊。 TD_Init模塊僅執(zhí)行一次,作用是設(shè)置端點(diǎn)和 GPIF傳輸界面,以及將端點(diǎn) 2緩存的控制權(quán)交給邏輯單元使得邏輯單元可以將總線上收到的數(shù)據(jù)包裝入緩存。TD_Poll模塊會(huì)反復(fù)執(zhí)行,作用是在端點(diǎn) 2的緩存填入數(shù)據(jù)包后,開啟 GPIF狀態(tài)機(jī),將 FIFO內(nèi)的配置數(shù)據(jù)寫入 FPGA。USB請(qǐng)求解析模塊需要解析本方案設(shè)計(jì)的 2條 USB廠商請(qǐng)求,0xB1和 0xB2,它們用于配置初始化和查詢配置狀態(tài)。
4.2上位機(jī)程序設(shè)計(jì)
由于 Cypress已提供 USB設(shè)備驅(qū)動(dòng),因此上位機(jī)程序只需要獲得了一個(gè)至 USB 設(shè)備驅(qū)動(dòng)程序的句柄,打開包含配置代碼的文件并對(duì)其進(jìn)行語法分析,在 USB 中斷傳輸?shù)拿看握{(diào)用過程中傳送取自配置文件的 1024字節(jié)發(fā)送出去,這一過程將繼續(xù)下去,直到配置文件中沒有剩余字節(jié)為止。
5.配置性能的實(shí)際測(cè)試
配置數(shù)據(jù)傳輸?shù)钠款i在 USB傳輸通道,而采用中斷端點(diǎn)時(shí), USB傳輸通道的速度極限值應(yīng)為 24000KB/s,對(duì)于 500萬門的 XC3S5000而言,傳輸 13271936bit配置數(shù)據(jù)的理論時(shí)間約為 527.4ms。
對(duì)配置時(shí)間進(jìn)行的實(shí)際測(cè)試中,使用 500萬門的 XC3S5000作為配置對(duì)象,使用測(cè)量精度為 10ms的碼表測(cè)量從送出配置文件到 FPGA的 Done引腳所連接的 LED點(diǎn)亮的時(shí)間差,經(jīng)測(cè)量,配置實(shí)際使用時(shí)間為 540ms??紤]到 MCU判斷端點(diǎn)緩存和開啟標(biāo)志,以及開啟狀態(tài)機(jī)所用時(shí)間,實(shí)測(cè)值比理論值多出的時(shí)間是合理的。
6.結(jié)論
采用 Cypress EZ-USB及其內(nèi)置的 GPIF狀態(tài)機(jī)對(duì)大容量 FPGA進(jìn)行 SelectMap方式配置的方案,不僅具有被動(dòng)配置方式靈活性高的優(yōu)點(diǎn),而且因?yàn)椴恍枰笕萘颗渲么鎯?chǔ)器、同時(shí)可以節(jié)約電路板空間,所以實(shí)現(xiàn)成本較低。另外 Cypress完善的開發(fā)工具也使得方案的實(shí)現(xiàn)非常簡(jiǎn)單。經(jīng)過實(shí)際測(cè)試,本方案的配置速度非常快,對(duì)于大規(guī)模 FPGA配置時(shí)間也能在一秒之內(nèi)完成,因此本方案具有很好的實(shí)用價(jià)值。
本文作者創(chuàng)新點(diǎn):設(shè)計(jì)了一種針對(duì)大規(guī)模 FPGA的實(shí)用配置方案,配置方式靈活、配置速度快、配置成本低、系統(tǒng)開發(fā)簡(jiǎn)單。
評(píng)論