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