數位電路/暫存器和計數器
數位電路是一種電路,其中訊號必須處於兩個離散電平之一。每個電平被解釋為兩種不同狀態之一(例如,開/關、0/1、真/假)。數位電路使用電晶體來建立邏輯閘,以執行布林邏輯。
暫存器是一組觸發器,其中每個觸發器能夠儲存一位資訊。一個n位暫存器是一組n個觸發器。暫存器的基本功能是在數字系統中儲存資訊,並使其可用於邏輯元素進行計算過程。暫存器由有限數量的觸發器組成。由於每個觸發器能夠儲存“0”或“1”,因此可以儲存在暫存器中的 0-1 組合數量是有限的。這些組合中的每一個都被稱為暫存器的狀態或內容。使用觸發器,我們可以按位儲存資料,但通常資料不會以單個位出現。相反,通常會儲存 n 位的資料字,典型的字長為 4、8、16、32 或 64 位。因此,多個觸發器組合在一起形成暫存器以儲存整個資料字。暫存器是同步電路,因此所有觸發器都由一個公共時鐘線控制。由於暫存器經常用於收集序列資料,因此它們也被稱為累加器。存在幾種型別的暫存器,例如:
一個以序列形式輸入和/或輸出資料的暫存器被稱為移位暫存器。資訊通常以位形式出現,即每個時鐘脈衝一位。移位暫存器用於儲存此類資料。移位暫存器有一個序列輸入。每個時鐘脈衝,一個位從序列輸入載入到暫存器的第一個觸發器,而所有實際觸發器內容都移到下一個觸發器,丟棄最後一個位。移位暫存器可能具有序列輸出,以便可以進一步處理從暫存器移出的最後一個位。因此,可以透過將每個序列輸出連線到另一個移位暫存器的序列輸入來構建移位暫存器的鏈,從而有效地建立一個大的移位暫存器。還可以透過將序列輸出連線到同一個暫存器的序列輸入來建立一個迴圈暫存器(參見下一段)。移位暫存器電路也可能具有額外的並行輸入功能,允許操作單個位。如果所有觸發器的輸出(以及因此暫存器的完整內容)從線 Q1 到 Qn 讀取,則暫存器用作序列輸入 - 並行輸出 (SIPO)。此類 SIPO 暫存器的典型用途是收集以位形式傳送的並且以 n 位資料字形式需要的資料(例如,要轉換來自計算機序列埠的訊號:線路一次傳送 1 位,計算機使用 8、16 或 32 位資料字)。移位位對於數學運算很重要:如果整個暫存器的輸出被解釋為二進位制數,則移位一位對應於乘以或除以 2(取決於哪個觸發器被解釋為 MSB)。有 4 種類型的移位暫存器 - 序列輸入 - 並行輸出 (SIPO) 、序列輸入 - 序列輸出 (SISO)、並行輸入 - 序列輸出 (PISO)、並行輸入 - 並行輸出 (PIPO)。
有時有必要“迴圈”使用相同的值。因此,通常會丟棄的位再次被送回到暫存器輸入,以接收迴圈序列暫存器。
由於需要序列 - 並行轉換,因此需要反向操作。它由並行輸入 - 序列輸出暫存器 (PISO) 完成,該暫存器允許載入資料作為整個資料字並進行序列移位。對於此操作,它需要兩條控制線:一條用於觸發移位,另一條用於控制何時將新的資料字載入到暫存器。它透過使用清除功能清除所有觸發器輸出的狀態來準備,即每個觸發器都等於 0,然後透過獲取給定輸入的單個位進行移位,該輸入將當前位移到下一個觸發器。
桶形移位器是一種數位電路,它可以在一個時鐘週期內將資料字移位指定的位數。它可以實現為一系列多路複用器 (mux),在這種實現中,一個 mux 的輸出連線到下一個 mux 的輸入,連線方式取決於移位距離。例如,取一個 4 位桶形移位器,輸入為 A、B、C 和 D。移位器可以迴圈位 ABCD 的順序,如 DABC、CDAB 或 BCDA;在這種情況下,沒有位丟失。也就是說,它可以將所有輸出最多向右移三位(從而構成 A、B、C 和 D 的任何迴圈組合)。桶形移位器有各種應用,包括作為微處理器(與 ALU 結合)的有用元件。桶形移位器的常見用途是在浮點運算的硬體實現中。對於浮點加或減運算,必須對兩個數字的尾數進行對齊,這需要將較小的數字向右移位,增加其指數,直到它與較大數字的指數匹配。這是透過減去指數,並使用桶形移位器在一個週期內將較小的數字向右移位差值來完成的。如果使用簡單的移位器,則移位 n 位位置將需要 n 個時鐘週期。
級聯移位器是使用譯碼器切換每個序列輸入並行輸出暫存器內容的電路。
計數器是一種順序電路 - 計數。這意味著它按預定義的順序進行狀態轉換,其中電路的狀態由其所有觸發器的狀態決定。由於電路的每個狀態都可以是給定數字,因此可以說計數器產生一系列數字。一種常用的方法是將電路的狀態解釋為雙數,因此,如果觸發器 A、B 和 C 都為 0,則計數器的狀態為 0。如果 A 為 1,B 為 0,C 為 1,則計數器的狀態為 101 = 5,依此類推。最基本的計數器將簡單地在每個時鐘脈衝下遞增 1,因此在狀態 100 之後它將變為 101;下一個脈衝將使其切換到 110 等。可以設計具有任何所需計數順序的計數器。即使非同步順序電路不是本課程的主題,非同步計數器在這裡例外地給出,以略微印象。
- 非同步計數器或波紋計數器
- 同步計數器
非同步計數器
對於這些計數器,外部時鐘訊號被施加到一個觸發器,然後前一個觸發器的輸出連線到下一個觸發器的時鐘。時鐘被施加到第一個觸發器。
例如,考慮一個基於 T 觸發器 (FF) 的脈衝計數器。時鐘訊號被施加到串聯中的第一個 FF,並且 T 輸入被設定為 1。然後,第一個 FF 的輸出 Q 被連線為第二個 FF 的時鐘輸入。這有效地將時鐘訊號輸入到第二個 FF 減半,並使其在前面的 FF 變為 0(在 1 之後)時切換。這被稱為脈衝動作,即切換脈衝在所有後續 FF 上傳播,有效地產生了我們所知的計數操作。
一個很好的例子可以在這裡找到,它展示了這種功能。[1]
在同步計數器中,所有觸發器同時接收外部時鐘脈衝。環形計數器和約翰遜計數器是同步計數器的例子。在同步電路中,應用於所有觸發器的外部時鐘與電路同步。
這部分 **數位電路** 華夏公益教科書是一個 存根。您可以透過擴充套件此部分來幫助我們。如果您添加了內容,請將自己列為 貢獻者。