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