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