用XC9500 CPLD和并行PROM配置Xilinx FPGA(圖)
關鍵詞:fpga;cpld;串行配置
概述
隨著fpga芯片密度的增加,串行prom已不能適應高密度的fpga的配置。大容量的并行prom所要求的尋址方式又不能直接與fpga接口,這時可以采用xc9500 cpld和prom對高密度fpga進行配置。fpga設備在線配置或電源上電時,配置邏輯會被自動清除。fpga的program信號必須在300ns內置低,使配置邏輯復位。init輸出在內部配置存儲器清零期間保持低電平。一旦init管腳變高,就表明設備已準備接受配置。
fpga的配置有主設備串行配置和從設備串行配置兩種方式。xc4000和spartan系列設備在init變高后要求在設備準備接收配置數據之前有一個超時期,但spartan-ⅱ不在此列。在主設備串行模式下,fpga在超時達到要求之前關閉配置時鐘(cclk)。在從設備串行模式下,必須在超時期完成后才能開啟cclk。而spartan-ⅱ和virtex系列在init信號變高之后不要求超時期,一旦init信號變高,設備立即準備接收配置數據。
接口設計
在串行配置模式下用并行prom對fpga進行配置時,需要專門的接口進行并行數據到串行數據的轉換,并管理fpga的配置信號。接口的設計方法很多,圖1是使用xc9500 cpld配置fpga的電路結構。
vsprom的設計
設計虛擬串行prom(vsprom)的目的是為并行prom和fpga之間的連接提供接口,接口的任務是將從prom中讀來的數據轉換成串行輸出,然后再將地址遞增。vsprom的結構如圖2所示。在處理數據的同時,vsprom還管理init和done信號。在配置期間,如果init被fpga拉低,表明出現(xiàn)配置錯誤,vsprom必須復位并等待用戶將fpga復位,然后重新配置。一旦fpga的done變高,表明配置成功,vsprom就撤消rom_cs來取消prom的使能,將自己和prom與fpga隔離,并將dout設為高阻態(tài)。
在vsprom的設計中,使用xc9536pc44-10、xcv600bg432-6和一個8位的prom(at27c080)驗證。
主設備串行配置時,xilinx fpga提供配置時鐘(cclk)。cclk與vsprom的時鐘clk_in直接相連。virtex和spartan-ⅱ支持的最大配置速率是60mhz,xc4000/spartan系列支持的最大配置速率是8mhz。然而,實際的最大配置速率還應該考慮prom的存取時間(tacc)和主設備串行輸入的時間(tdsck)。
主設備串行模式下prom的頻率=1/(tacc+tdsck)。
tacc對于virtex為5.0ns,對于xc4000/spartan系列是20.0ns,prom的tacc對于at27c080是100ns。因此,對于virtex設備最大頻率為9.5mhz,對于xc4000/spartan設備最大頻率為8.3mhz。這就是說,virtex設備的配置頻率受prom的限制,而xc4000/spartan設備的配置頻率受自己內部cclk的限制。為了加快virtex設備的配置速度,可以選擇更快的prom。在主設備串行模式下,fpga在準備好接收配置數據之前會關閉cclk,因此vsprom的設計不用考慮其他問題。
從設備串行配置有專門的振蕩電路提供配置時鐘,速度比較快。振蕩電路的時鐘輸出必須接fpga的配置時鐘(cclk)和vsprom的時鐘(clk_in)。最大配置頻率對于virtex是66mhz,對于xc4000/spartan系列是10mhz。同樣,配置頻率受到prom的存取時間(tacc)和從設備串行輸入時間(tdcc)的限制,計算方法同上。
表1 不同的eprom所需的地址線
eprom | 配置位數 | 所需的地址線 |
1m eprom | 1 048 576 | 17 |
2m eprom | 2 097 152 | 18 |
3m eprom | 4 194 304 | 19 |
4m eprom | 8 388 608 | 20 |
從設備串行模式下對xc4000或者spartan系列fpga進行配置時,必須考慮設備開始的順序(這里討論的順序不適合spartan-ⅱ系列)。正如前面提及的,一旦init置高,設備能夠接收配置數據之前需要有一個超時期,vsprom接口必須能夠在超時期達到之前封鎖振蕩電路的時鐘輸出。如果是virtex或者spartan-ⅱ設備作為從設備,init置高后fpga可以立即準備好接收配置數據,就不用考慮超時的問題。
在以上兩種配置方式下,并行prom的大小和數目由配置fpga所要求的配置位的數目決定。prom的大小由所需要的地址線數目決定。缺省情況下,vsprom設計使用19根地址線,對應4mb的prom。當需要更多的容量存儲配置數據時,可以修改vsprom源程序(vhdl或generic)使其適應新的需求,詳細情況參見表1。如果配置要求多于19根地址線,可以使用xc9572設計vsprom。
fpga配置期間發(fā)生錯誤時,init信號變成低電平,配置程序中止。所以vsprom需要管理init,當init變低時,vsprom需要復位并等待fpga的復位后才能進行重新配置。簡單的方法是可以在init變低時用vsprom控制fpga的program變低,迫使fpga清除自己的配置存儲器,然后重試?;蛘呖梢詫nit接微控制器,在配置期間init變低時控制整個系統(tǒng)復位。
表2 兩個prom的地址譯碼
額外的地址(a19) |
/ce0 |
/ce1 |
0 |
0 |
1 |
1 |
1 |
0 |
接口的擴展
fpga要求的配置空間大于所選的prom時,可以使用多個prom,連接方法如圖3所示。這時地址線是20位,高位地址線 address(19)用來選擇prom,見表2。
多個fpga可以直接級連,如圖4所示。這種情況下對vsprom沒有特殊的要求。cclk,init,done和prog信號必須并聯(lián),前一個設備的dout信號連接下一個的din。
調試應用
為了保證fpga的cclk和din信號不受任何干擾,在設計電路板時通常在每個vcc和gnd之間加0.1μf和0.01μf的電容。同時,要保證vcc的響應速度足夠快。如果電源響應速度不夠快、響應單調性不好,會影響系統(tǒng)的上電過程從而影響正確的配置。
所有的xc4000和spartan設備都對5v和3.3v環(huán)境兼容。virtex和spartan-ⅱ設備也可以直接應用于5v和3.3v的環(huán)境,在lvttl與3.3v的vcco相連時必須使用缺省的i/o標準。詳細情況參見xilinx設備的電壓兼容性數據資料。virtex-e設備不能直接應用在5v環(huán)境,因此在配置時必須加以考慮。
1 xilinx.xc9500xv family high-performance cpld ds049(v2.0),january 15,2001
2 xilinx.fastflash xc9500xl high-performance cpld family(v1.5), 1999,7
3 陳光夢.可編程邏輯期間的原理與應用.上海:復旦大學出版社,1997
4 xilinx.xc9500 in-sytem programmable cpld family(v5.0),september 15,1999
評論