1 引言 FLASH存儲(chǔ)器具有成本低、密度大、掉電不丟失的特點(diǎn),在存儲(chǔ)器市場(chǎng)中所占的比例越來(lái)越大,作為主流SOC重要組成部分,F(xiàn)LASH對(duì)SOC作用與影響也越來(lái)越大。 由于SOC設(shè)計(jì)升級(jí)或者原有SOC產(chǎn)品存儲(chǔ)容量提升等原因,隨之會(huì)帶來(lái)其嵌入式FLASH的替換問(wèn)題,SOC系統(tǒng)設(shè)計(jì)規(guī)模一般較大,設(shè)計(jì)更改難度和風(fēng)險(xiǎn)都比較大。除此之外,大部分情況下還需要考慮更改后的設(shè)計(jì)對(duì)原產(chǎn)品的兼容性。通過(guò)在原SOC FLASH 控制接口之外增加控制接口轉(zhuǎn)換邏輯實(shí)現(xiàn)對(duì)新的FLASH IP的連接,可以避免對(duì)已成功設(shè)計(jì)的修改,在達(dá)到對(duì)FLASH存儲(chǔ)器替換的同時(shí)降低了設(shè)計(jì)的風(fēng)險(xiǎn)。而且由于原FLASH控制邏輯完全固化,只要接口轉(zhuǎn)換邏輯正確,替換后的設(shè)計(jì)將對(duì)原產(chǎn)品完全兼容。 通過(guò)對(duì)FLASH IP接口與參數(shù)的分析,結(jié)合對(duì)已有SOC中Flash接口時(shí)序的要求,設(shè)計(jì)給出了FLASH控制接口與新FLASH IP之間的接口與時(shí)序轉(zhuǎn)換邏輯,并通過(guò)仿真,對(duì)設(shè)計(jì)的正確性進(jìn)行驗(yàn)證。 2 FLASH IP分析 2.1 整體介紹 設(shè)計(jì)所選用的Flash存儲(chǔ)器是一款CMOS頁(yè)擦除、16位編程的嵌入式存儲(chǔ)器,包含主存儲(chǔ)塊和信息存儲(chǔ)塊。主存儲(chǔ)塊大小為16k×64,是由128個(gè)存儲(chǔ)頁(yè)組成,每個(gè)頁(yè)內(nèi)有8個(gè)行存儲(chǔ)單元,每個(gè)行又分為16個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元為64位。信息模塊大小為320×64,可用來(lái)存儲(chǔ)固定信息。其擦除操作分為頁(yè)擦除和塊擦除兩種,頁(yè)擦除操作擦除一頁(yè)內(nèi)的所有字節(jié),塊擦除操作擦除整個(gè)主存儲(chǔ)塊。分立的門(mén)單元設(shè)計(jì)和厚氧化層溝道注入相比于傳統(tǒng)的方法獲得了更好的可靠性和可制造性。Flash執(zhí)行擦除和編程操作只需要1.8 V供電,室溫下能夠長(zhǎng)期保存數(shù)據(jù)。 2.2 接口分析 圖1 FLASH接口模塊圖 整體Flash IP的接口如圖1所示。根據(jù)功能,可以將接口引腳分為三類(lèi):XE、YE、SE、ERASE、PROG、NVSTR、IFREN、MAS1為控制信號(hào)線;YADR[3:0]、XADR[9:0]為地址信號(hào);DIN[63:0]、DOUT[63:0]為數(shù)據(jù)信號(hào)。外部地址信號(hào)的高低位分別通過(guò)地址信號(hào)線YADR[3:0]、XADR[9:0]來(lái)進(jìn)行存儲(chǔ)單元的定位。其中XADR[9:0]為X地址輸入來(lái)確定存儲(chǔ)單元中某個(gè)頁(yè)中的一行。YADR[3:0]地址確定所選擇行中的一個(gè)存儲(chǔ)單元。DIN[63:0]為數(shù)據(jù)輸入總線;DOUT[63:0]為數(shù)據(jù)輸出總線;控制信號(hào)XE、YE分別為X地址和Y地址的使能信號(hào);在進(jìn)行讀取操作時(shí),除了X地址和Y地址使能外,還需要置位SE信號(hào)來(lái)使能讀取操作。IFREN為信息模塊使能,置位是選中信息存儲(chǔ)塊,清零時(shí)選中主存儲(chǔ)區(qū)。ERASE為頁(yè)擦除使能信號(hào)。MAS1為整體擦除使能信號(hào),對(duì)其使能可一次擦除整個(gè)存儲(chǔ)區(qū)。PROG為編程使能信號(hào),上述信號(hào)均為高電平有效。NVSTR為擦寫(xiě)穩(wěn)定控制信號(hào),控制擦寫(xiě)時(shí)間;VDD、VSS為電源地信號(hào)。TMR、VPP以及TM為FLASH IP測(cè)試使用。 2.3 接口時(shí)序定義與分析 FLASH的編程時(shí)序如圖2所示。編程操作時(shí),首先將行使能信號(hào)XE和編程使能信號(hào)PROG同時(shí)置高保持,等待至少Tnvs后將NVSTR信號(hào)置高,待穩(wěn)定控制信號(hào)NVSTR置高后至少等待Tpgs將列使能YE信號(hào)置高,這樣再根據(jù)讀入的地址信號(hào)確定編程的地址單元,將數(shù)據(jù)寫(xiě)入地址單元中。連續(xù)編程為了提高編程的穩(wěn)定性,在編程前保留至少Tads的時(shí)間裕量,編程完成后留有Tadh的時(shí)間裕量。編程結(jié)束時(shí)信號(hào)PROG保持Tpgh后置低,待PROG置低后Tnvh將NVSTR拉低,兩次編程至少間隔Trcv。 圖2 FLASH編程時(shí)序 FLASH擦除時(shí)序如圖3 所示。將控制信號(hào)YE、SE、MAS1置低,待XE、ERASE使能信號(hào)置高后等待Tnvs將信號(hào)NVSTR置高,Terase為擦除時(shí)間,擦除完成后NVSTR高電平保持Tnvh后置低,連續(xù)兩次擦除的時(shí)間間隔至少為T(mén)rcv。 圖3 FLASH擦除時(shí)序 FLASH讀取時(shí)序如圖4 所示,首先將XE、YE信號(hào)置高,XADR和YADR 地址讀取使能,地址讀取需要Txa和Tya的反應(yīng)時(shí)間,讀取數(shù)據(jù)時(shí)應(yīng)當(dāng)留有相應(yīng)的時(shí)間裕量確保數(shù)據(jù)的正確讀出,保證測(cè)試的可靠性。 圖4 FLASH讀取時(shí)序 由于FLASH IP的操作對(duì)時(shí)間非常敏感,因此在進(jìn)行FLASH IP操作時(shí)應(yīng)該按照廠家所給的時(shí)間參數(shù)進(jìn)行,如表1。 表1 時(shí)間參數(shù) 3 FLASH 控制接口分析 已有的FLASH控制接口及描述如表2所示。其擦除和編程時(shí)序如圖5、圖6所示,時(shí)序參數(shù)如表3所示,其中的信號(hào)時(shí)序由對(duì)應(yīng)的控制程序來(lái)決定。 圖5 FLASH控制接口的擦除時(shí)序 圖6 FLASH控制接口的編程時(shí)序 表2 FLASH控制接口及描述 表3 FLASH控制接口時(shí)序參數(shù) 4 轉(zhuǎn)換邏輯的設(shè)計(jì)分析 通過(guò)上述分析可以看出,原有的FLASH控制接口和FLASH IP的接口不匹配,且時(shí)序差別也很大。但是兩者也存在一定的相似性,即除了數(shù)據(jù)和地址信號(hào)一樣外,其他的信號(hào)也基本上都分為模式控制信號(hào)和時(shí)序信號(hào)兩部分,因此可分別對(duì)兩組信號(hào)進(jìn)行轉(zhuǎn)換。在模式控制信號(hào)上,原有控制接口中由FP_pwr、FP_mode和FP_ mode_en_n三個(gè)信號(hào)共同確定操作的模式,而FLASH IP的操作模式由XE、YE和SE決定,設(shè)計(jì)通過(guò)增加模式譯碼模塊在兩者之間進(jìn)行模式信號(hào)的轉(zhuǎn)換,實(shí)現(xiàn)對(duì)新的FLASH IP模式的選擇。在時(shí)序上,原有的控制接口只有一個(gè)脈沖控制信號(hào),根據(jù)不同的操作模式,產(chǎn)生的脈沖時(shí)間也不同。FLASH IP的時(shí)序由多個(gè)信號(hào)分別對(duì)應(yīng)不同的模式,Prog對(duì)應(yīng)編程脈沖信號(hào),Erase對(duì)應(yīng)擦除脈沖信號(hào),Nvstr為穩(wěn)定控制信號(hào),起到對(duì)脈沖信號(hào)的穩(wěn)定作用。設(shè)計(jì)根據(jù)不同模式將原有的時(shí)序控制信號(hào)分配到對(duì)應(yīng)的FLASH IP時(shí)序脈沖信號(hào)上,并根據(jù)不同的脈沖寬度進(jìn)行放大或縮小。除此之外,對(duì)一些無(wú)相關(guān)性的信號(hào)進(jìn)行了一些固定值設(shè)定。整體轉(zhuǎn)換邏輯如圖7所示。 圖7 邏輯轉(zhuǎn)換結(jié)構(gòu)圖 5 仿真測(cè)試 本文使用Cadence公司開(kāi)發(fā)的仿真軟件Ncsim對(duì)FLASH IP進(jìn)行了相應(yīng)的功能仿真,通過(guò)對(duì)FLASH的接口時(shí)序分析,分別測(cè)試了FLASH的讀寫(xiě)擦操作,由于FLASH的編程只能將相應(yīng)位上的1編程成0,不能降0置1,因而在進(jìn)行每次編程操作前都要先將相應(yīng)地址的數(shù)據(jù)擦除成全1 然后將相應(yīng)的數(shù)據(jù)編入相應(yīng)的地址中。仿真時(shí)首先對(duì)地址0050進(jìn)行擦除后讀取的操作如圖8所示。從圖中IP接口一欄的信號(hào)可以看出,仿真對(duì)地址0050進(jìn)行了擦除操作后讀取地址內(nèi)數(shù)據(jù)為FFFFFFFF_FFFFFFFF。隨后對(duì)地址0052進(jìn)行了編程操作,如圖9所示。將數(shù)據(jù)FFFFFFFF_FFFFAA55寫(xiě)入地址后再將數(shù)據(jù)讀出。從仿真結(jié)果可以看出設(shè)計(jì)實(shí)現(xiàn)了對(duì)新FLASH的讀寫(xiě)擦操作,達(dá)到了設(shè)計(jì)要求。 圖8 FLASH擦除操作 圖9 FLASH編程操作 6 總結(jié) 本文通過(guò)對(duì)FLASH接口時(shí)序的分析并設(shè)計(jì)了相應(yīng)的測(cè)試激勵(lì),分別實(shí)現(xiàn)了對(duì)FLASH的讀寫(xiě)擦等功能的測(cè)試,達(dá)到了預(yù)期測(cè)試的目標(biāo)。通過(guò)后續(xù)的綜合和靜態(tài)時(shí)序分析,F(xiàn)LASH已經(jīng)成功用于一款定點(diǎn)32位DSP芯片當(dāng)中。 |