保慧琴,李 茹,衛(wèi) 霞
(西北工業(yè)大學明德學院信息工程學院,西安710124)
序列信號檢測器作為一種時序數(shù)字電路中最常用到的設(shè)計之一,可以從串行的數(shù)字碼流中識別出一個指定的序列,因此在雷達、遙測、密碼認證等領(lǐng)域中有廣泛的應(yīng)用。隨著集成電路的快速發(fā)展,互補CMOS電路在集成電路中的應(yīng)用占了98%以上。靜態(tài)CMOS邏輯結(jié)構(gòu)包含NMOS邏輯塊和PMOS邏輯塊,兩者互補,因此在輸入穩(wěn)態(tài)時兩個邏輯塊輪流導通,電源和地之間沒有直流通路,靜態(tài)功耗幾乎為0。同時,靜態(tài)CMOS邏輯也是一種無比電路,擺幅可以達到-VDD[1]。
基于靜態(tài)CMOS邏輯電路,在此設(shè)計一款“1111”序列信號檢測器,其輸入X為串行二進制數(shù),當串行輸入數(shù)據(jù)中連續(xù)出現(xiàn)四個“1”時,使其輸出Z為1。
首先建立原始的狀態(tài)轉(zhuǎn)換圖。“1111”序列信號檢測器一共需要5個狀態(tài):S0代表接收到0以后的狀態(tài);S1代表接收到1個1以后的狀態(tài);S2代表接收到2個1以后的狀態(tài);S3代表接收到3個1以后的狀態(tài);S4代表接收到4個1以后的狀態(tài)。原始狀態(tài)轉(zhuǎn)換圖和狀態(tài)轉(zhuǎn)換表如圖1、表1所示。
圖1狀態(tài)轉(zhuǎn)換圖
表1狀態(tài)轉(zhuǎn)換表 yn+1/Z
不論狀態(tài)處在S0~S4的哪個狀態(tài),當輸入為0時狀態(tài)都會跳轉(zhuǎn)回到S0狀態(tài),輸出為0;S0是接收0以后的狀態(tài),如果輸入為1,則狀態(tài)跳轉(zhuǎn)到S1狀態(tài),輸出為0;S1是接收1個1以后的狀態(tài),如果輸入為1,則狀態(tài)跳轉(zhuǎn)到S2,輸出為0;S2是接收2個1以后的狀態(tài),如果輸入為1,則狀態(tài)跳轉(zhuǎn)到S3,輸出為0;S3是接收3個1以后的狀態(tài),如果輸入為1則狀態(tài)跳轉(zhuǎn)到S4,輸出為1;S4是接收到4個1的狀態(tài),如果輸入為1則狀態(tài)停留在S4,輸出為1。觀察表1可以發(fā)現(xiàn),S3和S4這兩個狀態(tài),在相同的輸入作用下,有相同的輸出,而且轉(zhuǎn)換到相同的輸出,所以S3和S4這兩個狀態(tài)是等價狀態(tài),可以合并為一個狀態(tài)[2],從而將狀態(tài)轉(zhuǎn)換圖和狀態(tài)轉(zhuǎn)換表簡化為圖2和表2所示。
圖2簡化后的狀態(tài)轉(zhuǎn)換圖
表2簡化后的狀態(tài)轉(zhuǎn)換表yn+1/Z
時序邏輯電路的狀態(tài)是用觸發(fā)器狀態(tài)的不同組合來表示的,因此需要確定觸發(fā)器的級數(shù)n。n個觸發(fā)器一共有2n個狀態(tài)組合,要獲得M個狀態(tài)組合,必須取2n<M≤2n。本設(shè)計中狀態(tài)個數(shù)為4,所以需要2個觸發(fā)器即可。2個觸發(fā)器一共有00、01、10和11四個狀態(tài),需要將這四個狀態(tài)進行狀態(tài)分配。狀態(tài)分配的原則有二,一是要使得最后的邏輯圖最簡,二是多余狀態(tài)不產(chǎn)生死循環(huán)。因為設(shè)計中沒有多余狀態(tài),所以不需要考慮死循環(huán)的問題,為便于按照順序進行狀態(tài)分配,令S0=00,S1=01,S2=10,S3=11。將表2中的字母形式的狀態(tài)變換為二進制形式,即得到新的狀態(tài)轉(zhuǎn)換表,如表3。狀態(tài)轉(zhuǎn)換表表示觸發(fā)器在外邊輸入作用下的狀態(tài)和輸出。狀態(tài)轉(zhuǎn)換的真值表如表4。
表3二進制形式的狀態(tài)轉(zhuǎn)換表
表4狀態(tài)轉(zhuǎn)換真值表
將輸出Q2n+1、Q1n+1放到卡諾圖中進行化簡,簡化過程如圖3所示。輸出Z不需要用卡諾圖進行化簡,因為輸出Z邏輯值為1的最小項只有一個,即Z=XQ2Q1。
圖3使用卡諾圖進行化簡
此處2個觸發(fā)器選擇邊沿D觸發(fā)器,D觸發(fā)器的特征方程[3]為Qn+1=D,卡諾圖化簡的結(jié)果就是D觸發(fā)器的輸入激勵表達式,即:
求出2個邊沿D觸發(fā)器的輸入激勵方程后,將2個觸發(fā)器連接成同步時序邏輯電路即可。此處選用集成電路設(shè)計軟件Tanner_Pro中的S-edit設(shè)計序列信號檢測器的電路原理圖并用T-spice進行仿真驗證。
采用靜態(tài)CMOS邏輯電路設(shè)計“1111”序列信號檢測器,靜態(tài)CMOS邏輯中NMOS邏輯塊(下拉網(wǎng)絡(luò),PDN)和PMOS邏輯塊(上拉網(wǎng)絡(luò),PUN)具有互補性能,輸入為穩(wěn)態(tài)時靜態(tài)CMOS邏輯門電源和地之間沒有直流通路,靜態(tài)功耗幾乎為0。靜態(tài)CMOS邏輯門由于總是實現(xiàn)帶“非”的邏輯,所以需要將觸發(fā)器的激勵表達式以及輸出表達式變形為帶“非”的形式[4],即:
邏輯表達式的變換方法很多,此處選擇變換方式要考慮盡可能多地應(yīng)用到公共項,上面三個輸出的邏輯表達式中都存在這個公共項,可以節(jié)省硬件資源。從前面公式可以判斷出“1111”序列信號檢測器需要用到的邏輯門有三種:CMOS兩輸入或非門、CMOS兩輸入與非門和邊沿D觸發(fā)器。
為避免體硅工藝中的閂鎖效應(yīng),靜態(tài)CMOS邏輯門中NMOS管和PMOS管的襯底要進行固定的連接。NMOS管的襯底必須接地,PMOS管的襯底必須接電源電壓。靜態(tài)CMOS邏輯門當輸入是穩(wěn)態(tài)時只有單邏輯塊導通,沒有直通電路,靜態(tài)功耗幾乎為0。CMOS或非門是一種無比電路,所以其輸出邏輯擺幅最大可以達到最大VDD。CMOS兩輸入或非門電路圖和仿真波形如圖4。
圖4 CMOS或非門電路圖和仿真波形
CMOS兩輸入與非門中NMOS邏輯塊由兩個串聯(lián)的NMOS構(gòu)成,串聯(lián)晶體管會使得輸出下降時間變長,性能變差,因此串聯(lián)晶體管的數(shù)目一般不能超過3個。PMOS邏輯塊由兩個并聯(lián)的PMOS管構(gòu)成,并聯(lián)的晶體管會增加負載電容。在設(shè)計兩輸入與非門時應(yīng)設(shè)計好尺寸使之達到對性能的要求[5]。兩輸入與非門電路原理圖和仿真波形如圖5。
圖5兩輸入與非門電路原理圖和仿真波形
為提高抗干擾能力和電路工作可靠性,選用上升沿觸發(fā)的邊沿D觸發(fā)器,此觸發(fā)器也具有異步清零功能和異步置位功能。采用靜態(tài)CMOS邏輯門實現(xiàn)邊沿D觸發(fā)器,由6個CMOS三輸入與非門交叉耦合而成。電路原理圖及仿真結(jié)果波形如圖6所示。波形信號從上到下依次為時鐘CP、異步清零端口RD、異步置1端口SD、輸入D和輸出Q和Q。從波形中可以看出,異步清零端口RD為低電平時觸發(fā)器清零,異步置1端口SD為0時觸發(fā)器置1,異步清零和異步置1端口都為高電平時,D觸發(fā)器狀態(tài)只在CP上升沿時刻才跟隨輸入D發(fā)生變化,其他時刻輸入信號的變化不會引起觸發(fā)器的狀態(tài)變化。
圖6邊沿D觸發(fā)器電路原理圖和仿真波形
“1111”序列信號檢測器由兩個邊沿D觸發(fā)器、CMOS或非門和CMOS兩輸入與非門組成。采用層次化的設(shè)計思想,將設(shè)計出的邊沿D觸發(fā)器單元、或非門單元和兩輸入與非門單元進行級聯(lián),形成序列信號檢測器的電路原理圖[6],如圖7所示,它是在Tanner_Pro集成電路設(shè)計軟件中的S-edit電路編輯軟件中設(shè)計出的電路原理圖,然后用T-spice軟件進行瞬時分析[7-8]。
圖7“1111”序列信號檢測器電路原理圖
在T-spice中設(shè)置兩個D觸發(fā)器的初始狀態(tài)為0,仿真波形如圖8所示。可以看出,從第一個時鐘上升沿開始觸發(fā)器狀態(tài)Q2Q1轉(zhuǎn)換過程為00→01→10→11,也就是S0→S1→S2→S3。后面X繼續(xù)輸入1時,觸發(fā)器狀態(tài)保持Q2Q1=11也就是保持在S3狀態(tài)。輸入有連續(xù)4個1出現(xiàn)時輸出Z為1,當輸入X有0出現(xiàn)時觸發(fā)器的狀態(tài)返回S0,輸出Z立刻置0。
圖8“1111”序列信號檢測器仿真波形圖
所設(shè)計的此款“1111”序列信號檢測器可直接應(yīng)用在雷達、遙測、通信系統(tǒng)等領(lǐng)域。Tanner_Pro是一整套完善的集成電路設(shè)計軟件,采用模塊化、層次化的設(shè)計思想,利用該軟件中的S-edit,設(shè)計出了“1111”序列信號檢測器的電路原理圖;電路結(jié)構(gòu)選用靜態(tài)CMOS邏輯結(jié)構(gòu),也提高了電路的性能。以T-spice進行仿真驗證,所設(shè)計的序列信號檢測器可以從串行的數(shù)字碼流中識別出一個指定的序列,滿足設(shè)計預期。