集成閃存器件編程,降低生產(chǎn)成本
在上個(gè)世紀(jì)80年代末,存儲(chǔ)器發(fā)展為閃存器件。Intel和東芝公司率先開(kāi)發(fā)了閃存工藝技術(shù),生產(chǎn)了這類(lèi)新產(chǎn)品。在閃存器件之前,設(shè)計(jì)人員采用電可編程只讀存儲(chǔ)器(EPROM)或者電可擦除編程只讀存儲(chǔ)器(EEPROM),對(duì)數(shù)字信息進(jìn)行非易失存儲(chǔ),但是這兩類(lèi)器件都存在較大的問(wèn)題。
EPROM具有較高的密度,可靠性也較好,但是只能曝露在強(qiáng)紫外線(UV)中才能進(jìn)行擦除。為達(dá)到這一目的,早期的EPROM在其頂部封裝了透明的玻璃窗。玻璃窗明顯增加了成本,所以,后來(lái)的器件頂部不透明,編程之后便不能再擦除。存儲(chǔ)器一旦完成編程之后,工程師便不能靈活的修改或者升級(jí)其設(shè)計(jì),因此,這種器件被稱(chēng)為一次編程(OTP)EPROM。生產(chǎn)商也不得不面臨編程失敗帶來(lái)的結(jié)果。
EEPROM的出現(xiàn)解決了擦除的問(wèn)題,它可以電擦除。EEPROM不用將芯片曝露在強(qiáng)UV光下,而是在器件的某個(gè)引腳加上高電壓(12V至20V)來(lái)進(jìn)行編程和擦除。對(duì)于低壓器件,編程和擦除期間的功耗尖峰有可能損害系統(tǒng)。與EPROM相似,由于器件每次只能寫(xiě)入或者擦除一個(gè)字節(jié),EEPROM寫(xiě)入和擦除的時(shí)間也較長(zhǎng)。每個(gè)器件單元需要單獨(dú)的讀、寫(xiě)和擦除電路,增加了管芯面積,因此,EEPROM的成本也較高。
1988年引入的閃存EEPROM實(shí)現(xiàn)了工程師需要的高密度、低成本、易于編程和擦除的存儲(chǔ)器。閃存器件能夠成塊的進(jìn)行電擦除,而不是逐字節(jié)擦除,并且不采用高電壓,顯著縮短了擦除時(shí)間。這種基于塊的擦除方法使器件可以共享模塊中的擦除電路,從而減小了管芯尺寸,降低了成本。80年代后期以來(lái),閃存器件的密度成指數(shù)增長(zhǎng),供應(yīng)商支持的存儲(chǔ)容量高達(dá)8G字節(jié)。
閃存器件編程面臨的挑戰(zhàn)
低成本標(biāo)準(zhǔn)閃存器件廣泛應(yīng)用在存儲(chǔ)配置、程序或者存儲(chǔ)器數(shù)據(jù)等多種領(lǐng)域。在系統(tǒng)使用這些閃存器件之前,必須對(duì)其進(jìn)行編程。如果采用傳統(tǒng)的方法,這種編程會(huì)占用大量的生產(chǎn)時(shí)間。隨著閃存器件存儲(chǔ)密度的不斷增加,編程時(shí)間隨之延長(zhǎng),進(jìn)一步增大了這種困難。對(duì)于最后一刻設(shè)計(jì)修改和現(xiàn)場(chǎng)產(chǎn)品程序更新等,這些方法缺乏靈活性,需要對(duì)其進(jìn)行改進(jìn)以增加功能,或者解決小問(wèn)題。編程方法必須具備一定的靈活性來(lái)適應(yīng)這種現(xiàn)場(chǎng)更新。
圖1 通過(guò)JTAG邊界掃描鏈對(duì)閃存進(jìn)行編程
對(duì)閃存器件進(jìn)行編程的傳統(tǒng)方法
對(duì)當(dāng)今的閃存器件進(jìn)行編程有三種方法。第一種方法是在器件插入印刷電路板(PCB)之前,先對(duì)其進(jìn)行預(yù)編程。這種方法需要額外的設(shè)備對(duì)閃存器件編程,增加了生產(chǎn)成本。這種方法的另一個(gè)缺點(diǎn)是一旦預(yù)編程并安裝器件之后,該器件便不能再用于其他目的。它缺乏一定的靈活性,不支持最后一刻修改和小問(wèn)題改進(jìn),而器件安裝到PCB上之后,可能需要進(jìn)行這種修改。
第二種方法是在閃存器件安裝到PCB上之后對(duì)其進(jìn)行編程,這種方法也稱(chēng)為在系統(tǒng)編程(ISP)。其實(shí)現(xiàn)方法之一是首先在PCB的已有微處理器中安裝一小段程序,然后由微處理器對(duì)器件進(jìn)行編程。微處理器可以在系統(tǒng)或者使用在線仿真硬件來(lái)訪問(wèn)這段小程序,使得生產(chǎn)過(guò)程增加了額外的設(shè)備和更多的步驟。這種方法中,由于微處理器首先從不同的數(shù)據(jù)源讀取數(shù)據(jù),將其存儲(chǔ)在RAM中,然后才能對(duì)器件進(jìn)行編程,因此,閃存器件的數(shù)據(jù)傳送效率很低。
第三種方法是采用支持JTAG邊界掃描鏈的ISP來(lái)控制與閃存器件連接的引腳。由于受到成本和空間限制,許多閃存器件不支持JTAG接口,因此,這種方法比較常用。如圖1所示,在這種方法中,閃存連接至PCB上的JTAG兼容器件,該器件是編程主機(jī)。專(zhuān)用集成電路(ASIC)或者可編程邏輯器件(PLD)等器件可用作編程主機(jī)。這種方法效率較低,為了向閃存器件寫(xiě)入幾個(gè)比特,需要將數(shù)百比特的數(shù)據(jù)通過(guò)JTAG邊界掃描鏈進(jìn)行傳送。這種方法的另一種限制是在使用PLD作為主機(jī)時(shí),需要主機(jī)PLD進(jìn)入編程模式,導(dǎo)致PLD內(nèi)核以及和PLD相連的其他器件暫時(shí)停止工作。
圖2 采用PFL方案對(duì)閃存進(jìn)行編程
集成并行閃存裝入方案縮短了編程時(shí)間
一種專(zhuān)用并行閃存裝入(PFL)方案通過(guò)JTAG接口為閃存器件編程提供簡(jiǎn)單方便、低成本、高效率的方法。大多數(shù)PCB都提供JTAG測(cè)試訪問(wèn)端口(TAP),它只需要少量的空間(四個(gè)引腳)來(lái)訪問(wèn)PCB上的所有JTAG兼容器件。該方案采用復(fù)雜可編程邏輯器件(CPLD)實(shí)現(xiàn)JTAG接口和閃存器件并行地址/數(shù)據(jù)接口的連接。它不是將數(shù)據(jù)通過(guò)CPLD的所有引腳進(jìn)行傳送,而是在JTAG掃描鏈上迅速查找數(shù)據(jù),生成格式與接收目標(biāo)閃存器件相符的數(shù)據(jù)。PFL與JTAG邊界掃描鏈方法不同之處在于它通過(guò)CPLD的邏輯陣列將數(shù)據(jù)導(dǎo)入,如圖2所示。
表1 JTAG邊界掃描編程方法和PFL方法對(duì)比
該方法顯著縮短了閃存器件的編程時(shí)間。以單個(gè)矢量寫(xiě)入48引腳公共閃存接口(CFI)閃存器件為例,表1列出了采用PFL方案可能節(jié)省的時(shí)間。該例比較了PFL方案和傳統(tǒng)的編程方法,傳統(tǒng)方法通過(guò)JTAG邊界掃描鏈,采用大約200個(gè)引腳的JTAG兼容PLD或者ASIC來(lái)實(shí)現(xiàn)。
PFL方案不但縮短了編程時(shí)間,還可以采用存儲(chǔ)在閃存中的FPGA配置數(shù)據(jù)來(lái)配置同一PCB上的專(zhuān)用FPGA。PFL邏輯決定何時(shí)開(kāi)始配置過(guò)程,從閃存器件讀取數(shù)據(jù),并進(jìn)行相應(yīng)的FPGA配置。PFL還支持FPGA配置的專(zhuān)用頁(yè)面模式,例如圖3所示的Altera頁(yè)面模式。每個(gè)頁(yè)面存儲(chǔ)Altera FPGA單鏈的配置數(shù)據(jù),一個(gè)閃存器件中可以存儲(chǔ)8個(gè)不同的頁(yè)面。硬件開(kāi)發(fā)人員使用該方法可以避免采用特定的FPGA配置器件,降低了元件成本,減小了電路板尺寸,簡(jiǎn)化了電路板設(shè)計(jì)。
這一概念也可以應(yīng)用在專(zhuān)用標(biāo)準(zhǔn)產(chǎn)品(ASSP)和ASIC上。與FPGA的情況相似,PFL可用于向ASSP和ASIC閃存器件發(fā)送配置或者初始化數(shù)據(jù)。在使用Altera MAX II器件時(shí),CPLD中的剩余邏輯可用于實(shí)現(xiàn)這些器件的配置信號(hào)。
PFL方案易于使用,應(yīng)用成本低
通過(guò)使用Altera Quartus II開(kāi)發(fā)軟件中直觀的GUI,可以將PFL直接集成在CPLD中。GUI支持用戶(hù)設(shè)置時(shí)鐘頻率、閃存類(lèi)型、選擇比特的字節(jié)地址以及所需的補(bǔ)充文件等。Quartus II軟件為在Altera器件中實(shí)現(xiàn)這些功能自動(dòng)生成所需的邏輯。
圖3 通過(guò)PFL方法配置Altera FPGA
PFL和專(zhuān)用CPLD充分利用實(shí)時(shí)ISP的優(yōu)勢(shì),支持最后一刻的設(shè)計(jì)修改和小問(wèn)題改進(jìn),不會(huì)影響產(chǎn)品及時(shí)面市。通過(guò)JTAG接口,可以在生產(chǎn)過(guò)程的任何階段裝入新的或者更新后的編程文件。PFL具有足夠的靈活性,不必關(guān)斷整個(gè)系統(tǒng)便能夠輕松進(jìn)行現(xiàn)場(chǎng)更新。可編程邏輯的另一個(gè)優(yōu)勢(shì)是支持設(shè)計(jì)重新使用。即使數(shù)據(jù)需求增長(zhǎng)、閃存器件不斷發(fā)展,PFL方案稍做修改甚至不用重新設(shè)計(jì)便可以繼續(xù)使用。因此,對(duì)于不同的平臺(tái),PFL可以方便的導(dǎo)入到新設(shè)計(jì)或者相似的設(shè)計(jì)中。
專(zhuān)用CPLD使用PCB上已有的JTAG掃描鏈連接,因此,PFL方法不需要特殊的編程設(shè)備支持,降低了生產(chǎn)成本,縮短了生產(chǎn)時(shí)間。由于PFL僅使用CPLD邏輯中的一小部分,剩余邏輯可用于I/O擴(kuò)展、系統(tǒng)配置或者上電排序等其他應(yīng)用。PFL功能可以在最小的CPLD中實(shí)現(xiàn),例如Altera最小的MAX II器件,因此,具有非常低的元件成本。
結(jié)語(yǔ)
閃存器件為尋求高密度、低成本存儲(chǔ)器的工程師提供了最佳解決方案,可方便實(shí)現(xiàn)編程和擦除。低成本標(biāo)準(zhǔn)閃存器件在存儲(chǔ)配置、程序或者存儲(chǔ)器數(shù)據(jù)等多種領(lǐng)域得到了廣泛應(yīng)用。在當(dāng)今閃存器件編程所采用的三種主要方法中,通常選擇支持JTAG邊界掃描鏈的ISP方法。
但是,這種方法也有局限性,為了向閃存器件寫(xiě)入幾個(gè)比特的數(shù)據(jù),需要通過(guò)整個(gè)JTAG邊界掃描鏈傳送大量的數(shù)據(jù)。專(zhuān)用PFL方案使用JTAG接口,為工程師提供了簡(jiǎn)單方便、低成本、高效率的閃存器件編程方法。專(zhuān)用PFL方案具有多種優(yōu)勢(shì),包括較短的閃存器件編程時(shí)間、流暢的FPGA配置過(guò)程、方便易用和較低的使用成本等?!?/P>
評(píng)論