設萬維讀者為首頁 廣告服務 技術服務 聯繫我們 關於萬維
簡體 繁體 手機版
分類廣告
版主:
萬維讀者網 > 靈機一動 > 帖子
用脈衝同步時序邏輯設計寄存器/計數器解答
送交者: 粱遠聲 2012年10月10日17:39:11 於 [靈機一動] 發送悄悄話
用脈衝同步時序邏輯設計寄存器/計數器解答

設計一個3位的寄存器/計數器。這個電路有3個數據輸入I2,I1,I0,有一個控制輸入S。
當S=0時,電路是個寄存器,下一個脈衝,把(I2,I1,I0)的值寫入寄存器。
當S=1時,電路是個計數器,下一個脈衝,把寄存器當前的內容加1。
例如: 當S=0,(I2,I1,I0) = (011),下一個脈衝後,寄存器的狀態是(011)。
然後S=1(被置成1), 下一個脈衝後,寄存器的狀態是(100),再下一個脈衝後,
寄存器的狀態是(101)。這時,如果讓S=0,(I2,I1,I0) = (001),下一個脈衝後,
寄存器的狀態是(001)。

解答:

一般地設計脈衝同步時序電路,要把輸入,當前狀態作為自變量來求輸入方程。也
就是說,輸入方程表達式是輸入和當前狀態的函數。以本題為例,輸入方程應該是
I2,I1,I0,S,Q2,Q1,Q0的函數。這裡有7個自變量。用卡諾圖化簡已經很困難
了。本題只是一個3位的例子。那麼,如果是16位,32位的寄存器/計數器,怎麼去
設計呢?有人可以說用計算機算法化簡。如果是這樣,我們就不在靈機一動出這道
題了。

假設用D觸發器設計這個電路。

現在,只討論n位的計數器。設第n位的當前狀態是Qn,下一個狀態Dn。
只有當(Qn-1,Qn-2,...,Q0) = (1,1,...,1)的時候,計數器最末位加1,才能使Qn改
變狀態。讓

X = Qn-1Qn-2...Q0

也就是說,只有 X=1的時候,Qn才能在計數器最末位加1的時候改變狀態。列表

Qn  X   Dn
0     0    0
0     1    1
1     0    1
1     1    0

很明顯是異或關係,下一個狀態

Dn = Qn(+)X = Qn(+)Qn-1Qn-2...Q0

( D0 = Q0(+)1 = /Q0 )

現在,只討論n位的寄存器。很明顯

Dn = In

把輸入方程按控制輸入S列表得:

S              Dn
0              In
1           Qn(+)Qn-1Qn-2...Q0

最終的輸入方程為:

Dn = S(Qn(+)Qn-1Qn-2...Q0) + /SIn

按Dn接出的電路滿足寄存器/計數器的設計要求。

0%(0)
0%(0)
標 題 (必選項):
內 容 (選填項):
實用資訊
回國機票$360起 | 商務艙省$200 | 全球最佳航空公司出爐:海航獲五星
海外華人福利!在線看陳建斌《三叉戟》熱血歸回 豪情築夢 高清免費看 無地區限制
一周點擊熱帖 更多>>
一周回復熱帖
歷史上的今天:回復熱帖
2010: 毒酒問題,我先給大家一個新的思路 (896
2010: 分割毒酒的唯一準則