10.2 計數器

計數器由正反器構成,可以記錄狀態的變遷,或可說是正反器隨時脈的變化次數做故定狀態的循環。計數器以正反器狀態改變是否與計數時脈同步來區分,可分為同步計數器與非同步兩種,若以計數狀態的呈現又可分為2n(狀態)及非2n模兩種,如果描述得更清楚些,還可以分為上數計數器或是下數計數器以及環式計數器等等。

10.2-1 漣波計數器(非同步計數器)

漣波計數器是一種非同步計數器,基本結構是由T型正反器推動下一只T型正反器產生計數狀態。

(1) 2N模漣波計數器

如圖(10.2-1)所示,每一只正反器均由J-K正反器接成T型正反器,Q0的狀態隨著計數脈波(Pulse)的負緣交變一次,Q1的狀態隨著Q0的負緣交變一次,Q2的狀態隨著Q1的負緣交變一次,Q3的狀態隨著Q1的負緣交變一次,4個正反器的變化組合為24個狀態,故稱為2n模計數器。若將各正反器輸出的時序圖繪出,我們發現每一只正反器對於脈波的反應都有延遲現象,而且越到後面的正反器延遲越大,最大延遲時間與正反器的個數成正比,因為每一只正反器的反應無法同步,故稱此計數器為非同步計數器。

一個非同步漣波計數器,當計數脈波的頻率增加時,導致末端的正反器來不及反應,產生計數狀態的錯誤。如圖10.2-2所示,當正反器的延遲時間為tfd,當末端正反器反應時,對計數脈波的負緣已經延遲了4 tfd,如果將計數脈波的週期縮短到4 tfd之內,Q4將無法反應,因此漣波計數器的最大計數頻率為:

 

wpe1.jpg (11089 bytes)

從圖10.2-2可知,若將某連續脈波由Ck端輸入,在Q3 端的輸出頻率將是Ck端的1/16倍,所以計數器在這種應用場合又可稱為除頻電路

wpe2.jpg (8637 bytes)

若將圖10.2-1中的正反器改成正緣觸發(圖10.2-4),將使其計數模式變成下數型態,圖10.2-3是時序圖的分析。由於負緣觸發改成正緣觸發等於時脈輸入端加了反閘,因此從正反器的反向輸出端(Q') 接至次一級正反器的負緣觸發端,同樣可是一只下數計數器,如圖10.2-5。

(2) 非2n模漣波計數器

2n模漣波計數器利用了正反器清除(clear)或預置(Preset)接腳的功能,當一個上數計數器為N模時,我們就可以檢測第N+1個狀態到來時,將所有正反器的啟始狀態重新設定,例如一個除12(2n)模漣波上數計數器(10.2-7),計數狀態為0~11,第N+1個狀態為12,所以12(11002) 狀態發生時將產生正反器清除使計數狀態等於0,對於下數計數器則可使用預置和清除回到較大的數。

 

 

一個非2n模漣波計數器,其計數模態為M時,則正反器的數量n必須滿足2n > M,故一個12模漣波計數器至少需要4只正反器。

2n模漣波計數器的狀態檢查電路往往只是一個簡單的解碼電路,例如狀態12的解碼輸出應為Q3Q2Q1'Q0'(1100),但是圖10.2-7 中的解碼電路確簡單到等於 Q3Q2,這是因為從0000~101112個計數狀態中Q3Q2 =11的狀態從未出現,一旦出現就表示1100已經到來,因此用Q3Q2 NAND起來的輸出就可以對所有的正反器產生清除,使用NAND而不是AND是因為正反器的清除需要「0」動作。

2n模漣波計數器有一個必須重視的缺點,也就是每一只正反器的清除(或預置)時間不同時,就會導致錯誤的計數順序,例如圖10.2-7 Q3Q2Q1Q0=1100時,若Q3先被清除時,解碼電路的NAND輸出端將轉為「1」,因而失去對正反器的清除作用,使Q2 將被保留為「1」,則下一個時脈將從0100開始計數。

wpe5.jpg (13643 bytes)

10.2-2 同步計數器

同步計數器結構上與漣波計數器最大的不同,就是同步計數器中所有正反器的時脈輸入端(Ck)都接在一起,而且必然是計數脈波的輸入端,這意味著當計數脈波發生時,所有正反器將同步反應輸出狀態。

(1) 2n模同步計數器

2n模同步計數器的結構有一個簡單的脈絡可循,我們以16模同步計數器為例,分幾個步驟來說明2n模同步計數器的形成。

wpe6.jpg (13111 bytes)

  1. 首先可以依16=24可定出正反器的個數為4wpe9.jpg (17230 bytes)
  2. 在列出的狀態表(10.2-1)中,可以發現Q0 隨著每一次的計數脈波改變一次狀態,所以Q0 正反器接成T型正反器,且令T=1即可。
  3. Q1會改變狀態的時候是當計數器前一個狀態的Q0 =1時,所以將Q1 正反器的T端接在Q0,當計數脈波發生時且Q0 =1Q1將會改變狀態。
  4. Q2會改變狀態的時候是當計數器前一個狀態的Q1Q0 =1時,所以將Q2正反器的T端接在Q1Q0 AND端,當計數脈波發生時且Q1Q0 =1Q2將會改變狀態。
  5. 同理,Q3正反器的T端接在Q2Q1Q0 AND端,當計數脈波發生時且Q2Q1Q0 =1Q3將會改變狀態。

 

 

 

 

 

 

 

由於同步計數器正反器的時脈端都接在一起,狀態反應是與時脈同步的,所以狀態輸出的最大延遲時間為一個正反器的延遲時間(tfd)再經過一個及閘的延遲時間(tgd)。因此最大計數頻率為:

wpe7.jpg (12247 bytes)

(2) 非2n模同步計數器

任何一種同步計數器都可以用圖10.2-9的結構來完成,2n模同步計數器從狀態表中可以輕易的歸納出變化的規則,但是非2n模同步計數器就不是這麼容易了,此時我們可以經由邏輯推理一步一步的找出圖10.2-9中組合邏輯的電路,大功即算告成。

wpe8.jpg (13213 bytes)

從圖10.2-9的結構圖可知,每一個正反器的下一個狀態均由目前的計數狀態Q0 ~ Qn 來決定,因此只要設計出每一個計數狀態對下一個正反器狀態輸入端應有的組合邏輯電路,此同步計數器就可完成,舉例如下。

10.2-1

使用J-K正反器設計一只除3同步計數器。

步驟1

列出計數狀態表如表10.2-2,在此表中規定了三個狀態分別為00011010的下一個狀態又回到00,依其順序的循環。

這裡必說明的是三個狀態不一定要依000110排列,排列為101100也未常不可,只是我們必須明白我們怎麼安排,將來所設計完成的計數狀態就會怎麼變化。

wpeA.jpg (5045 bytes)

步驟2

依據J-K正反器真值表列出J-K正反器激勵表。

所謂正反器激勵表是只正反器的下一個時脈激發時,所欲轉變狀態應有的輸入設定,例如J-K正反器的Q希望從00,則JK0100兩種設定,故激勵表記為0×,「×」表示01都無所謂的意思。

wpeC.jpg (14161 bytes)

步驟3

為了對映狀態表方便,可以先做一個參考用卡諾圖。

wpeD.jpg (5474 bytes)

步驟4

依據計數狀態為每一個正反器的輸入端,也就是圖10.2-9組合邏輯電路的輸出端做一卡諾圖。

  1. 由於狀態00的下一個狀態是01,這表示Q0 將由01,而Q1 將由00,依J-K激勵表必須安排J0=1K0,而J1=0K1,分別將這些值填入No.04個卡諾圖中。
  2. 由於狀態01的下一個狀態是10,這表示Q0 將由10Q1 將由01,依J-K激勵表必須安排J0K0=1,而J1=1K1,分別將這些值填入No.14個卡諾圖中。
  3. 由於狀態10的下一個狀態是00,這表示Q0 將由00Q1 將由10,依J-K激勵表必須安排J0=0K0,而J1K1=1,分別將這些值填入No.24個卡諾圖中。
  4. 此狀態從不出現,所以全部以不顧慮項×填入。

wpeE.jpg (19474 bytes)

步驟5

將每一個卡若圖化簡成布林代數式。

J0 = Q1'

K0 = 1

J1 = Q0

K1= 1

 

步驟6

將布林代數式接成電路圖。

連接完化簡後的布林代數式,請別忘了將所有正反器的Ck接到計數脈波輸入端,要知道不送脈波計數狀態是不會改變的。

wpeF.jpg (7569 bytes)

現在我們已經完整介紹了同步計數器的設計過程,如果想要使用其它型態的正反器來完成計數器也是可以的,但是必需參考到各種正反器的激表,從下面的表列中,我們將它們與表10.2-4J-K激勵表比較,顯然的J-K激勵表中的隨意項(×)比較多,這對於計數器設計時的化簡是很有幫助的,所以用J-K正反器設計出來的電路,邏輯閘可以較少。

wpe10.jpg (17036 bytes)

 

10.2-3 環式計數器

(1) N模環式計數器

N模環式計數器需要N個正反器,圖10.3-1是一個4模環式計數器,以J-K正反器接成了D型正反器型態,當啟始設定開關按下時,僅有Q0預置為1,其餘正反器被清除為0,當啟始設定放開後,每送一個脈波,將依1000010000100001再回到1000的狀態循環,故稱為環式計數器。

wpe11.jpg (13586 bytes)

(2) 2N模強森計數器

若將環式計數器最後一級反向接回第一級正反器輸入端,則計數模態(M)=2×正反器個數(N),稱為2N模強森(Johnson)計數器,以圖10.3-2為例的計數狀態為:

wpe12.jpg (13586 bytes)

(3) 奇數模強森計數器

若將2N模強森計數器末端正反器的回授線提前到前一級正反器,則計數模態(M)=2×正反器個數(N)-1,稱為奇數模強森計數器或2N-1模計數器,圖10.3-34個正反器的奇數模強森計數器,與2N模強森計數器相比少掉了1111這個狀態。

wpe13.jpg (14858 bytes)