第六章 時序邏輯電路
1. 組合電路和時序電路的區別
- 組合電路:輸出是當前輸入的函數
- 時序電路: 輸出是當前輸入和之前輸入(狀態)的函數
2. 狀態機
Moore狀態機:輸出僅僅與當前狀態有關;
Mealy狀態機: 輸出同輸入和當前狀態均有關。
3. 雙穩態結構
雙穩態器件是存儲器件的基本模塊,雙穩器件的的一種電路結構是:交叉耦合反相器 結構。

雙穩態器件存在兩種狀態:穩定態和亞穩態。
雙穩態器件一般都有兩種存儲機理:
- 基於正反饋(靜態)
- 基於電荷存儲(動態)

4. 靜態存儲電路
- 鎖存器(Latch)是電平敏感的
- 一般是時鍾低電平時鎖存數據
- 寄存器(Reister)是邊沿觸發的(edge-triggered)
- 寄存器是存放二進制數據的器件,通常由Latch構成
- 通常是邊沿觸發的
- 觸發器(Flip-flops)是交叉耦合的門構成的任何雙穩態器件
- Latch和Register都可能包含Flip-flop結構
- 包括單穩態、不穩態(震盪)電路
a. Latch
latch的實現方式可以是Mux構成的:

基於傳輸門實現的Mux的latch:

優點:
- 尺寸設計容易
- 晶體管數目多(時鍾負載因而功耗大)
基於傳輸管Mux的Latch:

- 僅使用NMOS實現,電路簡單,減少了時鍾負載
- 由電壓閾值損失(影響噪聲容限和性能,可能引起靜態功耗)
基於三態緩沖器的Latch:

b. D觸發器/寄存器
-
通常是主-從結構, 由一個正電平靈敏Latch和一個負電平靈敏Latch 構成( 主從Latch 對)
-
輸出狀態在效果上表現為在時鍾邊沿處發生變化(正邊沿處或負邊沿處),確保整個寄存器可能的反饋路徑被切斷,防止由於反饋造成的信號“競爭”問題。

時序參數:
Register的時序參數:

Latch的時序參數:

latch的hold時間實際上是半個周期多,如果數據在時鍾正半個周期發生變化,輸出也將變化。跟register不同的是,latch還有d-q的概念,即數據在透明期間改變到輸出響應的時間。
兩者的示意圖也由差別:

latch的clk沒有三角,有三角的代表register。
一般,兩個電平靈敏的latch構成主從(Master-Slave)邊沿觸發寄存器:

高電平時主latch保持,Qm輸出不變,Q等於時鍾上升沿前的輸入D值。效果相當於正沿觸發。因此,在時鍾上升沿時刻,如果數據D端發生改變,寄存器中仍然存的是D改變之前的值。
Register的工作方式與Verilog中非阻塞賦值的匹配
例如如下verilog代碼使用非阻塞賦值語句:
always @(posedge clk or negedge rst_n) begin
if(!rst_n) begin
b <=0;
c <=0;
d <=0;
end
else begin
b <=in;
c <=b;
d <=c;
end
end
生成的電路圖以及仿真波形如下:

在代碼中,b,c,d信號使用非阻塞語句賦值,因為非阻塞語句的特性,在編譯器中實際上這幾個賦值的表達式會全部依次存入時間隊列中,當當前仿真時間內所有活動事件結束后同步執行這些語句,形成了非阻塞的效果。
查看c和b的信號可以發現,在b信號發生跳變的時鍾上升沿,c寄存器的主latch開始保持,而從latch的輸出仍然是上升沿之前b寄存器的q端值0,因此在當前上升沿結束后,c寄存器的輸出仍然是0.
因此時序邏輯中常常是在一個上升沿更新數據,下一個上升沿采樣剛更新的數據。
回到正題,由傳輸門實現的正負電平靈敏latch也可以構成主從邊沿觸發寄存器:

但是這種結構的缺點在於:時鍾負載大,需要8個時鍾晶體管。
減少時鍾負載的靜態主從寄存器
--用強制寫入代替Mux

通過兩個交叉耦合的反相器實現數據的鎖存。前提是T1以及其源驅動必須比\(I_2\)強,否則無法打斷反饋。
優點:時鍾晶體管數目從8->4
缺點:
- 是有比邏輯,需要強制寫入。
- 存在反向傳導,\(T_2\)和\(I_4\)會共同影響存儲在\(I_1-I_2\)環路中的數據。
非理想時鍾的影響-時鍾交迭(overlap)

由於時鍾的反向信號與原始時鍾之間通常存在一個overlap(組合邏輯延遲),因此進入兩級latch的時鍾會有交疊的區域,從而導致觸發器D-Q的直接通路,形成競爭(race):

此外,節點A會同時被D和B驅動,導致不確定態。
解決辦法:兩相不交迭時鍾


c. RS-觸發器(Flip-Flop)
由交叉的NOR或NAND門構成。

時鍾控制的SR觸發器:

CMOS靜態觸發器:

動態Latch和Register
- 比靜態latch和register簡單
- 不會破壞的讀信息:需要輸入高阻抗的器件

缺點:
- 漏電問題:基於在寄生電容上存儲電荷,由於漏電需要周期刷新
- 高阻抗的內部動態節點容易受噪聲干擾
- 漏電影響了低功耗技術(例如無法停止時鍾節省功耗)
解決辦法:增加一個弱反饋的反相器
- 會增加抗噪聲能力,但會增加延時
- 除了高性能數據通路外,一般均應使寄存器成為偽靜態或靜態

動態傳輸門邊沿觸發寄存器

-
建立時間setup = \(T_1\) ,Clk從低到高之前,數據需要保持\(T_1\)時間長度才能保證采樣的值不變。
-
保持時間hold = 0
-
延遲時間:\(T_{c-q} = I_1+T_2+I_2\)
時鍾重疊的影響:

對時鍾不敏感的C2MOS(時鍾控制CMOS)寄存器

-
對時鍾交迭不敏感,無論是0-0還是1-1交迭,輸出都是保持。
-
但是,在交迭期間還是對輸入D有一定的要求。當0-0交迭時,主latch可以接受D從1到0的變化,X可以從0變為1。
-
C2MOS的c-q時間很短(相當於一級反相器),因此在構成寄存器鏈時,要防止“貫通”。
-
如果時鍾的上升下降時間太慢,會存在一個時間間隔,N和P都導通,輸入和輸出之間會產生一條通路,一般使時鍾的上升下降時間約小於C2MOS latch傳播延時的5倍。
-
在高頻下為了滿足上述時鍾的要求,應該在寄存器單元內部對clk反相,而非使用全局反相時鍾。