FPGA設(shè)計者對非易失可重復(fù)編程FPGA解決方案的喜愛仍在延續(xù),這種方案所需的相關(guān)額外費(fèi)用并不太大 。設(shè)計人員對其的喜愛源于他們喜歡從一種產(chǎn)品中獲取多種能力,而迄今為止,只有非易失性解決方案能夠滿足他們的要求,因為它可以提供:最小的電路板面積和最簡單的系統(tǒng)集成、上電后能很快地獲取邏輯,以及最高的安全性。
事實上,除了這些傳統(tǒng)要求,在前兩代非易失FPGA產(chǎn)品的經(jīng)驗基礎(chǔ)上,萊迪思半導(dǎo)體(Lattice Semiconductor)公司還認(rèn)識到需要靈活的片上非易失存儲器,以及作為非易失FPGA新要求的用于現(xiàn)場邏輯更新的全面解決方案。
非易失FPGA的幾種方案
如今市場上有三種類型的FPGA:第一種是傳統(tǒng)的SRAM FPGA,系統(tǒng)上電時需要一個外部的非易失存儲器來配置FPGA;第二種是混合方法,把SRAM FPGA和非易失存儲器組合在單個封裝中;第三種常稱為真正的單片非易失FPGA,將非易失的單元嵌入在同一裸片上作為FPGA邏輯。如圖1所示,混合方法比SRAM方法好一些,而真正的非易失方法則是最佳方案,具有小尺寸、高安全性和上電時的瞬時運(yùn)作。
非易失可重復(fù)編程FPGA的應(yīng)用
在諸如通信、消費(fèi)、計算、軍事和汽車等廣泛且多樣的終端市場中,非易失可重復(fù)編程FPGA被用來實現(xiàn)系統(tǒng)邏輯。非易失FPGA特別吸引那些要求減少部件數(shù)和占位面積,并迅速獲得邏輯或高安全性的應(yīng)用。
1 小尺寸應(yīng)用
這里所說的小尺寸應(yīng)用包括:手持條碼掃描器、手持條碼閱讀器、智能電話、儀器與傳感器、航空電子設(shè)備等。傳統(tǒng)的 SRAM FPGA 需要一個引導(dǎo)存儲器,在上電時載入SRAM配置。有時候配置載入通過電路板上的微處理器來完成,而另外一些時候應(yīng)用中需要一個獨立的引導(dǎo)存儲器。這兩個解決方案都不理想。從系統(tǒng)微處理器進(jìn)行引導(dǎo)引入了額外的硬件和軟件間的相互依賴,還要求微處理器在FPGA配置前就運(yùn)行,從而阻礙了其在系統(tǒng)中的核心功能。使用獨立的引導(dǎo)存儲器則增加了電路板的面積、元件,及相關(guān)成本。通過整合片上的引導(dǎo)存儲器,非易失FPGA提供了一個可選方案,也是更加完美的解決方案。
2 要求快速獲得邏輯的應(yīng)用
片上非易失存儲器能使器件在上電1毫秒內(nèi)準(zhǔn)備好運(yùn)作,與SRAM和混合FPGA相比,SRAM和混合FPGA的配置需要數(shù)十或幾百毫秒。圖2為“喚醒時間”的差別。在許多常見應(yīng)用中,真正的非易失FPGA所帶來的快速獲得邏輯的功能正是人們希望得到的特性。這些應(yīng)用包括:即插即用總線接口(PCI, PCI Express, CAN)、上電復(fù)位控制、處理器總線譯碼、FPGA加載器、ASIC初始化以及使用工作循環(huán)的低功耗設(shè)計等。
圖1: 三種不同類型的FPGA
圖2 具有非易失FPGA的迅速獲得邏輯的能力
3 要求設(shè)計安全性的應(yīng)用
在當(dāng)今復(fù)雜的系統(tǒng)中,越來越多的FPGA被用來取代傳統(tǒng)上用ASIC和微處理器實現(xiàn)的功能。十年前,F(xiàn)PGA只是系統(tǒng)的外圍,而如今它是心臟。目前的FPGA工藝已使門數(shù)量達(dá)到幾百萬,F(xiàn)PGA成為非法盜版者的目標(biāo)。FPGA設(shè)計者逐漸開始關(guān)注克隆、反向工程、過量生產(chǎn)、盜版服務(wù)等問題。
系統(tǒng)設(shè)計者使用的大多數(shù)SRAM FPGA需要在系統(tǒng)每次上電時由引導(dǎo)器件進(jìn)行配置。引導(dǎo)器件和FPGA之間的連接存在很大的風(fēng)險,因為配置數(shù)據(jù)暴露在外,易于在上電時被盜取。在封裝中嵌入非易失存儲器的混合方法對這種情況的改進(jìn)有限。然而,相關(guān)的工具能夠免除封裝材料并獲得裸片的互連。真正的單片非易失器件沒有這樣的互聯(lián),因此能夠提供絕佳的設(shè)計安全性。
除了設(shè)計被盜取或復(fù)制,在許多系統(tǒng)中很重要的是確保FPGA沒有被篡改。有這些要求的應(yīng)用包括:信用卡讀卡器、自動出納機(jī)、武器系統(tǒng)以及游戲系統(tǒng)。
4 非易失存儲應(yīng)用
由于非易失FPGA在密度和功能方面的水平繼續(xù)增強(qiáng),許多設(shè)計者要在設(shè)計中整合非易失存儲器。這些需求分成兩種。
第一種是能整合小的獨立的EEPROM存儲器,在許多系統(tǒng)中存儲數(shù)據(jù),例如電子ID碼、版本碼、日期打印、校準(zhǔn)設(shè)置和資產(chǎn)ID。這種類型的存儲器不是經(jīng)常通過串行接口訪問的。
第二種類型是能夠整合大的存儲塊,典型的應(yīng)用為存儲數(shù)據(jù),例如錯誤碼、上電自測試、數(shù)據(jù)查找表和微處理器碼。對數(shù)據(jù)的寫操作不是經(jīng)常的,讀數(shù)據(jù)則是經(jīng)常的,讀操作的速度影響整個系統(tǒng)的性能。
5 現(xiàn)場更新
當(dāng)設(shè)備用于現(xiàn)場時,提供FPGA配置更新的能力就益發(fā)重要,如圖3所示。這種能力為設(shè)備供應(yīng)者提供了競爭優(yōu)勢,能對標(biāo)準(zhǔn)的改變、新的服務(wù)以及排除故障作出迅速回應(yīng)。
圖3 在現(xiàn)場更新邏輯
LatticeXP2器件
LatTIce與富士通(Fujitsu)合作開發(fā)了90nm嵌入式閃存工藝的 LatTIceXP2系列,這種工藝使LatTIceXP2器件的成本減少了50%。該器件把成功用于LatTIceECP2 SRAM的功能塊和Flash單元組合在一起,稱之為flexiFLASH。
1 LatticeXP2結(jié)構(gòu)-功能塊
LatticeXP2器件的核心含有能夠?qū)崿F(xiàn)邏輯的可編程功能單元(PFU),以及占25%邏輯塊的分布式存儲器。用4輸入的查找表和寄存器對來實現(xiàn)邏輯,對于FPGA工業(yè)、能夠被系統(tǒng)設(shè)計者充分理解以及邏輯綜合工具提供者來說,這是一個事實上的標(biāo)準(zhǔn)。分布式存儲器為設(shè)計者提供了有效的方法實現(xiàn)便箋式存儲器。這個系列提供5K到40K LUT。
嵌入式RAM(EBR)的sysMEM行提供166K -885Kb的18kb塊的雙口存儲器。器件還有乘、加、減和累加功能的sysDSP塊,用來實現(xiàn)通用的DSP功能,例如FIR濾波器、FFT和復(fù)雜算法。sysDSP塊提供12-32的18x18乘法器。
器件的I/O引腳數(shù)從86到540,能與各種I/O標(biāo)準(zhǔn)互連,包括LVCMOS、PCI、LVTTL、LVDS和SSTL, HSTL。此外與附加的外部電阻相配合可以模仿LVPECL、BLVDS 和RSDS接口標(biāo)準(zhǔn)。校準(zhǔn)DQS延時塊的DLL、DDR寄存器和時鐘傳送電路能實現(xiàn)達(dá)400Mbps的DDR和DDR2存儲器接口。還可以與器件一起實現(xiàn)750Mbps的普通DDR接口。
器件還提供多達(dá)4個PLL,用于時鐘綜合與對齊。片上振蕩器提供低精度的時鐘源,適用于許多輔助功能,例如監(jiān)視時鐘和鍵盤掃描邏輯。時鐘的分布為8個全局時鐘、8個區(qū)域時鐘,或者2個高速邊沿時鐘。圖的左邊和右邊為Flash存儲器塊,用于器件的配置。
器件工作于1.2伏的內(nèi)部電壓并有各種可供選擇的封裝。圖4為器件的整個結(jié)構(gòu),圖5為系列中的各個成員的詳情。下面將詳述非易失特性的運(yùn)作。
圖4 LatticeXP2結(jié)構(gòu)
圖5 flexiFLASH結(jié)構(gòu)
FlexiFLASH詳情
LatticeXP2器件在結(jié)構(gòu)中組合了Flash 和SRAM,稱為flexiFLASH。器件邏輯配置和嵌入式RAM塊數(shù)據(jù)存儲在SRAM單元。上電時或者根據(jù)用戶命令,源于片上Flash存儲器的塊以并行形式載入SRAM。這種迅速的傳送方式使器件具有瞬時的特性,片上的Flash存儲器導(dǎo)致了單片解決方案。通過JTAG 或者SPI端口可以對Flash存儲器進(jìn)行寫操作,如圖5所示。
FlashBAK存儲器
為了滿足存儲大塊的數(shù)據(jù),LatticeXP2器件提供稱為FlashBAK存儲器的創(chuàng)新功能。如前所述,上電時從片上Flash存儲器裝載至EBR。EBR能以350MHz的速度進(jìn)行讀或?qū)???梢愿鶕?jù)要求在FPGA內(nèi)切換信號,根據(jù)當(dāng)前EBR的內(nèi)容,重寫Flash是可能的。這個過程大約為1秒的時間。用這個方法,用戶可獲得高性能和無限次的讀和寫,這是非易失Flash存儲器與SRAM相結(jié)合的結(jié)果。這個器件提供166K 和 885Kbit的 FlashBAK存儲器。
圖6 非易失FlashBAK存儲
串行TAG存儲器
為了提供小量可串行訪問的存儲器,每個器件都有0.6K至3.4Kbit的串行TAG存儲器。如圖7所示,可以通過器件的JTAG接口或者FPGA邏輯訪問這個存儲器。這個存儲器位于器件安全結(jié)構(gòu)的外面,可以獨立地訪問器件安全設(shè)置。
圖7 串行TAG存儲器
器件鎖提供設(shè)計安全
如前所述,許多設(shè)計者都要確保設(shè)計安全地鎖定在FPGA之內(nèi)。用物理的方法來檢查FPGA 的SRAM單元幾乎是不可能的,因為SRAM單元掩埋在多層金屬下。防止通過JTAG 或者SPI端口查詢器件配置的保密位進(jìn)一步完善了安全性。
為了防止未授權(quán)的篡改,器件有64位的碼,一旦設(shè)置后,在擦除或者重寫Flash時需要驗證。對于客戶要求更加安全的解決方案,還有一次性編程(OTP)的模式。一旦器件處于這種模式,就不能擦除或者對器件再編程。
全面的現(xiàn)場更新
如前所述,實現(xiàn)現(xiàn)場更新的設(shè)計者要求最大的設(shè)備正常運(yùn)行時間、很好的可靠性和高的安全性。為了滿足這些要求,LatticeXP2器件提供TransFR I/O、雙引導(dǎo)和128位AES解密。
針對最大正常工作時間的TransFR I/O
在系統(tǒng)配置期間,大多數(shù)FPGA的I/O均為三態(tài)。這種缺少控制的狀態(tài)通常迫使循環(huán)上電以便更新FPGA的配置。如同其他的Lattice FPGA,LatticeXP2器件具有TransFR I/O,在器件配置期間能凍結(jié)I/O的狀態(tài)。這樣現(xiàn)場更新的器件就有最小的中斷和停機(jī)時間,系統(tǒng)設(shè)計者能夠滿足高系統(tǒng)正常運(yùn)行時間和現(xiàn)場更新邏輯的雙重要求。圖8展示了TransFR I/O更新的4個步驟。因為新的配置可以在后臺載入LatticeXP2的片上Flash,新的配置載入SRAM是很快的。鎖定I/O,施加新的配置,再釋放I/O的時間小于2毫秒。
圖8 TransFR I/O更新的4個步驟
針對可靠性的雙引導(dǎo)方案
存儲的FPGA配置被更新時,存在著電源或者通信失敗的風(fēng)險,會導(dǎo)致不可靠的配置和系統(tǒng)停止工作。如果發(fā)生了這種情況,拜訪技術(shù)員和糾正差錯都是不小的開支。為了防止發(fā)生此類問題,LatticeXP2器件可以使用外部的SPI存儲器來實現(xiàn)雙引導(dǎo)方案。
如圖9所示,上電時LatticeXP2試圖從片上Flash載入SRAM配置位。如果在這個過程中檢測到錯誤,于是FPGA從外部的SPI存儲器讀取備份或者重要的配置。用這種方法運(yùn)行系統(tǒng),能夠可靠地進(jìn)行更新而不管電源或者通信故障。
圖9 高可靠現(xiàn)場更新的雙引導(dǎo)方法
用于設(shè)計安全的128位加密
LatticeXP2器件能用可選的128位AES編程數(shù)據(jù)加密。器件收到加密數(shù)據(jù)時,用片上的解密引擎進(jìn)行解密,解密引擎是用戶定義的用Flash存儲器存儲在片上的密鑰?;镜牟僮魅鐖D10所示。這種運(yùn)作模式使得在現(xiàn)場更新期間敏感的設(shè)計數(shù)據(jù)得到了保護(hù)。
本文小結(jié)
設(shè)計者選擇非易失器件的主要原因仍然未變,這些原因是小的尺寸、瞬時以及高可靠性。然而對非易失數(shù)據(jù)存儲和全面的現(xiàn)場更新解決方案的新要求正在興起。所有這些新要求都必須滿足,而且,相對于傳統(tǒng)的SRAM解決方案,非易失解決方案的額外費(fèi)用是最小的。
如今有兩種方法提供非易失FPGA:混合的和單片的?;旌戏椒ㄖ饕墙鉀Q小尺寸的要求。而真正的單片非易失方法滿足了小尺寸、瞬時和高安全性的要求。
采用90納米嵌入式Flash工藝,LatticeXP2 FPGA滿足了選擇非易失器件的主要和新興的原因,同時還降低了成本。
表1 LatticeXP2 FPGA 系列
作者: 萊迪思半導(dǎo)體公司