| CLR | 二進(jìn)制數(shù)輸入 | 格雷碼輸出 | ||||||
|---|---|---|---|---|---|---|---|---|
| A4 | A3 | A2 | A1 | A0 | D3 | D2 | D1 | D0 |
| 0 | X | X | X | X | 1 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
| 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
| 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
推導(dǎo)要寫入的存儲器數(shù)據(jù),即表1內(nèi)容的方法是:第0個地址單元填入下一個應(yīng)輸出的計數(shù)值(0001),然后將此計數(shù)值作為存儲器地址,在此地址內(nèi)寫入下一個格雷碼的值,如此循環(huán)直到所有十六個存儲單元都填入了數(shù)據(jù)。這種方法有些類似數(shù)據(jù)結(jié)構(gòu)中的“指針”概念。顯然,如果要求的格雷碼位數(shù)很長,手工編寫存儲器數(shù)據(jù)將非常繁瑣,這時最好還是用計算機(jī)編程生成,算法為:定義一個數(shù)組A,本例中此數(shù)組應(yīng)有十六個元素(A[0]-A[15]),先對第零個元素賦第一個元素的格雷碼A[0]=0001,將下標(biāo)為此十進(jìn)制值1(0001)的數(shù)組元素賦下一個就輸出的格雷碼A[1]=0011,下標(biāo)為3(0011)的數(shù)組元素賦A[3]=0010,依此類推A[2]=0110,A[6]=0111......過程見圖5所示。通過一個循環(huán)就可以把整個數(shù)組的所有元素賦值。數(shù)組A就包含了要寫入存儲器的數(shù)據(jù),其中下標(biāo)為地址,元素值為存儲的數(shù)據(jù)。
2764與74LS374的接法如圖6所示。構(gòu)成的格雷碼計數(shù)器在CLK時鐘上升沿計數(shù)。CLR(A4)是作為計數(shù)復(fù)位用的。當(dāng)其為低電平時,A3-A0無論是什么電平,其存貯內(nèi)容都是數(shù)組中A[9]元素的內(nèi)容:1000。因此在下一時鐘(CLK)的上升沿,Q3-Q0將輸出地址為A[8]的內(nèi)容:0000,從而計數(shù)從頭開始,可見為CLR同步清零。
事實(shí)上,只要將表1的內(nèi)容以二進(jìn)制數(shù)為地址,對應(yīng)格雷碼作為數(shù)據(jù)寫入2764,用一個四位二進(jìn)制加法計數(shù)器接在2764地址輸入端,就能方便地實(shí)現(xiàn)格雷碼計數(shù)功能,清零只需清計數(shù)器即可。所以本例只是為了說明用存儲器實(shí)現(xiàn)時序邏輯功能是可行的,并沒有實(shí)用價值。從本例還可以看出,由于時序邏輯必須要有輸出到輸入的反饋,所以手工編寫時序邏輯的真值表較組合邏輯復(fù)雜得多。
3實(shí)現(xiàn)組合邏輯和時序邏輯功能的一般步驟
1)確定所要實(shí)現(xiàn)的功能,及有哪些輸入、輸出信號,輸入的控制信號優(yōu)先級順序。判斷某控制信號的優(yōu)先級方法是:如果它的有效必須以其它信號為某個電平為前提,那么此信號優(yōu)先級較低。在21中由于RBI要想低電平有效,就要求LT、RI/RBO先為高才行,因而它在這3個信號中優(yōu)先級最低,同理LT優(yōu)先級比RI/RBO低。RI/RBO要起作用不需要其它信號為前提(這里不必考慮門控信號,因?yàn)樗痪幦氲刂肪),所以RI/RBO的優(yōu)先級最高。
2)規(guī)劃好輸入信號和輸出信號應(yīng)接的存儲器引腳。通常輸入的數(shù)據(jù)信號應(yīng)放在地址低位,且數(shù)據(jù)最低位D0接存儲器地址線A0引腳?刂菩盘杽t按照優(yōu)先級別依次接往地址線高位,優(yōu)先級越高,地址位越高。
3)按地址順序列出真值表中的內(nèi)容,即當(dāng)輸入數(shù)據(jù)和控制信號的電平是某一確定值時,要求輸出數(shù)據(jù)是什么,要詳細(xì)到每個地址單元。
4)如果要在一個存儲器芯片上實(shí)現(xiàn)多個功能,就將各功能分別作好真值表。綜合時,找出單個功能占用最多的存儲空間,在其基礎(chǔ)上增加高位地址線。增加數(shù)目與實(shí)現(xiàn)的功能數(shù)有關(guān)。例如,要實(shí)現(xiàn)的功能有5-8個,應(yīng)增加3條高位地址線。這樣就得到綜合后的真值表(也應(yīng)按地址順序列出)。
5)根據(jù)真值表生成編程用的數(shù)據(jù)文件。
6)用編程器將數(shù)據(jù)寫入存儲器。
7)將編程成功的存儲器用于電路中,按照規(guī)劃好的輸入、輸出信號連接引腳。對于存有多個功能的芯片,還要根據(jù)綜合時的真值表設(shè)置所增加高位地址線的電平。未用到的更高位地址線、所用功能中未用的
地址線引腳都應(yīng)可靠接地,以免引入干擾。
4存儲器法的優(yōu)缺點(diǎn)
41優(yōu)點(diǎn)
與PLD中的可編程邏輯陣列(PLA)、可編程陣列邏輯(PAL)、通用陣列邏輯(GAL)一樣,用存儲器實(shí)現(xiàn)組合邏輯和時序邏輯,實(shí)際上是一種計算機(jī)軟件和硬件相結(jié)合定制芯片功能的方法。與后者不同的是,存儲器法的實(shí)質(zhì)就是查表法——存儲器就相當(dāng)于一個表格。向“表格”送入一個行號(地址),就可以從輸出得到表格里這一行的內(nèi)容(所存儲的數(shù)據(jù)),所以輸出和輸入并沒有什么邏輯上的關(guān)聯(lián);而PLA、PAL、GAL的輸入與輸出有著邏輯上的關(guān)系——輸出是輸入經(jīng)過邏輯運(yùn)算得到的。所以后者對寫入的數(shù)據(jù)進(jìn)行了“壓縮”,用戶在寫入這些芯片之前,要從真值表或其它途徑歸納出輸入與輸出的邏輯關(guān)系。存儲器就完全不需要用戶這樣作,只要將輸入按位編成地址,根據(jù)地址和實(shí)現(xiàn)的邏輯功能確定希望得到的輸出,即為應(yīng)存放的數(shù)據(jù)。真值表數(shù)據(jù)的取得既可以用手工的方法,也可以用程序生成。由于存儲器沒有對數(shù)據(jù)進(jìn)行“壓縮”,因而有很大的冗余度,所以容錯能力也比PLA、PAL、GAL強(qiáng)得多。更重要的是,如今存儲器芯片價格低廉,存儲容量大,因而可以將幾十個、甚至成百上千個相互獨(dú)立的功能用一個存儲器實(shí)現(xiàn),這就進(jìn)一步降低了使用存儲器實(shí)現(xiàn)各種功能的成本。
42缺點(diǎn)
——不能直接定制時序邏輯功能,必須有外接鎖存器配合才能實(shí)現(xiàn)。
——如果要求實(shí)現(xiàn)的芯片其引腳有雙向傳輸功能(如74LS245)或作雙向開關(guān)(如CD4016、CD4066),就不能直接用存儲器作到,也必須有外電路配合。
——OC門,存儲器輸出不是OC門,因而不能用存儲器定制輸出為OC門的功能。不過我們可以通過增加六重集電極開路輸出緩沖器74LS07,將存儲器輸出轉(zhuǎn)換為OC門輸出。
——不能將存儲器作為增加帶負(fù)載能力的驅(qū)動器用。存儲器并不是專門的驅(qū)動器,盡管存儲器可以作到與輸入信號同相,但不要指望存儲器通過編程就以為它有了74LS244(八通道緩沖器/線驅(qū)動器)那么大的驅(qū)動能力。
——存儲器也不能實(shí)現(xiàn)施密特觸發(fā)器,及與施密特觸發(fā)有關(guān)的功能。施密特觸發(fā)器又稱電位觸發(fā)器,它有兩個穩(wěn)定的輸出狀態(tài),并有兩個閾值電平VT+、VT-。當(dāng)輸入信號電平由低向高變化到上限觸發(fā)電平VT+時,觸發(fā)器即被觸發(fā)到某一輸出狀態(tài);當(dāng)輸入信號電平由高向低變化到下限觸發(fā)電平VT-時,觸發(fā)器翻轉(zhuǎn)到另一輸出狀態(tài),因而施密特觸發(fā)器的觸發(fā)有滯后特性。存儲器的輸入純粹以電平高低判斷邏輯0和1,所以不能實(shí)現(xiàn)施密特觸發(fā)及相關(guān)功能。
——與PLA、PAL、GAL芯片相比,存儲器法不能實(shí)現(xiàn)數(shù)據(jù)加密,無法有效保護(hù)芯片內(nèi)容的知識產(chǎn)權(quán),因?yàn)橹灰诖鎯ζ鞯刂范思由嫌嫈?shù)信號,就很容易地將其存儲的所有內(nèi)容讀出。而GAL等可編程邏輯器件通過加密,可大大提高破譯編程信息的難度。
——在高速數(shù)據(jù)處理?xiàng)l件下應(yīng)對作為邏輯芯片的存儲器仔細(xì)測試方可使用,畢竟存儲器的讀出時間與一般TTL的邏輯傳遞時間(100ns以內(nèi))相比還是很長的,例如2764的讀出時間根據(jù)型號的不同從100ns到 450ns不等,與CMOS4000系列有些接近。EEPROM、Flash的讀出時間要短一些,但還是比TTL長。如果設(shè)計的電路工作在高速數(shù)據(jù)處理或?qū)r序要求非常嚴(yán)格的場合,用存儲器作控制邏輯芯片就可能導(dǎo)致時序紊亂。這時應(yīng)改用GAL、現(xiàn)場可編程門陣列(FPGA)等種類的可編程芯片。如果隨著生產(chǎn)工藝的改進(jìn),存儲器讀出時間與TTL相當(dāng)時,這一局限性就自然不再存在。
5結(jié)語
用并行存儲器可實(shí)現(xiàn)任何組合邏輯功能,其限制只在于輸入地址線和輸出數(shù)據(jù)線的條數(shù),并可以將大量功能集成在一片存儲器中,使用時通過對引腳電平進(jìn)行控制來選擇要實(shí)現(xiàn)的功能。與PLD相比,用存儲器實(shí)現(xiàn)組合邏輯功能有許多優(yōu)越性。但單獨(dú)用存儲器不能直接實(shí)現(xiàn)時序邏輯功能,而且受硬件限制,存儲器法還有一些應(yīng)用上的局限性。但不管怎么講,很多場合中利用存儲器定制芯片功能,在電路設(shè)計、制造時肯定會收到事半功倍的效果。
作者簡介:龔樹萍(1947-),女,華中科技大學(xué)電子科學(xué)與技術(shù)系教授,主要從事微電子與固體電子學(xué)功能材料及其測試儀器儀表的研究與開發(fā)。
張菲,河南南陽人,1995年畢業(yè)于南京郵電學(xué)院計算機(jī)工程系,曾在電信部門工作。2000年考入華中科技大學(xué),現(xiàn)在攻讀電子科學(xué)與技術(shù)系微電子與固體電子學(xué)專業(yè)碩士學(xué)位。





