a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 基于二叉樹的時序電路測試序列設計

基于二叉樹的時序電路測試序列設計

作者: 時間:2012-08-03 來源:網絡 收藏

摘要:為了實現狀態驗證和故障檢測,需要事先設計一個輸入?;?a class="contentlabel" href="http://www.j9360.com/news/listbylabel/label/二叉樹">二叉樹節點和樹枝的特性,建立狀態二又樹,按照電路節點(狀態)與樹枝(輸入)的層次邏輯關系,可以直觀和便捷地設計出。用激勵待測電路,可以驗證電路是否具有全部預定狀態,是否能夠實現預定狀態轉換。
關鍵詞:;時序電路;測試序列;狀態驗證;故障檢測

在時序電路的設計或故障檢測過程中,需要對電路進行狀態驗證,狀態驗證就是用一個事先設計的測試序列,對待測電路的輸入端進行激勵,同時檢測電路的輸出響應,判斷電路是否具有全部設定狀態,能否實現設定的狀態轉換。測試序列設計包括:描述電路狀態轉換信息;確定電路到達全部預定狀態所需的輸入測試碼;將測試碼以適當算法構成狀態測試序列。使用測試序列對電路輸入端進行激勵,電路具
有設定的全部狀態,能夠實現設定的狀態轉換功能。則電路設計目的達到或電路無故障,反之設計目的未達到或電路有故障。
有兩類設計時序電路測試序列的方法:第一類稱為迭代法,將時序電路等價為p維的組合電路迭代模型,考察i個時鐘到來時pi維組合電路模型的輸入輸出響應,并按一定的迭代算法求出該時序電路的測試序列。第二類稱為檢測試驗法,通過對待測時序電路進行試驗性激勵,導出一個測試序列,宏觀地檢查輸出是否實現預定功能。
前者需要建立多個電路模型,計算方法復雜。后者方法簡單但是需要多次激勵驗證,特別是對于多層邏輯結構的電路,試驗性激勵將十分繁雜。通過對時序電路狀態描述,建立電路狀態二叉樹,利用二叉樹具有的數據元素(節點、分支)的非線性關系,設計時序電路的測試序列具有簡單清晰的特點。

1 電路狀態描述
時序電路狀態二叉樹可以根據電路狀態轉換表的信息建立。在電路設計階段,狀態轉換表可以由所需的狀態轉換圖推出。在已知電路測試或故障診斷階段,狀態轉換表可以通過電路狀態分析推出。例如,圖1所示的時序電路,由Q1、Q0兩個JK觸發器在同一時鐘CLK控制下翻轉,X為輸入信號,Z為輸出信號。由電路分析可知:
電路的觸發器驅動方程為:J1=K1=(XQ0)’;J0=X K0=(X’Q1)’
電路的觸發器狀態方程為:e.jpg;f.jpg
電路的輸出方程為:g.jpg
電路的觸發器位數N=2,狀態數M=2N=4,4個狀態分別為A=00、B=01、C=10、D=11。
所以,圖1所示時序電路的狀態轉換功能可以用如圖2所示狀態圖描述。

本文引用地址:http://www.j9360.com/article/193454.htm

a.JPG


設:PS為初態,NS為現態,圖1所示時序電路的狀態轉換功能也可以用如表1所示狀態表來描述。

b.JPG


狀態表描述了電路在輸入X作用下,輸出Z以及電路狀態NS與輸入X之間的邏輯關系,包涵了電路狀態驗證和故障檢測所需的全部測試碼,原則上可以直接使用狀態表的信息設計出電路的測試序列。但是,狀態表中描述測試碼與時序電路狀態的邏輯層次關系不明顯,沒有直接反映出電路狀態與輸入的多層邏輯關系。所以,設計具有多層邏輯關系電路的輸入測試序列,僅狀態表信息有一定難度。

2 電路二叉樹構成
二叉樹是一種以節點(數據元素)按分支(樹枝)關系組織,按分支層次關系定義的樹型非線性數據結構。其基本特點是:第i層最多有2i-1個節點,i=1層只有一個節點稱為根節點;每個節點最多有兩個后繼子樹,除根節點外的所有節點都有且只有一個直接前驅;深度為k的的二叉樹的最大節點數為2k-1。如圖3是深度為3的二叉樹。

c.JPG


二叉樹描述時序電路時,用二叉樹節點Ni代表電路在i時刻的狀態,電路初始(或復位)狀態稱為根節點。用二叉樹兩節點之間的樹枝表示輸入碼的邏輯值,在節點Ni處輸入碼X=0構成左子樹,輸入碼X=1構成右子樹,兩棵子樹分別連接下一層的兩個節點。所以,節點Ni到Ni+1之間樹枝的遍歷,在邏輯上代表了電路由狀態Ni轉換到狀態Ni+1所需的輸入序列Xi。其中,由根節點N01到節點Ni所經歷的樹枝,組成了電路的一個測試序列Xi。Xi的長度就是二叉樹的層數,各層的節點數N=2i-1按指數規律增加。
通電初始時刻圖1時序電路在狀態二叉樹的根節點N01處,可能是A、B、C、D中的任意一個狀態,可以用節點向量N01=(ABCD)表示,如圖4所示。

d.JPG


在根節點N01處:當輸入X=0,形成根節點的左子樹,連接到N11節點,如圖4所示。由表1可知輸入X=0時,若輸出Z=1,電路發生了初態PS=C到現態NS=A的轉換,記為C0→1A;若輸出Z=0則電路可能發生D0→0B、A0→0C或B0→0C的狀態轉換。所以,節點N11處電路狀態可用節點向量N11=(A)1(BCC)0表示。其中,節點向量的分量則表示電路在輸入Xi作用下,當輸出為Zi時的電路狀態。例如,分量(A)1表示測得Z=1電路應為狀態A;分量(BCC)0表示測得Z=0電路有可能是狀態B或C。
當輸入X=1,形成根節點的右子樹,連接到N12節點,如圖4所示。由表1可知輸入X=1時,若Z=0電路發生了C1→0B的狀態轉換;若輸出Z=1則電路可能發生B1→1A、A1→1D或D1→1C的狀態轉換。用向量N12=(ACD)1(B)0表示。
電路到達節點N11=(A)1(BCC)0后:再輸入X=0(相當于在根節點N01處輸入序列Xi=00),電路到達節點N21=(C)10(C)00(AA)01處,如圖4所示。其中,分量(C)10表示在輸入序列X=00作用下,若輸出序列Z=10電路狀態為C;分量(C)00表示在輸入序列X=00作用下,若輸出序列Z=00電路狀態也為C;分量(AA)01表示在輸入序列X=00作用下,若輸出序列Z=01電路狀態為A。若再輸入X=1(即N01處輸入序列Xi=01),電路到達節點N22=(D)11(A)01(BB)00處。
同理,輸入序列Xi=10,電路到達節點N23=(BC)10(A)11(C)00;輸入序列Xi=11,電路到達節點N24=(CD)11(B)10(A)01。可見,當輸入序列長度為2時,到達二叉樹的第二層,有4棵子樹對應4個節點N21、N22、N23、N24,如圖4所示。
依次由根節點N01處開始,輸入序列為X=000、X=001、X=010、X=011、s=100、X=101、X=110、X=111,電路到達節點N31~N38,……即可以得到時序電路二叉樹,如圖4所示。其中,輸入序列長度i是二叉樹的層數,各層的節點數N=2i-1按指數規律增加。
在構建電路二叉樹過程中,當節點向量與前級某節點向量重復時,該節點是二叉樹的一個終止節點。例如:N41與N21重復、N44與N31重復、N49與N35重復,二叉樹不再從這些節點延伸。考慮到研究時序電路二叉樹的目的是確定測試序列,當節點向量能夠確定電路唯一狀態(例如,節點N511處電路狀態必為C)二叉樹不再從這個節點延伸。當節點的輸出序列Z能夠區分電路全部狀態,(例如,節點N38處電路向量N38=(B)110(C)111(A)101(D)011,表明在輸入序列X=111作用下,若Z=110電路狀態必為B,若Z=111電路狀態必為C,若Z=101電路狀態必為A,若Z=011電路狀態必為D。)二叉樹也不再從這個節點延伸。

3 節點向量與輸入序列
電路二叉樹的一個節點向量通常由多個分量組成,例如向量N11=(A)1(BCC)。由(A)1和(BCC)0兩個分量構成。一個分量通常包含多個電路狀態,例如分量(BCC)0包含B和C兩個狀態。有兩個以上不同狀態組成的分量稱為非同類分量,由非同類分量構成的向量稱為不確定向量,例如N01、N11、N12和N23。
只包含一個狀態或僅包含多個相同狀態的分量(例如(A)1和(AA)00)稱為同類分量,由同類分量構成的向量稱為同類不確定向量(例如N21和N22),在同類不確定向量節點處,總能根據電路的輸出序列唯一地確定電路達到的狀態。所以,由根節點到同類不確定向量節點,經歷樹枝構成的輸入序列稱為引導序列,記為Xh。例如,由N01到達N22的輸入序列X=01就是圖1電路的一個引導序列。在引導序列Xh=01作用下,若Z=00則狀態必為B;Z=01狀態必為A;Z=11狀態必為D。
只包含一個狀態的同類分量(例如(A)1、(B)100和(C)10)又稱為平凡不確定分量,全部由平凡不確定分量構成的向量稱為平凡不確定向量(例如N38=(B)110(C)111(A)101(D)011),在平凡不確定向量節點處,電路雖可能有多個不同狀態,但根據輸出序列可以確定電路當前狀態。所以,由根節點到平凡不確定向量節點,經歷樹枝構成的輸入序列稱為區分序列,記為Xd。例如,由N01到達N38的輸入序列X=111就是圖1電路的區分序列。在區分序列Xd=111作用下,若輸出序列Z=101,則電路狀態由D到達A,記為D111→101A;若輸出序列Z=110,則電路狀態由A到達B,記為A111→110B;若輸出序列Z=111,則電路狀態由B到達C,記為B111→111C;若輸出序列Z=011,則電路狀態由C到達D,記為C111→ 011D。區分序列常用于驗證或確定電路所處的狀態,區分序列也是引導序列,但并不是每個時序電路都存在區分序列。
利用區分序列可以生成表3是圖1電路在區分序列Xd=111作用下的電路狀態引導表。其中:IS是Xd作用前狀態,FS是作用后的狀態。
全部由同一狀態同類分量構成的向量(例如N511=(C)11010(C)01000(CC)00000)稱為同類不確定向量,在同類平凡不確定向量節點處,電路雖可能有多個不同的輸出序列,但電路狀態是唯一的。所以,由根節點到同類不確定向量節點,經歷樹枝構成的輸入序列稱為同步序列,記為Xs。例如,由N01到N511的輸入序列X=01010就是圖1電路的一個同步序列,在同步序列Xs=01010的激勵下電路由N01到達N511,無論輸出序列Z=11010、Z=01000或Z=00000電路狀態都為C。同步序列是一個特殊的引導序列,常用于把電路從未知狀態引導到一個已知的狀態起點。
能夠將電路從已知狀態轉換到預定狀態的輸入序列X稱為轉換序列記為Xt,轉換序列由轉換碼構成。由狀態轉換圖2中可見Xt0=0是圖1電路C0→1A、A0→0C、B0→0C、D0→0B的轉換碼;Xt1=1是A1→1D、B1→1A、C1→0B、D1→1C的轉換碼。轉換序列常用于核實電路狀態轉換功能,例如:當圖1電路已確認引導到C狀態后,在轉換序列Xt10=Xt1-Xt0=10激勵下,如果輸出序列Z=00表明電路實現了C1→0B、B0→0C轉換。

4 測試序列與狀態驗證
時序電路狀態驗證過程通常包括:狀態引導階段,采用引導序列將電路從未知狀態引導到預定狀態。狀態驗證階段,采用區分序列逐一核實電路具有全部狀態。狀態轉換驗證階段,采用轉換序列核實電路具有全部狀態轉換功能。能夠完成狀態驗證全部過程的輸入序列,稱為測試序列。在實踐中,測試序列可采用引導序列Xh、區分序列Xd以及必要的轉換序列Xt組成測試序列,如測試序列可為X=Xh-Xd-Xt等。
例如,圖1所示電路最直觀的測試序列可以是X=Xs-4Xd1-4Xt1-2Xt0-Xt10-Xd1-2Xt0。其中,同步序列Xs=01010將電路由來知引導到確定的狀態C;4組區分序列Xd1=111分別驗證電路具有D、A、B和C4個狀態;轉換序列4Xt1=1111分別驗證電路有C1→0B、B1→1A、A1→1D、D1→1C狀態轉換功能;轉換序列2Xt0=00分別驗證電路有C1→0A、A0→0C狀態轉換功能;轉換序列Xt10=10驗證電路有C1→0A轉換功能;區分序列Xd1=111將電路由C狀態引導到D狀態;轉換序列2Xt0=00驗證電路有D0→0B轉換功能。至此,圖1電路具有的所有狀態和狀態轉換功能都得到驗證。這樣構成的測試序列X=Xs-4Xd1-4Xt1-2Xt0-Xt10-Xd1-2Xt0=01010 111 111 111 111 1111 0010 111 00長度達30層。
實踐中,在能夠確認電路所有狀態和狀態轉換功能的原則上,測試序列長度越短越好。對于圖1電路的測試序列也可以是X=Xs-2Xt0-4Xt1-Xd。其中,同步序列Xs=01010引導電路到C,同時也驗證了電路有C狀態;轉換序列2Xt0=00驗證電路有C0→1A、A0→0C轉換功能,同時也驗證電路有A狀態;轉換序列4Xt1=1111驗證電路有C1→0B、B1→1A轉換功能,且驗證電路有B狀態,驗證電路有A1→1D、D1→1C轉換功能,且驗證有D狀態;區分序列Xd=111引導電路C111→011D到達狀態D;轉換序列2Xt0=00驗證電路有D0→0B、B0→0C轉換。這時測試序列X=01010 00 1111 111 00長度僅為16層。在該測試序列作用下,若電路輸出序列為Z=XXXXX 10 0111 01100(前5個輸出可能是11010或01000或00000之一),則圖1電路具有A、B、C、D 4個狀態,并實現了圖2設定全部狀態轉換功能。

5 結論
通過建立時序電路的狀態二叉樹,可以得到該時序電路的測試序列X,在測試序列X的作用下,電路將產生一個輸出序列Z。如果無故障電路在X作用下輸出序列為Zo,有故障電路在X作用下的輸出序列為Zf,顯然Zo≠Zf。在正常序列Zo和故障序列Zf中0、1的個數和分布規律不同。因此,檢測輸出序列Z的0、1個數以及分布規律就可以確定電路是否有故障。在實踐中并不是所有的時序電路都可以是先找到一個完整的測試序列,有時必須根據電路在前一個序列作用下的輸出序列來決定繼續檢測所需的測試序列。



評論


相關推薦

技術專區

關閉