本發(fā)明屬于集成電路的技術領域,特別涉及具有可多次編程的存儲元件的燒錄方法。
背景技術:
MTP(Multiple-Time Programmable:多次可編程存儲器”)是目前在編程技術中一種應用比較廣泛的存儲器,其通常是結合MCU存儲器來應用的。
隨著MTP存儲器面積越來越接小,而且可以多次編程的優(yōu)點,廣泛用于MCU存儲器,以及DRAM和SRAM大容量存儲器作備份。MTP的容量也越來越大,燒錄的時間必然會越來越長,那么提高燒錄機同時燒錄的數量,相當于減少用戶的成本。
對于采用MTP作為存儲器的MCU,需要一個燒錄接口。為了提高燒錄機可同時燒錄MCU的數量,一般采用一根數據線和一根時鐘線,用串行的方式進行數據交互,如附圖1所示,燒錄機通過電源VDD、地(VSS)、時鐘CLK和數據DATA四根線,與MCU進行通信,完成燒錄和讀取數據。燒錄機進行燒錄時,需要先發(fā)送命令、地址和數據,當MCU接收到這些后才能開始燒錄,接收命令、地址和數據花費了一定時間。
技術實現要素:
為解決上述問題,本發(fā)明的目的在于提供一種流水線型的MTP快速燒錄的方法,該方法能夠減少發(fā)送命令、地址和數據的通信時間,而且在MTP燒錄期間可以同步進行其他模塊的測試,節(jié)約整個芯片的燒錄和測試時間。
本發(fā)明的另一個目的在于提供一種流水線型的MTP快速燒錄的方法,該方法可以利用現有的數字集成電路,易于實現,控制簡單,實現成本低廉。
為實現上述目的,本發(fā)明的技術方案如下。
一種流水線型的MTP快速燒錄的方法,采用一根數據線和一根時鐘線,用串行的方式進行數據交互,其特征在于該方法首先通過外部時鐘CLK和數據DATA串行輸入待燒錄的數據,把待燒錄的數據緩存到內部緩存器中,MTP需要燒錄的數據從緩存器讀取數據。
為了支持在MTP燒錄期間可以進行其他模塊的測試,本發(fā)明還提出一種特定的通信協議用以燒錄數據的傳輸,使各模塊之間的測試相互不干擾。特定的通信協議其特征在于包括有命令位(CMD)、狀態(tài)(STATUS)、數據(DATA)、校驗(CRC)。
進一步,所示CMD命令包括配置地址、讀MTP、寫內部緩存器、RAMBIST、SCAN測試、OSC測試和RESET等命令,燒錄機不管發(fā)送什么命令,都可以得到內部緩存數目來控制送入數據。CRC(校驗)用來保證通信。
進一步,各個命令開啟后不會因為輸入其他命令而中止當前操作,除非輸入RESET命令,所有測試將會被停止。
進一步,STATUS需要反映當前測試項目的Pass/Fail標志、Done標志以及寫MTP內部緩存的數目。
進一步,該方法還包括有中斷機制:數據DATA線有內部上拉電阻,當內部緩沖器低于一定字節(jié)數后,在非通信階段,不停的發(fā)送0和1電平,其中0電平是通過芯片內部反相器輸出,1電平是內部不驅動,通過內部上拉電阻置1。
進一步,該方法還包括有Busy檢測機制:燒錄機傳輸數據,需要檢測PAD,如果檢測到低電平,表示此階段為芯片Busy階段或者輸出階段,不能傳輸數據,當檢測到高電平后才能開始傳輸數據。
本發(fā)明實現了的基于流水線的MTP快速燒錄方法,能夠減少發(fā)送命令、地址和數據的通信時間,而且在MTP燒錄期間可以同步進行其他模塊的測試,節(jié)約整個芯片的燒錄和測試時間。
附圖說明
圖1是現有技術所實施的燒錄接口示意圖。
圖2是本發(fā)明所實施的通信協議格式示意圖。
圖3為本發(fā)明所實現的具有上拉電阻時通訊協議結構圖。
圖4為本發(fā)明所實現燒錄模塊的結構圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
為本發(fā)明所實現基于流水線的MTP燒錄方法,采用一根數據線和一根時鐘線,用串行的方式進行數據交互,首先通過外部時鐘CLK和數據DATA串行輸入待燒錄的數據,把待燒錄的數據緩存到內部緩存器中,MTP需要燒錄的數據從緩存器讀取數據。
其中,該方法結合于特定的通信協議,要求各模塊之間的測試相互不干擾,可以進行并行測試。特定的通信協議其特征在于包括有命令位(CMD)、狀態(tài)(STATUS)、數據(DATA)、校驗(CRC)。如圖2所示,下面的實例中規(guī)定CMD為6Bit,支持64條指令,STATUS為8Bit,數據DATA為16Bit,通信協議格式如下面表1所示。CMD指令基本包括配置地址、讀MTP、寫內部緩存器、RAMBIST、SCAN測試、OSC測試、測試結果查詢指令和RESET等命令。各個命令開啟后不會因為輸入其他命令而中止當前操作,除非輸入RESET命令,所有測試將會被停止。STATUS為8Bit,具體的數據格式如表1所示。
表1
其中,BIT7為OSC_EN,等于1表示內部在進行OSC測試,等于0表示OSC測試結束。
BIT6為SCAN_EN,等于1表示內部在進行SCAN測試,等于0表示SCAN測試已經結束。
BIT5為RAMBIST_EN,等于1表示內部在進行RAMBIST測試,等于0表示RAMBIST測試已經結束。
BIT4為MTP_WR,等于1表示內部在進行MTP寫操作,等于0表示MTP寫操作已經測試。
BIT3-BIT0為表示剩余待寫入MTP緩存的個數。
BIT4~BIT7可以一個或者多個為1,當多個為1表示在進行并行測試。每個測試的結果Pass或者Fail,通過測試結果指令來查詢。
數據DATA線,需要設計成內部上拉,上拉電阻設計實例采用30K歐姆。當內部緩沖器低于2個字節(jié)后,在非通信階段,不停的發(fā)送0和1電平,0和1電平的持續(xù)時間需要超過一定時間,在本實例中為100us,如附圖3所示。其中0電平是通過芯片內部反相器輸出,1電平是內部不驅動,通過內部上拉電阻置1,從0跳到1是一個緩慢上升的過程。外部燒錄器檢測到數據DATA線上有0和1跳變,表示內部緩存預警。燒錄器發(fā)送寫內部緩存器命令送入數據。燒錄機檢測到DATA線為0時,不能發(fā)送命令,燒錄機傳輸數據,需要檢測PAD,如果檢測到低電平,表示此階段為芯片Busy階段或者輸出階段,不能傳輸數據,當檢測到高電平后才能開始傳輸數據。
圖4所示,燒錄模塊包括命令解析、數據收發(fā)模塊和并行控制模塊,其中命令解析模塊主要負責命令和狀態(tài)的解析,根據不同的命令來進行收發(fā)控制。如果是寫內部緩存器指令,那么送入的數據存入內部緩存器;如果是設置地址指令,那么送入的數據為控制MTP讀寫地址。并行控制模塊,對OSC測試、SCAN測試、RAMBIST測試以及MTP寫操作測試4種測試進行并行狀態(tài)控制,相互之間不受影響,每種測試都能產生各自的完成標志和Pass/Fail標志。燒錄器可以通過測試結果查詢指令,讀取4種測試的標志。
緩沖器Buffer與MTP讀寫控制模塊,完成對緩沖器Buffer的管理,以及MTP讀寫時序的產生,當緩沖器Buffer低于兩個字節(jié)后,產生一個預警標志供數據收發(fā)模塊發(fā)送0和1電平的中斷機制;RAMBIST模塊、OSC_TEST模塊和SCAN_TEST模塊分別控制RAMBIST測試、OSC測試和SCAN測試的時序,產出完成標志和Pass/Fail標志。
由于MTP燒錄一個字節(jié)的時間較長,一般會在0.4ms,當MTP燒錄完一個數據后,可以馬上從緩存器讀取下一個字節(jié)進行燒錄。從整體來看,除了第一個字節(jié)燒錄時消耗了命令、地址和數據的通信時間,其他字節(jié)都沒有消耗通信時間。當緩存器放了足夠數據后,可以并行對其他模塊進行測試,節(jié)約整個芯片的測試時間。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。