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