本發明涉及一種eflash串口測試電路及其測試方法,屬于半導體集成電路測試技術領域。
背景技術:
eflash(嵌入式閃存)的控制信號有很多,包括地址線(xadr、yadr)、數據輸入(din)、數據輸出(dout)、使能信號(xe、ye、se)、編程信號(prog)、擦除信號(erase)等等。在測試時,這些管腳必須按照一定的時序,置于所需要的電平,從而完成eflash的各種測試操作,如果將這些管腳完全與測試儀的通道相連,會大大增加芯片的管腳數量,所以一般采用串口設計來減少eflash測試所需的管腳數量。串口設計同時也會給電路引入大量數字邏輯,這些數字的正確與否直接關系到eflash的測試,所以為了提高串口測試的可靠性,需要將串口測試部分盡量設計的簡單直接,避免這部分邏輯引入的芯片錯誤,提高芯片的整體可靠性。
為了保證eflash的可靠性,在圓片測試階段需要對eflash作完備的測試,包括最基本的擦寫、編程、讀取、全寫、對角線編程等等,這些測試對于同一代工廠的幾代eflash都具有很高的一致性。
目前eflash測試比較直接的方法是將eflash的端口全部復用到管腳上,這樣做最直接,但是所用到的管腳過多,而且集成度特別低。還有一些eflash測試也會使用串口,但是串口邏輯比較復雜,容易引入新的錯誤,有些也會集成一些基本操作,但是一般都是基本的擦、寫、讀,并沒有辦法很好的減少測試集成度問題。基于自動化程度的考慮,需要提高eflash測試電路的集成度,減少重復開發的成本。
技術實現要素:
本發明的目的是為了提高串口測試的可靠性,將串口測試部分盡量設計的簡單直接,避免串口部分邏輯引入的芯片錯誤,提供一種高可靠性和高集成度的eflash串口測試電路及其測試方法,其集成度高,可靠性高,開發成本低。
按照本發明提供的技術方案,所述的高可靠性和高集成度的eflash串口測試電路,其包括依次連接的測試信號生成電路、信號選擇電路以及嵌入式閃存,所述嵌入式閃存的輸出端再與測試信號生成電路連接;
所述測試信號生成電路首先接收串行輸入的測試指令和配置參數,并根據對所述測試指令的解碼,選擇對嵌入式閃存執行的測試操作;然后根據輸入的配置參數,對所需執行的測試操作進行相應配置,通過內部的狀態機生成相應的測試激勵,完成對嵌入式閃存的測試操作;最后通過串行輸出端口將嵌入式閃存的測試結果反饋出來;
所述信號選擇電路根據嵌入式閃存的測試模式信號選擇嵌入式閃存的輸入,當處于測試模式時,將測試信號生成電路的輸出信號傳遞給后級的嵌入式閃存。
具體的,所述測試信號生成電路包括依次連接的移位寄存器、測試功能選擇電路、指令解碼電路以及測試信號發生器電路,串行輸入的測試指令和配置參數通過移位寄存器鎖存,通過指令解碼電路對測試指令的解碼,如果執行對嵌入式閃存的直接測試,則直接將配置參數轉換成測試信號,由測試信號發生器電路發送到嵌入式閃存端口,實現對嵌入式閃存的測試操作;如果執行固化的測試項,則首先將配置參數寫到測試信號發生器電路內部的配置寄存器內,然后測試功能選擇電路根據測試指令選擇測試項,啟動單個狀態機或者多個狀態機組合,生成相應的測試激勵,完成對嵌入式閃存的測試操作。
具體的,所述測試信號發生器電路將測試中的基本項:單次讀取和單次編程固化為基本狀態機,當執行全寫、對角線編程操作時能夠調取這些基本狀態機。
具體的,接收串行輸入的測試指令和配置參數時,輸入的測試指令首先存入移位寄存器中,移位的同時,開始計數,當計數值反映測試指令全部存好后,測試信號生成電路就獲得了測試指令,同時串口繼續輸入配置參數;獲得的測試指令經過指令解碼電路解碼,解析出當前測試項;根據測試指令來解析配置參數,并將配置參數分配到不同的配置寄存器中。
本發明的優點是:一方面在串口測試設計過程中,保留直接測試部分,直接測試部分盡量簡化串行輸入到eflash端口的邏輯,最大限度保障避免引入測試部分邏輯的芯片錯誤,提高芯片的整體可靠性;另外一方面集成了最基本的擦寫、編程、讀取、全寫、對角線編程等操作,提高eflash測試電路的集成度,減少重復開發的成本,滿足半導體集成電路測試技術領域中對eflash測試的要求。
附圖說明
圖1為本發明的串口測試電路的系統結構框圖。
圖2為本發明的測試信號生成電路示意圖。
圖3為本發明串行輸入信號的格式示意圖。
圖4為本發明eflash編程操作示例示意圖。
附圖標記說明:100-測試信號生成電路,110-信號選擇電路,120-嵌入式閃存(eflash),101-移位寄存器,102-測試功能選擇電路,103-指令解碼電路,104-測試信號發生器電路。
具體實施方式
下面結合具體附圖和實施例對本發明作進一步說明。
為了能夠實現高可靠性和高集成度的eflash串口測試,結合圖1、圖2所示的電路,本發明所采用的eflash串口測試方法包括如下步驟:
a、測試信號生成電路100接收串行輸入的測試指令和配置參數,并根據對所述測試指令的解碼,選擇對eflash120執行的測試操作。
其中,復位信號srst復位完成后,通過串行數據輸入信號sdi、串行輸入使能信號sen配合,將測試指令和配置參數串行輸入,串行輸入的測試指令和配置參數的基本格式如圖3所示,輸入的測試指令首先存入移位寄存器101中,移位同時,開始計數,當計數值反映測試指令全部存好后,串口測試電路就將測試指令獲得,同時串口繼續輸入配置參數;獲得的測試指令經過解碼,解析出當前測試項。本發明實施例中,需首先判斷測試指令,這樣才能根據測試指令來解析配置參數,并將配置參數分配到測試信號發生器電路104內不同的配置寄存器中。
b、測試信號生成電路100根據輸入的配置參數,對所需執行的測試操作進行相應配置,通過內部的狀態機生成相應的測試激勵,完成對eflash120的測試操作。
本發明實施例中,在完成對相應配置寄存器的配置之后,測試信號生成電路100根據這些配置信息,開始生成測試激勵,測試激勵以串行輸入的時鐘sck為時間基準,時鐘周期為t,見圖2所示,根據如圖4所示的eflash120工作所需的信號時序,配置信號的時序參數值為n,那么延遲時間為t*n。圖4中的xadr為高地址,xe為高地址使能,yadr為低地址,ye為低地址使能,din為數據輸入,prog為編程信號,nvstr為狀態信號,tsmp為ye信號拉高時間,trcv為nvstr信號下降沿和prog信號上升沿之間的時間。
當需要執行編程操作時,首先配置編程過程中的各時序參數如圖4中的trcv,計算方法如上所示,然后配置所需編程的地址,再配置寫入的數據,最后啟動編程操作。而如果想要執行更加復雜的操作,比如全寫、對角線編程等等,還需要配置massprogram信號,再配置一下地址的步進值等信息,無需對寫入數據作一一配置,串口測試電路會自動生成一些固定形式的數據,如數據累加,數據翻轉等,只需要配置想寫入的數據為何種形式,編程啟動之后,狀態機會自動將數據生成并寫到eflash中。
這些編程操作都依賴于最基礎的單編程操作,如果需要實現圖4所示的雙編程,只需要改變地址和數據,同時重新配置ye寬使能,這些可以通過串口測試電路來實現,這里不再贅述。
c、測試信號生成電路100通過串行輸出端口將eflash120的測試結果反饋出來。
本發明實施例中,最終需要將測試結果反饋出來,測試結果分為兩種,一種是直接將eflash中的數據讀取出來,另一種是通過串口測試電路自動完成對eflash的編程、讀取和比對,將最終的測試結論通過測試失敗信號test_fail輸出出來,信號為低,則表示測試成功;測試完成信號test_done用來表示測試完成與否,如圖1所示。
要將eflash中的測試數據讀取出來,需要進行下列操作:首先根據串行輸入的時鐘信號sck為時間基準來配置讀取過程中的各時序參數;然后配置讀取的地址;開始讀取eflash中相應地址中的數據,數據讀取后會鎖存在一個移位寄存器中;最后一步,將移位器存器中的數據通過串行數據輸出信號sdo、串行數據使能信號sdo_en輸出出來。
具體實施時,還可以使用直接測試的方式,直接測試的方式相對上面的方式靈活性更高,可靠性也更好,不過相應的測試激勵開發更為復雜。以實施編程為例,直接測試,每步操作都是通過串行輸入一組測試指令和配置參數來實現的,測試指令解碼完成,串口測試電路進入直接測試模式,將配置參數直接轉換為控制信號端口電平的高低,地址和數據還是配置到相應的寄存器中再輸出到eflash端口,以圖4為例,假設控制信號為{xe、ye、prog、nvstr},地址寄存器分別為xadr、yadr,數據為din,則控制信號的配置參數依次為4`b0000、4`b1000、4`b1010、4`b1011、4`b1111、4`b1011、4`b1111、4`b1011、4`b1001、4`b1000、4`b0000;在控制信號配置為4`b1111之前,先配置地址寄存器xadr、yadr和數據寄存器din;這樣就完成了直接測試中的編程操作,讀取操作也是如此,這里不再贅述。直接測試時不需要配置時序參數,其中的延遲是在開發激勵時,每組串行輸入信號之間的時間延遲來控制的,計算這個延遲還需要考慮到串行輸入本身的時間消耗,這樣可以更加精準的把握直接測試的時序控制。
為實現上述測試方法,本發明搭建的eflash串口測試電路包括依次連接的測試信號生成電路100、信號選擇電路110以及嵌入式閃存120,所述嵌入式閃存120的輸出端再與測試信號生成電路100連接,如圖1所示;所述測試信號生成電路100首先接收串行輸入的測試指令和配置參數,并根據對所述測試指令的解碼,選擇對嵌入式閃存120執行的測試操作;然后根據輸入的配置參數,對所需執行的測試操作進行相應配置,通過內部的狀態機生成相應的測試激勵,完成對嵌入式閃存120的測試操作;最后通過串行輸出端口將嵌入式閃存120的測試結果反饋出來;所述信號選擇電路110根據嵌入式閃存120的測試模式信號選擇嵌入式閃存120的輸入,當處于測試模式時,將測試信號生成電路100的輸出信號傳遞給后級的嵌入式閃存120。
如圖2所示,所述測試信號生成電路100包括依次連接的移位寄存器101、測試功能選擇電路102、指令解碼電路103以及測試信號發生器電路104,串行輸入的測試指令和配置參數通過移位寄存器101鎖存,通過指令解碼電路103對測試指令的解碼,如果執行對嵌入式閃存120的直接測試,則直接將配置參數轉換成測試信號,由測試信號發生器電路104發送到嵌入式閃存120端口,實現對嵌入式閃存120的測試操作;如果執行固化的測試項,則首先將配置參數寫到測試信號發生器電路104內部的配置寄存器內,然后測試功能選擇電路102根據測試指令選擇測試項,啟動單個狀態機或者多個狀態機組合,生成相應的測試激勵,完成對嵌入式閃存120的測試操作。
上述電路的具體結構,并不是本發明的重點,只要能夠完成相應的功能即可。
本發明為了提高eflash測試電路的集成度,減少重復開發的成本,將測試中的基本項:單次讀取和單次編程全部集成到電路中,固化為基本狀態機,當執行擦寫、編程、讀取、全寫、對角線編程等操作時可以調取這些基本狀態機,簡化測試設計過程,降低開發成本,滿足半導體集成電路測試技術領域中對eflash測試的要求。