存储元件与阵列
下載
第9章存儲(chǔ)元件與陣列
大多數(shù)的數(shù)字系統(tǒng)需要具備“記憶”二進(jìn)制變量數(shù)值的能力,以對(duì)其作進(jìn)一步的計(jì)算。
這種能力通過(guò)一類稱為存儲(chǔ)單元的數(shù)字電路予以實(shí)現(xiàn)。存儲(chǔ)單元允許用戶把二進(jìn)制變量的數(shù)
值存儲(chǔ)起來(lái),在需要時(shí)再調(diào)用它。盡管存儲(chǔ)單元能夠被獨(dú)立地使用,但它們通常以稱為寄存
器的字長(zhǎng)大小的組,或者作為能夠存儲(chǔ)成千上萬(wàn)位數(shù)據(jù)的巨大陣列的形式出現(xiàn)。
9.1 一般屬性
存儲(chǔ)元件是能夠保持系統(tǒng)所需的二進(jìn)制變量數(shù)值的電路。
在圖9 - 1中,描繪了一個(gè)基本的存儲(chǔ)單元。在最通用的術(shù)語(yǔ)中,
有三種操作刻畫出該單元的特性。
? 寫入在一個(gè)寫入操作中,數(shù)據(jù)位碼D的值(為0或者1)
置于輸入,并被該元件
所接受。
? 保持在寫入操作中所存儲(chǔ)的D值被保持,盡管輸入可能有所變化。
? 讀出一個(gè)讀出操作把存儲(chǔ)位碼的值提供給輸出變量Q。
E n a b l e使能控制位可能存在于某個(gè)設(shè)計(jì)中, Enable = 0示意保存,而Enable = 1容許進(jìn)行讀
出或者寫入操作。
數(shù)字系統(tǒng)采用不同類型的存儲(chǔ)元件,它們的特性隨應(yīng)用而變化。一個(gè)分類方案基于該單
元設(shè)計(jì)提供了哪些操作。讀/寫存儲(chǔ)器就是用戶可以用來(lái)存儲(chǔ)數(shù)值,保持它們一段不確定時(shí)期,
并在需要時(shí)再把該數(shù)值讀出來(lái)的存儲(chǔ)器。它可能是最一般類型的存儲(chǔ)器,通常稱為隨機(jī)存取
存儲(chǔ)器或者R A M。大多數(shù)的讀/寫存儲(chǔ)器在掉電時(shí)丟失其內(nèi)容。一類限制性更大的存儲(chǔ)器稱為
只讀存儲(chǔ)器(R O M)。對(duì)于R O M,信息在它置入電子系統(tǒng)之前就被永久地存儲(chǔ)于器件之中。
用戶可以讀出R O M中的信息,但是不允許改變?cè)摂?shù)據(jù)。可編程R O M(P R O M)是R O M的一
個(gè)變種,用戶可以在其中存儲(chǔ)期望的數(shù)據(jù),但是寫入過(guò)程需要一個(gè)特別的電子裝置,且它僅
能執(zhí)行數(shù)次。
計(jì)算機(jī)圍繞著一組稱為寄存器的存儲(chǔ)元件而設(shè)計(jì)。一個(gè)寄存器被設(shè)計(jì)來(lái)保存整個(gè)的n比特
字,而它在其他方面與R A M相同。不管具體的應(yīng)用如何,所有的存儲(chǔ)元件在數(shù)字邏輯方面有
著共同的基礎(chǔ)。
9.2 鎖存器
鎖存器是能夠跟隨數(shù)據(jù)變化并傳送這些變化到一根輸出線的邏輯元件。圖9 - 2是它的一個(gè)
簡(jiǎn)單表示。通常地,鎖存器由兩個(gè)主要的特性所刻畫:
? 它是貫通的,因?yàn)檩敵鯭(t)跟隨上一時(shí)刻輸入的變化;而且,
? 它使用雙穩(wěn)態(tài)電路實(shí)現(xiàn)存儲(chǔ),從而,不是Q = 0就是Q = 1能夠在該單元中保持。
使用簡(jiǎn)單的邏輯門就可以構(gòu)成幾類鎖存器。
輸入(寫)
圖9-1 通用存儲(chǔ)單元
輸出(讀)
使能
9.2.1 SR鎖存器
置位復(fù)位( S R)鎖存器是一個(gè)貫通的雙穩(wěn)態(tài)元件,它對(duì)于輸入的變化是敏感的。SR 鎖存
器具有分別標(biāo)注為S與R的兩個(gè)輸入和一個(gè)標(biāo)注為Q的輸出;互補(bǔ)輸出
-Q
也被提供。圖9 - 3是其
一般的方框圖表示。該元件的名稱從它的兩個(gè)基本操作的定義所得出。
圖9-2 基本鎖存器符號(hào)圖9-3 SR鎖存器符號(hào)
? 置位(S)操作,輸出值被強(qiáng)制為Q = 1。
? 復(fù)位(R)操作,Q值被強(qiáng)制為Q = 0。
術(shù)語(yǔ)“置位”與“復(fù)位”十分通用,在數(shù)字系統(tǒng)中經(jīng)常被用來(lái)描述條件。例如,如果我們說(shuō)
我們想要“置位變量A”,這意味著我們強(qiáng)制A值為1。類似地,復(fù)位A意味著A→0。在這里,
我們將討論兩種基本S R鎖存器電路。一種是基于兩輸入或非門N O R 2,另一種使用兩輸入與
非門N A N D 2邏輯。既然或非門和與非門互為對(duì)偶關(guān)系,那么它們的開(kāi)關(guān)特性將是相反的。
或非門S R鎖存器
S R鎖存器能夠由兩個(gè)交叉耦合的或非門構(gòu)成,如圖9 - 4 a所示。“交叉耦合” 這個(gè)術(shù)語(yǔ)定
義了兩個(gè)門的連接方式;它的意思是一個(gè)或非門的輸出連接到另一個(gè)或非門的輸入,反之亦
然。這在術(shù)語(yǔ)上也稱為反饋網(wǎng)絡(luò),因?yàn)槊恳粋€(gè)門的輸出都被“反饋”而成為另一個(gè)門的輸
入。要建立一個(gè)能保存兩個(gè)邏輯值的雙穩(wěn)態(tài)電路,反饋是必需的。圖9 - 4 b中的狀態(tài)表總結(jié)了
該鎖存器的操作。我們必須關(guān)注其中對(duì)輸入的解釋,因?yàn)镾 R鎖存器通過(guò)感知輸入S和R的變
化來(lái)存儲(chǔ)比特。這意味著,我們真正感興趣的是S ( t )和R ( t ),以及它們對(duì)該鎖存器狀態(tài)的影
響。
現(xiàn)在,我們來(lái)分析一下S R鎖存器的功能表。該狀態(tài)表中的第一種輸入稱為保持操作,在
那里,維持著S = 0和R = 0;這意味著只要S= 0 =R,Q值就不會(huì)改變。為了理解這個(gè)性質(zhì),回
顧一下圖9 - 5所示的或非門的真值表。或非門的功能可被解釋為任意一個(gè)輸入為1,都使得輸
出為0;輸出為1的唯一方式是兩個(gè)輸入皆為0值。現(xiàn)在假設(shè)S= 0與R= 0被應(yīng)用到輸入。如果Q =
0,那么下方的或非門(帶輸入S)的兩個(gè)輸入皆為0,這意味著
-Q
= 1。這就反過(guò)來(lái)作用到上方
244 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
使能
輸入輸出
輸入輸出
操作
置位
復(fù)位
不使用
保持
圖9-4 基于或非門的SR鎖存器電路
a) 邏輯圖解b) 功能表
下載
的或非門(帶輸入R),確保Q = 0被維持。如果代之以Q= 1,
那么僅僅是變?cè)聪颉_@個(gè)分析的重要性在于這樣一個(gè)事
實(shí),保持Q值是可能的。交差耦合的或非門形成一個(gè)有兩個(gè)
“穩(wěn)定”狀態(tài)的雙穩(wěn)態(tài)網(wǎng)絡(luò)。這意味著該電路能夠“保持”
數(shù)值Q = 0;對(duì)于另外一種可能性Q = 1,它同樣地正確。
為了置位該鎖存器,輸入S從0上升到1,同時(shí)保持R = 0。
接下來(lái),S又返回為0,使該鎖存器回到保持狀態(tài)。在該功能
表中,這個(gè)行為由S的一個(gè)脈沖輸入表示。從或非門的真值
表可見(jiàn),隨著S = 1,輸出
-Q
被強(qiáng)制為0。那么,上方的或非門有R = 0與Q = 0作用到它的輸入,產(chǎn)
生一個(gè)輸出Q = 1。這就導(dǎo)致了“置位”的動(dòng)作。復(fù)位強(qiáng)制Q為0,可以用同樣的方式去分析它。
在該功能表的第四種輸入中, S和R的值同時(shí)設(shè)為邏輯1。從真值表可見(jiàn),兩個(gè)輸出都被強(qiáng)
制為0。由于在這種情形下兩輸出不互補(bǔ),我們就把它定義為S R鎖存器“不使用”的輸入組合。
這僅僅意味著,要避免兩輸入同時(shí)被脈沖所激勵(lì)的情形。在數(shù)字系統(tǒng)中應(yīng)用S R鎖存器時(shí),
必須考慮到它的這種行為。
與非門S R鎖存器
如圖9 - 6所示,也可以使用與非門構(gòu)成S R鎖存器。兩與非門交叉耦合,產(chǎn)生必需的反饋而
形成雙穩(wěn)態(tài)網(wǎng)絡(luò)。然而,它的性質(zhì)與基于或非門的方案是相反的,保持的條件是R = 1且S = 1。
正如它的功能表指明的,使S從1下跳為0,該鎖存器就可以置位Q = 1;使S回跳到1,就開(kāi)始
保持。相反地,如果R從1下跳為0,該鎖存器就被復(fù)位Q = 0。R再恢復(fù)為邏輯電平1,則保持
輸出值。“不使用”的情形是, S與R同時(shí)下跳為0。
圖9-6 基于與非門的SR鎖存器
通過(guò)研究圖9 - 7中與非門的真值表可以理解,為什么這
種鎖存器的行為與基于或非門的電路的行為相反。與非門
的操作可以歸納為,只要有一個(gè)輸入為邏輯0,就使得輸出
為邏輯1。因?yàn)榛蚍情T在輸入邏輯1時(shí)翻轉(zhuǎn),我們期望這兩
種鎖存器有類似的行為,但是這里要導(dǎo)致一個(gè)開(kāi)關(guān)事件必
須是相反的輸入電平。由于這一點(diǎn)發(fā)現(xiàn),這種鎖存器的符
號(hào)必須相對(duì)于圖9 - 3所示的鎖存器的符號(hào)有所修改,那里的
S和R現(xiàn)在都被指定為低輸入有效。
第9章存儲(chǔ)元件與陣列245
下載
圖9-5 兩輸入或非門真值表
兩輸入都為1的條件可能導(dǎo)致一個(gè)不穩(wěn)定狀態(tài),使該器件震蕩。這種可能性依賴于信號(hào)通過(guò)門的延遲。
操作
不使用
置位
復(fù)位
保持
a) 邏輯圖解b) 功能表
圖9-7 兩輸入與非門真值表
9.2.2 D鎖存器
D型鎖存器只有單個(gè)作為輸入數(shù)據(jù)位碼的輸入D。它的特性在于,它具有鎖定D的值并追
蹤其任何變化的能力。構(gòu)造一個(gè)D鎖存器的簡(jiǎn)單方式如圖9 - 8所示。它采用了一個(gè)S R鎖存器,
而用D和
-D
替換其輸入。D的補(bǔ)是通過(guò)增加一個(gè)反相器得到的。D鎖存器的操作能夠用S R鎖存
器的功能表來(lái)理解。當(dāng)D = 0時(shí),到下方或非門的
-D
輸入為1。它強(qiáng)制輸出Q = 0,并被交叉耦
合的網(wǎng)絡(luò)所保持。如果D = 1,上方的或非門的輸出被強(qiáng)制為
-Q
= 0,也就是另一個(gè)穩(wěn)態(tài)。
圖9-8 基本的D 型鎖存器
9.3 時(shí)鐘與同步
在一個(gè)復(fù)雜的數(shù)字系統(tǒng)中,我們必須仔細(xì)地控制數(shù)據(jù)流,確保每一部分正確的信息在需
要時(shí)能夠得到。控制網(wǎng)絡(luò)中數(shù)據(jù)傳送最容易的方式,是通過(guò)一個(gè)預(yù)定義好的參考如時(shí)鐘信號(hào)
來(lái)同步系統(tǒng)的操作。盡管在第1章中已經(jīng)介紹了時(shí)鐘,下面快速地回顧一下它的基本原理。
時(shí)鐘是從0到1又返回0作周期性變化的控制信號(hào),如圖9 - 9所示。我們通常用符號(hào)?(t)或
者C L K標(biāo)注時(shí)鐘。它最重要的特性是每T秒重復(fù)一次,即眾所周知的周期。時(shí)鐘的頻率定義為
( 9 - 1 )
表示時(shí)鐘在1秒鐘內(nèi)重復(fù)的次數(shù)。頻率有精確的單位s-1,稱為H z(赫茨)。在計(jì)算機(jī)中,
對(duì)T最常用的度量是微秒(簡(jiǎn)作ms),有
1ms = 10-6s
或者納秒( n s),有
1ns = 10-9s
T = 1ms的頻率是
( 9 - 2 )
圖9-9 用于同步的時(shí)鐘信號(hào)
這里, M H z讀作兆赫茨,意思是每秒一百萬(wàn)個(gè)周期。在現(xiàn)代臺(tái)式計(jì)算機(jī)中,它是最通用的時(shí)
鐘單位。
246 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
a) 元件b) 操作c) 邏輯圖解
輸入輸出
t[秒]
例9 - 1
假定時(shí)鐘頻率為5 0 0 M H z,與之對(duì)應(yīng)的時(shí)鐘周期T通過(guò)倒數(shù)關(guān)系計(jì)算出來(lái)
( 9 - 3 )
這是許多現(xiàn)代系統(tǒng)典型的時(shí)間量級(jí)。
使用時(shí)鐘信號(hào)控制存儲(chǔ)元件的操作,使我們能夠指定把數(shù)據(jù)值存入該器件的時(shí)間。在數(shù)
據(jù)位碼可載入時(shí),產(chǎn)生的結(jié)果是存儲(chǔ)元件被該部分時(shí)鐘周期特性化。這涉及能以同步方式傳
送數(shù)據(jù)的非常復(fù)雜的數(shù)字網(wǎng)絡(luò)的設(shè)計(jì)。
9.3.1 時(shí)鐘S R鎖存器
時(shí)鐘S R鎖存器如圖9 - 1 0 a所示。與圖9 - 4相比較,時(shí)鐘信號(hào)?(t)分別同輸入R、S相與,使交
叉耦合的或非門電路的輸入有效值修改為
( 9 - 4 )
圖9-10 時(shí)鐘SR鎖存器
圖9-11 時(shí)鐘D型鎖存器
因?yàn)榛蚍情T鎖存器的保持條件是( 0,0),所以,當(dāng)? = 0時(shí),這種鎖存器自動(dòng)處于保持狀態(tài),
置位和復(fù)位操作僅當(dāng)? = 0時(shí)才能發(fā)生。這就定義了一個(gè)電平觸發(fā)的或者電平敏感的鎖存器,
在時(shí)鐘? = 1的任何時(shí)候,它允許輸入。時(shí)鐘S R鎖存器的符號(hào)如圖9 - 1 0 b所示。注意,它包含
了作為控制信號(hào)的時(shí)鐘?。
第9章存儲(chǔ)元件與陣列247
下載
a) 邏輯圖解b) 符號(hào)
a) 邏輯圖解b) 符號(hào)
按照這樣的處理,定義觸發(fā)器為任何鐘控存儲(chǔ)元件,那它也稱為觸發(fā)器。
9.3.2 時(shí)鐘D鎖存器
時(shí)鐘D鎖存器能以同樣的方式構(gòu)成,如圖9 - 11 a所示。再次,時(shí)鐘信號(hào)?和常規(guī)的輸入相與,
得到有效輸入為
D ' = D·? ( 9 - 5 )
這就構(gòu)成了一個(gè)電平敏感的鎖存器,其符號(hào)如圖9 - 11 b所示。如前面的時(shí)鐘S R鎖存器一樣,僅
當(dāng)? = 1時(shí),輸入能起作用。由于時(shí)鐘D鎖存器在此期間的這種行為,經(jīng)常把它稱作貫通的鎖
存器。時(shí)鐘條件? = 0保持輸出Q和
-Q
的值。
在使數(shù)據(jù)流同步通過(guò)一個(gè)復(fù)雜系統(tǒng)方面,時(shí)鐘鎖存器是有效的。它們也賦予名稱“鎖存
器”以更多的意義,因?yàn)楫?dāng)它們被時(shí)鐘信號(hào)激活時(shí),能夠形象化為“抓住”數(shù)據(jù)的電路。
9.4 主-從觸發(fā)器和邊沿觸發(fā)器
觸發(fā)器是時(shí)鐘控制的非貫通的鎖存器。這意味著該存儲(chǔ)元件當(dāng)前的輸出值Q與當(dāng)前的輸入
值A(chǔ)無(wú)關(guān)。它有幾種不同的變體,但是它們?nèi)季哂幸粋€(gè)特性:在較早的時(shí)候由時(shí)鐘電路確立
的輸出Q(t)被存儲(chǔ)起來(lái)。
主-從觸發(fā)器網(wǎng)絡(luò)的基本特征如圖9 - 1 2所示。
如此命名這種存儲(chǔ)元件,是由于它指定了兩個(gè)內(nèi)
部塊,代表兩個(gè)分離的鎖存電路。主鎖存器用于
接收輸入數(shù)據(jù)位碼A到觸發(fā)器。這個(gè)值被保存在
主觸發(fā)器里,在一定的時(shí)間后傳送到從鎖存器。
它們的輸入由時(shí)鐘信號(hào)?(t)同步。
圖9 - 1 3總結(jié)了主-從配置的操作。在圖9 - 1 3 a
中,主電路的輸入被激活, A值存儲(chǔ)在那里。在此期間,從鎖存器不活動(dòng)(也就是,處于保持
狀態(tài)),不能接受輸入。下一操作階段如圖9 - 1 3 b所示。在此期間,主鎖存器處于保持狀態(tài),而
從鎖存器激活。然后,A值被從鎖存器接受,該觸發(fā)器輸出端得到Q = A。因?yàn)榇藭r(shí)主鎖存器失
效,其輸出端繼續(xù)保持A值,即使輸入變化為B。在此期間,該觸發(fā)器是非貫通的。其重要的
特性是,輸出值Q(t)與當(dāng)前的輸入(B)無(wú)關(guān),而表示早些時(shí)候主鎖存器激活時(shí)的輸入值。
9.4.1 主-從D型觸發(fā)器
主-從D型觸發(fā)器(D F F)如圖9 - 1 4所示。這種存儲(chǔ)元件由層疊的兩個(gè)時(shí)鐘D型鎖存器構(gòu)成。
第一個(gè)鎖存器指定為主電路,負(fù)責(zé)得到輸入數(shù)據(jù)位D。第二個(gè)鎖存器作為從鎖存器,用來(lái)保持
它從主鎖存器接收的數(shù)據(jù)位碼的值。只要觀察到主從電路被反相的時(shí)鐘?(t)所控制,就很
容易理解D F F的操作。因?yàn)?
-?應(yīng)用到主觸發(fā)器,所以當(dāng)? = 0時(shí),主鎖存器接受輸入。另一方面,
從鎖存器使用?定時(shí),這樣當(dāng)? = 1時(shí),它允許輸入改變。
D F F操作的一個(gè)詳細(xì)例子如圖9 - 1 5所示。在圖9 - 1 5 a中,當(dāng)時(shí)鐘? = 0時(shí),主鎖存器激活,
輸入數(shù)據(jù)位碼D = 1被接受,并存儲(chǔ)在第一個(gè)鎖存器里。在此期間,從鎖存器處于保持狀態(tài),
以致于它的內(nèi)容在主鎖存器載入時(shí)不受影響。當(dāng)時(shí)鐘變化到? = 1時(shí),主鎖存器保持,它的輸
出饋入現(xiàn)已被時(shí)鐘激活的從鎖存器,如圖9 - 1 5 b所示。數(shù)據(jù)位碼A傳送到從鎖存器,輸出值為
Q= 1和
-Q
= 0。
248 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
圖9-12 主-從結(jié)構(gòu)
主從
圖9-13 主-從操作
圖9-14 D型觸發(fā)器電路
圖9-15 DFF操作細(xì)節(jié)
第9章存儲(chǔ)元件與陣列249
下載
a) 主鎖存器有效b) 從鎖存器有效
主
(有效)
從
(有效)
從主
主
主
主
從
從
從
a) 載入主鎖存器
b) 傳送到從鎖存器
圖9-16 主-從DFF時(shí)序圖解
現(xiàn)在,讓我們使用時(shí)序圖9 - 1 6來(lái)分析一下主-從D F F的操作。在圖9 - 1 6中,時(shí)鐘信號(hào)?(t)
提供同步信息,從而? = 0指明主鎖存器接受輸入D,而? = 1意味著D F F輸入失效,數(shù)據(jù)傳送
到從觸發(fā)器,可在輸出端Q(t)處得到。
上面描述的主-從D F F被設(shè)計(jì)為在? = 0的期間接受輸入D。當(dāng)時(shí)鐘從? = 0變化到? = 1的時(shí)
刻,傳送到從鎖存器電路的值(這里是輸出Q)就是主鎖存器中的值。因?yàn)檫@個(gè)理由,主-從
配置被劃分到邊沿敏感器件一類。這意味著,當(dāng)時(shí)鐘從一個(gè)值跳變到另一個(gè)值時(shí), Q值依賴于
主鎖存器中的內(nèi)容,對(duì)應(yīng)于時(shí)鐘波形的一個(gè)“邊沿”。
一種相關(guān)的存儲(chǔ)元件是邊沿觸發(fā)器。功能上,它似乎類似于邊沿敏感的設(shè)計(jì)。然而,僅
當(dāng)時(shí)鐘跳變時(shí),邊沿觸發(fā)器才允許載入輸入數(shù)據(jù)D。這不同于主-從電路,那里,主鎖存器在
半個(gè)時(shí)鐘周期內(nèi)是貫通的。按照我們的處理,我們不關(guān)心主-從電路和邊沿觸發(fā)電路之間的
內(nèi)部差別。取而代之,我們認(rèn)為任何觸發(fā)器就像一個(gè)多路選擇器一樣,能夠用來(lái)作為一個(gè)基
本的積木,我們僅僅分析該器件的總體特性。邊沿觸發(fā)D F F的符號(hào)如圖9 - 1 7 a所示,時(shí)鐘輸
入增加了一個(gè)特別的標(biāo)注,來(lái)指明一個(gè)正邊沿觸發(fā)行為,僅當(dāng)時(shí)鐘從? = 0跳變到? = 1 時(shí)輸
入被接受。
圖9-17 邊沿觸發(fā)DFF操作總結(jié)
圖9 - 1 7 b中的總結(jié)表描述了邊沿觸發(fā)D F F的操作,它表明輸出Q僅僅是輸入D延遲一個(gè)時(shí)鐘
周期后的值。該表中的標(biāo)注使用時(shí)間變量t表示“當(dāng)前”值,如D ( t ),這里t是時(shí)鐘上升邊沿的
250 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
[秒]
[秒]
[秒]
D觸發(fā)器
a) 符號(hào)b) 操作總結(jié)
時(shí)刻。另一方面,輸出寫作Q(t+T),這里T是時(shí)鐘周期。這意味著在下一個(gè)時(shí)鐘周期,也就
是在(t+T)時(shí),輸出變量Q的值。該邊沿觸發(fā)D F F由下面的方程所表征:
Q(t+T)=D(t) ( 9 - 6 )
它表明輸出值與上一時(shí)鐘周期的輸入相同。延遲是邊沿觸發(fā)D型觸發(fā)器重要的一個(gè)方面,因?yàn)?
它允許我們存儲(chǔ)當(dāng)前值,以在下一時(shí)鐘周期使用。
對(duì)于數(shù)字設(shè)計(jì)中的許多應(yīng)用,邊沿觸發(fā)D F F的延遲特性是足夠的。然而,一些系統(tǒng)要求
我們具有保持一個(gè)數(shù)據(jù)位碼幾個(gè)時(shí)鐘周期的能力。為了構(gòu)建一個(gè)提供這種功能的電路,我們
必須把輸出Q傳送回輸入D,然后用相同的值“重新載入”觸發(fā)器。實(shí)現(xiàn)它的一個(gè)簡(jiǎn)單方式
是,使用如圖9 - 1 8所示的2選1多路選擇器。在這個(gè)方案中,載入信號(hào)L D控制輸入,從而通
過(guò)把輸出傳送回輸入, L D = 0 保持當(dāng)前值。如果L D = 1,那么新的d值傳送到D F F存儲(chǔ)單元。
另一個(gè)時(shí)常有用的特征是觸發(fā)器復(fù)位的能力,也就是強(qiáng)制Q為0。這個(gè)能力可以通過(guò)增加
如圖9 - 1 9所示的與門來(lái)提供。在此種情形,控制信號(hào)是—R E S E T,這樣
R E S E T = 0:使輸入D = d,
而
R E S E T = 1:強(qiáng)制輸入D = 0。
這里,在時(shí)鐘跳變時(shí), R E S E T的值起作用,如果想要修改邏輯,這個(gè)特征也能與載入操作相
組合。
圖9-18 帶數(shù)據(jù)載入控制的DFF 圖9-19 帶復(fù)位能力的DFF
D型存儲(chǔ)元件的V H D L描述
對(duì)于一般的邏輯設(shè)計(jì), D型鎖存器與D型觸發(fā)器是有用的。V H D L描述引入了新的思想,
值得詳細(xì)解說(shuō)。
首先考慮如圖9 - 2 0所示的電平觸發(fā)D鎖存器。時(shí)鐘輸入用c l k表示,完全不同于?。為描述
該鎖存器的操作,我們首先必須注意到c l k的值控制著這個(gè)元
件的行為。當(dāng)c l k = 0時(shí),鎖存器不允許改變Q的狀態(tài),僅當(dāng)c l k
= 1時(shí),才可以改變存儲(chǔ)位碼的值。下面的描述引入了V H D L進(jìn)
程的思想。V H D L進(jìn)程是一種允許包含定時(shí)關(guān)系的結(jié)構(gòu)。
- - D鎖存器的V H D L描述
- -結(jié)構(gòu)體包含進(jìn)程語(yǔ)句
第9章存儲(chǔ)元件與陣列251
下載
輸入
輸出
輸入
D觸發(fā)器
圖9-20 b型負(fù)存器
D鎖存器
關(guān)鍵字p r o c e s s指明一組順序語(yǔ)句的開(kāi)始,它意味著命令以它們排列的順序依次執(zhí)行。這個(gè)進(jìn)
程由下面的序列描述,
該序列按照它的理解準(zhǔn)確地執(zhí)行。換句話說(shuō),時(shí)鐘值c l k =‘1’使得D傳送到輸出Q。
邊沿觸發(fā)器件要稍微復(fù)雜一些,因?yàn)槲覀儽仨殞懸粋€(gè)說(shuō)明c l k值變化的進(jìn)程。考慮圖9 - 2 1
所示的正邊沿觸發(fā)的D F F模塊。在V H D L中,描述信號(hào)變化的一個(gè)方式是使用‘ e v e n t指令。
語(yǔ)句
解釋為一個(gè)布爾對(duì)象,其值為真或假。若c l k‘e v e n t為真,意味著信號(hào)c l k值已經(jīng)改變,若c l k
沒(méi)有改變,那么它返回假。為了描述正時(shí)鐘邊沿,它寫作
因?yàn)閏 l k正在改變且c l k的值目前為1,它的計(jì)算結(jié)果為真。記住這樣一點(diǎn), D F F能夠由下面的
程序清單描述。
圖9-21 邊沿觸發(fā)DFF模塊
- -邊沿觸發(fā)D F F的V H D L描述
- -結(jié)構(gòu)體包含進(jìn)程語(yǔ)句
252 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
如果我們希望描述負(fù)邊沿觸發(fā)器,那么我們只須改變進(jìn)程命令來(lái)反映時(shí)鐘最終的值c l k = 0。
- - D F F的V H D L描述
- -結(jié)構(gòu)體包含進(jìn)程語(yǔ)句
本章中所有其他時(shí)鐘敏感元件的V H D L描述都能夠使用該進(jìn)程結(jié)構(gòu)建立。
9.4.2 其他類型的觸發(fā)器
其他的幾種觸發(fā)器能夠使用基本邏輯門構(gòu)成。每一種由一組獨(dú)特的、對(duì)設(shè)計(jì)者有用的并
依賴于系統(tǒng)規(guī)范的特性所定義。我們將僅僅關(guān)注在時(shí)鐘邊沿接受輸入的邊沿觸發(fā)器。
圖9-22 SR觸發(fā)器特性
S R觸發(fā)器
S R觸發(fā)器有著和D F F同樣的基本結(jié)構(gòu),而由S R鎖存器取代D F F的輸入電路。它有兩個(gè)獨(dú)
立的輸入S和R,由S = 0 = R定義它的保持狀態(tài)。在S R鎖存器的操作中, S和R同時(shí)為1的狀態(tài)
禁用,記住這一點(diǎn)是重要的,以便在S R觸發(fā)器中排除這種情況。邊沿觸發(fā)SR FF的符號(hào)如圖9 -
2 2 a所示,圖9 - 2 2 b是相應(yīng)的操作表。它能夠概述為
( 9 - 7 )
注意到,輸入S ( t )和R ( t )皆等于1的情形沒(méi)有定義。這是由于電路中使用了基本S R鎖存器。
第9章存儲(chǔ)元件與陣列253
下載
操作
保持
置位
復(fù)位
不使用
a) 符號(hào)b) 操作總結(jié)
J K觸發(fā)器
J K觸發(fā)器修改了SR FF 的電路,以使兩輸入同時(shí)跳變?yōu)?的情形引起切換操作
( 9 - 8 )
這意味著,若Q, - Q = R ( t ),那么該切換改變它們到(Q, - Q)=(0, 1 )。這個(gè)電路中的輸入與S R
觸發(fā)器是相同的,但它們有著并不相同的外部操作。圖9 - 2 3總結(jié)了這些特性。J K觸發(fā)器在以
往基于S S I集成電路的硬件設(shè)計(jì)中占據(jù)支配地位,目前在某些系統(tǒng)中,它仍然是常用的器件。
圖9-23 JK觸發(fā)器的特性
T觸發(fā)器
切換觸發(fā)器是有一個(gè)輸入T的電路,在圖9 - 2 4的邏輯符號(hào)中指明。T F F的操作恰如它的名
字所暗示:無(wú)論什么時(shí)候, T從0變化到1,輸出就切換。這是一個(gè)相當(dāng)特殊的器件,它沒(méi)有上
面所討論的觸發(fā)器的多面性,但仍然很實(shí)用。
圖9-24 T觸發(fā)器的特性
9.5 寄存器
寄存器是一個(gè)用來(lái)存儲(chǔ)nb i t二進(jìn)制字的邏輯元件。幾乎每一大型的數(shù)字系統(tǒng)都采用寄存器
來(lái)保持重要的數(shù)據(jù),所以有必要對(duì)它進(jìn)行詳細(xì)地研究。它可以構(gòu)造出幾種變體,它們?cè)跀?shù)字
系統(tǒng)設(shè)計(jì)中各有其應(yīng)用范圍。
9.5.1 基本存儲(chǔ)寄存器
我們可以并行方式簡(jiǎn)單地使用n個(gè)1 b i t存儲(chǔ)單元,構(gòu)成一個(gè)允許對(duì)全部單元同時(shí)讀或者寫
的寄存器。通常為了方便,以系統(tǒng)規(guī)范要求的字長(zhǎng)大小來(lái)構(gòu)成寄存器。
我們來(lái)測(cè)試一個(gè)8位寄存器,它能夠存儲(chǔ)一個(gè)字節(jié)的數(shù)據(jù)。為了建立這個(gè)寄存器,我們使
用如圖9 - 2 5 a所示的獨(dú)立存儲(chǔ)單元來(lái)構(gòu)成圖9 - 2 5 b所示的電路。注意,我們選擇了邊沿觸發(fā)存儲(chǔ)
元件作為基本的單元。為了簡(jiǎn)單起見(jiàn),我們僅僅指出了輸入、輸出和時(shí)鐘端口。元件可能需
要的其他控制線,如載入( L D)信號(hào),沒(méi)有明確地表示出來(lái)。盡管每一位可以單獨(dú)存取,該
寄存器作為所定義的一組,用于保持一個(gè)8 b i t的字,因此所有單元的讀出或者寫入操作同時(shí)執(zhí)
254 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
a) 符號(hào)b) 操作總結(jié)
a) 符號(hào)b) 操作總結(jié)
操作
保持
置位
復(fù)位
轉(zhuǎn)換
行。既然一直使用邊沿觸發(fā)存儲(chǔ)單元,那么僅在時(shí)鐘跳變時(shí)執(zhí)行寫入操作。一個(gè)簡(jiǎn)化的記號(hào)
如圖9 - 2 6 a所示,這些單元簡(jiǎn)單地組合在一起,呈現(xiàn)為一個(gè)獨(dú)立的單位。在圖9 - 2 6 b中,我們把
寄存器表示為帶8 b i t輸入輸出線和單個(gè)時(shí)鐘控制的單一實(shí)體。在許多應(yīng)用中,它理解為,寄存
器根據(jù)時(shí)鐘信號(hào)?(和任何其他條件)載入,即使它在圖中被忽略掉。
圖9-25 由獨(dú)立的存儲(chǔ)元件創(chuàng)建的寄存器
圖9-26 用于表示8位寄存器的符號(hào)
這種類型的通用寄存器在計(jì)算機(jī)設(shè)計(jì)中被廣泛地使用,在第11章計(jì)算機(jī)系統(tǒng)環(huán)境下,我
們將詳細(xì)地討論它。此處要記住的重要概念是,寄存器保持nb i t字作為一組,它自身能夠當(dāng)作
一個(gè)單獨(dú)的由更小的單元所組成的數(shù)字元件來(lái)看待。
9.5.2 移位寄存器
移位寄存器被設(shè)計(jì)用于在時(shí)鐘脈沖作用下傳送它的位碼到相鄰單元。為了說(shuō)明移位寄存
器的一般性質(zhì),讓我們重復(fù)圖9 - 2 7 a中的存儲(chǔ)單元,建立如圖9 - 2 7 b所示的串行鏈,在那里,每
個(gè)單元的輸出作為它右邊相鄰單元的輸入。總之,該電路有單個(gè)輸入位D和單個(gè)輸出位Q,組
成了一個(gè)8位移位寄存器。既然所有的單元由同一個(gè)時(shí)鐘信號(hào)?控制,因此它們同時(shí)載入。
圖9-27 基本移位寄存器結(jié)構(gòu)
圖9-28 移位寄存器的簡(jiǎn)化符號(hào)
使用圖9 - 2 8所示的簡(jiǎn)化符號(hào),很容易理解移位寄存器的操作。這種示意圖使我們可以形
第9章存儲(chǔ)元件與陣列255
下載
輸入字
輸出字
輸入
輸出
a) 單個(gè)單元b) 8位寄存器
輸入
輸出
a) 獨(dú)立單元b) 單個(gè)寄存器
a) 單個(gè)單元b) 串行載入移位寄存器
象地分析該單元的內(nèi)容,跟蹤數(shù)據(jù)在結(jié)構(gòu)中的傳送。即使沒(méi)有明確地表示時(shí)鐘?,仍然如初始
電路一樣,設(shè)定輸入同步。
假設(shè)我們想要以比特序列
D0= 1,而
D1= 1,而
D2= 0,而
D3= 0,
等等載入寄存器,就如圖9 - 2 9 a所示的移位寄存器的輸入“ 0 , 1 , 0 , 1 , 0 , 0 , 1 , 1”。當(dāng)我們使用這種
記號(hào)表示串行輸入時(shí),意味著右邊的位碼是將要進(jìn)入部件或系統(tǒng)的下一位。因?yàn)樵诩拇嫫髦?
有8個(gè)單元,載入整個(gè)寄存器將花費(fèi)8個(gè)時(shí)鐘周期。根據(jù)圖9 - 2 9 b中的時(shí)鐘圖解,就在時(shí)間7T之
后,正如前面所言,可得到第一個(gè)輸入位D0= 1的輸出。
圖9 - 3 0提供的序列明確地表示出位碼通過(guò)移位寄存器的進(jìn)程。左邊指出的時(shí)間隱含寄存
器在下一個(gè)載入事件發(fā)生之前的內(nèi)容(因?yàn)閱卧烧龝r(shí)鐘邊沿觸發(fā))。數(shù)據(jù)傳送筆直向前流動(dòng),
在第一個(gè)正時(shí)鐘跳變時(shí),單元d7裝入T時(shí)刻
的D0= 1。下一個(gè)正時(shí)鐘邊沿使D0= 1移到下一
個(gè)單元d6,同時(shí)接受D1= 1進(jìn)入單元d7。每個(gè)
子序列在正時(shí)鐘跳變時(shí)接受下一位,使每一
個(gè)存儲(chǔ)位碼傳送到右邊的單元。在7T之后,
該字的末位裝入單元d7,首位D0= 1在移位寄
存器的輸出端得到。因?yàn)閐0位先載入且先出
來(lái),所以它稱作F I F O(先進(jìn)先出)電路。
對(duì)于某些類型的存儲(chǔ)應(yīng)用, F I F O極其有用。
圖9-30 數(shù)據(jù)在移位寄存器內(nèi)傳送
256 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
F I F O按照音節(jié)讀作f i - f o。
a) 內(nèi)容清除
輸入序列
b) 時(shí)鐘周期
圖9-29 串行數(shù)據(jù)輸入移位寄存器
時(shí)刻輸入隊(duì)列
并行載入的移位寄存器允許用戶在一個(gè)時(shí)鐘跳變存儲(chǔ)整個(gè)字,如圖9 - 3 1所示。這個(gè)特定
的寄存器有兩種移位操作,分別由信號(hào)S H R(右移)和S H L(左移)控制。兩者的作用如圖9 -
3 2所示。在圖9 - 3 2 a中,寄存器的初始內(nèi)容是字1 0 1 0 11 0 0(從左讀到右)。通過(guò)設(shè)置SHR = 1啟
動(dòng)移位寄存器操作,每一位碼向右移動(dòng)一個(gè)位置(圖9 - 3 2 b)。注意,最左邊的位碼(以斜體
表示)自動(dòng)強(qiáng)制為0。圖9 - 3 2 c表明,通過(guò)設(shè)置
控制位SHL = 1可實(shí)現(xiàn)左移操作。每一位碼向
左移動(dòng)一個(gè)位置,與右移操作恰恰相反。在這
種情形下,最右邊的位碼被強(qiáng)制為0。
在一個(gè)復(fù)雜的數(shù)據(jù)傳送系統(tǒng)中使用移位寄
存器時(shí),一般建立允許移動(dòng)多位的電路。在
這種情形下,內(nèi)容右移n個(gè)單元,命令寫作如
下形式
SHR n
而
SHL m
表明內(nèi)容左移m個(gè)位置的操作。
圖9-32 移位操作總結(jié)
移位操作的一個(gè)直接應(yīng)用是執(zhí)行二進(jìn)制碼字的冪2乘除法。要理解它,讓我們先看看二進(jìn)
制字
N = 000111 0 0
它的十進(jìn)制數(shù)值是2 8。我們執(zhí)行一個(gè)SHL 1操作,結(jié)果為
NL 1 = 00111 0 0 0
它是十進(jìn)制數(shù)5 6,也就是NL1 = 2N。以最初的字開(kāi)始,調(diào)用SHL 2操作,得到
第9章存儲(chǔ)元件與陣列257
下載
a) 初始條件
b) 在右移操作之后
c) 在左移操作之后
輸入
輸出
(載入)
圖9-31 有并行載入功能的移位寄存器
NL2 = 0111 0 0 0 0
它等于11 21 0,于是NL2= 22N。因此,一般地,操作SHL n等價(jià)于寄存器的內(nèi)容乘上2n
右移操作SHR m實(shí)現(xiàn)相反的效果。例如,若首先有
N = 000111 0 0
那么,SHR 1和SHR 2 操作得出
NR1 = 0000111 0
NR2 = 00000111
容易驗(yàn)證,
NR1 = N/ 2
NR 2 = N/22
對(duì)應(yīng)于十進(jìn)制數(shù)NR1= 1 4,NR2= 7。這表明SHR m能夠使寄存器的內(nèi)容與2m相除。
寄存器不僅有移位操作,還可以有循環(huán)操
作R O R(右循環(huán))和R O L(左循環(huán))的能力。
循環(huán)不丟失位碼,它移出寄存器但傳送到另一
邊,除此之外,它們與相應(yīng)的移位操作完全一
樣。圖9 - 3 3總結(jié)了這兩種操作的結(jié)果。在圖9 -
3 3 a中,顯示內(nèi)容1 0 1 0 11 0 0。通過(guò)設(shè)置控制位
ROR = 1,啟動(dòng)循環(huán)右移操作。它使每一位碼
向右移動(dòng)一個(gè)位置。最右邊的位碼被傳送到寄
存器的左邊。圖9 - 3 3 b顯示了通過(guò)置位ROL = 1
引起的循環(huán)左移操作。在這種情形下,每一位
碼向左移動(dòng)一個(gè)位置,左邊單元的內(nèi)容(最初
為1)傳送到最右邊的位置。對(duì)于移位操作,
通過(guò)改變組成寄存器的存儲(chǔ)單元的接線,構(gòu)建
一個(gè)允許多循環(huán)
ROR n和ROL m
的寄存器是可能的。
移位和循環(huán)操作對(duì)于許多種類的數(shù)字信號(hào)處理相當(dāng)重要,它們作為基本的操作包含在所
有的計(jì)算機(jī)里。在第11章計(jì)算機(jī)體系結(jié)構(gòu)的語(yǔ)境里,我們?cè)僭敿?xì)地討論它們。
9.6 隨機(jī)存取存儲(chǔ)器
隨機(jī)存取存儲(chǔ)器是適用于通用讀/寫存儲(chǔ)單元的大型陣列的術(shù)語(yǔ)。R A M通常作為臺(tái)式計(jì)算
機(jī)設(shè)備中的主系統(tǒng)存儲(chǔ)器,它提供存儲(chǔ)所有重要數(shù)據(jù)的能力,這些數(shù)據(jù)是計(jì)算機(jī)運(yùn)行程序和
操作系統(tǒng)所必需的。
9.6.1 靜態(tài)R A M單元
靜態(tài)存儲(chǔ)器能夠保持所存儲(chǔ)的數(shù)據(jù)位碼,只要電源連接到該電子線路。
258 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
它僅僅精確地作用于十進(jìn)制偶數(shù)。
a) 初始條件
b) 在右循環(huán)操作之后
c) 在左循環(huán)操作之后
圖9-33 循環(huán)操作
如圖9 - 3 4 a所示, S R A M 是基于兩個(gè)級(jí)聯(lián)的反相器所組成的閉環(huán)特性。它是一個(gè)雙穩(wěn)態(tài)
電路,A = 0或者A = 1皆能在環(huán)中保持。盡管乍一看它可能很陌生,但是它的操作等價(jià)于S R鎖
存器。重畫該電路如圖9 - 3 4 b所示,使反相器交叉耦合,可以看出這一點(diǎn)。與圖9 - 4中兩輸入
或非門鎖存器相比較,我們看到,除單輸入非門用于邏輯之外,結(jié)構(gòu)是相同的。
圖9-34 交叉耦合反相器形成雙穩(wěn)態(tài)電路
通過(guò)嵌入交叉耦合的反相器到一個(gè)與反
相器環(huán)相連的較大的網(wǎng)絡(luò),就構(gòu)成一個(gè)存儲(chǔ)
一位數(shù)據(jù)的靜態(tài)R A M單元。圖9 - 3 5表示一個(gè)
S R A M單元,它增加了兩個(gè)由字線上的信號(hào)
W L控制的存取開(kāi)關(guān)( S w)。這些開(kāi)關(guān)由邏輯
控制, W L = 0使開(kāi)關(guān)斷開(kāi),而W L = 1閉合它
們。當(dāng)W L = 0時(shí),存儲(chǔ)單元與外部影響隔離,
保存數(shù)據(jù)位碼。若W L = 1,兩個(gè)開(kāi)關(guān)都閉合,
單元對(duì)應(yīng)的兩邊分別與位線( D)和位線(
-D
)
連接。這就允許對(duì)單元進(jìn)行寫或者讀。總之,
? W L = 0保存狀態(tài),而
? W L = 1允許進(jìn)行讀寫操作。
當(dāng)附加電路判定W L = 1時(shí),執(zhí)行實(shí)際的操作。
9.6.2 SRAM陣列
通常制造出S R A M,是為了可以輕易地存儲(chǔ)nb i t二進(jìn)制字,而不是單獨(dú)的一位。這是一個(gè)
實(shí)用的考慮,起因于這樣的事實(shí):大多數(shù)應(yīng)用的建立是如此設(shè)想的。一個(gè)m×nS R A M陣列由
m行、每行包含n個(gè)單元所組成。
讓我們分析怎樣才能構(gòu)造一個(gè)很簡(jiǎn)單的存儲(chǔ)8個(gè)字,每個(gè)字長(zhǎng)8位的存儲(chǔ)器,也就是說(shuō),
一個(gè)8×8陣列。首先,考慮一個(gè)8比特字的存儲(chǔ)。它需要8個(gè)單元,每比特一個(gè),如圖9 - 3 6所
示。我們已經(jīng)為字線使用了簡(jiǎn)化的標(biāo)注,但它的意義仍然一樣: W L = 0隔離單元,而W L = 1
提供存取,允許進(jìn)行寫或者讀操作。為了保存8個(gè)字,我們?cè)贅?gòu)造七個(gè)相同的電路,把它們堆
疊起來(lái),如圖9 - 3 7所示。為了選定所要求的行(字),我們包含一個(gè)3 / 8高電平有效的行譯碼器
電路,該譯碼器的輸入是一個(gè)稱為地址的3位二進(jìn)制字
A2A1A0
因?yàn)樗该髁舜鎯?chǔ)器中特定字的位置。陣列的下方提供了接口電路,它們提供寫入或者
第9章存儲(chǔ)元件與陣列259
下載
S R A M讀作S- ram 。
a) 基本電路b) 重畫
圖9-35 SRAM單元設(shè)計(jì)
位線
存儲(chǔ)單元
位線
字線
讀出陣列的每一行所必需的電路。E n a b l e是一個(gè)高電平有效的激活陣列的控制信號(hào), R/W決定
是否進(jìn)行讀(R /W = 1),或者寫(R/W = 0)。讀/寫控制信號(hào)R/W僅當(dāng)E n a b l e = 1時(shí)有效。
圖9-36 8位存儲(chǔ)陣列
圖9-37 8×8RAM陣列
讓我們研究圖9 - 3 8 a所示簡(jiǎn)化的讀操作,來(lái)闡明該陣列的操作。多數(shù)連線已經(jīng)被組合在一
起,以便我們能夠?qū)W⒂跀?shù)據(jù)傳送,而不被太多的細(xì)節(jié)轉(zhuǎn)移目標(biāo)。該圖顯示了每一行的內(nèi)
容;圖9 - 3 8 b總結(jié)了輸入地址如何激活一個(gè)特定的工作線,該線反過(guò)來(lái)允許數(shù)據(jù)行被讀出來(lái)。
260 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
讀寫操作接口電路
例如,如果地址是1 0 0,那么選定線4,結(jié)果是輸出0 1 0 1 0 1 0 1。
圖9-38 RAM陣列中的讀操作
圖9-39 64×8SRAM器件的方框圖
第9章存儲(chǔ)元件與陣列261
下載
輸出
輸出
行
地址
a) 簡(jiǎn)化網(wǎng)絡(luò)
b) 功能表
地址內(nèi)容
可能
地址
可能
讀/寫
數(shù)據(jù)
a) 內(nèi)部組織b) 符號(hào)
簡(jiǎn)化的操作圖解和符號(hào)提供了一個(gè)簡(jiǎn)明的方式,以這種方式,一個(gè)復(fù)雜的數(shù)字單元的重
要特性能夠明顯地表示出來(lái),而不使邏輯圖解散亂。它們等效于在分級(jí)結(jié)構(gòu)中更高層次上觀
察該單元,對(duì)于描述一個(gè)復(fù)雜系統(tǒng)如計(jì)算機(jī)很有用處。要?jiǎng)?chuàng)建一個(gè)符號(hào),我們必須定義它所
有相對(duì)于“外部世界”重要的特性。盡管內(nèi)部電路本身可能有令人感興趣之處,但是大部分
與用戶無(wú)關(guān)。
考慮一個(gè)S R A M陣列。在用戶層次,它是一個(gè)器件,允許我們對(duì)二進(jìn)制字執(zhí)行寫、保持
和讀操作。該陣列的容量告訴我們它能夠存儲(chǔ)多少字,尋址方案提供一種方式,使我們能夠
明了每一個(gè)字定位于該陣列的哪一個(gè)位置。圖9 - 3 9 a中的方框圖總結(jié)了一個(gè)容納6 4個(gè)8比特字
的器件的性質(zhì)。進(jìn)出這個(gè)存儲(chǔ)設(shè)備的數(shù)據(jù)作為8比特字
b7b6b5b4b3b2b1b0
傳送。地址給出每一個(gè)字的位置,由選擇一個(gè)存儲(chǔ)位置的6位字
A5A4A3A2A1A0
表明。如果Enable =1 激活了該設(shè)備,那么讀寫操作由R/W控制選定。在這個(gè)層次, R A M的內(nèi)
部結(jié)構(gòu)被描繪為一組存儲(chǔ)位置,每個(gè)存儲(chǔ)位置有唯一的地址。這就使我們可以闡明它的內(nèi)容。
一個(gè)更精簡(jiǎn)的符號(hào)如圖9 - 3 9 b所示。該設(shè)備的操作在各個(gè)方面都一樣,但是內(nèi)部細(xì)節(jié)沒(méi)有表示
出來(lái)。這使它更易于在設(shè)計(jì)分級(jí)結(jié)構(gòu)的系統(tǒng)級(jí)中使用。
9.6.3 動(dòng)態(tài)R A M
動(dòng)態(tài)存儲(chǔ)器( D R A M)陣列和S R A M陣列相似,因?yàn)樗鼈兌荚试S我們使用單元尋址的概
念存儲(chǔ)數(shù)據(jù)。兩者不同之處在于自身單元的內(nèi)部設(shè)計(jì)。動(dòng)態(tài)R A M單元要簡(jiǎn)單得多,在硅片上
只需要更少的面積。這使D R A M的存儲(chǔ)密度比S R A M要高得多,每一位的成本要低得多。因
為較低的價(jià)格,在需要大型存儲(chǔ)陣列,成本重要的任何時(shí)候,通常使用D R A M。D R A M最大
的應(yīng)用是作為臺(tái)式計(jì)算機(jī)的主系統(tǒng)存儲(chǔ)。使用“動(dòng)態(tài)”存儲(chǔ)的一個(gè)障礙是, D R A M比較簡(jiǎn)單
的單元設(shè)計(jì)導(dǎo)致電路顯著變慢;讀寫時(shí)間都增加,這就限定了它們?nèi)绾尾拍茉诖笮拖到y(tǒng)中用
來(lái)存儲(chǔ)數(shù)據(jù)。
MOS DRAM的細(xì)節(jié)和操作在9 . 9 . 2節(jié)敘述,在那里我們將看到,位存儲(chǔ)技術(shù)的物理學(xué)即使
得D R A M密度高,又解釋了為什么它們被稱為“動(dòng)態(tài)的”。
9.6.4 奇偶和錯(cuò)誤檢驗(yàn)碼
可靠的數(shù)據(jù)存儲(chǔ)是所有數(shù)字系統(tǒng)的關(guān)鍵。即使單個(gè)的錯(cuò)誤位碼就能導(dǎo)致整個(gè)程序崩潰,
或者數(shù)據(jù)庫(kù)文件無(wú)用,所以提供一些技術(shù),能夠檢測(cè)錯(cuò)誤的存在,以及在某些情況下能夠修
正那些錯(cuò)誤,是非常重要的。對(duì)檢錯(cuò)碼( E D C)和糾錯(cuò)碼( E C C)的詳細(xì)研究超出了本書的
范圍,但是它們的原理基于一些相當(dāng)簡(jiǎn)單的概念,在這里予以介紹。
首先,讓我們分析這樣一個(gè)問(wèn)題,我們要確保從一個(gè)存儲(chǔ)位置讀出的數(shù)據(jù)字節(jié)與寫入
的數(shù)據(jù)字節(jié)相同。這將要求我們?cè)诖鎯?chǔ)數(shù)據(jù)字節(jié)之前記錄一些有關(guān)它的信息,然后在讀出
該數(shù)據(jù)字節(jié)之時(shí)使用這些信息來(lái)檢查它。實(shí)現(xiàn)這個(gè)的一個(gè)簡(jiǎn)單方式是,引入奇偶位P的概
念。
假設(shè)最初數(shù)據(jù)字節(jié)寫作
B=b7b6b5b4b3b2b1b0 ( 9 - 9 )
262 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
因?yàn)槊總€(gè)bn非1即0,我們能夠計(jì)算該字中1的個(gè)數(shù),用此定義一個(gè)奇偶位P,讓它記錄在包含
奇偶位P的組合字節(jié)中1的個(gè)數(shù)為偶還是為奇。若我們選擇偶校驗(yàn)方案,那么奇偶位Pe v e n有如此
特性,
選擇Pe v e n,使(B +Pe v e n)有偶數(shù)個(gè)1。
例如,若B1= 0 11 0 11 0 1,則Pe v e n= 1,因?yàn)锽1包含5個(gè)1,這種選擇使之具有偶數(shù)個(gè)1。反之,
字節(jié)B2= 1111 0 0 0 0要求Pe v e n = 0,因?yàn)锽2已經(jīng)有偶數(shù)(4)個(gè)1。奇校驗(yàn)恰恰相反。在這種情況下,
我們引入奇校驗(yàn)位Po d d,這樣
(B +Po d d)有奇數(shù)個(gè)1。
對(duì)于B10 11 0 11 0 1,將要求Po d d = 0,類似地,若B2= 1111 0 0 0 0,則將有Po d d = 1。
圖9-40 奇偶校驗(yàn)生成電路
一種生成奇偶位的容易的方式是使用如圖9 - 4 0所示的異或操作。回憶一下,異或門實(shí)現(xiàn)
了奇功能。在這個(gè)邏輯圖解里,我們已經(jīng)定義了輸出為
P = b7?b6?b5?b4?b3?b2?b1?b0 ( 9 - 1 0 )
所以,該字中如果有奇數(shù)個(gè)1,那么P = 1,如果有偶數(shù)個(gè)1,那么P = 0。所以這樣選擇
P = Pe v e n ( 9 - 11 )
因?yàn)樵撟止?jié)加上P中1的全部數(shù)量有偶校驗(yàn)所要求的特性。如果我們使用異或非門代之,那么
輸出將是奇校驗(yàn)位。
為了應(yīng)用奇偶性的概念到檢錯(cuò)問(wèn)題,假設(shè)我們存儲(chǔ)最初的數(shù)據(jù)字節(jié)以及奇偶位如圖9 - 4 1 a
所示。由上面的討論, P的選擇代表偶校驗(yàn)。注意,這個(gè)方案要求存儲(chǔ)位置寬度為( 8 + 1)= 9
位,以適應(yīng)附加位。奇偶位P提供原始數(shù)據(jù)的信息。當(dāng)字節(jié)讀出存儲(chǔ)器時(shí),如圖9 - 4 1 b所示,
我們獲得數(shù)據(jù)段
( 9 - 1 2 )
它被用來(lái)計(jì)算新的奇偶位Pc,為
( 9 - 1 3 )
接下來(lái),使用異或功能比較存儲(chǔ)的奇偶值P和Pc,產(chǎn)生檢驗(yàn)位C。若P = Pc,則存儲(chǔ)的奇偶
值與計(jì)算的奇偶值相等, C = 0 。然而,若P≠Pc,那么兩個(gè)奇偶位不同, C = 1 ,指示兩
者有差異。這樣, C = 1 表明錯(cuò)誤已經(jīng)發(fā)生,所以不是數(shù)據(jù)字節(jié)就是存儲(chǔ)的奇偶位不正確。
檢驗(yàn)位C通常放置在一個(gè)特別的稱為標(biāo)志的存儲(chǔ)單元里,當(dāng)C = 1 時(shí),我們說(shuō)標(biāo)志被置位,
一個(gè)錯(cuò)誤已經(jīng)被檢測(cè)到。檢驗(yàn)位C = 0 不保證無(wú)錯(cuò)誤發(fā)生,它僅僅意味該電路沒(méi)有檢出錯(cuò)
誤。
第9章存儲(chǔ)元件與陣列263
下載
(輸入奇數(shù)個(gè)1)
(輸入偶數(shù)個(gè)1)
輸入字
圖9-41 錯(cuò)誤檢測(cè)電路
9.7 只讀存儲(chǔ)器
只讀存儲(chǔ)器是用作永久數(shù)據(jù)存儲(chǔ)的存儲(chǔ)陣列。信息由R O M的生產(chǎn)者或者系統(tǒng)程序員存儲(chǔ)。
用戶依賴于特殊的設(shè)備具有有限的編程能力(或者根本沒(méi)有)。R O M提供非易失性的存儲(chǔ),這
意味即使切斷電源連接,數(shù)據(jù)仍然保持在該存儲(chǔ)器中。非易失性的存儲(chǔ)設(shè)備是許多系統(tǒng)應(yīng)用的
關(guān)鍵。例如,每一臺(tái)個(gè)人計(jì)算機(jī)有一個(gè)R O M ,加電時(shí)提供啟動(dòng)系統(tǒng)軟件所必需的二進(jìn)制碼。
圖9 - 4 2 a中的符號(hào)顯示了一個(gè)小容量R O M的重要特性。整體上,它在操作方面與R A M很
類似。先指明地址,然后使芯片操作執(zhí)行讀,導(dǎo)致數(shù)據(jù)輸出。圖9 - 4 2 b所示的內(nèi)部模型提供了
這種設(shè)備必需的細(xì)節(jié)。被存儲(chǔ)的數(shù)據(jù)字作為所指明的地址位置的位組被查看。該地址字為:
A5A4A3A2A1A0
圖9-42 ROM的符號(hào)和用戶模型
264 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
存儲(chǔ)字
輸出字
a) 寫操作
b) 讀操作
它稱為B I O S,表示基本輸入輸出系統(tǒng)。
地址
使能
數(shù)據(jù)輸出
a) 符號(hào)b) 內(nèi)部組織
存儲(chǔ)
數(shù)據(jù)
使能
被送到一個(gè)行譯碼器,然后通過(guò)置位合適的字線為高來(lái)激活該字的存儲(chǔ)位置。該數(shù)據(jù)字送到
由E n a b l e控制激活的輸出電路,使得該數(shù)據(jù)字為:
b7b6b5b4b3b2b1b0
輸出R O M。這種設(shè)備不支持寫操作,這是只讀存儲(chǔ)器顯著的特征。
9.8 CD ROM
緊湊圓盤( C D)R O M是一個(gè)復(fù)雜數(shù)字系統(tǒng)的有趣范例,它結(jié)合了電子學(xué)和光學(xué),提供高
密度存儲(chǔ)介質(zhì)。CD ROM的基本格式和操作基于C D音頻標(biāo)準(zhǔn),但是比那些用來(lái)再現(xiàn)聲音的
C D有著更迫切的市場(chǎng)需求。
CD ROM是一個(gè)由潔凈的、一面鑄造成小缺口的多碳酸塑料組成的圓形盤片。其上涂有
一層鋁金屬,然后覆蓋另外一層塑料,再把標(biāo)簽印在最上層。如圖9 - 4 3所示,C D的頂面有標(biāo)
簽,而潔凈的底面有存儲(chǔ)信息。在多碳酸塑料和鋁之間的界面稱為信息表面,因?yàn)檫@是數(shù)據(jù)
存儲(chǔ)的地方。信息被記錄在始于盤片中心,螺旋向外的單個(gè)軌道之上,如圖9 - 4 4 a所示。為了
從盤片讀數(shù)據(jù),盤片旋轉(zhuǎn),越過(guò)一個(gè)包含在播放機(jī)械中的固定激光源。為了便于分析,把它
看作一個(gè)固定的盤片和一個(gè)跟隨軌道移動(dòng)的激光束,如圖9 - 4 4 b所描繪。
圖9-43 緊湊圓盤的結(jié)構(gòu)
圖9-44 CD信息軌道
圖9 - 4 5顯示了從潔凈的塑料往鋁涂層所看到的信息表面的一個(gè)特寫。該表面的大部分平
整,稱為平地(l a n d)區(qū)。而大量的小缺口稱為凹口( p i t s),鑄造在塑料里,然后被鋁所覆
蓋。沿著一條稱為軌道的隱含線,提供一系列凹口和平地,實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)。這些軌道相互間
距1 . 6mm,可以密集地存儲(chǔ)。一張CD ROM能夠存儲(chǔ)大約540 MB有用數(shù)據(jù),以正常速度可播
放6 0分鐘。在制造盤片時(shí),凹口和平地被沖壓入塑料,不能改變,使得它成為只讀設(shè)備。
第9章存儲(chǔ)元件與陣列265
下載
a) 緊湊圓盤b) 橫截面視圖
頂層標(biāo)簽面
底層-信息面
鉆涂層可見(jiàn)
鉆層
信息表面
a) 底視圖b) 數(shù)據(jù)軌道的可視化
超始
結(jié)束
由螺旋軌道
組成的信息
存儲(chǔ)區(qū)激光束跟隨
軌道
圖9-45 CD信息表面的凹口和平地
當(dāng)盤片自旋時(shí),通過(guò)把一小束激光聚焦到軌道可以實(shí)現(xiàn)數(shù)據(jù)的讀出。對(duì)于標(biāo)準(zhǔn)( 1倍)速
度播放器,光點(diǎn)以一個(gè)恒定的速度v = 1 . 2 5 m / s跟隨軌道運(yùn)動(dòng)。跟蹤從信息表面反射回的激光就
讀出了存儲(chǔ)信息。圖9 - 4 6顯示了一個(gè)軌道和它的橫截面圖。當(dāng)激光束照射在一個(gè)平地區(qū)時(shí),
鋁涂層提供一個(gè)強(qiáng)反射。另一方面,如果光束掃描一個(gè)凹口,那么由于眾所周知的光的散射
和干擾,反射的光束是很微弱的。凹口的深度和相對(duì)于凹口寬度的光點(diǎn)的大小都是很重要的。
圖9-46 激光讀信息軌道
當(dāng)監(jiān)視反射激光束的功率Pre f時(shí),我們發(fā)現(xiàn)它依賴于激光束是否照射在凹口或者平地區(qū)而
變化。圖9 - 4 7說(shuō)明了這一點(diǎn),它顯示反射功率在高低電平之間變化。盡管我們用高電平表示
邏輯1,用低電平表示邏輯0,似乎顯而易見(jiàn),但出于系統(tǒng)設(shè)計(jì)過(guò)程中的物理考慮, C D標(biāo)準(zhǔn)選
擇了不同的編碼方案。這種用于C D的編碼稱為N R Z - i。它以如下方式定義邏輯電平:
? 邏輯0 持續(xù)的高或低電平
? 邏輯1 一個(gè)從高到低或者從低到高的跳變
266 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
軌道
凹口
掃描激
光束
平地
平地
平地
平地
平地
平地平地平地
光束點(diǎn)
凹口
凹口
平地
塑料
弱反射
強(qiáng)反射
標(biāo)簽覆蓋
激光束
凹口
a) 信息表面
b) 橫截面視圖
這樣,當(dāng)激光掃描凹口或者平地區(qū)時(shí),恒定的反射功率強(qiáng)度被翻譯為邏輯0。僅當(dāng)光束從平地
到凹口,或者從凹口到平地傳送時(shí),邏輯1發(fā)生。使用這種編碼方案提供該圖所示的邏輯翻譯。
注意,這種技術(shù)的關(guān)鍵是,為一個(gè)邏輯位定義時(shí)間間隔T。對(duì)于1倍速播放器,串行數(shù)據(jù)讀出
數(shù)率大約為1 5 0 K B / s(千字節(jié)每秒)。
我們之所以使用N R Z - i編碼,是因?yàn)樽x盤進(jìn)程產(chǎn)生不了該圖所示的精密明確的反射光束。
由于不一致的激光照明、跟蹤錯(cuò)誤、振動(dòng)和物理環(huán)境中其他干擾,反射功率強(qiáng)度看上去更像
如圖9 - 4 8所示一樣。盡管光束照射在凹口或者平地區(qū)時(shí),它的強(qiáng)度發(fā)生變化,但是當(dāng)激光束
從凹口移向平地,或者反之時(shí), C D系統(tǒng)確保有一個(gè)仍然合理的改變。因此,這個(gè)編碼方案濾
及一個(gè)信號(hào)可靠的輸出,雖然并不理想。
圖9-47 掃描表面時(shí)的發(fā)射激光功率
應(yīng)用這種編碼把數(shù)據(jù)存儲(chǔ)在軌道上的方式,導(dǎo)致了其他的復(fù)雜性。如果我們比較凹口的
寬度、長(zhǎng)度和激光束的直徑(大約1mm),我們發(fā)現(xiàn)兩個(gè)1在軌道上相鄰是不可能的。事實(shí)上,
當(dāng)在軌道上記錄時(shí),這產(chǎn)生一個(gè)規(guī)則
1必定至少被兩個(gè)0分隔
這暗示我們不能直接在C D的軌道上存儲(chǔ)“標(biāo)準(zhǔn)”編碼數(shù)據(jù)!取而代之,數(shù)據(jù)服從一個(gè)調(diào)制方
案,它原則上類似于編碼/譯碼過(guò)程。
緊湊盤片使用一個(gè)8到1 4調(diào)制( E F M)技術(shù),一個(gè)8 b i t數(shù)據(jù)字被擴(kuò)展為1 4 b i t的調(diào)制當(dāng)量,
它不違反1之間的間隔規(guī)則。整個(gè)方案如圖9 - 4 9 a所示。記錄在盤片上的是調(diào)制位流,而不是
原始數(shù)據(jù)。實(shí)際的轉(zhuǎn)換使用一個(gè)查詢表定義,該表的一小段已經(jīng)再現(xiàn)于圖9 - 4 9 a中。數(shù)據(jù)讀出
時(shí),必須簡(jiǎn)單地把該表用作一個(gè)字典,解調(diào)數(shù)據(jù)以產(chǎn)生原始的8 b i t字。
圖9-48 實(shí)際的發(fā)射信號(hào)變量
C D另一個(gè)有趣的方面在于,讀盤以后對(duì)數(shù)據(jù)使用了檢錯(cuò)碼( E D C)和糾錯(cuò)碼( E C C)。
C D制造工藝固有的偏差導(dǎo)致有相當(dāng)高的可能性得到一個(gè)數(shù)據(jù)流錯(cuò)誤。通常,它由誤碼率
(B E R)表明如下:
( 9 - 1 4 )
第9章存儲(chǔ)元件與陣列267
下載
平地平地平地
位時(shí)間
凹口凹口
平地凹口平地凹口平地
圖9-49 CD 8到14調(diào)制方案
這里,Ne為不正確的位數(shù),NT為被考慮的位的總數(shù)。在C D音頻應(yīng)用中(C D標(biāo)準(zhǔn)的最初使用),
指明B E R最大值為R E R= 1 0-9。計(jì)算標(biāo)準(zhǔn)更加嚴(yán)格,最高可接受的值為B E R= 1 0- 1 2。為了確保C D
滿足該值,在記錄數(shù)據(jù)之前,一套復(fù)雜的E D C和E C C應(yīng)用到數(shù)據(jù)之上。這導(dǎo)致另外一個(gè)數(shù)據(jù)
集記錄在C D上。這個(gè)思想類似于在R A M陣列中使用奇偶位的概念,但是它要強(qiáng)大得多,因?yàn)?
該代碼可以( a )檢錯(cuò),以及( b )通過(guò)計(jì)算起初的碼字來(lái)進(jìn)行糾錯(cuò)。C D采用了一種算法,它包含
于一大類已知的R e e d - S o l o m o n碼理論中,以一些數(shù)據(jù)字塊來(lái)實(shí)現(xiàn)任務(wù)。它們是如此強(qiáng)有力,
以至于你能夠真正地掩蓋C D上一段大約長(zhǎng)1 m m的軌道,它不影響被處理的數(shù)據(jù)輸出。
緊湊盤片系統(tǒng)十分復(fù)雜,但它是現(xiàn)實(shí)數(shù)字系統(tǒng)的一個(gè)優(yōu)秀的樣例。其他光學(xué)記錄和數(shù)據(jù)
存儲(chǔ)的途徑已經(jīng)發(fā)展起來(lái),而它們都趨向于被類似的物理限定所約束,且各自有獨(dú)特的方面,
通過(guò)使用基本的準(zhǔn)則說(shuō)明一個(gè)數(shù)字設(shè)計(jì)如何能夠解決復(fù)雜的系統(tǒng)設(shè)計(jì)問(wèn)題。
9.9 CMOS存儲(chǔ)器
C M O S是所有類型的存儲(chǔ)器芯片的主導(dǎo)技術(shù)。因?yàn)镸 O S F E T很小,創(chuàng)建大容量的相當(dāng)快
的存儲(chǔ)器陣列就是可能的。在這一部分,我們將簡(jiǎn)要地分析一些有關(guān)使用C M O S技術(shù)創(chuàng)建存
儲(chǔ)器單元的概念。
9.9.1 CMOS SRAM
單個(gè)的CMOS SRAM單元電路如圖9 - 5 0所示。它包含兩個(gè)交叉耦合的反相器(M n 1,M p 1,
M n 2,M p 2),作為存儲(chǔ)單元,使用一對(duì)N溝道晶體管存取它們。這與圖9 - 3 5所示的更基本的
原理圖有著相同的結(jié)構(gòu),所以它們的操作是相同的。由于它有六個(gè)晶體管,在文獻(xiàn)里稱為一
個(gè)“6 T”設(shè)計(jì)。該6 T設(shè)計(jì)可能是制作C M O S存儲(chǔ)器最普通的方法。使用四個(gè)M O S F E T和兩個(gè)
電阻創(chuàng)建一個(gè)“4 T”單元也是可能的。
268 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
8位字
14b字到
光盤
14b字
讀出
8位字
8位字14位長(zhǎng)效值
a) EFM記錄和讀出方案
b) EFM 表的一部分
用來(lái)存取單元的簡(jiǎn)單方案能夠擴(kuò)展到多端口靜態(tài)存儲(chǔ)器,在這里,能夠使用一對(duì)以上的
輸入/輸出線。一個(gè)雙端口靜態(tài)存儲(chǔ)器如圖9 - 5 1所示。它有兩個(gè)獨(dú)立的數(shù)據(jù)I / O通路,用D1和D2
表示。單元存取由兩個(gè)獨(dú)立的標(biāo)注為W L 1和W L 2的字線控制。任意一個(gè)能夠用作讀或?qū)懖僮鳌?
所引起的一個(gè)問(wèn)題是,我們必須實(shí)施排他性,即
W L 1·W L 2= 0 ( 9 - 1 5 )
確保一個(gè)輸入不干擾另一個(gè)。它可通過(guò)使用片上邏輯仲裁每一個(gè)單元的存取來(lái)實(shí)現(xiàn)。多端口
存儲(chǔ)器很有用,因?yàn)樗鼈冊(cè)试S把共享存儲(chǔ)器一次硬連到幾個(gè)數(shù)字邏輯單元。
圖9-50 CMOS SRAM單元
圖9-51 雙端口SRAM單元
9.9.2 動(dòng)態(tài)存儲(chǔ)器
描繪動(dòng)態(tài)存儲(chǔ)器的特征要更加復(fù)雜,但是它們廣泛地被用作主存,因?yàn)樗鼈兡芤员萐 R A M
高得多的密度構(gòu)建。形容詞“動(dòng)態(tài)的”反映了這樣一個(gè)事實(shí),在一個(gè)保持操作期間,單元的
內(nèi)容將隨著時(shí)間改變。這使得動(dòng)態(tài)存儲(chǔ)器的設(shè)計(jì)更加復(fù)雜,但是現(xiàn)代的芯片通常對(duì)用戶屏蔽
復(fù)雜性。D R A M主要的缺點(diǎn)是它們沒(méi)有S R A M快。D R A M主要的優(yōu)勢(shì)是每b i t的花費(fèi)很低,使
它在需要大陣列的系統(tǒng)設(shè)計(jì)上具有經(jīng)濟(jì)上的吸引力。
第9章存儲(chǔ)元件與陣列269
下載
(字線)
位線
反碼位線
端口2
端口1
端口1
端口2
D R A M單元的電路原理圖如圖9 - 5 2所示。一眼看去,簡(jiǎn)單
性是明顯的:整個(gè)單元由單個(gè)n F E T和一個(gè)存儲(chǔ)電容CS組成。
這便于相當(dāng)高的集成密度,使構(gòu)建有數(shù)百萬(wàn)個(gè)單元的單一芯片
成為可能;使用現(xiàn)代技術(shù),每片2 5 6 M b和1 G b大小是可能的。
D R A M市場(chǎng)競(jìng)爭(zhēng)的本質(zhì)使它成為技術(shù)驅(qū)動(dòng)器,許多公司使用
他們最先進(jìn)的工藝技術(shù)制造D R A M。
在這個(gè)基本存儲(chǔ)電路里, n F E T作為存取器件,由字線變
量W L控制導(dǎo)通。當(dāng)W L = 1時(shí),n F E T作為一個(gè)閉合的開(kāi)關(guān),允
許一個(gè)寫或讀操作。要寫該單元,一個(gè)數(shù)據(jù)電壓VD應(yīng)用到數(shù)據(jù)
線,產(chǎn)生的電流充電存儲(chǔ)電容CS到電壓VS。如圖9 - 5 3所示。存儲(chǔ)位碼的值由電容上的電荷定義
( 9 - 1 6 )
如果VS= V0= 0V,那么QS= 0,對(duì)應(yīng)于邏輯0的值。另一方面,如果VS= V1是高電平,那么邏
輯1的電荷存儲(chǔ)在電容上
QS = CSV1 ( 9 - 1 7 )
使字線W L = 0可得到一個(gè)保持狀態(tài),在數(shù)據(jù)線與存儲(chǔ)電容器之間斷開(kāi)直接的導(dǎo)電通路。
理想地,晶體管將阻塞所有的電流,電荷QS將永久地保持。然而, n F E T并不能阻塞所有的電
流。即使對(duì)一個(gè)0門電壓, F E T允許一個(gè)小的漏電流IL把電荷從電容器移走。泄漏通路的電路
效果如圖9 - 5 4 a所示, 9 - 5 4 b中的示意圖表明了晶體管中問(wèn)題的物理起源,在那里, p n結(jié)存在
一個(gè)不能排除的反向電流IR。在這種情況下,我們可以記作
IL = IR ( 9 - 1 8 )
既然電荷能夠從CS泄露掉,而數(shù)據(jù)位碼的值依賴于電荷,所以數(shù)據(jù)位碼僅僅能夠保持一個(gè)較
短的時(shí)期。
圖9-53 DRAM單元中的寫操作
圖9-54 DRAM保持狀態(tài)和泄露問(wèn)題
270 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
在實(shí)際的D R A M單元中,也存在其他幾種漏電流。
輸入
(邏輯0)
(邏輯1)
門
斷開(kāi)
漏電流
邏輯1電壓將
漸變?yōu)?V
a) 電路模型b) 漏電流的起源
圖9-52 CMOS動(dòng)態(tài)RAM(DRAM)
單元設(shè)計(jì)
預(yù)估這個(gè)值能夠保持的時(shí)間間隔是有價(jià)值的。假定我們?cè)陔娙萜魃显O(shè)置邏輯1電平VS=V1,
希望計(jì)算n F E T斷開(kāi)時(shí)電壓能夠保持在該單元上的時(shí)間。這能通過(guò)使用電流的定義來(lái)實(shí)現(xiàn),記
作
( 9 - 1 9 )
這里,我們?cè)诘诙兄惺褂昧嘶镜年P(guān)系
( 9 - 2 0 )
使用負(fù)號(hào)是因?yàn)殡姾呻S時(shí)間減少。重新排列得到
( 9 - 2 1 )
所以,兩邊積分得到
( 9 - 2 2 )
這里,tH是保持時(shí)間。保持時(shí)間定義為電容器能夠維持Vm i n以上電壓的時(shí)間間隔, Vm i n是仍然譯
作邏輯1值的最小電壓。右邊的下限V1表示t = 0時(shí)刻的初始存儲(chǔ)的邏輯1電壓。計(jì)算該積分,
重新排列保持時(shí)間為
( 9 - 2 3 )
為了理解時(shí)間間隔的意義,我們記存儲(chǔ)電容為5 0 f F = 5 0×1 0-1 5F的量級(jí),漏電流為1 p A(1 0-1 2A)
的量級(jí)。因?yàn)殡妷簽? V的量級(jí),保持時(shí)間就大約為
( 9 - 2 4 )
也就是5 0毫秒( m s)。這是一個(gè)很短的時(shí)期。數(shù)
據(jù)必須周期地更新以確保在系統(tǒng)需要它時(shí)是有效
的。這稱為刷新操作,在下面描述。
如圖9 - 5 5表示了一個(gè)讀操作。為了從該單元
檢索數(shù)據(jù),我們使W L = 1,閉合存取晶體管,允
許電流流向位線。一個(gè)放大器在輸出端提供加強(qiáng)
的信號(hào)。該放大器是設(shè)計(jì)的關(guān)鍵部分,在設(shè)計(jì)過(guò)
程中被給予更多的關(guān)注。為了對(duì)數(shù)據(jù)提供快速存
取,讀電路必須適當(dāng)?shù)乜臁?
刷新操作就是,周期地對(duì)數(shù)據(jù)執(zhí)行讀出、放大及回寫到單元。刷新電路包含在芯片中,
使該存儲(chǔ)器似乎有長(zhǎng)期的保持特性。因?yàn)樽畲蟊3謺r(shí)間是在1 0- 3秒數(shù)量級(jí),所以最小刷新頻率
的量級(jí)為
( 9 - 2 5 )
第9章存儲(chǔ)元件與陣列271
下載
放大器
圖9-55 DRAM單元中的讀操作
從而,刷新率為數(shù)千赫茲的量級(jí)。記住重要的一點(diǎn),每一個(gè)單元必須周期地刷新,所以該電
路被設(shè)計(jì)為循環(huán)通過(guò)整個(gè)陣列。
現(xiàn)代計(jì)算機(jī)技術(shù)中的許多進(jìn)展能夠回朔到R A M制造工藝的技術(shù)發(fā)展。因此,那是一個(gè)吸
引人的研究領(lǐng)域,即使你的興趣在其他方面。
9.9.3 ROM
C M O S技術(shù)為大量要制造的R O M電路作了準(zhǔn)備。盡管它們歸屬于“只讀”器件,但允許
通過(guò)特別的電路技術(shù)輸入用戶數(shù)據(jù)。它們通常需要施加相當(dāng)高的電壓電平來(lái)操作芯片。因?yàn)?
該器件能被編程,有時(shí)稱它們?yōu)椤爸饕x”器件。
E P R O M
E P R O M是Erasable-Programmable ROM的首字母的縮寫詞。這種類型的器件允許用戶編
程(輸入數(shù)據(jù))和擦除數(shù)據(jù)。
用一個(gè)高電壓傳送電荷到一個(gè)“浮動(dòng)的”電容器,就實(shí)現(xiàn)了編程。電荷存儲(chǔ)在該電容器
上,在正常環(huán)境下不能逃逸。在這種器件里,把器件放在強(qiáng)烈的紫外線( U V)光源之下,能
夠?qū)崿F(xiàn)擦除。電子吸收光子(光能包),使它們有能量運(yùn)動(dòng)返回半導(dǎo)體中。盡管它們從前是用
戶可編程R O M的主要類型,但已經(jīng)被電可擦除可編程的器件所取代。
E2P R O M
這種存儲(chǔ)器是電可擦除的( E2),代替了E P R O M的U V技術(shù)。它有這樣的優(yōu)勢(shì),數(shù)據(jù)可以
使用電子電路擦除,不需要芯片物理地從系統(tǒng)移開(kāi)。因?yàn)檫@個(gè)特性,它在現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)
中非常流行。
在管腳上加一個(gè)高電壓,使電荷傳送到電容器面板,實(shí)現(xiàn)編程。要擦除單元,使電壓反
向,電荷向相反的方向移動(dòng)。在一個(gè)基本陣列里,限制每次擦除一個(gè)單元。然而,更加新穎
的技術(shù)允許同時(shí)擦除大量的單元。這些器件稱為閃爍E P R O M,這里的“閃爍”是指整個(gè)陣列
可以擦除的速度。
9.10 傳輸門電路
在集成電路設(shè)計(jì)中,傳輸門能夠用來(lái)構(gòu)建C M O S存儲(chǔ)器元件。它們非常有用,因?yàn)門 G的
行為就像一個(gè)理想的開(kāi)關(guān),能夠斷開(kāi)和閉合。在一個(gè)存儲(chǔ)電路的輸入端使用一個(gè)T G,允許以
T G控制機(jī)制來(lái)控制鎖存活動(dòng)。
9.10.1 基本鎖存器
圖9 - 5 6表示了一個(gè)基本的鎖存器電路,它使用了兩個(gè)傳輸門T G 0和T G 1來(lái)控制數(shù)據(jù)
流;兩個(gè)反相器提供雙穩(wěn)態(tài)存儲(chǔ)。該電路的操作由載入控制位L D和它的補(bǔ)
—L D實(shí)現(xiàn)。注意,
到傳輸門T G 0 和T G 1的控制信號(hào)是以相反的方式應(yīng)用的;當(dāng)一個(gè)T G閉合時(shí),另一個(gè)斷
開(kāi)。
為了理解該鎖存器的操作,讓我們首先分析L D = 1時(shí)的情況。T G 0斷開(kāi)和T G 1閉合,如
圖9 - 5 7 a所示的條件。輸入數(shù)據(jù)位碼D能夠進(jìn)入電路,使第二個(gè)反相器的輸出Q = D;這允許
我們載入(寫)一個(gè)數(shù)據(jù)位碼到該鎖存器。注意,只要L D = 1,該鎖存器就是貫通的,因?yàn)?
輸出將跟蹤輸入的變化。保持條件是如圖9 - 5 7 b所示的L D = 0。斷開(kāi)T G 0,它反過(guò)來(lái)阻擋了新
272 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
數(shù)據(jù)的進(jìn)入。傳輸門T G 1是一個(gè)閉合的開(kāi)關(guān),
產(chǎn)生雙穩(wěn)態(tài)的交叉耦合的反相器電路,能夠維
持Q值。
基本的T G鎖存器歸屬于電平敏感的器件,
因?yàn)樗贚 D = 1時(shí)接受輸入。通過(guò)組合一個(gè)時(shí)
鐘信號(hào)?進(jìn)入控制集,它能夠用作一個(gè)時(shí)鐘控制
的鎖存器。在圖9 - 5 8中,各處的L D(和
—L D)信
號(hào)已經(jīng)用?(和-?)取代;這就使該鎖存器在時(shí)
鐘狀態(tài)? = 1時(shí)接受新的數(shù)據(jù)。
圖9-57 TG鎖存器操作
圖9-58 時(shí)鐘TG鎖存器電路
圖9-59 帶控制載入的時(shí)鐘鎖存器
第9章存儲(chǔ)元件與陣列273
下載
圖9-56 TG鎖存器電路
閉合斷開(kāi)
斷開(kāi)閉合
a) L D = 1 b) L D = 0(保持)
當(dāng)? = 1時(shí)D認(rèn)可
a) 電路圖解b) 時(shí)鐘
a) 電路b) 控制邏輯
圖9 - 5 9表示了另一種時(shí)鐘控制輸入的方法。在這種情況下,輸入傳輸門T G 0由復(fù)合信號(hào)
L D·?和
—L D·
-?
控制。僅當(dāng)L D = 1且?= 1為真時(shí),允許新數(shù)據(jù)輸入。從而,這種電路的行為類
似于如圖9 - 5 8中的時(shí)鐘方式,除了L D對(duì)數(shù)據(jù)流提供一個(gè)附加的控制之外。圖9 - 6 0的波形說(shuō)明
了該電路時(shí)序的一個(gè)例子。總之,時(shí)鐘信號(hào)?(t)總是用作定時(shí)參考。在這種情況下,載入
信號(hào)L D僅在第一和第四個(gè)時(shí)鐘周期為高。從而,復(fù)合信號(hào)L D·?在此期間跟隨時(shí)鐘,在中間
的兩個(gè)時(shí)鐘周期為0。觀察結(jié)果是,該鎖存器將僅在第一和第四個(gè)周期接受數(shù)據(jù)。
圖9-60 帶載入控制的時(shí)鐘TG鎖存器的時(shí)序圖解
9.10.2 TG觸發(fā)器
一個(gè)主從觸發(fā)器能夠由級(jí)聯(lián)的兩個(gè)反相T G鎖存器構(gòu)建,如圖9 - 6 1所示。第一個(gè)鎖存器
(第一級(jí))作為主觸發(fā)器,第二個(gè)鎖存器(第二級(jí))作為從觸發(fā)器。通過(guò)注意輸入傳輸門由反
相時(shí)鐘控制,可以看出這一點(diǎn)。當(dāng)? = 0時(shí),主觸發(fā)器有效并接受數(shù)據(jù),而從觸發(fā)器的輸入需
要時(shí)鐘? = 1來(lái)容許新的信息。這在操作上與正邊沿敏感的D F F是相同的。通過(guò)簡(jiǎn)單地交換時(shí)
鐘信號(hào)?和-?,可得到一個(gè)負(fù)邊沿敏感的D F F。該電路如圖9 - 6 2所示。
圖9-61 主從DFF電路
274 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
[秒]
[秒]
[秒]
階段1 階段2
圖9-62 負(fù)邊沿主從DFF電路
9 . 11 問(wèn)題
1. 下面的置位( S)和復(fù)位(R)信號(hào)應(yīng)用到一個(gè)S R鎖存器。描繪出這個(gè)器件的輸出Q(t)
的草圖。
2. 下面的信號(hào)應(yīng)用到圖9 - 1 0中的時(shí)鐘S R鎖存器。描繪出輸出Q(t)的草圖。
3. 下面所示的數(shù)據(jù)信號(hào)D(t)應(yīng)用到一個(gè)正邊沿觸發(fā)D F F的輸入。描繪出這個(gè)器件的輸
出Q(t)的草圖。
第9章存儲(chǔ)元件與陣列275
下載
階段1 階段2
4. 對(duì)于D(t)應(yīng)用到一個(gè)負(fù)邊沿觸發(fā)D F F的輸入,重做前一個(gè)問(wèn)題。
5. 一個(gè)基于或非門的S R鎖存器的復(fù)位(R)輸入跳變?yōu)?,同時(shí)S = 0。畫出它發(fā)生時(shí)的電
路,并在每一個(gè)節(jié)點(diǎn)標(biāo)注邏輯值( 0或者1)。
6. 考慮基于與非門的S R鎖存器。當(dāng)S和R皆為0電平時(shí),它的輸出是什么?它為什么為
“不使用”的情形?
7. 考慮一個(gè)8位移位寄存器,起初,其中有二進(jìn)制字0 1 0 111 0 0。在下面的操作已經(jīng)執(zhí)行之
后,該寄存器的內(nèi)容是什么?對(duì)于每一種情況,假設(shè)初始狀態(tài)由上面給出。
(a) SHR 2
(b) SHL 1
(c) ROL 3
(d) ROR 2
8. 一個(gè)8位移位寄存器,有十進(jìn)制8 6的二進(jìn)制等效值存儲(chǔ)于其中。在下面的操作已經(jīng)執(zhí)行
之后,該寄存器十進(jìn)制的等效內(nèi)容為多少?對(duì)于每一種情況,假設(shè)被賦予相同的初始狀態(tài)。
(a) SHR 1
(b) SHL 1
(c) SHR 2
(d) ROR 2
9. 一個(gè)1 6位寄存器包含0 x 4 A 3 5的二進(jìn)制等效值。在下述操作已經(jīng)執(zhí)行之后,得出該寄存
器十進(jìn)制的等效內(nèi)容。對(duì)于每一種情況,假設(shè)被賦予相同的初始狀態(tài)。
(a) SHR 6
(b) SHR 3
(c) SHL 8
(d) SHL 16
10. 考慮圖9 - 3 7中的8×8 S R A M陣列。每一行的內(nèi)容由下述列表給定:
行0:1010 1111
行1:1010 1111
行2:1010 1111
行3:1010 1111
行4:1010 1111
行5:1010 1111
行6:1010 1111
行7:1010 1111
當(dāng)下述地址被應(yīng)用到行譯碼器時(shí),輸出的十進(jìn)制值是多少?
(a) A2A1A0 = 101
(b) A2A1A0 = 011
(c) A2A1A0 = 100
(d) A2A1A0 = 11 0
11. 使用圖9 - 3 8中的示意圖作為一個(gè)基礎(chǔ),畫出一個(gè)1 6×4 S R A M的方框圖。
12. 考慮圖9 - 3 9所示的6 4×8 S R A M。該器件將作為創(chuàng)建一個(gè)大小為6 4 b×3 2 b的大型存儲(chǔ)
276 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
器陣列的基礎(chǔ)。構(gòu)造這個(gè)大型存儲(chǔ)器的方框圖。
13. 考慮圖9 - 3 9所示的6 4×8 S R A M。你想要使用該器件來(lái)設(shè)計(jì)一個(gè)包含2 5 6個(gè)3 2 b i t字的存
儲(chǔ)器陣列。構(gòu)造該存儲(chǔ)器陣列的方框圖。你可能考慮想要給每一個(gè)器件增加一個(gè)片選輸入C S,
控制每一芯片,使得C S = 0使該器件失效,而C S = 1使它有效,容許讀和寫數(shù)據(jù)。
14. 在最近的報(bào)紙或者計(jì)算機(jī)雜志上尋找計(jì)算機(jī)廣告,找到你所能夠找到的關(guān)于S R A M和
D R A M芯片或者模塊的最佳價(jià)格。然后,計(jì)算每種類型的每一b i t價(jià)格。這兩類存儲(chǔ)器在價(jià)格
上的百分比差異是多少?
15. 研究雜志或者報(bào)紙上的計(jì)算機(jī)廣告。你能夠找到多少種S R A M在個(gè)人計(jì)算機(jī)上的具體
應(yīng)用?
16. 考慮3 b i t數(shù)據(jù)字b2b1b0。各位用于生成一個(gè)偶校驗(yàn)位p。那么,有3 + 1 = 4位被存儲(chǔ)在存儲(chǔ)
器中。當(dāng)從存儲(chǔ)器中讀數(shù)據(jù)時(shí),我們得到下面所列的結(jié)果。判決該數(shù)據(jù)是否滿足奇偶校驗(yàn)檢
查,或者存在一個(gè)錯(cuò)誤。
(a) p b 2b1b0= 0111
(b) p b 2b1b0= 11 0 1
(c) p b 2b1b0= 0100
(d) p b 2b1b0= 11 0 1
(e) p b 2b1b0= 0000
17. 假設(shè)我們想要在一個(gè)緊湊盤片的表面上存儲(chǔ)1 0 2 4個(gè)1 6 b i t數(shù)據(jù)字。實(shí)際上,在該盤的信
息表面上將要存儲(chǔ)多少位?
18. CD ROM強(qiáng)有力的糾錯(cuò)能力是通過(guò)記錄包含足夠信息的大量數(shù)據(jù)來(lái)重構(gòu)任何錯(cuò)誤的輸
出而獲得的。因?yàn)檫@不是用戶可存取的數(shù)據(jù),所以稱之為開(kāi)銷,它減少了有用存儲(chǔ)的數(shù)量。
C D上的信息被劃分為一些數(shù)據(jù)塊,使目錄簡(jiǎn)單化。每一塊包含2 3 5 2個(gè)字節(jié),其中2 0 4 8個(gè)
字節(jié)是真實(shí)的數(shù)據(jù)。一張標(biāo)準(zhǔn)C D可能的最長(zhǎng)“播放時(shí)間”是7 4分鐘,對(duì)應(yīng)于3 3 3 , 0 0 0個(gè)塊。
(a) 對(duì)于7 4分鐘的播放時(shí)間,計(jì)算用戶字節(jié)的總量。
(b) 開(kāi)銷占全部存儲(chǔ)數(shù)據(jù)的百分之多少?
(c) 如果播放時(shí)間減少到6 0分鐘,可利用的用戶字節(jié)為多少?
(該C D在存儲(chǔ)和播放時(shí)間之間存在線性關(guān)系。)
19. 一個(gè)數(shù)據(jù)傳輸系統(tǒng)的B E R確定為1 0-1 0。假設(shè)該系統(tǒng)以每秒1 0 0 M b的速率傳輸數(shù)據(jù)。該
系統(tǒng)能夠傳輸數(shù)據(jù)而不發(fā)生錯(cuò)誤的平均時(shí)間是多少?在真實(shí)世界環(huán)境中,我們?cè)鯓硬拍芸朔?
該問(wèn)題?
20. 考慮一個(gè)處于保持狀態(tài)的動(dòng)態(tài)R A M(D R A M)單元。它的存儲(chǔ)電容的值為CS=6 0 f F,
而漏電流估計(jì)為IL= 0 . 2 p A。對(duì)于邏輯1狀態(tài),電壓特性已知為V1= 3V,Vm i n=1 . 2 V。求出該單元
的保持時(shí)間。
21. 一個(gè)動(dòng)態(tài)R A M(D R A M)單元的存儲(chǔ)電容為CS=5 5 F,漏電流估計(jì)為IL= 0 . 1 4 p A。該電
容器上的最大電壓為V1=3 V,最小邏輯1的電壓為Vm i n=1 V。
(a) 該單元能夠保持邏輯0狀態(tài)多久?
(b) 邏輯1狀態(tài)的保持時(shí)間為多少?
22. DRAM中的軟錯(cuò)誤是這樣的情形,一個(gè)a粒子撞擊硅,導(dǎo)致電荷的流動(dòng)。這能夠改變
該單元的內(nèi)容。你能否想起一個(gè)D R A M環(huán)境,在那里,它可能是特別的重要?
第9章存儲(chǔ)元件與陣列277
下載
第9章存儲(chǔ)元件與陣列
大多數(shù)的數(shù)字系統(tǒng)需要具備“記憶”二進(jìn)制變量數(shù)值的能力,以對(duì)其作進(jìn)一步的計(jì)算。
這種能力通過(guò)一類稱為存儲(chǔ)單元的數(shù)字電路予以實(shí)現(xiàn)。存儲(chǔ)單元允許用戶把二進(jìn)制變量的數(shù)
值存儲(chǔ)起來(lái),在需要時(shí)再調(diào)用它。盡管存儲(chǔ)單元能夠被獨(dú)立地使用,但它們通常以稱為寄存
器的字長(zhǎng)大小的組,或者作為能夠存儲(chǔ)成千上萬(wàn)位數(shù)據(jù)的巨大陣列的形式出現(xiàn)。
9.1 一般屬性
存儲(chǔ)元件是能夠保持系統(tǒng)所需的二進(jìn)制變量數(shù)值的電路。
在圖9 - 1中,描繪了一個(gè)基本的存儲(chǔ)單元。在最通用的術(shù)語(yǔ)中,
有三種操作刻畫出該單元的特性。
? 寫入在一個(gè)寫入操作中,數(shù)據(jù)位碼D的值(為0或者1)
置于輸入,并被該元件
所接受。
? 保持在寫入操作中所存儲(chǔ)的D值被保持,盡管輸入可能有所變化。
? 讀出一個(gè)讀出操作把存儲(chǔ)位碼的值提供給輸出變量Q。
E n a b l e使能控制位可能存在于某個(gè)設(shè)計(jì)中, Enable = 0示意保存,而Enable = 1容許進(jìn)行讀
出或者寫入操作。
數(shù)字系統(tǒng)采用不同類型的存儲(chǔ)元件,它們的特性隨應(yīng)用而變化。一個(gè)分類方案基于該單
元設(shè)計(jì)提供了哪些操作。讀/寫存儲(chǔ)器就是用戶可以用來(lái)存儲(chǔ)數(shù)值,保持它們一段不確定時(shí)期,
并在需要時(shí)再把該數(shù)值讀出來(lái)的存儲(chǔ)器。它可能是最一般類型的存儲(chǔ)器,通常稱為隨機(jī)存取
存儲(chǔ)器或者R A M。大多數(shù)的讀/寫存儲(chǔ)器在掉電時(shí)丟失其內(nèi)容。一類限制性更大的存儲(chǔ)器稱為
只讀存儲(chǔ)器(R O M)。對(duì)于R O M,信息在它置入電子系統(tǒng)之前就被永久地存儲(chǔ)于器件之中。
用戶可以讀出R O M中的信息,但是不允許改變?cè)摂?shù)據(jù)。可編程R O M(P R O M)是R O M的一
個(gè)變種,用戶可以在其中存儲(chǔ)期望的數(shù)據(jù),但是寫入過(guò)程需要一個(gè)特別的電子裝置,且它僅
能執(zhí)行數(shù)次。
計(jì)算機(jī)圍繞著一組稱為寄存器的存儲(chǔ)元件而設(shè)計(jì)。一個(gè)寄存器被設(shè)計(jì)來(lái)保存整個(gè)的n比特
字,而它在其他方面與R A M相同。不管具體的應(yīng)用如何,所有的存儲(chǔ)元件在數(shù)字邏輯方面有
著共同的基礎(chǔ)。
9.2 鎖存器
鎖存器是能夠跟隨數(shù)據(jù)變化并傳送這些變化到一根輸出線的邏輯元件。圖9 - 2是它的一個(gè)
簡(jiǎn)單表示。通常地,鎖存器由兩個(gè)主要的特性所刻畫:
? 它是貫通的,因?yàn)檩敵鯭(t)跟隨上一時(shí)刻輸入的變化;而且,
? 它使用雙穩(wěn)態(tài)電路實(shí)現(xiàn)存儲(chǔ),從而,不是Q = 0就是Q = 1能夠在該單元中保持。
使用簡(jiǎn)單的邏輯門就可以構(gòu)成幾類鎖存器。
輸入(寫)
圖9-1 通用存儲(chǔ)單元
輸出(讀)
使能
9.2.1 SR鎖存器
置位復(fù)位( S R)鎖存器是一個(gè)貫通的雙穩(wěn)態(tài)元件,它對(duì)于輸入的變化是敏感的。SR 鎖存
器具有分別標(biāo)注為S與R的兩個(gè)輸入和一個(gè)標(biāo)注為Q的輸出;互補(bǔ)輸出
-Q
也被提供。圖9 - 3是其
一般的方框圖表示。該元件的名稱從它的兩個(gè)基本操作的定義所得出。
圖9-2 基本鎖存器符號(hào)圖9-3 SR鎖存器符號(hào)
? 置位(S)操作,輸出值被強(qiáng)制為Q = 1。
? 復(fù)位(R)操作,Q值被強(qiáng)制為Q = 0。
術(shù)語(yǔ)“置位”與“復(fù)位”十分通用,在數(shù)字系統(tǒng)中經(jīng)常被用來(lái)描述條件。例如,如果我們說(shuō)
我們想要“置位變量A”,這意味著我們強(qiáng)制A值為1。類似地,復(fù)位A意味著A→0。在這里,
我們將討論兩種基本S R鎖存器電路。一種是基于兩輸入或非門N O R 2,另一種使用兩輸入與
非門N A N D 2邏輯。既然或非門和與非門互為對(duì)偶關(guān)系,那么它們的開(kāi)關(guān)特性將是相反的。
或非門S R鎖存器
S R鎖存器能夠由兩個(gè)交叉耦合的或非門構(gòu)成,如圖9 - 4 a所示。“交叉耦合” 這個(gè)術(shù)語(yǔ)定
義了兩個(gè)門的連接方式;它的意思是一個(gè)或非門的輸出連接到另一個(gè)或非門的輸入,反之亦
然。這在術(shù)語(yǔ)上也稱為反饋網(wǎng)絡(luò),因?yàn)槊恳粋€(gè)門的輸出都被“反饋”而成為另一個(gè)門的輸
入。要建立一個(gè)能保存兩個(gè)邏輯值的雙穩(wěn)態(tài)電路,反饋是必需的。圖9 - 4 b中的狀態(tài)表總結(jié)了
該鎖存器的操作。我們必須關(guān)注其中對(duì)輸入的解釋,因?yàn)镾 R鎖存器通過(guò)感知輸入S和R的變
化來(lái)存儲(chǔ)比特。這意味著,我們真正感興趣的是S ( t )和R ( t ),以及它們對(duì)該鎖存器狀態(tài)的影
響。
現(xiàn)在,我們來(lái)分析一下S R鎖存器的功能表。該狀態(tài)表中的第一種輸入稱為保持操作,在
那里,維持著S = 0和R = 0;這意味著只要S= 0 =R,Q值就不會(huì)改變。為了理解這個(gè)性質(zhì),回
顧一下圖9 - 5所示的或非門的真值表。或非門的功能可被解釋為任意一個(gè)輸入為1,都使得輸
出為0;輸出為1的唯一方式是兩個(gè)輸入皆為0值。現(xiàn)在假設(shè)S= 0與R= 0被應(yīng)用到輸入。如果Q =
0,那么下方的或非門(帶輸入S)的兩個(gè)輸入皆為0,這意味著
-Q
= 1。這就反過(guò)來(lái)作用到上方
244 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
使能
輸入輸出
輸入輸出
操作
置位
復(fù)位
不使用
保持
圖9-4 基于或非門的SR鎖存器電路
a) 邏輯圖解b) 功能表
下載
的或非門(帶輸入R),確保Q = 0被維持。如果代之以Q= 1,
那么僅僅是變?cè)聪颉_@個(gè)分析的重要性在于這樣一個(gè)事
實(shí),保持Q值是可能的。交差耦合的或非門形成一個(gè)有兩個(gè)
“穩(wěn)定”狀態(tài)的雙穩(wěn)態(tài)網(wǎng)絡(luò)。這意味著該電路能夠“保持”
數(shù)值Q = 0;對(duì)于另外一種可能性Q = 1,它同樣地正確。
為了置位該鎖存器,輸入S從0上升到1,同時(shí)保持R = 0。
接下來(lái),S又返回為0,使該鎖存器回到保持狀態(tài)。在該功能
表中,這個(gè)行為由S的一個(gè)脈沖輸入表示。從或非門的真值
表可見(jiàn),隨著S = 1,輸出
-Q
被強(qiáng)制為0。那么,上方的或非門有R = 0與Q = 0作用到它的輸入,產(chǎn)
生一個(gè)輸出Q = 1。這就導(dǎo)致了“置位”的動(dòng)作。復(fù)位強(qiáng)制Q為0,可以用同樣的方式去分析它。
在該功能表的第四種輸入中, S和R的值同時(shí)設(shè)為邏輯1。從真值表可見(jiàn),兩個(gè)輸出都被強(qiáng)
制為0。由于在這種情形下兩輸出不互補(bǔ),我們就把它定義為S R鎖存器“不使用”的輸入組合。
這僅僅意味著,要避免兩輸入同時(shí)被脈沖所激勵(lì)的情形。在數(shù)字系統(tǒng)中應(yīng)用S R鎖存器時(shí),
必須考慮到它的這種行為。
與非門S R鎖存器
如圖9 - 6所示,也可以使用與非門構(gòu)成S R鎖存器。兩與非門交叉耦合,產(chǎn)生必需的反饋而
形成雙穩(wěn)態(tài)網(wǎng)絡(luò)。然而,它的性質(zhì)與基于或非門的方案是相反的,保持的條件是R = 1且S = 1。
正如它的功能表指明的,使S從1下跳為0,該鎖存器就可以置位Q = 1;使S回跳到1,就開(kāi)始
保持。相反地,如果R從1下跳為0,該鎖存器就被復(fù)位Q = 0。R再恢復(fù)為邏輯電平1,則保持
輸出值。“不使用”的情形是, S與R同時(shí)下跳為0。
圖9-6 基于與非門的SR鎖存器
通過(guò)研究圖9 - 7中與非門的真值表可以理解,為什么這
種鎖存器的行為與基于或非門的電路的行為相反。與非門
的操作可以歸納為,只要有一個(gè)輸入為邏輯0,就使得輸出
為邏輯1。因?yàn)榛蚍情T在輸入邏輯1時(shí)翻轉(zhuǎn),我們期望這兩
種鎖存器有類似的行為,但是這里要導(dǎo)致一個(gè)開(kāi)關(guān)事件必
須是相反的輸入電平。由于這一點(diǎn)發(fā)現(xiàn),這種鎖存器的符
號(hào)必須相對(duì)于圖9 - 3所示的鎖存器的符號(hào)有所修改,那里的
S和R現(xiàn)在都被指定為低輸入有效。
第9章存儲(chǔ)元件與陣列245
下載
圖9-5 兩輸入或非門真值表
兩輸入都為1的條件可能導(dǎo)致一個(gè)不穩(wěn)定狀態(tài),使該器件震蕩。這種可能性依賴于信號(hào)通過(guò)門的延遲。
操作
不使用
置位
復(fù)位
保持
a) 邏輯圖解b) 功能表
圖9-7 兩輸入與非門真值表
9.2.2 D鎖存器
D型鎖存器只有單個(gè)作為輸入數(shù)據(jù)位碼的輸入D。它的特性在于,它具有鎖定D的值并追
蹤其任何變化的能力。構(gòu)造一個(gè)D鎖存器的簡(jiǎn)單方式如圖9 - 8所示。它采用了一個(gè)S R鎖存器,
而用D和
-D
替換其輸入。D的補(bǔ)是通過(guò)增加一個(gè)反相器得到的。D鎖存器的操作能夠用S R鎖存
器的功能表來(lái)理解。當(dāng)D = 0時(shí),到下方或非門的
-D
輸入為1。它強(qiáng)制輸出Q = 0,并被交叉耦
合的網(wǎng)絡(luò)所保持。如果D = 1,上方的或非門的輸出被強(qiáng)制為
-Q
= 0,也就是另一個(gè)穩(wěn)態(tài)。
圖9-8 基本的D 型鎖存器
9.3 時(shí)鐘與同步
在一個(gè)復(fù)雜的數(shù)字系統(tǒng)中,我們必須仔細(xì)地控制數(shù)據(jù)流,確保每一部分正確的信息在需
要時(shí)能夠得到。控制網(wǎng)絡(luò)中數(shù)據(jù)傳送最容易的方式,是通過(guò)一個(gè)預(yù)定義好的參考如時(shí)鐘信號(hào)
來(lái)同步系統(tǒng)的操作。盡管在第1章中已經(jīng)介紹了時(shí)鐘,下面快速地回顧一下它的基本原理。
時(shí)鐘是從0到1又返回0作周期性變化的控制信號(hào),如圖9 - 9所示。我們通常用符號(hào)?(t)或
者C L K標(biāo)注時(shí)鐘。它最重要的特性是每T秒重復(fù)一次,即眾所周知的周期。時(shí)鐘的頻率定義為
( 9 - 1 )
表示時(shí)鐘在1秒鐘內(nèi)重復(fù)的次數(shù)。頻率有精確的單位s-1,稱為H z(赫茨)。在計(jì)算機(jī)中,
對(duì)T最常用的度量是微秒(簡(jiǎn)作ms),有
1ms = 10-6s
或者納秒( n s),有
1ns = 10-9s
T = 1ms的頻率是
( 9 - 2 )
圖9-9 用于同步的時(shí)鐘信號(hào)
這里, M H z讀作兆赫茨,意思是每秒一百萬(wàn)個(gè)周期。在現(xiàn)代臺(tái)式計(jì)算機(jī)中,它是最通用的時(shí)
鐘單位。
246 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
a) 元件b) 操作c) 邏輯圖解
輸入輸出
t[秒]
例9 - 1
假定時(shí)鐘頻率為5 0 0 M H z,與之對(duì)應(yīng)的時(shí)鐘周期T通過(guò)倒數(shù)關(guān)系計(jì)算出來(lái)
( 9 - 3 )
這是許多現(xiàn)代系統(tǒng)典型的時(shí)間量級(jí)。
使用時(shí)鐘信號(hào)控制存儲(chǔ)元件的操作,使我們能夠指定把數(shù)據(jù)值存入該器件的時(shí)間。在數(shù)
據(jù)位碼可載入時(shí),產(chǎn)生的結(jié)果是存儲(chǔ)元件被該部分時(shí)鐘周期特性化。這涉及能以同步方式傳
送數(shù)據(jù)的非常復(fù)雜的數(shù)字網(wǎng)絡(luò)的設(shè)計(jì)。
9.3.1 時(shí)鐘S R鎖存器
時(shí)鐘S R鎖存器如圖9 - 1 0 a所示。與圖9 - 4相比較,時(shí)鐘信號(hào)?(t)分別同輸入R、S相與,使交
叉耦合的或非門電路的輸入有效值修改為
( 9 - 4 )
圖9-10 時(shí)鐘SR鎖存器
圖9-11 時(shí)鐘D型鎖存器
因?yàn)榛蚍情T鎖存器的保持條件是( 0,0),所以,當(dāng)? = 0時(shí),這種鎖存器自動(dòng)處于保持狀態(tài),
置位和復(fù)位操作僅當(dāng)? = 0時(shí)才能發(fā)生。這就定義了一個(gè)電平觸發(fā)的或者電平敏感的鎖存器,
在時(shí)鐘? = 1的任何時(shí)候,它允許輸入。時(shí)鐘S R鎖存器的符號(hào)如圖9 - 1 0 b所示。注意,它包含
了作為控制信號(hào)的時(shí)鐘?。
第9章存儲(chǔ)元件與陣列247
下載
a) 邏輯圖解b) 符號(hào)
a) 邏輯圖解b) 符號(hào)
按照這樣的處理,定義觸發(fā)器為任何鐘控存儲(chǔ)元件,那它也稱為觸發(fā)器。
9.3.2 時(shí)鐘D鎖存器
時(shí)鐘D鎖存器能以同樣的方式構(gòu)成,如圖9 - 11 a所示。再次,時(shí)鐘信號(hào)?和常規(guī)的輸入相與,
得到有效輸入為
D ' = D·? ( 9 - 5 )
這就構(gòu)成了一個(gè)電平敏感的鎖存器,其符號(hào)如圖9 - 11 b所示。如前面的時(shí)鐘S R鎖存器一樣,僅
當(dāng)? = 1時(shí),輸入能起作用。由于時(shí)鐘D鎖存器在此期間的這種行為,經(jīng)常把它稱作貫通的鎖
存器。時(shí)鐘條件? = 0保持輸出Q和
-Q
的值。
在使數(shù)據(jù)流同步通過(guò)一個(gè)復(fù)雜系統(tǒng)方面,時(shí)鐘鎖存器是有效的。它們也賦予名稱“鎖存
器”以更多的意義,因?yàn)楫?dāng)它們被時(shí)鐘信號(hào)激活時(shí),能夠形象化為“抓住”數(shù)據(jù)的電路。
9.4 主-從觸發(fā)器和邊沿觸發(fā)器
觸發(fā)器是時(shí)鐘控制的非貫通的鎖存器。這意味著該存儲(chǔ)元件當(dāng)前的輸出值Q與當(dāng)前的輸入
值A(chǔ)無(wú)關(guān)。它有幾種不同的變體,但是它們?nèi)季哂幸粋€(gè)特性:在較早的時(shí)候由時(shí)鐘電路確立
的輸出Q(t)被存儲(chǔ)起來(lái)。
主-從觸發(fā)器網(wǎng)絡(luò)的基本特征如圖9 - 1 2所示。
如此命名這種存儲(chǔ)元件,是由于它指定了兩個(gè)內(nèi)
部塊,代表兩個(gè)分離的鎖存電路。主鎖存器用于
接收輸入數(shù)據(jù)位碼A到觸發(fā)器。這個(gè)值被保存在
主觸發(fā)器里,在一定的時(shí)間后傳送到從鎖存器。
它們的輸入由時(shí)鐘信號(hào)?(t)同步。
圖9 - 1 3總結(jié)了主-從配置的操作。在圖9 - 1 3 a
中,主電路的輸入被激活, A值存儲(chǔ)在那里。在此期間,從鎖存器不活動(dòng)(也就是,處于保持
狀態(tài)),不能接受輸入。下一操作階段如圖9 - 1 3 b所示。在此期間,主鎖存器處于保持狀態(tài),而
從鎖存器激活。然后,A值被從鎖存器接受,該觸發(fā)器輸出端得到Q = A。因?yàn)榇藭r(shí)主鎖存器失
效,其輸出端繼續(xù)保持A值,即使輸入變化為B。在此期間,該觸發(fā)器是非貫通的。其重要的
特性是,輸出值Q(t)與當(dāng)前的輸入(B)無(wú)關(guān),而表示早些時(shí)候主鎖存器激活時(shí)的輸入值。
9.4.1 主-從D型觸發(fā)器
主-從D型觸發(fā)器(D F F)如圖9 - 1 4所示。這種存儲(chǔ)元件由層疊的兩個(gè)時(shí)鐘D型鎖存器構(gòu)成。
第一個(gè)鎖存器指定為主電路,負(fù)責(zé)得到輸入數(shù)據(jù)位D。第二個(gè)鎖存器作為從鎖存器,用來(lái)保持
它從主鎖存器接收的數(shù)據(jù)位碼的值。只要觀察到主從電路被反相的時(shí)鐘?(t)所控制,就很
容易理解D F F的操作。因?yàn)?
-?應(yīng)用到主觸發(fā)器,所以當(dāng)? = 0時(shí),主鎖存器接受輸入。另一方面,
從鎖存器使用?定時(shí),這樣當(dāng)? = 1時(shí),它允許輸入改變。
D F F操作的一個(gè)詳細(xì)例子如圖9 - 1 5所示。在圖9 - 1 5 a中,當(dāng)時(shí)鐘? = 0時(shí),主鎖存器激活,
輸入數(shù)據(jù)位碼D = 1被接受,并存儲(chǔ)在第一個(gè)鎖存器里。在此期間,從鎖存器處于保持狀態(tài),
以致于它的內(nèi)容在主鎖存器載入時(shí)不受影響。當(dāng)時(shí)鐘變化到? = 1時(shí),主鎖存器保持,它的輸
出饋入現(xiàn)已被時(shí)鐘激活的從鎖存器,如圖9 - 1 5 b所示。數(shù)據(jù)位碼A傳送到從鎖存器,輸出值為
Q= 1和
-Q
= 0。
248 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
圖9-12 主-從結(jié)構(gòu)
主從
圖9-13 主-從操作
圖9-14 D型觸發(fā)器電路
圖9-15 DFF操作細(xì)節(jié)
第9章存儲(chǔ)元件與陣列249
下載
a) 主鎖存器有效b) 從鎖存器有效
主
(有效)
從
(有效)
從主
主
主
主
從
從
從
a) 載入主鎖存器
b) 傳送到從鎖存器
圖9-16 主-從DFF時(shí)序圖解
現(xiàn)在,讓我們使用時(shí)序圖9 - 1 6來(lái)分析一下主-從D F F的操作。在圖9 - 1 6中,時(shí)鐘信號(hào)?(t)
提供同步信息,從而? = 0指明主鎖存器接受輸入D,而? = 1意味著D F F輸入失效,數(shù)據(jù)傳送
到從觸發(fā)器,可在輸出端Q(t)處得到。
上面描述的主-從D F F被設(shè)計(jì)為在? = 0的期間接受輸入D。當(dāng)時(shí)鐘從? = 0變化到? = 1的時(shí)
刻,傳送到從鎖存器電路的值(這里是輸出Q)就是主鎖存器中的值。因?yàn)檫@個(gè)理由,主-從
配置被劃分到邊沿敏感器件一類。這意味著,當(dāng)時(shí)鐘從一個(gè)值跳變到另一個(gè)值時(shí), Q值依賴于
主鎖存器中的內(nèi)容,對(duì)應(yīng)于時(shí)鐘波形的一個(gè)“邊沿”。
一種相關(guān)的存儲(chǔ)元件是邊沿觸發(fā)器。功能上,它似乎類似于邊沿敏感的設(shè)計(jì)。然而,僅
當(dāng)時(shí)鐘跳變時(shí),邊沿觸發(fā)器才允許載入輸入數(shù)據(jù)D。這不同于主-從電路,那里,主鎖存器在
半個(gè)時(shí)鐘周期內(nèi)是貫通的。按照我們的處理,我們不關(guān)心主-從電路和邊沿觸發(fā)電路之間的
內(nèi)部差別。取而代之,我們認(rèn)為任何觸發(fā)器就像一個(gè)多路選擇器一樣,能夠用來(lái)作為一個(gè)基
本的積木,我們僅僅分析該器件的總體特性。邊沿觸發(fā)D F F的符號(hào)如圖9 - 1 7 a所示,時(shí)鐘輸
入增加了一個(gè)特別的標(biāo)注,來(lái)指明一個(gè)正邊沿觸發(fā)行為,僅當(dāng)時(shí)鐘從? = 0跳變到? = 1 時(shí)輸
入被接受。
圖9-17 邊沿觸發(fā)DFF操作總結(jié)
圖9 - 1 7 b中的總結(jié)表描述了邊沿觸發(fā)D F F的操作,它表明輸出Q僅僅是輸入D延遲一個(gè)時(shí)鐘
周期后的值。該表中的標(biāo)注使用時(shí)間變量t表示“當(dāng)前”值,如D ( t ),這里t是時(shí)鐘上升邊沿的
250 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
[秒]
[秒]
[秒]
D觸發(fā)器
a) 符號(hào)b) 操作總結(jié)
時(shí)刻。另一方面,輸出寫作Q(t+T),這里T是時(shí)鐘周期。這意味著在下一個(gè)時(shí)鐘周期,也就
是在(t+T)時(shí),輸出變量Q的值。該邊沿觸發(fā)D F F由下面的方程所表征:
Q(t+T)=D(t) ( 9 - 6 )
它表明輸出值與上一時(shí)鐘周期的輸入相同。延遲是邊沿觸發(fā)D型觸發(fā)器重要的一個(gè)方面,因?yàn)?
它允許我們存儲(chǔ)當(dāng)前值,以在下一時(shí)鐘周期使用。
對(duì)于數(shù)字設(shè)計(jì)中的許多應(yīng)用,邊沿觸發(fā)D F F的延遲特性是足夠的。然而,一些系統(tǒng)要求
我們具有保持一個(gè)數(shù)據(jù)位碼幾個(gè)時(shí)鐘周期的能力。為了構(gòu)建一個(gè)提供這種功能的電路,我們
必須把輸出Q傳送回輸入D,然后用相同的值“重新載入”觸發(fā)器。實(shí)現(xiàn)它的一個(gè)簡(jiǎn)單方式
是,使用如圖9 - 1 8所示的2選1多路選擇器。在這個(gè)方案中,載入信號(hào)L D控制輸入,從而通
過(guò)把輸出傳送回輸入, L D = 0 保持當(dāng)前值。如果L D = 1,那么新的d值傳送到D F F存儲(chǔ)單元。
另一個(gè)時(shí)常有用的特征是觸發(fā)器復(fù)位的能力,也就是強(qiáng)制Q為0。這個(gè)能力可以通過(guò)增加
如圖9 - 1 9所示的與門來(lái)提供。在此種情形,控制信號(hào)是—R E S E T,這樣
R E S E T = 0:使輸入D = d,
而
R E S E T = 1:強(qiáng)制輸入D = 0。
這里,在時(shí)鐘跳變時(shí), R E S E T的值起作用,如果想要修改邏輯,這個(gè)特征也能與載入操作相
組合。
圖9-18 帶數(shù)據(jù)載入控制的DFF 圖9-19 帶復(fù)位能力的DFF
D型存儲(chǔ)元件的V H D L描述
對(duì)于一般的邏輯設(shè)計(jì), D型鎖存器與D型觸發(fā)器是有用的。V H D L描述引入了新的思想,
值得詳細(xì)解說(shuō)。
首先考慮如圖9 - 2 0所示的電平觸發(fā)D鎖存器。時(shí)鐘輸入用c l k表示,完全不同于?。為描述
該鎖存器的操作,我們首先必須注意到c l k的值控制著這個(gè)元
件的行為。當(dāng)c l k = 0時(shí),鎖存器不允許改變Q的狀態(tài),僅當(dāng)c l k
= 1時(shí),才可以改變存儲(chǔ)位碼的值。下面的描述引入了V H D L進(jìn)
程的思想。V H D L進(jìn)程是一種允許包含定時(shí)關(guān)系的結(jié)構(gòu)。
- - D鎖存器的V H D L描述
- -結(jié)構(gòu)體包含進(jìn)程語(yǔ)句
第9章存儲(chǔ)元件與陣列251
下載
輸入
輸出
輸入
D觸發(fā)器
圖9-20 b型負(fù)存器
D鎖存器
關(guān)鍵字p r o c e s s指明一組順序語(yǔ)句的開(kāi)始,它意味著命令以它們排列的順序依次執(zhí)行。這個(gè)進(jìn)
程由下面的序列描述,
該序列按照它的理解準(zhǔn)確地執(zhí)行。換句話說(shuō),時(shí)鐘值c l k =‘1’使得D傳送到輸出Q。
邊沿觸發(fā)器件要稍微復(fù)雜一些,因?yàn)槲覀儽仨殞懸粋€(gè)說(shuō)明c l k值變化的進(jìn)程。考慮圖9 - 2 1
所示的正邊沿觸發(fā)的D F F模塊。在V H D L中,描述信號(hào)變化的一個(gè)方式是使用‘ e v e n t指令。
語(yǔ)句
解釋為一個(gè)布爾對(duì)象,其值為真或假。若c l k‘e v e n t為真,意味著信號(hào)c l k值已經(jīng)改變,若c l k
沒(méi)有改變,那么它返回假。為了描述正時(shí)鐘邊沿,它寫作
因?yàn)閏 l k正在改變且c l k的值目前為1,它的計(jì)算結(jié)果為真。記住這樣一點(diǎn), D F F能夠由下面的
程序清單描述。
圖9-21 邊沿觸發(fā)DFF模塊
- -邊沿觸發(fā)D F F的V H D L描述
- -結(jié)構(gòu)體包含進(jìn)程語(yǔ)句
252 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
如果我們希望描述負(fù)邊沿觸發(fā)器,那么我們只須改變進(jìn)程命令來(lái)反映時(shí)鐘最終的值c l k = 0。
- - D F F的V H D L描述
- -結(jié)構(gòu)體包含進(jìn)程語(yǔ)句
本章中所有其他時(shí)鐘敏感元件的V H D L描述都能夠使用該進(jìn)程結(jié)構(gòu)建立。
9.4.2 其他類型的觸發(fā)器
其他的幾種觸發(fā)器能夠使用基本邏輯門構(gòu)成。每一種由一組獨(dú)特的、對(duì)設(shè)計(jì)者有用的并
依賴于系統(tǒng)規(guī)范的特性所定義。我們將僅僅關(guān)注在時(shí)鐘邊沿接受輸入的邊沿觸發(fā)器。
圖9-22 SR觸發(fā)器特性
S R觸發(fā)器
S R觸發(fā)器有著和D F F同樣的基本結(jié)構(gòu),而由S R鎖存器取代D F F的輸入電路。它有兩個(gè)獨(dú)
立的輸入S和R,由S = 0 = R定義它的保持狀態(tài)。在S R鎖存器的操作中, S和R同時(shí)為1的狀態(tài)
禁用,記住這一點(diǎn)是重要的,以便在S R觸發(fā)器中排除這種情況。邊沿觸發(fā)SR FF的符號(hào)如圖9 -
2 2 a所示,圖9 - 2 2 b是相應(yīng)的操作表。它能夠概述為
( 9 - 7 )
注意到,輸入S ( t )和R ( t )皆等于1的情形沒(méi)有定義。這是由于電路中使用了基本S R鎖存器。
第9章存儲(chǔ)元件與陣列253
下載
操作
保持
置位
復(fù)位
不使用
a) 符號(hào)b) 操作總結(jié)
J K觸發(fā)器
J K觸發(fā)器修改了SR FF 的電路,以使兩輸入同時(shí)跳變?yōu)?的情形引起切換操作
( 9 - 8 )
這意味著,若Q, - Q = R ( t ),那么該切換改變它們到(Q, - Q)=(0, 1 )。這個(gè)電路中的輸入與S R
觸發(fā)器是相同的,但它們有著并不相同的外部操作。圖9 - 2 3總結(jié)了這些特性。J K觸發(fā)器在以
往基于S S I集成電路的硬件設(shè)計(jì)中占據(jù)支配地位,目前在某些系統(tǒng)中,它仍然是常用的器件。
圖9-23 JK觸發(fā)器的特性
T觸發(fā)器
切換觸發(fā)器是有一個(gè)輸入T的電路,在圖9 - 2 4的邏輯符號(hào)中指明。T F F的操作恰如它的名
字所暗示:無(wú)論什么時(shí)候, T從0變化到1,輸出就切換。這是一個(gè)相當(dāng)特殊的器件,它沒(méi)有上
面所討論的觸發(fā)器的多面性,但仍然很實(shí)用。
圖9-24 T觸發(fā)器的特性
9.5 寄存器
寄存器是一個(gè)用來(lái)存儲(chǔ)nb i t二進(jìn)制字的邏輯元件。幾乎每一大型的數(shù)字系統(tǒng)都采用寄存器
來(lái)保持重要的數(shù)據(jù),所以有必要對(duì)它進(jìn)行詳細(xì)地研究。它可以構(gòu)造出幾種變體,它們?cè)跀?shù)字
系統(tǒng)設(shè)計(jì)中各有其應(yīng)用范圍。
9.5.1 基本存儲(chǔ)寄存器
我們可以并行方式簡(jiǎn)單地使用n個(gè)1 b i t存儲(chǔ)單元,構(gòu)成一個(gè)允許對(duì)全部單元同時(shí)讀或者寫
的寄存器。通常為了方便,以系統(tǒng)規(guī)范要求的字長(zhǎng)大小來(lái)構(gòu)成寄存器。
我們來(lái)測(cè)試一個(gè)8位寄存器,它能夠存儲(chǔ)一個(gè)字節(jié)的數(shù)據(jù)。為了建立這個(gè)寄存器,我們使
用如圖9 - 2 5 a所示的獨(dú)立存儲(chǔ)單元來(lái)構(gòu)成圖9 - 2 5 b所示的電路。注意,我們選擇了邊沿觸發(fā)存儲(chǔ)
元件作為基本的單元。為了簡(jiǎn)單起見(jiàn),我們僅僅指出了輸入、輸出和時(shí)鐘端口。元件可能需
要的其他控制線,如載入( L D)信號(hào),沒(méi)有明確地表示出來(lái)。盡管每一位可以單獨(dú)存取,該
寄存器作為所定義的一組,用于保持一個(gè)8 b i t的字,因此所有單元的讀出或者寫入操作同時(shí)執(zhí)
254 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
a) 符號(hào)b) 操作總結(jié)
a) 符號(hào)b) 操作總結(jié)
操作
保持
置位
復(fù)位
轉(zhuǎn)換
行。既然一直使用邊沿觸發(fā)存儲(chǔ)單元,那么僅在時(shí)鐘跳變時(shí)執(zhí)行寫入操作。一個(gè)簡(jiǎn)化的記號(hào)
如圖9 - 2 6 a所示,這些單元簡(jiǎn)單地組合在一起,呈現(xiàn)為一個(gè)獨(dú)立的單位。在圖9 - 2 6 b中,我們把
寄存器表示為帶8 b i t輸入輸出線和單個(gè)時(shí)鐘控制的單一實(shí)體。在許多應(yīng)用中,它理解為,寄存
器根據(jù)時(shí)鐘信號(hào)?(和任何其他條件)載入,即使它在圖中被忽略掉。
圖9-25 由獨(dú)立的存儲(chǔ)元件創(chuàng)建的寄存器
圖9-26 用于表示8位寄存器的符號(hào)
這種類型的通用寄存器在計(jì)算機(jī)設(shè)計(jì)中被廣泛地使用,在第11章計(jì)算機(jī)系統(tǒng)環(huán)境下,我
們將詳細(xì)地討論它。此處要記住的重要概念是,寄存器保持nb i t字作為一組,它自身能夠當(dāng)作
一個(gè)單獨(dú)的由更小的單元所組成的數(shù)字元件來(lái)看待。
9.5.2 移位寄存器
移位寄存器被設(shè)計(jì)用于在時(shí)鐘脈沖作用下傳送它的位碼到相鄰單元。為了說(shuō)明移位寄存
器的一般性質(zhì),讓我們重復(fù)圖9 - 2 7 a中的存儲(chǔ)單元,建立如圖9 - 2 7 b所示的串行鏈,在那里,每
個(gè)單元的輸出作為它右邊相鄰單元的輸入。總之,該電路有單個(gè)輸入位D和單個(gè)輸出位Q,組
成了一個(gè)8位移位寄存器。既然所有的單元由同一個(gè)時(shí)鐘信號(hào)?控制,因此它們同時(shí)載入。
圖9-27 基本移位寄存器結(jié)構(gòu)
圖9-28 移位寄存器的簡(jiǎn)化符號(hào)
使用圖9 - 2 8所示的簡(jiǎn)化符號(hào),很容易理解移位寄存器的操作。這種示意圖使我們可以形
第9章存儲(chǔ)元件與陣列255
下載
輸入字
輸出字
輸入
輸出
a) 單個(gè)單元b) 8位寄存器
輸入
輸出
a) 獨(dú)立單元b) 單個(gè)寄存器
a) 單個(gè)單元b) 串行載入移位寄存器
象地分析該單元的內(nèi)容,跟蹤數(shù)據(jù)在結(jié)構(gòu)中的傳送。即使沒(méi)有明確地表示時(shí)鐘?,仍然如初始
電路一樣,設(shè)定輸入同步。
假設(shè)我們想要以比特序列
D0= 1,而
D1= 1,而
D2= 0,而
D3= 0,
等等載入寄存器,就如圖9 - 2 9 a所示的移位寄存器的輸入“ 0 , 1 , 0 , 1 , 0 , 0 , 1 , 1”。當(dāng)我們使用這種
記號(hào)表示串行輸入時(shí),意味著右邊的位碼是將要進(jìn)入部件或系統(tǒng)的下一位。因?yàn)樵诩拇嫫髦?
有8個(gè)單元,載入整個(gè)寄存器將花費(fèi)8個(gè)時(shí)鐘周期。根據(jù)圖9 - 2 9 b中的時(shí)鐘圖解,就在時(shí)間7T之
后,正如前面所言,可得到第一個(gè)輸入位D0= 1的輸出。
圖9 - 3 0提供的序列明確地表示出位碼通過(guò)移位寄存器的進(jìn)程。左邊指出的時(shí)間隱含寄存
器在下一個(gè)載入事件發(fā)生之前的內(nèi)容(因?yàn)閱卧烧龝r(shí)鐘邊沿觸發(fā))。數(shù)據(jù)傳送筆直向前流動(dòng),
在第一個(gè)正時(shí)鐘跳變時(shí),單元d7裝入T時(shí)刻
的D0= 1。下一個(gè)正時(shí)鐘邊沿使D0= 1移到下一
個(gè)單元d6,同時(shí)接受D1= 1進(jìn)入單元d7。每個(gè)
子序列在正時(shí)鐘跳變時(shí)接受下一位,使每一
個(gè)存儲(chǔ)位碼傳送到右邊的單元。在7T之后,
該字的末位裝入單元d7,首位D0= 1在移位寄
存器的輸出端得到。因?yàn)閐0位先載入且先出
來(lái),所以它稱作F I F O(先進(jìn)先出)電路。
對(duì)于某些類型的存儲(chǔ)應(yīng)用, F I F O極其有用。
圖9-30 數(shù)據(jù)在移位寄存器內(nèi)傳送
256 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
F I F O按照音節(jié)讀作f i - f o。
a) 內(nèi)容清除
輸入序列
b) 時(shí)鐘周期
圖9-29 串行數(shù)據(jù)輸入移位寄存器
時(shí)刻輸入隊(duì)列
并行載入的移位寄存器允許用戶在一個(gè)時(shí)鐘跳變存儲(chǔ)整個(gè)字,如圖9 - 3 1所示。這個(gè)特定
的寄存器有兩種移位操作,分別由信號(hào)S H R(右移)和S H L(左移)控制。兩者的作用如圖9 -
3 2所示。在圖9 - 3 2 a中,寄存器的初始內(nèi)容是字1 0 1 0 11 0 0(從左讀到右)。通過(guò)設(shè)置SHR = 1啟
動(dòng)移位寄存器操作,每一位碼向右移動(dòng)一個(gè)位置(圖9 - 3 2 b)。注意,最左邊的位碼(以斜體
表示)自動(dòng)強(qiáng)制為0。圖9 - 3 2 c表明,通過(guò)設(shè)置
控制位SHL = 1可實(shí)現(xiàn)左移操作。每一位碼向
左移動(dòng)一個(gè)位置,與右移操作恰恰相反。在這
種情形下,最右邊的位碼被強(qiáng)制為0。
在一個(gè)復(fù)雜的數(shù)據(jù)傳送系統(tǒng)中使用移位寄
存器時(shí),一般建立允許移動(dòng)多位的電路。在
這種情形下,內(nèi)容右移n個(gè)單元,命令寫作如
下形式
SHR n
而
SHL m
表明內(nèi)容左移m個(gè)位置的操作。
圖9-32 移位操作總結(jié)
移位操作的一個(gè)直接應(yīng)用是執(zhí)行二進(jìn)制碼字的冪2乘除法。要理解它,讓我們先看看二進(jìn)
制字
N = 000111 0 0
它的十進(jìn)制數(shù)值是2 8。我們執(zhí)行一個(gè)SHL 1操作,結(jié)果為
NL 1 = 00111 0 0 0
它是十進(jìn)制數(shù)5 6,也就是NL1 = 2N。以最初的字開(kāi)始,調(diào)用SHL 2操作,得到
第9章存儲(chǔ)元件與陣列257
下載
a) 初始條件
b) 在右移操作之后
c) 在左移操作之后
輸入
輸出
(載入)
圖9-31 有并行載入功能的移位寄存器
NL2 = 0111 0 0 0 0
它等于11 21 0,于是NL2= 22N。因此,一般地,操作SHL n等價(jià)于寄存器的內(nèi)容乘上2n
右移操作SHR m實(shí)現(xiàn)相反的效果。例如,若首先有
N = 000111 0 0
那么,SHR 1和SHR 2 操作得出
NR1 = 0000111 0
NR2 = 00000111
容易驗(yàn)證,
NR1 = N/ 2
NR 2 = N/22
對(duì)應(yīng)于十進(jìn)制數(shù)NR1= 1 4,NR2= 7。這表明SHR m能夠使寄存器的內(nèi)容與2m相除。
寄存器不僅有移位操作,還可以有循環(huán)操
作R O R(右循環(huán))和R O L(左循環(huán))的能力。
循環(huán)不丟失位碼,它移出寄存器但傳送到另一
邊,除此之外,它們與相應(yīng)的移位操作完全一
樣。圖9 - 3 3總結(jié)了這兩種操作的結(jié)果。在圖9 -
3 3 a中,顯示內(nèi)容1 0 1 0 11 0 0。通過(guò)設(shè)置控制位
ROR = 1,啟動(dòng)循環(huán)右移操作。它使每一位碼
向右移動(dòng)一個(gè)位置。最右邊的位碼被傳送到寄
存器的左邊。圖9 - 3 3 b顯示了通過(guò)置位ROL = 1
引起的循環(huán)左移操作。在這種情形下,每一位
碼向左移動(dòng)一個(gè)位置,左邊單元的內(nèi)容(最初
為1)傳送到最右邊的位置。對(duì)于移位操作,
通過(guò)改變組成寄存器的存儲(chǔ)單元的接線,構(gòu)建
一個(gè)允許多循環(huán)
ROR n和ROL m
的寄存器是可能的。
移位和循環(huán)操作對(duì)于許多種類的數(shù)字信號(hào)處理相當(dāng)重要,它們作為基本的操作包含在所
有的計(jì)算機(jī)里。在第11章計(jì)算機(jī)體系結(jié)構(gòu)的語(yǔ)境里,我們?cè)僭敿?xì)地討論它們。
9.6 隨機(jī)存取存儲(chǔ)器
隨機(jī)存取存儲(chǔ)器是適用于通用讀/寫存儲(chǔ)單元的大型陣列的術(shù)語(yǔ)。R A M通常作為臺(tái)式計(jì)算
機(jī)設(shè)備中的主系統(tǒng)存儲(chǔ)器,它提供存儲(chǔ)所有重要數(shù)據(jù)的能力,這些數(shù)據(jù)是計(jì)算機(jī)運(yùn)行程序和
操作系統(tǒng)所必需的。
9.6.1 靜態(tài)R A M單元
靜態(tài)存儲(chǔ)器能夠保持所存儲(chǔ)的數(shù)據(jù)位碼,只要電源連接到該電子線路。
258 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
它僅僅精確地作用于十進(jìn)制偶數(shù)。
a) 初始條件
b) 在右循環(huán)操作之后
c) 在左循環(huán)操作之后
圖9-33 循環(huán)操作
如圖9 - 3 4 a所示, S R A M 是基于兩個(gè)級(jí)聯(lián)的反相器所組成的閉環(huán)特性。它是一個(gè)雙穩(wěn)態(tài)
電路,A = 0或者A = 1皆能在環(huán)中保持。盡管乍一看它可能很陌生,但是它的操作等價(jià)于S R鎖
存器。重畫該電路如圖9 - 3 4 b所示,使反相器交叉耦合,可以看出這一點(diǎn)。與圖9 - 4中兩輸入
或非門鎖存器相比較,我們看到,除單輸入非門用于邏輯之外,結(jié)構(gòu)是相同的。
圖9-34 交叉耦合反相器形成雙穩(wěn)態(tài)電路
通過(guò)嵌入交叉耦合的反相器到一個(gè)與反
相器環(huán)相連的較大的網(wǎng)絡(luò),就構(gòu)成一個(gè)存儲(chǔ)
一位數(shù)據(jù)的靜態(tài)R A M單元。圖9 - 3 5表示一個(gè)
S R A M單元,它增加了兩個(gè)由字線上的信號(hào)
W L控制的存取開(kāi)關(guān)( S w)。這些開(kāi)關(guān)由邏輯
控制, W L = 0使開(kāi)關(guān)斷開(kāi),而W L = 1閉合它
們。當(dāng)W L = 0時(shí),存儲(chǔ)單元與外部影響隔離,
保存數(shù)據(jù)位碼。若W L = 1,兩個(gè)開(kāi)關(guān)都閉合,
單元對(duì)應(yīng)的兩邊分別與位線( D)和位線(
-D
)
連接。這就允許對(duì)單元進(jìn)行寫或者讀。總之,
? W L = 0保存狀態(tài),而
? W L = 1允許進(jìn)行讀寫操作。
當(dāng)附加電路判定W L = 1時(shí),執(zhí)行實(shí)際的操作。
9.6.2 SRAM陣列
通常制造出S R A M,是為了可以輕易地存儲(chǔ)nb i t二進(jìn)制字,而不是單獨(dú)的一位。這是一個(gè)
實(shí)用的考慮,起因于這樣的事實(shí):大多數(shù)應(yīng)用的建立是如此設(shè)想的。一個(gè)m×nS R A M陣列由
m行、每行包含n個(gè)單元所組成。
讓我們分析怎樣才能構(gòu)造一個(gè)很簡(jiǎn)單的存儲(chǔ)8個(gè)字,每個(gè)字長(zhǎng)8位的存儲(chǔ)器,也就是說(shuō),
一個(gè)8×8陣列。首先,考慮一個(gè)8比特字的存儲(chǔ)。它需要8個(gè)單元,每比特一個(gè),如圖9 - 3 6所
示。我們已經(jīng)為字線使用了簡(jiǎn)化的標(biāo)注,但它的意義仍然一樣: W L = 0隔離單元,而W L = 1
提供存取,允許進(jìn)行寫或者讀操作。為了保存8個(gè)字,我們?cè)贅?gòu)造七個(gè)相同的電路,把它們堆
疊起來(lái),如圖9 - 3 7所示。為了選定所要求的行(字),我們包含一個(gè)3 / 8高電平有效的行譯碼器
電路,該譯碼器的輸入是一個(gè)稱為地址的3位二進(jìn)制字
A2A1A0
因?yàn)樗该髁舜鎯?chǔ)器中特定字的位置。陣列的下方提供了接口電路,它們提供寫入或者
第9章存儲(chǔ)元件與陣列259
下載
S R A M讀作S- ram 。
a) 基本電路b) 重畫
圖9-35 SRAM單元設(shè)計(jì)
位線
存儲(chǔ)單元
位線
字線
讀出陣列的每一行所必需的電路。E n a b l e是一個(gè)高電平有效的激活陣列的控制信號(hào), R/W決定
是否進(jìn)行讀(R /W = 1),或者寫(R/W = 0)。讀/寫控制信號(hào)R/W僅當(dāng)E n a b l e = 1時(shí)有效。
圖9-36 8位存儲(chǔ)陣列
圖9-37 8×8RAM陣列
讓我們研究圖9 - 3 8 a所示簡(jiǎn)化的讀操作,來(lái)闡明該陣列的操作。多數(shù)連線已經(jīng)被組合在一
起,以便我們能夠?qū)W⒂跀?shù)據(jù)傳送,而不被太多的細(xì)節(jié)轉(zhuǎn)移目標(biāo)。該圖顯示了每一行的內(nèi)
容;圖9 - 3 8 b總結(jié)了輸入地址如何激活一個(gè)特定的工作線,該線反過(guò)來(lái)允許數(shù)據(jù)行被讀出來(lái)。
260 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
讀寫操作接口電路
例如,如果地址是1 0 0,那么選定線4,結(jié)果是輸出0 1 0 1 0 1 0 1。
圖9-38 RAM陣列中的讀操作
圖9-39 64×8SRAM器件的方框圖
第9章存儲(chǔ)元件與陣列261
下載
輸出
輸出
行
地址
a) 簡(jiǎn)化網(wǎng)絡(luò)
b) 功能表
地址內(nèi)容
可能
地址
可能
讀/寫
數(shù)據(jù)
a) 內(nèi)部組織b) 符號(hào)
簡(jiǎn)化的操作圖解和符號(hào)提供了一個(gè)簡(jiǎn)明的方式,以這種方式,一個(gè)復(fù)雜的數(shù)字單元的重
要特性能夠明顯地表示出來(lái),而不使邏輯圖解散亂。它們等效于在分級(jí)結(jié)構(gòu)中更高層次上觀
察該單元,對(duì)于描述一個(gè)復(fù)雜系統(tǒng)如計(jì)算機(jī)很有用處。要?jiǎng)?chuàng)建一個(gè)符號(hào),我們必須定義它所
有相對(duì)于“外部世界”重要的特性。盡管內(nèi)部電路本身可能有令人感興趣之處,但是大部分
與用戶無(wú)關(guān)。
考慮一個(gè)S R A M陣列。在用戶層次,它是一個(gè)器件,允許我們對(duì)二進(jìn)制字執(zhí)行寫、保持
和讀操作。該陣列的容量告訴我們它能夠存儲(chǔ)多少字,尋址方案提供一種方式,使我們能夠
明了每一個(gè)字定位于該陣列的哪一個(gè)位置。圖9 - 3 9 a中的方框圖總結(jié)了一個(gè)容納6 4個(gè)8比特字
的器件的性質(zhì)。進(jìn)出這個(gè)存儲(chǔ)設(shè)備的數(shù)據(jù)作為8比特字
b7b6b5b4b3b2b1b0
傳送。地址給出每一個(gè)字的位置,由選擇一個(gè)存儲(chǔ)位置的6位字
A5A4A3A2A1A0
表明。如果Enable =1 激活了該設(shè)備,那么讀寫操作由R/W控制選定。在這個(gè)層次, R A M的內(nèi)
部結(jié)構(gòu)被描繪為一組存儲(chǔ)位置,每個(gè)存儲(chǔ)位置有唯一的地址。這就使我們可以闡明它的內(nèi)容。
一個(gè)更精簡(jiǎn)的符號(hào)如圖9 - 3 9 b所示。該設(shè)備的操作在各個(gè)方面都一樣,但是內(nèi)部細(xì)節(jié)沒(méi)有表示
出來(lái)。這使它更易于在設(shè)計(jì)分級(jí)結(jié)構(gòu)的系統(tǒng)級(jí)中使用。
9.6.3 動(dòng)態(tài)R A M
動(dòng)態(tài)存儲(chǔ)器( D R A M)陣列和S R A M陣列相似,因?yàn)樗鼈兌荚试S我們使用單元尋址的概
念存儲(chǔ)數(shù)據(jù)。兩者不同之處在于自身單元的內(nèi)部設(shè)計(jì)。動(dòng)態(tài)R A M單元要簡(jiǎn)單得多,在硅片上
只需要更少的面積。這使D R A M的存儲(chǔ)密度比S R A M要高得多,每一位的成本要低得多。因
為較低的價(jià)格,在需要大型存儲(chǔ)陣列,成本重要的任何時(shí)候,通常使用D R A M。D R A M最大
的應(yīng)用是作為臺(tái)式計(jì)算機(jī)的主系統(tǒng)存儲(chǔ)。使用“動(dòng)態(tài)”存儲(chǔ)的一個(gè)障礙是, D R A M比較簡(jiǎn)單
的單元設(shè)計(jì)導(dǎo)致電路顯著變慢;讀寫時(shí)間都增加,這就限定了它們?nèi)绾尾拍茉诖笮拖到y(tǒng)中用
來(lái)存儲(chǔ)數(shù)據(jù)。
MOS DRAM的細(xì)節(jié)和操作在9 . 9 . 2節(jié)敘述,在那里我們將看到,位存儲(chǔ)技術(shù)的物理學(xué)即使
得D R A M密度高,又解釋了為什么它們被稱為“動(dòng)態(tài)的”。
9.6.4 奇偶和錯(cuò)誤檢驗(yàn)碼
可靠的數(shù)據(jù)存儲(chǔ)是所有數(shù)字系統(tǒng)的關(guān)鍵。即使單個(gè)的錯(cuò)誤位碼就能導(dǎo)致整個(gè)程序崩潰,
或者數(shù)據(jù)庫(kù)文件無(wú)用,所以提供一些技術(shù),能夠檢測(cè)錯(cuò)誤的存在,以及在某些情況下能夠修
正那些錯(cuò)誤,是非常重要的。對(duì)檢錯(cuò)碼( E D C)和糾錯(cuò)碼( E C C)的詳細(xì)研究超出了本書的
范圍,但是它們的原理基于一些相當(dāng)簡(jiǎn)單的概念,在這里予以介紹。
首先,讓我們分析這樣一個(gè)問(wèn)題,我們要確保從一個(gè)存儲(chǔ)位置讀出的數(shù)據(jù)字節(jié)與寫入
的數(shù)據(jù)字節(jié)相同。這將要求我們?cè)诖鎯?chǔ)數(shù)據(jù)字節(jié)之前記錄一些有關(guān)它的信息,然后在讀出
該數(shù)據(jù)字節(jié)之時(shí)使用這些信息來(lái)檢查它。實(shí)現(xiàn)這個(gè)的一個(gè)簡(jiǎn)單方式是,引入奇偶位P的概
念。
假設(shè)最初數(shù)據(jù)字節(jié)寫作
B=b7b6b5b4b3b2b1b0 ( 9 - 9 )
262 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
因?yàn)槊總€(gè)bn非1即0,我們能夠計(jì)算該字中1的個(gè)數(shù),用此定義一個(gè)奇偶位P,讓它記錄在包含
奇偶位P的組合字節(jié)中1的個(gè)數(shù)為偶還是為奇。若我們選擇偶校驗(yàn)方案,那么奇偶位Pe v e n有如此
特性,
選擇Pe v e n,使(B +Pe v e n)有偶數(shù)個(gè)1。
例如,若B1= 0 11 0 11 0 1,則Pe v e n= 1,因?yàn)锽1包含5個(gè)1,這種選擇使之具有偶數(shù)個(gè)1。反之,
字節(jié)B2= 1111 0 0 0 0要求Pe v e n = 0,因?yàn)锽2已經(jīng)有偶數(shù)(4)個(gè)1。奇校驗(yàn)恰恰相反。在這種情況下,
我們引入奇校驗(yàn)位Po d d,這樣
(B +Po d d)有奇數(shù)個(gè)1。
對(duì)于B10 11 0 11 0 1,將要求Po d d = 0,類似地,若B2= 1111 0 0 0 0,則將有Po d d = 1。
圖9-40 奇偶校驗(yàn)生成電路
一種生成奇偶位的容易的方式是使用如圖9 - 4 0所示的異或操作。回憶一下,異或門實(shí)現(xiàn)
了奇功能。在這個(gè)邏輯圖解里,我們已經(jīng)定義了輸出為
P = b7?b6?b5?b4?b3?b2?b1?b0 ( 9 - 1 0 )
所以,該字中如果有奇數(shù)個(gè)1,那么P = 1,如果有偶數(shù)個(gè)1,那么P = 0。所以這樣選擇
P = Pe v e n ( 9 - 11 )
因?yàn)樵撟止?jié)加上P中1的全部數(shù)量有偶校驗(yàn)所要求的特性。如果我們使用異或非門代之,那么
輸出將是奇校驗(yàn)位。
為了應(yīng)用奇偶性的概念到檢錯(cuò)問(wèn)題,假設(shè)我們存儲(chǔ)最初的數(shù)據(jù)字節(jié)以及奇偶位如圖9 - 4 1 a
所示。由上面的討論, P的選擇代表偶校驗(yàn)。注意,這個(gè)方案要求存儲(chǔ)位置寬度為( 8 + 1)= 9
位,以適應(yīng)附加位。奇偶位P提供原始數(shù)據(jù)的信息。當(dāng)字節(jié)讀出存儲(chǔ)器時(shí),如圖9 - 4 1 b所示,
我們獲得數(shù)據(jù)段
( 9 - 1 2 )
它被用來(lái)計(jì)算新的奇偶位Pc,為
( 9 - 1 3 )
接下來(lái),使用異或功能比較存儲(chǔ)的奇偶值P和Pc,產(chǎn)生檢驗(yàn)位C。若P = Pc,則存儲(chǔ)的奇偶
值與計(jì)算的奇偶值相等, C = 0 。然而,若P≠Pc,那么兩個(gè)奇偶位不同, C = 1 ,指示兩
者有差異。這樣, C = 1 表明錯(cuò)誤已經(jīng)發(fā)生,所以不是數(shù)據(jù)字節(jié)就是存儲(chǔ)的奇偶位不正確。
檢驗(yàn)位C通常放置在一個(gè)特別的稱為標(biāo)志的存儲(chǔ)單元里,當(dāng)C = 1 時(shí),我們說(shuō)標(biāo)志被置位,
一個(gè)錯(cuò)誤已經(jīng)被檢測(cè)到。檢驗(yàn)位C = 0 不保證無(wú)錯(cuò)誤發(fā)生,它僅僅意味該電路沒(méi)有檢出錯(cuò)
誤。
第9章存儲(chǔ)元件與陣列263
下載
(輸入奇數(shù)個(gè)1)
(輸入偶數(shù)個(gè)1)
輸入字
圖9-41 錯(cuò)誤檢測(cè)電路
9.7 只讀存儲(chǔ)器
只讀存儲(chǔ)器是用作永久數(shù)據(jù)存儲(chǔ)的存儲(chǔ)陣列。信息由R O M的生產(chǎn)者或者系統(tǒng)程序員存儲(chǔ)。
用戶依賴于特殊的設(shè)備具有有限的編程能力(或者根本沒(méi)有)。R O M提供非易失性的存儲(chǔ),這
意味即使切斷電源連接,數(shù)據(jù)仍然保持在該存儲(chǔ)器中。非易失性的存儲(chǔ)設(shè)備是許多系統(tǒng)應(yīng)用的
關(guān)鍵。例如,每一臺(tái)個(gè)人計(jì)算機(jī)有一個(gè)R O M ,加電時(shí)提供啟動(dòng)系統(tǒng)軟件所必需的二進(jìn)制碼。
圖9 - 4 2 a中的符號(hào)顯示了一個(gè)小容量R O M的重要特性。整體上,它在操作方面與R A M很
類似。先指明地址,然后使芯片操作執(zhí)行讀,導(dǎo)致數(shù)據(jù)輸出。圖9 - 4 2 b所示的內(nèi)部模型提供了
這種設(shè)備必需的細(xì)節(jié)。被存儲(chǔ)的數(shù)據(jù)字作為所指明的地址位置的位組被查看。該地址字為:
A5A4A3A2A1A0
圖9-42 ROM的符號(hào)和用戶模型
264 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
存儲(chǔ)字
輸出字
a) 寫操作
b) 讀操作
它稱為B I O S,表示基本輸入輸出系統(tǒng)。
地址
使能
數(shù)據(jù)輸出
a) 符號(hào)b) 內(nèi)部組織
存儲(chǔ)
數(shù)據(jù)
使能
被送到一個(gè)行譯碼器,然后通過(guò)置位合適的字線為高來(lái)激活該字的存儲(chǔ)位置。該數(shù)據(jù)字送到
由E n a b l e控制激活的輸出電路,使得該數(shù)據(jù)字為:
b7b6b5b4b3b2b1b0
輸出R O M。這種設(shè)備不支持寫操作,這是只讀存儲(chǔ)器顯著的特征。
9.8 CD ROM
緊湊圓盤( C D)R O M是一個(gè)復(fù)雜數(shù)字系統(tǒng)的有趣范例,它結(jié)合了電子學(xué)和光學(xué),提供高
密度存儲(chǔ)介質(zhì)。CD ROM的基本格式和操作基于C D音頻標(biāo)準(zhǔn),但是比那些用來(lái)再現(xiàn)聲音的
C D有著更迫切的市場(chǎng)需求。
CD ROM是一個(gè)由潔凈的、一面鑄造成小缺口的多碳酸塑料組成的圓形盤片。其上涂有
一層鋁金屬,然后覆蓋另外一層塑料,再把標(biāo)簽印在最上層。如圖9 - 4 3所示,C D的頂面有標(biāo)
簽,而潔凈的底面有存儲(chǔ)信息。在多碳酸塑料和鋁之間的界面稱為信息表面,因?yàn)檫@是數(shù)據(jù)
存儲(chǔ)的地方。信息被記錄在始于盤片中心,螺旋向外的單個(gè)軌道之上,如圖9 - 4 4 a所示。為了
從盤片讀數(shù)據(jù),盤片旋轉(zhuǎn),越過(guò)一個(gè)包含在播放機(jī)械中的固定激光源。為了便于分析,把它
看作一個(gè)固定的盤片和一個(gè)跟隨軌道移動(dòng)的激光束,如圖9 - 4 4 b所描繪。
圖9-43 緊湊圓盤的結(jié)構(gòu)
圖9-44 CD信息軌道
圖9 - 4 5顯示了從潔凈的塑料往鋁涂層所看到的信息表面的一個(gè)特寫。該表面的大部分平
整,稱為平地(l a n d)區(qū)。而大量的小缺口稱為凹口( p i t s),鑄造在塑料里,然后被鋁所覆
蓋。沿著一條稱為軌道的隱含線,提供一系列凹口和平地,實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)。這些軌道相互間
距1 . 6mm,可以密集地存儲(chǔ)。一張CD ROM能夠存儲(chǔ)大約540 MB有用數(shù)據(jù),以正常速度可播
放6 0分鐘。在制造盤片時(shí),凹口和平地被沖壓入塑料,不能改變,使得它成為只讀設(shè)備。
第9章存儲(chǔ)元件與陣列265
下載
a) 緊湊圓盤b) 橫截面視圖
頂層標(biāo)簽面
底層-信息面
鉆涂層可見(jiàn)
鉆層
信息表面
a) 底視圖b) 數(shù)據(jù)軌道的可視化
超始
結(jié)束
由螺旋軌道
組成的信息
存儲(chǔ)區(qū)激光束跟隨
軌道
圖9-45 CD信息表面的凹口和平地
當(dāng)盤片自旋時(shí),通過(guò)把一小束激光聚焦到軌道可以實(shí)現(xiàn)數(shù)據(jù)的讀出。對(duì)于標(biāo)準(zhǔn)( 1倍)速
度播放器,光點(diǎn)以一個(gè)恒定的速度v = 1 . 2 5 m / s跟隨軌道運(yùn)動(dòng)。跟蹤從信息表面反射回的激光就
讀出了存儲(chǔ)信息。圖9 - 4 6顯示了一個(gè)軌道和它的橫截面圖。當(dāng)激光束照射在一個(gè)平地區(qū)時(shí),
鋁涂層提供一個(gè)強(qiáng)反射。另一方面,如果光束掃描一個(gè)凹口,那么由于眾所周知的光的散射
和干擾,反射的光束是很微弱的。凹口的深度和相對(duì)于凹口寬度的光點(diǎn)的大小都是很重要的。
圖9-46 激光讀信息軌道
當(dāng)監(jiān)視反射激光束的功率Pre f時(shí),我們發(fā)現(xiàn)它依賴于激光束是否照射在凹口或者平地區(qū)而
變化。圖9 - 4 7說(shuō)明了這一點(diǎn),它顯示反射功率在高低電平之間變化。盡管我們用高電平表示
邏輯1,用低電平表示邏輯0,似乎顯而易見(jiàn),但出于系統(tǒng)設(shè)計(jì)過(guò)程中的物理考慮, C D標(biāo)準(zhǔn)選
擇了不同的編碼方案。這種用于C D的編碼稱為N R Z - i。它以如下方式定義邏輯電平:
? 邏輯0 持續(xù)的高或低電平
? 邏輯1 一個(gè)從高到低或者從低到高的跳變
266 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
軌道
凹口
掃描激
光束
平地
平地
平地
平地
平地
平地平地平地
光束點(diǎn)
凹口
凹口
平地
塑料
弱反射
強(qiáng)反射
標(biāo)簽覆蓋
激光束
凹口
a) 信息表面
b) 橫截面視圖
這樣,當(dāng)激光掃描凹口或者平地區(qū)時(shí),恒定的反射功率強(qiáng)度被翻譯為邏輯0。僅當(dāng)光束從平地
到凹口,或者從凹口到平地傳送時(shí),邏輯1發(fā)生。使用這種編碼方案提供該圖所示的邏輯翻譯。
注意,這種技術(shù)的關(guān)鍵是,為一個(gè)邏輯位定義時(shí)間間隔T。對(duì)于1倍速播放器,串行數(shù)據(jù)讀出
數(shù)率大約為1 5 0 K B / s(千字節(jié)每秒)。
我們之所以使用N R Z - i編碼,是因?yàn)樽x盤進(jìn)程產(chǎn)生不了該圖所示的精密明確的反射光束。
由于不一致的激光照明、跟蹤錯(cuò)誤、振動(dòng)和物理環(huán)境中其他干擾,反射功率強(qiáng)度看上去更像
如圖9 - 4 8所示一樣。盡管光束照射在凹口或者平地區(qū)時(shí),它的強(qiáng)度發(fā)生變化,但是當(dāng)激光束
從凹口移向平地,或者反之時(shí), C D系統(tǒng)確保有一個(gè)仍然合理的改變。因此,這個(gè)編碼方案濾
及一個(gè)信號(hào)可靠的輸出,雖然并不理想。
圖9-47 掃描表面時(shí)的發(fā)射激光功率
應(yīng)用這種編碼把數(shù)據(jù)存儲(chǔ)在軌道上的方式,導(dǎo)致了其他的復(fù)雜性。如果我們比較凹口的
寬度、長(zhǎng)度和激光束的直徑(大約1mm),我們發(fā)現(xiàn)兩個(gè)1在軌道上相鄰是不可能的。事實(shí)上,
當(dāng)在軌道上記錄時(shí),這產(chǎn)生一個(gè)規(guī)則
1必定至少被兩個(gè)0分隔
這暗示我們不能直接在C D的軌道上存儲(chǔ)“標(biāo)準(zhǔn)”編碼數(shù)據(jù)!取而代之,數(shù)據(jù)服從一個(gè)調(diào)制方
案,它原則上類似于編碼/譯碼過(guò)程。
緊湊盤片使用一個(gè)8到1 4調(diào)制( E F M)技術(shù),一個(gè)8 b i t數(shù)據(jù)字被擴(kuò)展為1 4 b i t的調(diào)制當(dāng)量,
它不違反1之間的間隔規(guī)則。整個(gè)方案如圖9 - 4 9 a所示。記錄在盤片上的是調(diào)制位流,而不是
原始數(shù)據(jù)。實(shí)際的轉(zhuǎn)換使用一個(gè)查詢表定義,該表的一小段已經(jīng)再現(xiàn)于圖9 - 4 9 a中。數(shù)據(jù)讀出
時(shí),必須簡(jiǎn)單地把該表用作一個(gè)字典,解調(diào)數(shù)據(jù)以產(chǎn)生原始的8 b i t字。
圖9-48 實(shí)際的發(fā)射信號(hào)變量
C D另一個(gè)有趣的方面在于,讀盤以后對(duì)數(shù)據(jù)使用了檢錯(cuò)碼( E D C)和糾錯(cuò)碼( E C C)。
C D制造工藝固有的偏差導(dǎo)致有相當(dāng)高的可能性得到一個(gè)數(shù)據(jù)流錯(cuò)誤。通常,它由誤碼率
(B E R)表明如下:
( 9 - 1 4 )
第9章存儲(chǔ)元件與陣列267
下載
平地平地平地
位時(shí)間
凹口凹口
平地凹口平地凹口平地
圖9-49 CD 8到14調(diào)制方案
這里,Ne為不正確的位數(shù),NT為被考慮的位的總數(shù)。在C D音頻應(yīng)用中(C D標(biāo)準(zhǔn)的最初使用),
指明B E R最大值為R E R= 1 0-9。計(jì)算標(biāo)準(zhǔn)更加嚴(yán)格,最高可接受的值為B E R= 1 0- 1 2。為了確保C D
滿足該值,在記錄數(shù)據(jù)之前,一套復(fù)雜的E D C和E C C應(yīng)用到數(shù)據(jù)之上。這導(dǎo)致另外一個(gè)數(shù)據(jù)
集記錄在C D上。這個(gè)思想類似于在R A M陣列中使用奇偶位的概念,但是它要強(qiáng)大得多,因?yàn)?
該代碼可以( a )檢錯(cuò),以及( b )通過(guò)計(jì)算起初的碼字來(lái)進(jìn)行糾錯(cuò)。C D采用了一種算法,它包含
于一大類已知的R e e d - S o l o m o n碼理論中,以一些數(shù)據(jù)字塊來(lái)實(shí)現(xiàn)任務(wù)。它們是如此強(qiáng)有力,
以至于你能夠真正地掩蓋C D上一段大約長(zhǎng)1 m m的軌道,它不影響被處理的數(shù)據(jù)輸出。
緊湊盤片系統(tǒng)十分復(fù)雜,但它是現(xiàn)實(shí)數(shù)字系統(tǒng)的一個(gè)優(yōu)秀的樣例。其他光學(xué)記錄和數(shù)據(jù)
存儲(chǔ)的途徑已經(jīng)發(fā)展起來(lái),而它們都趨向于被類似的物理限定所約束,且各自有獨(dú)特的方面,
通過(guò)使用基本的準(zhǔn)則說(shuō)明一個(gè)數(shù)字設(shè)計(jì)如何能夠解決復(fù)雜的系統(tǒng)設(shè)計(jì)問(wèn)題。
9.9 CMOS存儲(chǔ)器
C M O S是所有類型的存儲(chǔ)器芯片的主導(dǎo)技術(shù)。因?yàn)镸 O S F E T很小,創(chuàng)建大容量的相當(dāng)快
的存儲(chǔ)器陣列就是可能的。在這一部分,我們將簡(jiǎn)要地分析一些有關(guān)使用C M O S技術(shù)創(chuàng)建存
儲(chǔ)器單元的概念。
9.9.1 CMOS SRAM
單個(gè)的CMOS SRAM單元電路如圖9 - 5 0所示。它包含兩個(gè)交叉耦合的反相器(M n 1,M p 1,
M n 2,M p 2),作為存儲(chǔ)單元,使用一對(duì)N溝道晶體管存取它們。這與圖9 - 3 5所示的更基本的
原理圖有著相同的結(jié)構(gòu),所以它們的操作是相同的。由于它有六個(gè)晶體管,在文獻(xiàn)里稱為一
個(gè)“6 T”設(shè)計(jì)。該6 T設(shè)計(jì)可能是制作C M O S存儲(chǔ)器最普通的方法。使用四個(gè)M O S F E T和兩個(gè)
電阻創(chuàng)建一個(gè)“4 T”單元也是可能的。
268 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
8位字
14b字到
光盤
14b字
讀出
8位字
8位字14位長(zhǎng)效值
a) EFM記錄和讀出方案
b) EFM 表的一部分
用來(lái)存取單元的簡(jiǎn)單方案能夠擴(kuò)展到多端口靜態(tài)存儲(chǔ)器,在這里,能夠使用一對(duì)以上的
輸入/輸出線。一個(gè)雙端口靜態(tài)存儲(chǔ)器如圖9 - 5 1所示。它有兩個(gè)獨(dú)立的數(shù)據(jù)I / O通路,用D1和D2
表示。單元存取由兩個(gè)獨(dú)立的標(biāo)注為W L 1和W L 2的字線控制。任意一個(gè)能夠用作讀或?qū)懖僮鳌?
所引起的一個(gè)問(wèn)題是,我們必須實(shí)施排他性,即
W L 1·W L 2= 0 ( 9 - 1 5 )
確保一個(gè)輸入不干擾另一個(gè)。它可通過(guò)使用片上邏輯仲裁每一個(gè)單元的存取來(lái)實(shí)現(xiàn)。多端口
存儲(chǔ)器很有用,因?yàn)樗鼈冊(cè)试S把共享存儲(chǔ)器一次硬連到幾個(gè)數(shù)字邏輯單元。
圖9-50 CMOS SRAM單元
圖9-51 雙端口SRAM單元
9.9.2 動(dòng)態(tài)存儲(chǔ)器
描繪動(dòng)態(tài)存儲(chǔ)器的特征要更加復(fù)雜,但是它們廣泛地被用作主存,因?yàn)樗鼈兡芤员萐 R A M
高得多的密度構(gòu)建。形容詞“動(dòng)態(tài)的”反映了這樣一個(gè)事實(shí),在一個(gè)保持操作期間,單元的
內(nèi)容將隨著時(shí)間改變。這使得動(dòng)態(tài)存儲(chǔ)器的設(shè)計(jì)更加復(fù)雜,但是現(xiàn)代的芯片通常對(duì)用戶屏蔽
復(fù)雜性。D R A M主要的缺點(diǎn)是它們沒(méi)有S R A M快。D R A M主要的優(yōu)勢(shì)是每b i t的花費(fèi)很低,使
它在需要大陣列的系統(tǒng)設(shè)計(jì)上具有經(jīng)濟(jì)上的吸引力。
第9章存儲(chǔ)元件與陣列269
下載
(字線)
位線
反碼位線
端口2
端口1
端口1
端口2
D R A M單元的電路原理圖如圖9 - 5 2所示。一眼看去,簡(jiǎn)單
性是明顯的:整個(gè)單元由單個(gè)n F E T和一個(gè)存儲(chǔ)電容CS組成。
這便于相當(dāng)高的集成密度,使構(gòu)建有數(shù)百萬(wàn)個(gè)單元的單一芯片
成為可能;使用現(xiàn)代技術(shù),每片2 5 6 M b和1 G b大小是可能的。
D R A M市場(chǎng)競(jìng)爭(zhēng)的本質(zhì)使它成為技術(shù)驅(qū)動(dòng)器,許多公司使用
他們最先進(jìn)的工藝技術(shù)制造D R A M。
在這個(gè)基本存儲(chǔ)電路里, n F E T作為存取器件,由字線變
量W L控制導(dǎo)通。當(dāng)W L = 1時(shí),n F E T作為一個(gè)閉合的開(kāi)關(guān),允
許一個(gè)寫或讀操作。要寫該單元,一個(gè)數(shù)據(jù)電壓VD應(yīng)用到數(shù)據(jù)
線,產(chǎn)生的電流充電存儲(chǔ)電容CS到電壓VS。如圖9 - 5 3所示。存儲(chǔ)位碼的值由電容上的電荷定義
( 9 - 1 6 )
如果VS= V0= 0V,那么QS= 0,對(duì)應(yīng)于邏輯0的值。另一方面,如果VS= V1是高電平,那么邏
輯1的電荷存儲(chǔ)在電容上
QS = CSV1 ( 9 - 1 7 )
使字線W L = 0可得到一個(gè)保持狀態(tài),在數(shù)據(jù)線與存儲(chǔ)電容器之間斷開(kāi)直接的導(dǎo)電通路。
理想地,晶體管將阻塞所有的電流,電荷QS將永久地保持。然而, n F E T并不能阻塞所有的電
流。即使對(duì)一個(gè)0門電壓, F E T允許一個(gè)小的漏電流IL把電荷從電容器移走。泄漏通路的電路
效果如圖9 - 5 4 a所示, 9 - 5 4 b中的示意圖表明了晶體管中問(wèn)題的物理起源,在那里, p n結(jié)存在
一個(gè)不能排除的反向電流IR。在這種情況下,我們可以記作
IL = IR ( 9 - 1 8 )
既然電荷能夠從CS泄露掉,而數(shù)據(jù)位碼的值依賴于電荷,所以數(shù)據(jù)位碼僅僅能夠保持一個(gè)較
短的時(shí)期。
圖9-53 DRAM單元中的寫操作
圖9-54 DRAM保持狀態(tài)和泄露問(wèn)題
270 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
在實(shí)際的D R A M單元中,也存在其他幾種漏電流。
輸入
(邏輯0)
(邏輯1)
門
斷開(kāi)
漏電流
邏輯1電壓將
漸變?yōu)?V
a) 電路模型b) 漏電流的起源
圖9-52 CMOS動(dòng)態(tài)RAM(DRAM)
單元設(shè)計(jì)
預(yù)估這個(gè)值能夠保持的時(shí)間間隔是有價(jià)值的。假定我們?cè)陔娙萜魃显O(shè)置邏輯1電平VS=V1,
希望計(jì)算n F E T斷開(kāi)時(shí)電壓能夠保持在該單元上的時(shí)間。這能通過(guò)使用電流的定義來(lái)實(shí)現(xiàn),記
作
( 9 - 1 9 )
這里,我們?cè)诘诙兄惺褂昧嘶镜年P(guān)系
( 9 - 2 0 )
使用負(fù)號(hào)是因?yàn)殡姾呻S時(shí)間減少。重新排列得到
( 9 - 2 1 )
所以,兩邊積分得到
( 9 - 2 2 )
這里,tH是保持時(shí)間。保持時(shí)間定義為電容器能夠維持Vm i n以上電壓的時(shí)間間隔, Vm i n是仍然譯
作邏輯1值的最小電壓。右邊的下限V1表示t = 0時(shí)刻的初始存儲(chǔ)的邏輯1電壓。計(jì)算該積分,
重新排列保持時(shí)間為
( 9 - 2 3 )
為了理解時(shí)間間隔的意義,我們記存儲(chǔ)電容為5 0 f F = 5 0×1 0-1 5F的量級(jí),漏電流為1 p A(1 0-1 2A)
的量級(jí)。因?yàn)殡妷簽? V的量級(jí),保持時(shí)間就大約為
( 9 - 2 4 )
也就是5 0毫秒( m s)。這是一個(gè)很短的時(shí)期。數(shù)
據(jù)必須周期地更新以確保在系統(tǒng)需要它時(shí)是有效
的。這稱為刷新操作,在下面描述。
如圖9 - 5 5表示了一個(gè)讀操作。為了從該單元
檢索數(shù)據(jù),我們使W L = 1,閉合存取晶體管,允
許電流流向位線。一個(gè)放大器在輸出端提供加強(qiáng)
的信號(hào)。該放大器是設(shè)計(jì)的關(guān)鍵部分,在設(shè)計(jì)過(guò)
程中被給予更多的關(guān)注。為了對(duì)數(shù)據(jù)提供快速存
取,讀電路必須適當(dāng)?shù)乜臁?
刷新操作就是,周期地對(duì)數(shù)據(jù)執(zhí)行讀出、放大及回寫到單元。刷新電路包含在芯片中,
使該存儲(chǔ)器似乎有長(zhǎng)期的保持特性。因?yàn)樽畲蟊3謺r(shí)間是在1 0- 3秒數(shù)量級(jí),所以最小刷新頻率
的量級(jí)為
( 9 - 2 5 )
第9章存儲(chǔ)元件與陣列271
下載
放大器
圖9-55 DRAM單元中的讀操作
從而,刷新率為數(shù)千赫茲的量級(jí)。記住重要的一點(diǎn),每一個(gè)單元必須周期地刷新,所以該電
路被設(shè)計(jì)為循環(huán)通過(guò)整個(gè)陣列。
現(xiàn)代計(jì)算機(jī)技術(shù)中的許多進(jìn)展能夠回朔到R A M制造工藝的技術(shù)發(fā)展。因此,那是一個(gè)吸
引人的研究領(lǐng)域,即使你的興趣在其他方面。
9.9.3 ROM
C M O S技術(shù)為大量要制造的R O M電路作了準(zhǔn)備。盡管它們歸屬于“只讀”器件,但允許
通過(guò)特別的電路技術(shù)輸入用戶數(shù)據(jù)。它們通常需要施加相當(dāng)高的電壓電平來(lái)操作芯片。因?yàn)?
該器件能被編程,有時(shí)稱它們?yōu)椤爸饕x”器件。
E P R O M
E P R O M是Erasable-Programmable ROM的首字母的縮寫詞。這種類型的器件允許用戶編
程(輸入數(shù)據(jù))和擦除數(shù)據(jù)。
用一個(gè)高電壓傳送電荷到一個(gè)“浮動(dòng)的”電容器,就實(shí)現(xiàn)了編程。電荷存儲(chǔ)在該電容器
上,在正常環(huán)境下不能逃逸。在這種器件里,把器件放在強(qiáng)烈的紫外線( U V)光源之下,能
夠?qū)崿F(xiàn)擦除。電子吸收光子(光能包),使它們有能量運(yùn)動(dòng)返回半導(dǎo)體中。盡管它們從前是用
戶可編程R O M的主要類型,但已經(jīng)被電可擦除可編程的器件所取代。
E2P R O M
這種存儲(chǔ)器是電可擦除的( E2),代替了E P R O M的U V技術(shù)。它有這樣的優(yōu)勢(shì),數(shù)據(jù)可以
使用電子電路擦除,不需要芯片物理地從系統(tǒng)移開(kāi)。因?yàn)檫@個(gè)特性,它在現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)
中非常流行。
在管腳上加一個(gè)高電壓,使電荷傳送到電容器面板,實(shí)現(xiàn)編程。要擦除單元,使電壓反
向,電荷向相反的方向移動(dòng)。在一個(gè)基本陣列里,限制每次擦除一個(gè)單元。然而,更加新穎
的技術(shù)允許同時(shí)擦除大量的單元。這些器件稱為閃爍E P R O M,這里的“閃爍”是指整個(gè)陣列
可以擦除的速度。
9.10 傳輸門電路
在集成電路設(shè)計(jì)中,傳輸門能夠用來(lái)構(gòu)建C M O S存儲(chǔ)器元件。它們非常有用,因?yàn)門 G的
行為就像一個(gè)理想的開(kāi)關(guān),能夠斷開(kāi)和閉合。在一個(gè)存儲(chǔ)電路的輸入端使用一個(gè)T G,允許以
T G控制機(jī)制來(lái)控制鎖存活動(dòng)。
9.10.1 基本鎖存器
圖9 - 5 6表示了一個(gè)基本的鎖存器電路,它使用了兩個(gè)傳輸門T G 0和T G 1來(lái)控制數(shù)據(jù)
流;兩個(gè)反相器提供雙穩(wěn)態(tài)存儲(chǔ)。該電路的操作由載入控制位L D和它的補(bǔ)
—L D實(shí)現(xiàn)。注意,
到傳輸門T G 0 和T G 1的控制信號(hào)是以相反的方式應(yīng)用的;當(dāng)一個(gè)T G閉合時(shí),另一個(gè)斷
開(kāi)。
為了理解該鎖存器的操作,讓我們首先分析L D = 1時(shí)的情況。T G 0斷開(kāi)和T G 1閉合,如
圖9 - 5 7 a所示的條件。輸入數(shù)據(jù)位碼D能夠進(jìn)入電路,使第二個(gè)反相器的輸出Q = D;這允許
我們載入(寫)一個(gè)數(shù)據(jù)位碼到該鎖存器。注意,只要L D = 1,該鎖存器就是貫通的,因?yàn)?
輸出將跟蹤輸入的變化。保持條件是如圖9 - 5 7 b所示的L D = 0。斷開(kāi)T G 0,它反過(guò)來(lái)阻擋了新
272 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
數(shù)據(jù)的進(jìn)入。傳輸門T G 1是一個(gè)閉合的開(kāi)關(guān),
產(chǎn)生雙穩(wěn)態(tài)的交叉耦合的反相器電路,能夠維
持Q值。
基本的T G鎖存器歸屬于電平敏感的器件,
因?yàn)樗贚 D = 1時(shí)接受輸入。通過(guò)組合一個(gè)時(shí)
鐘信號(hào)?進(jìn)入控制集,它能夠用作一個(gè)時(shí)鐘控制
的鎖存器。在圖9 - 5 8中,各處的L D(和
—L D)信
號(hào)已經(jīng)用?(和-?)取代;這就使該鎖存器在時(shí)
鐘狀態(tài)? = 1時(shí)接受新的數(shù)據(jù)。
圖9-57 TG鎖存器操作
圖9-58 時(shí)鐘TG鎖存器電路
圖9-59 帶控制載入的時(shí)鐘鎖存器
第9章存儲(chǔ)元件與陣列273
下載
圖9-56 TG鎖存器電路
閉合斷開(kāi)
斷開(kāi)閉合
a) L D = 1 b) L D = 0(保持)
當(dāng)? = 1時(shí)D認(rèn)可
a) 電路圖解b) 時(shí)鐘
a) 電路b) 控制邏輯
圖9 - 5 9表示了另一種時(shí)鐘控制輸入的方法。在這種情況下,輸入傳輸門T G 0由復(fù)合信號(hào)
L D·?和
—L D·
-?
控制。僅當(dāng)L D = 1且?= 1為真時(shí),允許新數(shù)據(jù)輸入。從而,這種電路的行為類
似于如圖9 - 5 8中的時(shí)鐘方式,除了L D對(duì)數(shù)據(jù)流提供一個(gè)附加的控制之外。圖9 - 6 0的波形說(shuō)明
了該電路時(shí)序的一個(gè)例子。總之,時(shí)鐘信號(hào)?(t)總是用作定時(shí)參考。在這種情況下,載入
信號(hào)L D僅在第一和第四個(gè)時(shí)鐘周期為高。從而,復(fù)合信號(hào)L D·?在此期間跟隨時(shí)鐘,在中間
的兩個(gè)時(shí)鐘周期為0。觀察結(jié)果是,該鎖存器將僅在第一和第四個(gè)周期接受數(shù)據(jù)。
圖9-60 帶載入控制的時(shí)鐘TG鎖存器的時(shí)序圖解
9.10.2 TG觸發(fā)器
一個(gè)主從觸發(fā)器能夠由級(jí)聯(lián)的兩個(gè)反相T G鎖存器構(gòu)建,如圖9 - 6 1所示。第一個(gè)鎖存器
(第一級(jí))作為主觸發(fā)器,第二個(gè)鎖存器(第二級(jí))作為從觸發(fā)器。通過(guò)注意輸入傳輸門由反
相時(shí)鐘控制,可以看出這一點(diǎn)。當(dāng)? = 0時(shí),主觸發(fā)器有效并接受數(shù)據(jù),而從觸發(fā)器的輸入需
要時(shí)鐘? = 1來(lái)容許新的信息。這在操作上與正邊沿敏感的D F F是相同的。通過(guò)簡(jiǎn)單地交換時(shí)
鐘信號(hào)?和-?,可得到一個(gè)負(fù)邊沿敏感的D F F。該電路如圖9 - 6 2所示。
圖9-61 主從DFF電路
274 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
[秒]
[秒]
[秒]
階段1 階段2
圖9-62 負(fù)邊沿主從DFF電路
9 . 11 問(wèn)題
1. 下面的置位( S)和復(fù)位(R)信號(hào)應(yīng)用到一個(gè)S R鎖存器。描繪出這個(gè)器件的輸出Q(t)
的草圖。
2. 下面的信號(hào)應(yīng)用到圖9 - 1 0中的時(shí)鐘S R鎖存器。描繪出輸出Q(t)的草圖。
3. 下面所示的數(shù)據(jù)信號(hào)D(t)應(yīng)用到一個(gè)正邊沿觸發(fā)D F F的輸入。描繪出這個(gè)器件的輸
出Q(t)的草圖。
第9章存儲(chǔ)元件與陣列275
下載
階段1 階段2
4. 對(duì)于D(t)應(yīng)用到一個(gè)負(fù)邊沿觸發(fā)D F F的輸入,重做前一個(gè)問(wèn)題。
5. 一個(gè)基于或非門的S R鎖存器的復(fù)位(R)輸入跳變?yōu)?,同時(shí)S = 0。畫出它發(fā)生時(shí)的電
路,并在每一個(gè)節(jié)點(diǎn)標(biāo)注邏輯值( 0或者1)。
6. 考慮基于與非門的S R鎖存器。當(dāng)S和R皆為0電平時(shí),它的輸出是什么?它為什么為
“不使用”的情形?
7. 考慮一個(gè)8位移位寄存器,起初,其中有二進(jìn)制字0 1 0 111 0 0。在下面的操作已經(jīng)執(zhí)行之
后,該寄存器的內(nèi)容是什么?對(duì)于每一種情況,假設(shè)初始狀態(tài)由上面給出。
(a) SHR 2
(b) SHL 1
(c) ROL 3
(d) ROR 2
8. 一個(gè)8位移位寄存器,有十進(jìn)制8 6的二進(jìn)制等效值存儲(chǔ)于其中。在下面的操作已經(jīng)執(zhí)行
之后,該寄存器十進(jìn)制的等效內(nèi)容為多少?對(duì)于每一種情況,假設(shè)被賦予相同的初始狀態(tài)。
(a) SHR 1
(b) SHL 1
(c) SHR 2
(d) ROR 2
9. 一個(gè)1 6位寄存器包含0 x 4 A 3 5的二進(jìn)制等效值。在下述操作已經(jīng)執(zhí)行之后,得出該寄存
器十進(jìn)制的等效內(nèi)容。對(duì)于每一種情況,假設(shè)被賦予相同的初始狀態(tài)。
(a) SHR 6
(b) SHR 3
(c) SHL 8
(d) SHL 16
10. 考慮圖9 - 3 7中的8×8 S R A M陣列。每一行的內(nèi)容由下述列表給定:
行0:1010 1111
行1:1010 1111
行2:1010 1111
行3:1010 1111
行4:1010 1111
行5:1010 1111
行6:1010 1111
行7:1010 1111
當(dāng)下述地址被應(yīng)用到行譯碼器時(shí),輸出的十進(jìn)制值是多少?
(a) A2A1A0 = 101
(b) A2A1A0 = 011
(c) A2A1A0 = 100
(d) A2A1A0 = 11 0
11. 使用圖9 - 3 8中的示意圖作為一個(gè)基礎(chǔ),畫出一個(gè)1 6×4 S R A M的方框圖。
12. 考慮圖9 - 3 9所示的6 4×8 S R A M。該器件將作為創(chuàng)建一個(gè)大小為6 4 b×3 2 b的大型存儲(chǔ)
276 數(shù)字系統(tǒng)設(shè)計(jì)基礎(chǔ)教程
下載
器陣列的基礎(chǔ)。構(gòu)造這個(gè)大型存儲(chǔ)器的方框圖。
13. 考慮圖9 - 3 9所示的6 4×8 S R A M。你想要使用該器件來(lái)設(shè)計(jì)一個(gè)包含2 5 6個(gè)3 2 b i t字的存
儲(chǔ)器陣列。構(gòu)造該存儲(chǔ)器陣列的方框圖。你可能考慮想要給每一個(gè)器件增加一個(gè)片選輸入C S,
控制每一芯片,使得C S = 0使該器件失效,而C S = 1使它有效,容許讀和寫數(shù)據(jù)。
14. 在最近的報(bào)紙或者計(jì)算機(jī)雜志上尋找計(jì)算機(jī)廣告,找到你所能夠找到的關(guān)于S R A M和
D R A M芯片或者模塊的最佳價(jià)格。然后,計(jì)算每種類型的每一b i t價(jià)格。這兩類存儲(chǔ)器在價(jià)格
上的百分比差異是多少?
15. 研究雜志或者報(bào)紙上的計(jì)算機(jī)廣告。你能夠找到多少種S R A M在個(gè)人計(jì)算機(jī)上的具體
應(yīng)用?
16. 考慮3 b i t數(shù)據(jù)字b2b1b0。各位用于生成一個(gè)偶校驗(yàn)位p。那么,有3 + 1 = 4位被存儲(chǔ)在存儲(chǔ)
器中。當(dāng)從存儲(chǔ)器中讀數(shù)據(jù)時(shí),我們得到下面所列的結(jié)果。判決該數(shù)據(jù)是否滿足奇偶校驗(yàn)檢
查,或者存在一個(gè)錯(cuò)誤。
(a) p b 2b1b0= 0111
(b) p b 2b1b0= 11 0 1
(c) p b 2b1b0= 0100
(d) p b 2b1b0= 11 0 1
(e) p b 2b1b0= 0000
17. 假設(shè)我們想要在一個(gè)緊湊盤片的表面上存儲(chǔ)1 0 2 4個(gè)1 6 b i t數(shù)據(jù)字。實(shí)際上,在該盤的信
息表面上將要存儲(chǔ)多少位?
18. CD ROM強(qiáng)有力的糾錯(cuò)能力是通過(guò)記錄包含足夠信息的大量數(shù)據(jù)來(lái)重構(gòu)任何錯(cuò)誤的輸
出而獲得的。因?yàn)檫@不是用戶可存取的數(shù)據(jù),所以稱之為開(kāi)銷,它減少了有用存儲(chǔ)的數(shù)量。
C D上的信息被劃分為一些數(shù)據(jù)塊,使目錄簡(jiǎn)單化。每一塊包含2 3 5 2個(gè)字節(jié),其中2 0 4 8個(gè)
字節(jié)是真實(shí)的數(shù)據(jù)。一張標(biāo)準(zhǔn)C D可能的最長(zhǎng)“播放時(shí)間”是7 4分鐘,對(duì)應(yīng)于3 3 3 , 0 0 0個(gè)塊。
(a) 對(duì)于7 4分鐘的播放時(shí)間,計(jì)算用戶字節(jié)的總量。
(b) 開(kāi)銷占全部存儲(chǔ)數(shù)據(jù)的百分之多少?
(c) 如果播放時(shí)間減少到6 0分鐘,可利用的用戶字節(jié)為多少?
(該C D在存儲(chǔ)和播放時(shí)間之間存在線性關(guān)系。)
19. 一個(gè)數(shù)據(jù)傳輸系統(tǒng)的B E R確定為1 0-1 0。假設(shè)該系統(tǒng)以每秒1 0 0 M b的速率傳輸數(shù)據(jù)。該
系統(tǒng)能夠傳輸數(shù)據(jù)而不發(fā)生錯(cuò)誤的平均時(shí)間是多少?在真實(shí)世界環(huán)境中,我們?cè)鯓硬拍芸朔?
該問(wèn)題?
20. 考慮一個(gè)處于保持狀態(tài)的動(dòng)態(tài)R A M(D R A M)單元。它的存儲(chǔ)電容的值為CS=6 0 f F,
而漏電流估計(jì)為IL= 0 . 2 p A。對(duì)于邏輯1狀態(tài),電壓特性已知為V1= 3V,Vm i n=1 . 2 V。求出該單元
的保持時(shí)間。
21. 一個(gè)動(dòng)態(tài)R A M(D R A M)單元的存儲(chǔ)電容為CS=5 5 F,漏電流估計(jì)為IL= 0 . 1 4 p A。該電
容器上的最大電壓為V1=3 V,最小邏輯1的電壓為Vm i n=1 V。
(a) 該單元能夠保持邏輯0狀態(tài)多久?
(b) 邏輯1狀態(tài)的保持時(shí)間為多少?
22. DRAM中的軟錯(cuò)誤是這樣的情形,一個(gè)a粒子撞擊硅,導(dǎo)致電荷的流動(dòng)。這能夠改變
該單元的內(nèi)容。你能否想起一個(gè)D R A M環(huán)境,在那里,它可能是特別的重要?
第9章存儲(chǔ)元件與陣列277
下載
總結(jié)
- 上一篇: 汽车网络安全对抗赛
- 下一篇: 程序员必看之文章(转)