天天看點

《數字邏輯設計與計算機組成》一 第2章 2.1 簡介

Digital Logic Design and Computer Organization with Computer Architecture for Security

組合電路:小型設計

第1章中簡單介紹了組合電路以及它們在數字系統中的應用。在這一章裡,我們将涉及小的組合電路設計方法,但這些方法與設計大的組合電路用到的方法有所不同。而且,當我們手動進行最小化設計時,我們将會限制輸入引腳的個數為4個,對于一些輸入個數雖然超出了4但不是很大的情況(比如5個或6個),我們也會使用最小化軟體進行最小化設計。對比而言,大的組合電路需要有更多的輸入引腳,可以使用小的電路子產品實作。關于大的組合電路設計的方法将會在第3章進行介紹。

小的組合電路中輸入和輸出之間的關系由真值表确定,而真值表是由描述的設計問題決定的。例如一個兩位無符号數的乘法器,如圖2-1中的框圖所示,一個兩位無符号的數A = a1a0被一個兩位無符号的數B = b1b0乘,得到一個4位的無符号數P = p3p2p1p0。在這個圖中,大寫和小寫字母分别用于表示多位的和一位的輸入/輸出。另外,畫線箭頭表示了多位的輸入輸出(圖2-1a所示)。而且,多位的輸入輸出也可以用粗線箭頭表示(如圖2-1b所示)。

表2-1表示了無符号乘法器的真值表。例如真值表中所示,由A = 3 = (11)2和B = 2 = (10)2得到的結果是P = 6 = (0110)2。每一個p3到p0的輸出值都辨別了一個由4位輸入a1、a0、b1和b0對應的邏輯功能。

《數字邏輯設計與計算機組成》一 第2章 2.1 簡介
《數字邏輯設計與計算機組成》一 第2章 2.1 簡介
《數字邏輯設計與計算機組成》一 第2章 2.1 簡介

真值表包含了使一個輸出位(比如p0)為0的所有的輸入邏輯情況,也包含了使一個輸出位為1的所有的輸入邏輯情況。如果一個輸出位始終為0或始終為1,那麼這個位不表示輸入所對應的邏輯功能,應當在真值表中删去。真值表的行數由電路的輸入引腳個數決定。如果是3個輸入端(每個端口值為0或1),就應當有8種可能的組合方式,或者說在真值表中應當有8行;如果是4個輸入端,就應當有16行,如表2-1所示。通常情況下,如果有n個輸入端,真值表中應當會有2n行。在硬體上,真值表會有兩種實作方式:

整個真值表可以存儲在查找表(LUT)中,例如,表2-1可以存儲在深度為16條、寬度為4位的存儲器中。

一個最小的邏輯電路是由每一個與輸入所對應的輸出決定的。

查找表的優勢在于不需要更多的設計步驟,真值表被原樣存儲在內建晶片内部的存儲器子產品中。然而,查找表的缺點卻是雙重的:

所有的0和1的輸出值都要被儲存,這樣将使用更多的硬體資源。

查找表是典型的慢輸出,因為它需要較長的時間去讀本身的内容。

相反,一個最小的邏輯電路實作了使輸出為1或者說使輸出為0的輸入邏輯電路。它使用更少的邏輯門、更少的輸入門還有更少的連接配接線路,是以占用更少的硬體資源。

另一方面,存儲在LUT中的真值表可以應用于可配置內建電路,例如現場可程式設計門陳列(FPGA)。FPGA晶片中每一個查找表子產品都可以用不同的真值表進行更新,去實作一個不同的組合邏輯。

在這章中的其他部分,我們将涉及如何将一個真值表轉換為和它等效的邏輯表達,這種邏輯表達會在NAND或者NOR電路上實作。手工和算法的邏輯最小化技巧、最小化軟體的使用、Verilog硬體描述語言電路的描述,以及電路設計中使用的計算機輔助設計(CAD)工具,我們将舉例進行讨論。這一章還提出了電路時序和潛在的時序風險。其他的門電路,比如标準門電路和三态緩沖,也都進行了讨論。這裡面覆寫了很多應用,包括互連體系結構中用到的子產品設計。本章中還包含了一些标準的小的組合電路子產品的設計執行個體。

信号命名标準

回憶一下,一個信号是指電路的輸入或輸出為1或0。同樣,每一個信号名都有一個極性訓示符,該極性訓示符定義了信号值1或者0在電路中的含義。信号極性定義如下:

高電平有效信号極性——當信号被稱為高電平有效時,邏輯1表示活躍、有效或使能狀态;邏輯0代表不活躍、無效或禁止狀态。通常我們用不帶字首或者字尾符号的信号名稱來辨別一個高電平有效信号(例如x)。

低電平有效信号極性——當信号被稱為低電平有效時,邏輯0表示活躍、有效或使能狀态;邏輯1代表不活躍、無效或禁止狀态。通常我們用帶字首或者字尾符号的信号名稱來辨別一個低電平有效信号。例如,_x、x′、/x或者x#都可以用來表示低電平有效信号。

除非另作說明,我們一律采取下劃線(_)字首,例如_x或者_X分别定義了一個低電平信号和多個低電平信号。

?例2-1? 畫出一位反相器的框圖并在适當的地方标出其輸入和輸出信号。電路的輸入為一位資料和标記為_c的低電平控制信号。當_c為不活躍(無效、禁止)時,電路的輸出為與輸入相比較沒有改變的一位資料;當_c為活躍(有效、使能)時,電路的輸出為輸入的反相。反相電路沒有對輸入的資料進行标記說明,友善起見,我們将輸入資料和電路輸出分别标記為x和y。

解:圖2-2為有一位輸入x、輸出y和低電平控制信号_c的反相電路框圖。表2-2為一位反相器的真值表。因為_c為低電平信号,是以當_c = 0(活躍)時,y = ,當_c = 1(不活躍)時,y = x。

《數字邏輯設計與計算機組成》一 第2章 2.1 簡介
《數字邏輯設計與計算機組成》一 第2章 2.1 簡介