FPGA器件配置方式分三大類:主動(dòng)配置、被動(dòng)配置和JTAG配置。
主動(dòng)配置:由FPGA器件引導(dǎo)配置操作過程。
被動(dòng)配置:由計(jì)算機(jī)或控制器控制配置過程。上電后,控制器件或主控器把存儲(chǔ)在外部存儲(chǔ)器中的數(shù)據(jù)送入FPGA器件內(nèi),配置完成之后將對(duì)器件I/O和寄存器進(jìn)行初始化。初始化完成后,進(jìn)入用戶模式,開始正常工作。
一旦設(shè)計(jì)者選定了FPGA系統(tǒng)的配置方式,需要將器件上的MSEL引腳設(shè)定為固定值,以指示當(dāng)前所采用的配置方式。
常用的配置方式有:
PS配置(Passive Serial Configuration):被動(dòng)串行配置
AS配置(Active Serial Configuration):主動(dòng)串行配置
PPS配置(Passive Parallel Synchronous Configuration):被動(dòng)并行同步配置
FPP配置(Fast Passive Parallel Configuration):快速被動(dòng)并行配置
PPA配置(Passive Parallel Asynchronous Configuration):被動(dòng)并行異步配置
PSA配置(Passive Serial Asynchronous Configuration):被動(dòng)串行異步配置
JTAG配置(Joint Test Action Group Configuration)
在配置FPGA器件時(shí)的常見問題及其解決方法。
(1)當(dāng)模式改變后,同時(shí)需要修改產(chǎn)生位流文件中的配置時(shí)鐘的屬性為CCLK或JTAGClock,否則無法配置。
(2)DONE狀態(tài)腳始終為低解決方法:檢查該引腳的負(fù)載是否太重,選擇合適的上拉電阻。
(3)器件上電后有時(shí)能夠配置成功,有時(shí)不成功解決方法:這種情況大部分是因?yàn)槠骷膹?fù)位未完成,就開始出現(xiàn)數(shù)據(jù)流。延長(zhǎng)復(fù)位時(shí)間,即延長(zhǎng)PROG_B信號(hào)的低電平時(shí)間。電源檢測(cè)正常后,該信號(hào)至少還需保持300 ms的低電平。Spartan-3系列器件的內(nèi)部配置電路如圖1所示,該器件需要滿足VCCINT至少達(dá)到1.0V,Bank4的電源VCCO_4至少達(dá)到1.0V,輔助電源VCCAUX至少達(dá)到2.0V,才能進(jìn)入配置狀態(tài),可在PROG_B引腳上分別接一個(gè)4.7kΩ電阻到電源,如果電源滿足條件,10μF電容到地。
(4)無法正常配置或發(fā)現(xiàn)加載過程中INIT_B信號(hào)被拉低
解決方法:檢查配置時(shí)鐘信號(hào)CCLK或JTAG時(shí)鐘信號(hào)TCK是否存在干擾信號(hào)或過沖。如果有干擾,判斷干擾源并增加濾波措施;如果有過沖,說明該信號(hào)線阻抗不匹配(因傳輸線過長(zhǎng)等原因造成),需要增加匹配電阻。根據(jù)IBIS模型分析,采用LVCMOS25(10 mA)或LVTTL(12 mA)接口標(biāo)準(zhǔn),一般情況下,CCLK的引線長(zhǎng)度不要超過3~4英寸,可通過增加源端匹配(串聯(lián)33Ω~100Ω電阻)來改變時(shí)鐘信號(hào)的質(zhì)量。CCLK的布線很重要,最好不要開叉。如果一定要開叉,參考對(duì)應(yīng)器件的手冊(cè)查看最大允許的分支長(zhǎng)度是多少。
如果器件的旁路電容設(shè)計(jì)不合理或數(shù)據(jù)線上有地線及彈(Ground bounce)信號(hào),也會(huì)造成配置失敗。
(5)無法通過計(jì)算機(jī)并行口配置
解決方法:檢查計(jì)算機(jī)并行口模式設(shè)置是否正確。如果計(jì)算機(jī)的并行口信號(hào)太差,存在干擾,則采用質(zhì)量好的配置電纜(Cable-IV)排除干擾。
(6)DONE腳已經(jīng)變高,但器件仍然不工作
解決方法:如果確認(rèn)設(shè)計(jì)無誤,那么可能是器件的啟動(dòng)順序設(shè)置不正確。參考配置流程,通過設(shè)計(jì)工具重新設(shè)置啟動(dòng)順序。