8.2.1 只讀存儲器ROM
顧名思義只讀存儲器ROM(Read-only memory)就是只能讀出,不能寫入的存儲器,屬于固定存儲器,計算機或數(shù)字系統(tǒng)中需要長期存放的程序、表格、及一些常數(shù)、符號等數(shù)據(jù)就存放于其中,掉電時內(nèi)存數(shù)據(jù)不會丟失。
一、只讀存儲器的電路結(jié)構(gòu)
只讀存儲器的電路結(jié)構(gòu)如圖8.2.1 所示

只讀存儲器ROM的內(nèi)部電路由存儲陣列、地址譯碼器、輸出緩沖器及存儲器控制電路組成。
存儲陣列是存儲器的主體,實質(zhì)上是由存儲單元組成的集合體,每個存儲單元又包含若干個基本存儲單元,從而形成存儲陣列。每個存儲單元所包含的基本存儲單元數(shù)由存儲器容量中的“字長”來決定;存儲陣列中所包含的存儲單元數(shù)由存儲容量中的“字節(jié)數(shù)”來決定。通常組成基本存儲單元的元件可以是電容、半導(dǎo)體二極管、三極管和MOS管等,而每個基本存儲單元可以存儲一位二進制信息。
地址譯碼器由地址寄存器和地址譯碼器兩部分組成。地址寄存器用于存放CPU送來的地址碼,地址譯碼器則對地址寄存器中的地址碼進行譯碼,產(chǎn)生相應(yīng)的地址選擇信號,進而選中相應(yīng)的存儲單元或基本存儲單元。根據(jù)地址譯碼器的不同結(jié)構(gòu),存儲器也可分為單譯碼編址存儲器及雙譯碼編址存儲器。單譯碼編址時選中的是存儲單元,雙譯碼編址時,選中的是基本存儲單元。
輸出緩沖器實際上是一個三態(tài)、雙向的緩沖器,用于鎖存從存儲單元中讀出的每位信息,或用于存放需要寫入存儲單元的信息,因此是一個雙向的緩沖器;三態(tài)主要是為了便與系統(tǒng)總線連接,其位數(shù)由存儲陣列中存儲單元的位數(shù)決定。例如:8K×4存儲器的三態(tài)雙向緩沖器應(yīng)當有4位。三態(tài)雙向緩沖器受控制電路和輸出允許信號控制。
控制電路主要是通過接受CPU(中央處理器)送來的控制信號,經(jīng)過組合變換后對地址寄存器、存儲陣列和三態(tài)緩沖器等進行控制。
8.2.2 ROM在組合邏輯電路中的應(yīng)用
按照所用器件類型分,ROM可分為二極管ROM、MOS場效應(yīng)管ROM、雙極型三極管ROM三種。首先來看一個4×4位二極管構(gòu)成的掩膜ROM電路,如圖8.2.2 所示。


地址譯碼器是一個2線-4線的地址譯碼器,地址線為
,輸出為
(字線),可選取存儲陣列中的任意一個字。輸出控制端
時,4條位線上的數(shù)據(jù)便能夠通過三態(tài)門從
上輸出。例如,當?shù)刂反a
時,經(jīng)過地址譯碼,使得字線
,而
,
字線上的高電平通過接有二極管的位線
使得
=1,而其余位線
由于和
的交叉處無二極管,因此
,最終結(jié)果輸出的數(shù)據(jù)為
,由此不難分析出當
時對應(yīng)輸出的數(shù)據(jù)分別為:

從上述分析中可以看出,這個存儲矩陣實際上是由16個存儲單元構(gòu)成的,圖中每個十字交叉點就代表一個存儲單元,交叉處有二極管的單元表示存儲數(shù)據(jù)1,否則存儲數(shù)據(jù)0;從圖中還可看到,與位線
的交叉點處有二極管的字線有兩根,即
,而這兩根字線都可能通過交叉點處的二極管使得
=1,因此位線上各點之間的關(guān)系是一種“邏輯或”的關(guān)系,故該存儲矩陣實際上是一個編碼電路,即一個組合電路,又可以將其看作是如圖8.2.3所示的簡化陣列圖。圖中有二極管的交叉點畫有實心圓點,無二極管的交叉點不畫。存儲矩陣中位線上各圓點之間的關(guān)系為邏輯或,如
,因此位線
上加畫了或門。而地址譯碼器實際上可由4個二極管與門構(gòu)成的,其輸出字線
與輸入的關(guān)系是邏輯與的關(guān)系,即
,
,因此地址譯碼器也可用陣列形式畫出,其輸出線上應(yīng)畫與門。有時為畫圖方便,與門和或門的邏輯符號可以省略。故從陣列圖中可以看出,ROM實際上就是一個“與-或陣列”。
由于ROM是一個與-或陣列,因此可以將存儲器的地址線作為輸入變量,將存儲器的數(shù)據(jù)線作為輸出變量,實現(xiàn)多輸入、多輸出的組合邏輯功能,即可以用存儲器來實現(xiàn)組合邏輯函數(shù)。
例 8.2.1用ROM實現(xiàn)一位全加器電路,并畫出其相應(yīng)的陣列圖。
解:用ROM實現(xiàn)組合電路,關(guān)鍵是要先寫出邏輯函數(shù)的表達式,即ROM的輸出函數(shù)表達式,并且應(yīng)寫成最小項之和的形式,這樣便構(gòu)成了一個標準的與-或表達式,從而能夠根據(jù)ROM與-或陣列的特點,畫出其陣列圖。

一位全加器的和信號Si及進位信號Ci的邏輯表達式分別為
![]()
![]()
選擇輸入信號
作為ROM的地址輸入信號,全加器的和信號
及進位信號
作為ROM的輸出。從邏輯表達式中可以看到,和信號
及進位信號
可由字線對應(yīng)的最小項相或得到的,由地址輸入信號譯碼得出各字線的最小項分別為:
,
,…
。即地址譯碼器輸出與輸入之間是邏輯與的關(guān)系。而譯碼器的輸出又可看作是存儲矩陣的輸入,存儲矩陣的輸出與其輸入之間是邏輯或的關(guān)系,故
,
。
