系統(tǒng)斷電時FPGA數(shù)據(jù)保護方法
從消費電子設(shè)備到工業(yè)控制設(shè)備,越來越多的系統(tǒng)都在使用FPGA。這些應(yīng)用通常需要設(shè)備在斷電時存儲一些數(shù)據(jù),比如校準信息、用戶設(shè)置、辨認標簽等。如果設(shè)備使用了微處理器,則還需要存儲微處理器的代碼。
對于那些對成本、器件數(shù)量以及電路板尺寸不敏感的系統(tǒng),可采用標準的閃存來存儲這些數(shù)據(jù)。但在許多情況下,成本、器件數(shù)量和電路板尺寸等方面的限制導致系統(tǒng)不得不采用雙用器件。無論采用單片非易失存儲器,還是采用引導用的SRAM器件,FPGA總是具有與它們相聯(lián)系的非易失存儲器。一個顯然的問題是,這些非易失存儲器是否能在系統(tǒng)關(guān)閉時存儲數(shù)據(jù)。
在選擇采用哪種方法之前,應(yīng)考慮應(yīng)用的要求。這些問題包括: 是否需要進行讀/寫操作,或者是否接受只讀操作;存儲的數(shù)據(jù)有多大;寫周期的數(shù)量。最后,必須復(fù)查與讀和寫操作相關(guān)的特性、時序等。
1.初始化塊RAM
大多數(shù)FPGA允許其內(nèi)置的塊RAM在引導器件時被初始化。這是一個很好的方法,它提供了較大容量的ROM,可用于存儲查找表或程序代碼。ROM支持高速隨機讀取操作,能很容易地對FPGA配置進行再次編程。如果設(shè)計需要小容量的ROM,這個方法也不可忽視。
2. SPI重使用
現(xiàn)在所有的SRAM FPGA都允許用SPI存儲器來進行配置。因為SPI存儲器的附加位很便宜,不會占用電路板的面積,使用SPI存儲器的附加空間來存儲數(shù)據(jù)是合理的。在FPGA用其進行配置之后(盡管是各式各樣的,設(shè)計者使用這個方法前要進行確認),構(gòu)建SPI接口只需少量邏輯。使用SPI存儲器時,要小心避免寫到FPGA配置空間中。通過接口邏輯的設(shè)計可將其封鎖,或者使用在許多SPI Flash存儲器中可找到的扇區(qū)鎖定方法 。
在許多應(yīng)用中SPI器件允許隨機讀。用FPGA的存儲器塊,通過高速緩沖存儲當前區(qū)技術(shù)可實現(xiàn)較高的性能。由于寫操作首先要求擦除這個區(qū)域,高速緩沖存儲方法具有更大的靈活性。利用SPI存儲器,擦除/編程周期在正常情況下超過100K。這個規(guī)范包括正常的運作期間要若干個上電和斷電周期。然而,如果存儲器寫的次數(shù)超過這個數(shù)值,則可再次使用存儲器高速緩沖方法,防止系統(tǒng)到達SPI的極限。
3.非易失FPGA TAG存儲器
現(xiàn)在許多非易失FPGA集成了小的TAG存儲器。例如,LatticeXP2提供 0.6~3.4kb的存儲器用于此目的。這通常是存儲設(shè)備設(shè)置和校準數(shù)據(jù)所要求的存儲器容量。如圖1(b)所示,可以通過JTAG接口或片內(nèi)邏輯訪問LatticeXP2 TAG存儲器。在LatticeXP2 FPGA中,對這個存儲器的讀和寫是定序的,支持的寫周期超過1K。為簡化存儲器接口,并使存儲器寫周期次數(shù)最小,可再次利用高速緩沖存儲數(shù)據(jù)技術(shù)的優(yōu)點。TAG存儲器與FPGA配置是分開的,因此在這些操作期間,不會寫到FPGA的配置中。對集成小的、串行EEPROM而言,片上TAG存儲器非常理想。
圖1:(a) 用LatticeECP2 FPGA再次使用SPI配置;(b) LatticeXP2 TAG存儲器。
4.閃存影子塊RAM
LatticeXP2還提供使用閃存初始化位的功能。配置時,閃存初始化位初始化器件中的每個塊RAM。這些存儲器可以讀和寫,就像SRAM一樣。當FPGA內(nèi)必須存儲配置數(shù)據(jù)時,則切換適當?shù)男盘柺巩斍暗腞AM值轉(zhuǎn)入閃存(圖2)。這個方法能夠?qū)εc非易失閃存組合在一起的RAM進行高速讀和寫 。在LatticeXP2器件中,這個操作支持數(shù)千個擦除和寫周期。如同TAG存儲器,與塊RAM在一起的閃存在邏輯上是分開的,這樣就能確保FPGA邏輯配置不會意外地被改寫。
圖2 :LatticeXP2閃存影子SRAM操作示意圖。
以上四種方法,每一種方法有其應(yīng)用優(yōu)勢。如果設(shè)計工程師希望采用中等容量的ROM來存儲代碼或者用作查找表,那么初始化塊RAM的方法也許最佳。如果需要存儲少量的數(shù)據(jù),例如校準信息、當前設(shè)置信息或者系統(tǒng)辨別信息,那么TAG存儲器方案更方便一些。對于需要再次寫入的較大容量的存儲器,重使用SPI存儲器,或者閃存影子塊RAM方法是有用的。當然,無論采用哪種方法,都可以降低電路板的面積和成本。
評論