第一篇:控制邏輯設(shè)計(jì)_教案
11章 控制邏輯設(shè)計(jì)
一.定義對(duì)話模塊
對(duì)話程序主要是應(yīng)用于PBO,PAI.POV(F1幫助事件).POH(F4幫助事件)三個(gè)事件中。
對(duì)話程序主要的定義方式為:
Module name output.…….Endmodule.Module name input.…….Endmodule.定義好的對(duì)話模塊是不專屬與任何一個(gè)事務(wù)屏幕,而是可以在任意一個(gè)事務(wù)屏幕中調(diào)用。通過系統(tǒng)變量sy-dynnr來(lái)獲得當(dāng)前調(diào)用對(duì)話模塊的屏幕號(hào)。
二.調(diào)用對(duì)話模塊
調(diào)用對(duì)話模塊的語(yǔ)法:
Module mod.事物程序的執(zhí)行流程:P366。
三.無(wú)條件調(diào)用
無(wú)條件的調(diào)用,主要應(yīng)用與back,exit,cancel 這幾個(gè)按鈕當(dāng)中。
無(wú)條件調(diào)用的意義:
在用戶進(jìn)行操作時(shí),在不可避免的情況下不知道如何輸入數(shù)據(jù)和進(jìn)行了誤操作,進(jìn)入了一個(gè)無(wú)法操作的界面,而此界面又會(huì)有一些輸入的檢查,所以直接按后退或者退出的按鈕時(shí),不會(huì)進(jìn)行后退的功能。因此出現(xiàn)了無(wú)條件調(diào)用。無(wú)論用戶輸入滿足系統(tǒng)檢查與否,該模塊都將首先被其調(diào)用。
無(wú)條件調(diào)用的定義方式:
1.首先set pf-status 中設(shè)置一個(gè)BACK的按鈕。然后雙擊該功能代碼或者通過goto→object list → function list 進(jìn)行設(shè)定。2.將該功能碼的類型更改成E的類型。3.在接收和處理此功能的方式為:
a)在邏輯流中PBO事件里添加一個(gè)新的module。如:module mod at exit-command.(將功能碼的類型定義為E類型以后。必須使用此類型進(jìn)行處理)b)在程序中處理的方式為:
Module mod input.If ok_code = ‘BACK’.Clear ok_code.Leave to screen 0.Endif.Endmodule.四.?dāng)?shù)據(jù)傳輸控制
1.系統(tǒng)自動(dòng)傳輸
系統(tǒng)自動(dòng)傳輸?shù)闹饕绞綖?,將屏幕中的字段與ABAP程序中的字段同名。那么在屏幕的PBO執(zhí)行中。如果ABAP中的字段進(jìn)行了初始化,那么在PBO執(zhí)行結(jié)束時(shí),屏幕中的字段自動(dòng)被進(jìn)行了初始化。
2.模塊條件調(diào)用
1)單字段條件調(diào)用
Field dynpfield Module mod on input.Dynpfield :為屏幕中字段的名字。
Module:為ABAP中處理?xiàng)l件的module名。
另外一種形式:
Field dynpfield Module mod On Request.這種形式是只有在用戶對(duì)該字段進(jìn)行輸入值時(shí),才調(diào)用ABAP模塊。任何形式的手工輸入都會(huì)觸發(fā)On Request 條件,系統(tǒng)將下列設(shè)置字段的方式視為手工輸入:
a)實(shí)際用戶輸入。
b)通過set parameter字段輸入(手工和自動(dòng)兩種).c)通過hold data 功能設(shè)置字段輸入(在菜單system→user profile→hold data中設(shè)置)
d)用于事物調(diào)用時(shí)的參數(shù)輸入(call transaction…..using)。e)用于整個(gè)定制系統(tǒng)的全局字段。
2)組合字段條件調(diào)用
Chain.Field: f1, f2 …………
Module mod1 on chain-input | chain-request.Field: g1, g2………….Module mod2 on chain-input | chain-request.Endchain.其中chain-input 和chain-request 與單字段條件調(diào)用中的on input 和 on request類似。兩種的區(qū)別在于,如果field語(yǔ)句中的任意一個(gè)字段滿足條件,則觸發(fā)位于該字段之前的模塊。對(duì)于on chain-input,如果鏈中的任意字段包含初始值(空或零)以外的值,則調(diào)用ABAP模塊。對(duì)于on chain-request,如果鏈中的任一字段的值發(fā)生用戶輸入時(shí)間,則調(diào)用ABAP模塊,所以當(dāng)fi之一滿足條件時(shí),mod1被調(diào)用,當(dāng)fi或gi滿足條件時(shí),mod2調(diào)用。
五. 輸入檢查
1.檢查單個(gè)字段
field spfli-airpfrom MODULE check_fr_airport.module check_fr_airport input.select single * from sairport into it_spfli where id = spfli-airpfrom.if sy-subrc <> 0.MESSAGE e003(zp)WITH spfli-airpfrom.ENDIF.endmodule.2.檢查多個(gè)字段
Chain.Field: spfli-carrid, spfli-connid.Module check_flight.Endchain.如果二者之一出現(xiàn)錯(cuò)誤,將觸發(fā)錯(cuò)誤消息,兩個(gè)字段也均可輸入。
第二篇:數(shù)字電路與邏輯設(shè)計(jì)(4月教案)
中規(guī)模通用集成電路及其應(yīng)用
教學(xué)內(nèi)容:本節(jié)內(nèi)容是針對(duì)上節(jié)組合邏輯電路分析的推廣,主要介紹采用中、大規(guī)模集成電路組成數(shù)字系統(tǒng)的方法以及應(yīng)用。包括使用最廣泛的中規(guī)模組合邏輯集成電路有二進(jìn)制并行加法器、譯碼器、編碼器、多路選擇器和多路分配器等。
教學(xué)重點(diǎn):加法器和譯碼器的功能,設(shè)計(jì)應(yīng)用的方法和技巧。教學(xué)難點(diǎn):并行和串行集成電路的設(shè)計(jì)思想。
教學(xué)方法:課堂教學(xué)為主,輔以恰當(dāng)?shù)膶?shí)驗(yàn)。緊密結(jié)合前面所學(xué)的基礎(chǔ)內(nèi)容,用豐富詳盡的例題,讓學(xué)生充分理解集成芯片設(shè)計(jì)方法,并通過課堂練習(xí)掌握學(xué)生學(xué)習(xí)情況。課后配套實(shí)驗(yàn),讓學(xué)生透徹理解課堂所學(xué)。
教學(xué)要求:了解集成電路的分類,重點(diǎn)掌握加法器和譯碼器的設(shè)計(jì),以及其應(yīng)用方法。
7.1常用中規(guī)模組合邏輯電路
教學(xué)內(nèi)容:(1)熟悉常用中規(guī)模通用集成電路的邏輯符號(hào)、基本邏輯功能、外部特性和使用方法。(2)常用中規(guī)模通用集成電路作為基本部件,恰當(dāng)?shù)?、靈活地、充分地利用它們完成各種邏輯電路的設(shè)計(jì),有
效地實(shí)現(xiàn)各種邏輯功能。
教學(xué)重點(diǎn):二進(jìn)制并行加法器和譯碼器。
教學(xué)難點(diǎn):二進(jìn)制并行加法器和譯碼器功能、結(jié)構(gòu)、外部特性及應(yīng)用。
教學(xué)方法:課堂教學(xué)為主,通過提問和練習(xí)掌握中規(guī)模通用集成電路功能和應(yīng)用。
采用中、大規(guī)模集成電路組成數(shù)字系統(tǒng)具有體積小、功耗低、可靠性高等優(yōu)點(diǎn),且易于設(shè)計(jì)、調(diào)試和維護(hù)。
使用最廣泛的中規(guī)模組合邏輯集成電路有:
★ 二進(jìn)制并行加法器
★ 譯碼器 ★ 編碼器
★ 多路選擇器 ★ 多路分配器等
7.1.1二進(jìn)制并行加法器
一.定義
二進(jìn)制并行加法器:是一種能并行產(chǎn)生兩個(gè)二進(jìn)制數(shù)算術(shù)和的組合邏輯部件.二.分類及典型產(chǎn)品 按其進(jìn)位方式的不同,可分為串行進(jìn)位二進(jìn)制并行加法器和超前進(jìn)位二進(jìn)制并行加法器兩種類型。
1.串行進(jìn)位二進(jìn)制并行加法器:由全加器級(jí)聯(lián)構(gòu)成,高位的進(jìn)位依賴于低位的進(jìn)位。典型芯片有四位二進(jìn)制并行加法器T692。四位二進(jìn)制并行加法器T692的結(jié)構(gòu)框圖如圖7.1所示。
圖7.1 T692的結(jié)構(gòu)框圖
串行進(jìn)位二進(jìn)制并行加法器的特點(diǎn)是:被加數(shù)和加數(shù)的各位能同時(shí)并行到達(dá)各位的輸入端,而各位全加器的進(jìn)位輸入則是按照由低位向高位逐級(jí)串行傳遞的,各進(jìn)位形成一個(gè)進(jìn)位鏈。由于每一位相加的和都與本位進(jìn)位輸入有關(guān),所以,最高位必須等到各低位全部相加完成并送來(lái)進(jìn)位信號(hào)之后才能產(chǎn)生運(yùn)算結(jié)果。顯然,這種加法器運(yùn)算速度較慢,而且位數(shù)越多,速度就越低。
為了提高加法器的運(yùn)算速度,必須設(shè)法減小或去除由于進(jìn)位信號(hào)逐級(jí)傳送所花的時(shí)間,使各位的進(jìn)位直接由加數(shù)和被加數(shù)來(lái)決定,而不需依賴低位進(jìn)位。根據(jù)這一思想設(shè)計(jì)的加法器稱為超前進(jìn)位(又稱先行進(jìn)位)二進(jìn)制并行加法器。
2.超前進(jìn)位二進(jìn)制并行加法器:由邏輯電路根據(jù)輸入信號(hào)同時(shí)形成各位向高位的進(jìn)位,又稱為先行進(jìn)位二進(jìn)制并行加法器或者并行進(jìn)位二進(jìn)制并行加法器。典型芯片有四位二進(jìn)制并行加法器74LS283。
四位二進(jìn)制并行加法器74LS283構(gòu)成思想如下:
第i位全加器的進(jìn)位輸出函數(shù)表達(dá)式為
Ci = AiBi+(Ai+Bi)Ci-1
令 Ai+Bi→Pi(進(jìn)位傳遞函數(shù))
AiBi→Gi(進(jìn)位產(chǎn)生函數(shù))
則有 Ci=PiCi-1+Gi 于是,當(dāng)i=1、2、3、4時(shí),可得到4位并行加法器各位的進(jìn)位輸出函數(shù)表達(dá)式為
C1=P1C0+G1
C2=P2C1+G2=P2P1C0+P2G1+GC3=P3C2+G3=P3P2P1C0+P3P2G1+P3G2+G3
C4=P4C3+G4=P4P3P2P1C0+P4P3P2G1+P4P3G2+P4G3+G4
由于C1~C4是Pi、Gi和C0的函數(shù),而Pi、Gi又是 Ai、Bi的函數(shù),所以,在輸入Ai、Bi和C0之后,可以同時(shí)產(chǎn)生C1~C4。通常將根據(jù)Pi、Gi和C0形成C1~C4的邏輯電路稱為先行進(jìn)位發(fā)生器。采用先行進(jìn)位發(fā)生器的并行加法器稱為超前進(jìn)位二進(jìn)制并行加法器。
三.四位二進(jìn)制并加法器的外部特性和邏輯符號(hào) 1.外部特性
74LS283、4008芯片的管腳排列圖如圖7.2(a)所示。圖中,VCC B2 A2 S2 B3 A3 S3 C3 16 15 14 13 12 11 10 974LS283 1 2 3 4 5 6 7 8S1 B1 A1 S0 B0 A0 C0-1 GNDTTL加法器74LS283引腳圖VDDB3C3 S3 S2 S1 S0 C0-1 16 15 14 13 12 11 10 94008 1 2 3 4 5 6 7 8A3 B2 A2 B1 A1 B0 A0 VSSCMOS加法器4008引腳圖圖7.2 74LS283,4008的管腳排列圖和邏輯符號(hào) A4、A3、A2、A1----------二進(jìn)制被加數(shù); B4、B3、B2、B1----------二進(jìn)制加數(shù); F4、F3、F2、F1----------相加產(chǎn)生的和數(shù);
C0----來(lái)自低位的進(jìn)位輸入;FC4----向高位的進(jìn)位輸出。2.邏輯符號(hào)
四位二進(jìn)制并行加法器邏輯符號(hào)如圖7.2所示。
四.應(yīng)用舉例
二進(jìn)制并行加法器除實(shí)現(xiàn)二進(jìn)制加法運(yùn)算外,還可實(shí)現(xiàn)代碼轉(zhuǎn)換、二進(jìn)制減法運(yùn)算、二進(jìn)制乘法運(yùn)算、十進(jìn)制加法運(yùn)算等功能。下面舉例說(shuō)明。
例1 用4位二進(jìn)制并行加法器設(shè)計(jì)一個(gè)將8421碼轉(zhuǎn)換成余3碼的代碼轉(zhuǎn)換電路。例2 用4位二進(jìn)制并行加法器設(shè)計(jì)一個(gè)4位二進(jìn)制并行加法/減法器。
例3 用一個(gè)4位二進(jìn)制并行加法器和六個(gè)與門設(shè)計(jì)一個(gè)乘法器,實(shí)現(xiàn)A×B,其中A=a3a2a1,B= b2b1.例4 用4位二進(jìn)制并行加法器設(shè)計(jì)一個(gè)用余3碼表示的1位十進(jìn)制數(shù)加法器。
7.1.2譯碼器和編碼器
譯碼器(Decoder)和編碼器(Encoder)是數(shù)字系統(tǒng)中廣泛使用的多輸入多輸出組合邏輯部件。
一.譯碼器
譯碼器的功能是對(duì)具有特定含義的輸入代碼進(jìn)行“翻譯”,將其轉(zhuǎn)換成相應(yīng)的輸出信號(hào)。
譯碼器的種類很多,常見的有二進(jìn)制譯碼器、二-十進(jìn)制譯碼器和數(shù)字顯示譯碼器。
1.二進(jìn)制譯碼器
(1)定義
二進(jìn)制譯碼器:能將n個(gè)輸入變量變換成2個(gè)輸出函數(shù),且輸出函數(shù)與輸入變量構(gòu)成的最小項(xiàng)具有對(duì)應(yīng)關(guān)系
n的一種多輸出組合邏輯電路。
(2)特點(diǎn)
● 二進(jìn)制譯碼器一般具有n個(gè)輸入端、2個(gè)輸出端和一個(gè)(或多個(gè))使能輸入端。
● 在使能輸入端為有效電平時(shí),對(duì)應(yīng)每一組輸入代碼,僅一個(gè)輸出端為有效電平,其余輸出端為無(wú)效電平(與有效電平相反)。
● 有效電平可以是高電平(稱為高電平譯碼),也可以是低電平(稱為低電平譯碼)。
(3)典型芯片
常見的MSI二進(jìn)制譯碼器有2-4線(2輸入4輸出)譯碼器、3-8線(3輸入8輸出)譯碼器和4-16線(4輸入16輸出)譯碼器等。書P231所示分別是74LS138型3-8線譯碼器的管腳排列圖和邏輯符號(hào)。
n2.二-十進(jìn)制譯碼器
二-十進(jìn)制譯碼器的功能:將4位BCD碼的10組代碼翻譯成10個(gè)十進(jìn)制數(shù)字符號(hào)對(duì)應(yīng)的輸出信號(hào)。
例如,常用芯片T331是一個(gè)將8421碼轉(zhuǎn)換成十進(jìn)制數(shù)字的譯碼器,其輸入A3~A0為8421碼,輸出Y0~Y9分別代表十進(jìn)制數(shù)字0~9。該譯碼器的輸出為低電平有效。其次,對(duì)于8421碼中不允許出現(xiàn)的6個(gè)非法碼(1010~1111),譯碼器輸出端Y0~Y9均無(wú)低電平信號(hào)產(chǎn)生,即譯碼器對(duì)這6個(gè)非法碼拒絕翻譯。這種譯碼器的優(yōu)點(diǎn)是當(dāng)輸入端出現(xiàn)非法碼時(shí),電路不會(huì)產(chǎn)生錯(cuò)誤譯碼。(該譯碼器的邏輯電路圖和真值表見教材中有關(guān)部分)
3.數(shù)字顯示譯碼器
數(shù)字顯示譯碼器是不同于上述譯碼器的另一種譯碼器。在數(shù)字系統(tǒng)中,通常需要將數(shù)字量直觀地顯示出來(lái),一方面供人們直接讀取處理結(jié)果,另一方面用以監(jiān)視數(shù)字系統(tǒng)工作情況。因此,數(shù)字顯示電路是許多數(shù)字設(shè)備不可缺少的部分。
數(shù)字顯示譯碼器是驅(qū)動(dòng)顯示器件(如熒光數(shù)碼管、液晶數(shù)碼管等)的核心部件,它可以將輸入代碼轉(zhuǎn)換成相應(yīng)數(shù)字,并在數(shù)碼管上顯示出來(lái)。
常用的數(shù)碼管由七段或八段構(gòu)成字形,與其相對(duì)應(yīng)的有七段數(shù)字顯示譯碼器和八段數(shù)字顯示譯碼器。例如,中規(guī)模集成電路74LS47,是一種常用的七段顯示譯碼器,該電路的輸出為低電平有效,即輸出為0時(shí),對(duì)應(yīng)字段點(diǎn)亮;輸出為1時(shí)對(duì)應(yīng)字段熄滅。該譯碼器能夠驅(qū)動(dòng)七段顯示器顯示0~15共16個(gè)數(shù)字的字形。輸入A3、A2、A1和A0接收4位二進(jìn)制碼,輸出Qa、Qb、Qc、Qd、Qe、Qf和Qg分別驅(qū)動(dòng)七段顯示器的a、b、c、d、e、f和g段。(74LS47邏輯圖和真值表可參見教材中有關(guān)部分。)
七段譯碼顯示原理圖如圖7.8(a)所示,圖7.8(b)給出了七段顯示筆畫與0~15共16個(gè)數(shù)字的對(duì)應(yīng)關(guān)系。
圖7.8 七段譯碼顯示原理及筆畫與數(shù)字關(guān)系
4.譯碼器應(yīng)用舉例
譯碼器在數(shù)字系統(tǒng)中的應(yīng)用非常廣泛,它的典型用途是實(shí)現(xiàn)存儲(chǔ)器的地址譯碼、控制器中的指令譯碼、代碼翻譯、顯示譯碼等。除此之外,還可用譯碼器實(shí)現(xiàn)各種組合邏輯功能。下面 舉例說(shuō)明在邏輯設(shè)計(jì)中的應(yīng)用。 例1 用3-8線譯碼器T4138和適當(dāng)?shù)呐c非門實(shí)現(xiàn)全減器的功能。例2 用譯碼器和與非門實(shí)現(xiàn)邏輯函數(shù) F(A,B,C,D)=∑m(2,4,6,8,10,12,14)
二.編碼器
編碼器的功能恰好與譯碼器相反,它是對(duì)輸入信號(hào)按一定規(guī)律進(jìn)行編排,使每組輸出代碼具有其特定的含義。
編碼器按照被編信號(hào)的不同特點(diǎn)和要求,有各種不同的類型,最常見的有二-十進(jìn)制編碼器(又稱十進(jìn)制-BCD碼編碼器)和優(yōu)先編碼器。
1.二-十進(jìn)制編碼器
(1)功能:將十進(jìn)制數(shù)字0~9分別編碼成4位BCD碼。
(2)結(jié)構(gòu)框圖
這種編碼器由10個(gè)輸入端代表10個(gè)不同數(shù)字,4個(gè)輸出端代表相應(yīng)BCD代碼。結(jié)構(gòu)框圖如圖7.11所示。
圖7.11 編碼器結(jié)構(gòu)框圖
注意:二-十進(jìn)制編碼器的輸入信號(hào)是互斥的,即任何時(shí)候只允許一個(gè)輸入端為有效信號(hào)。
最常見的有8421碼編碼器,例如,按鍵式8421碼編碼器(詳見教材中有關(guān)內(nèi)容)。
2.優(yōu)先編碼器
(1)功能:識(shí)別輸入信號(hào)的優(yōu)先級(jí)別,選中優(yōu)先級(jí)別最高的一個(gè)進(jìn)行編碼,實(shí)現(xiàn)優(yōu)先權(quán)管理。
優(yōu)先編碼器是數(shù)字系統(tǒng)中實(shí)現(xiàn)優(yōu)先權(quán)管理的一個(gè)重要邏輯部件。它與上述二-十進(jìn)制編碼器的最大區(qū)別是,優(yōu)先編碼器的各個(gè)輸入不是互斥的,它允許多個(gè)輸入端同時(shí)為有效信號(hào)。優(yōu)先編碼器的每個(gè)輸入具有不同的優(yōu)先級(jí)別,當(dāng)多個(gè)輸入信號(hào)有效時(shí),它能識(shí)別輸入信號(hào)的優(yōu)先級(jí)別,并對(duì)其中優(yōu)先級(jí)別最高的一個(gè)進(jìn)行編碼,產(chǎn)生相應(yīng)的輸出代碼。
(2)典型芯片
書P238所示為常見MSI優(yōu)先編碼器74LS148的管腳排列圖和邏輯符號(hào)。書P23874LS148
真值表。
3.應(yīng)用舉例
例 用優(yōu)先編碼器74LS148設(shè)計(jì)一個(gè)能裁決16級(jí)不同中斷請(qǐng)求的中斷優(yōu)先編碼器。
7.1.3多路選擇器和多路分配器
多路選擇器和多路分配器是數(shù)字系統(tǒng)中常用的中規(guī)模集成電路。其基本功能是完成對(duì)多路數(shù)據(jù)的選擇與分配、在公共傳輸線上實(shí)現(xiàn)多路數(shù)據(jù)的分時(shí)傳送。此外,還可完成數(shù)據(jù)的并-串轉(zhuǎn)換、序列信號(hào)產(chǎn)生等多種邏輯功能以及實(shí)現(xiàn)各種邏輯函數(shù)功能。因而,屬于通用中規(guī)模集成電路。
一.多路選擇器
多路選擇器(Multiplexer)又稱數(shù)據(jù)選擇器或多路開關(guān),常用MUX表示。它是一種多路輸入、單路輸出的組合邏輯電路。
1.邏輯特性
(1)邏輯功能:從多路輸入中選中某一路送至輸出端,輸出對(duì)輸入的選擇受選擇控制量控制。通常,對(duì)于一個(gè)具有2路輸入和一路輸出的多路選擇器有n個(gè)選擇控制變量,控制變量的每種取值組合對(duì)應(yīng)選中一路輸入送至輸出。
(2)構(gòu)成思想: 多路選擇器的構(gòu)成思想相當(dāng)于一個(gè)單刀多擲開關(guān),即 n
2.典型芯片
常見的MSI多路選擇器有4路選擇器、8路選擇器和16路選擇器。
(1)四路數(shù)據(jù)選擇器74153的管腳排列圖和邏輯符號(hào)
書P240(2)四路數(shù)據(jù)選擇器74153的功能表
四路數(shù)據(jù)選擇器的功能表書P240。
(3)四路數(shù)據(jù)選擇器74153的輸出函數(shù)表達(dá)式
由功能表可知,當(dāng)A1A0=00時(shí),W=D0;當(dāng)A1A0 =01時(shí),W=D1;當(dāng)A1A0 =10時(shí),W=D2;當(dāng)A1A0 =11時(shí),W=D3。即在A1A0的控制下,依次選中D0~D3端的信息送至輸出端。其輸出表達(dá)式為
式中,mi為選擇變量A1、A0組成的最小項(xiàng),Di為i端的輸入數(shù)據(jù),取值等于0或1。 類似地,可以寫出2路選擇器的輸出表達(dá)式 n
式中,mi為選擇控制變量An-1,An-2,…,A1,A0組成的最小項(xiàng);Di為2n路輸入中的第i路數(shù)據(jù)輸入,取值0或1。
3.應(yīng)用舉例
多路選擇器除完成對(duì)多路數(shù)據(jù)進(jìn)行選擇的基本功能外,在邏輯設(shè)計(jì)中主要用來(lái)實(shí)現(xiàn)各種邏輯函數(shù)功能。
(1)用具有n個(gè)選擇控制變量的多路選擇器實(shí)現(xiàn)n個(gè)變量函數(shù)
一般方法:將函數(shù)的n個(gè)變量依次連接到MUX的n個(gè)選擇變量端,并將函數(shù)表示成最小項(xiàng)之和的形式。若函數(shù)表達(dá)式中包含最小項(xiàng)mi,則相應(yīng)MUX的Di接1,否則Di接0。
例1 用多路選擇器實(shí)現(xiàn)如下邏輯函數(shù)的功能 F(A,B,C)=∑m(2,3,5,6)
(2)用具有n個(gè)選擇控制變量的多路選擇器實(shí)現(xiàn)n+1個(gè)變量的函數(shù)
一般方法:從函數(shù)的n+1個(gè)變量中任n個(gè)作為MUX選擇控制變量,并根據(jù)所選定的選擇控制變量將函數(shù)變換成如下形式:
以確定各數(shù)據(jù)輸入Di。假定剩余變量為X,則Di的取值只可能是0、1或X,X四者之一。例2 假定采用4路數(shù)據(jù)選擇器實(shí)現(xiàn)邏輯函數(shù)
F(A,B,C)=∑m(2,3,5,6) 上述兩種方法表明:用具有n個(gè)選擇控制變量的MUX實(shí)現(xiàn)n個(gè)變量的函數(shù)或n+1個(gè)變量的函數(shù)時(shí),不需要任何輔助電路,可由MUX直接實(shí)現(xiàn)。
(3)用具有n個(gè)選擇控制變量的多路選擇器實(shí)現(xiàn)n+1個(gè)以上變量的函數(shù)
當(dāng)函數(shù)的變量數(shù)比MUX的選擇控制變量數(shù)多兩個(gè)以上時(shí),一般需要加適當(dāng)?shù)倪壿嬮T輔助實(shí)現(xiàn)。在確定各數(shù)據(jù)輸入時(shí),通常借助卡諾圖。
例3 用4路選擇器實(shí)現(xiàn)如下4變量邏輯函數(shù)的功能 F(A,B,C,D)=∑m(1,2,4,9, 10,11,12,14,15)
例4 用一片T580雙4路選擇器實(shí)現(xiàn)4變量多輸出函數(shù)。函數(shù)表達(dá)式為
F1(A,B,C,D)=∑m(0,1,5,7,10,13,15)
F2(A,B,C,D)=∑m(8,10,12,13,15)
二.多路分配器
多路分配器(Demultiplexer)又稱數(shù)據(jù)分配器,常用DEMUX表示。多路分配器的結(jié)構(gòu)與多路選擇器正好相反,它是一種單輸入、多輸出組合邏輯部件,由選擇控制變量決定輸入從哪一路輸出。書P245為4路分配器的邏輯符號(hào)和功能表。
多路分配器常與多路選擇器聯(lián)用,以實(shí)現(xiàn)多通道數(shù)據(jù)分時(shí)傳送。通常在發(fā)送端由MUX將各路數(shù)據(jù)分時(shí)送上公共傳輸線(總線),接收端再由DEMUX將公共線上的數(shù)據(jù)適時(shí)分配到相應(yīng)的輸出端。圖7.21所示是利用一根數(shù)據(jù)傳輸線分時(shí)傳送8路數(shù)據(jù)的示意圖,在公共選擇控制變量 ABC的控制下,實(shí)現(xiàn)Di-fi的傳送(i=0~7)。
圖7.21 8路數(shù)據(jù)傳輸示意圖
以上對(duì)幾種最常用的MSI組合邏輯電路進(jìn)行了介紹,在邏輯設(shè)計(jì)時(shí)可以靈活使用這些電路實(shí)現(xiàn)各種邏輯功能。
例5 用8路選擇器和3-8線譯碼器構(gòu)造一個(gè)3位二進(jìn)制數(shù)等值比較器。
解 設(shè)比較的兩個(gè)3位二進(jìn)制數(shù)分別為ABC和XYZ,將譯碼器和多路選擇器按圖 7.22所示進(jìn)行連接,即可實(shí)現(xiàn)ABC和XYZ的等值比較。
圖7.22 比較器邏輯電路圖
從圖7.22可知,若ABC=XYZ,則多路選擇器的輸出F=0,否則F=1。例如,當(dāng)ABC=010時(shí),譯碼器輸出Y2=0,其余均為1。若多路選擇器選擇控制變量XYZ=ABC=010,則選通D2送至輸出端F,由于D2=Y2=0,故F=0;若XYZ≠010,則多路選擇器會(huì)選擇D2之外的其他數(shù)據(jù)輸入送至輸出端F,由于與其余數(shù)據(jù)輸入端相連的譯碼器輸出均為1,故F為1。
用類似方法,采用合適的譯碼器和多路選擇器可構(gòu)成多位二進(jìn)制數(shù)比較器。
3觸發(fā)器
教學(xué)內(nèi)容:本章開始進(jìn)入時(shí)序電路分析設(shè)計(jì),對(duì)于時(shí)序電路最基本元器件觸發(fā)器要掌握常用的RS觸發(fā)器、JK觸發(fā)器、D觸發(fā)器、以及鐘控和邊沿RS觸發(fā)器、JK觸發(fā)器、D觸發(fā)器的功能、觸發(fā)方式、外部工作特性。
教學(xué)重點(diǎn):各種觸發(fā)器的觸發(fā)方式和功能。教學(xué)難點(diǎn):觸發(fā)器構(gòu)成方式。
教學(xué)方法:課堂教學(xué)為主,輔以恰當(dāng)?shù)膶?shí)驗(yàn)。緊密結(jié)合前面所學(xué)的基礎(chǔ)內(nèi)容,用豐富詳盡的例題,讓學(xué)生充分理解集成芯片設(shè)計(jì)方法,并通過課堂練習(xí)掌握學(xué)生學(xué)習(xí)情況。課后配套實(shí)驗(yàn),讓學(xué)生透徹理解課堂所學(xué)。
教學(xué)要求:重點(diǎn)掌握觸發(fā)器的工作原理,掌握各種觸發(fā)器的觸發(fā)方式和功能以及應(yīng)用場(chǎng)合的不同,了解觸發(fā)器的外部工作特性。
3.4觸
發(fā)
器
觸發(fā)器是一種具有記憶功能的電子器件。它具有如下特點(diǎn):
☆ 有兩個(gè)互補(bǔ)的輸出端Q和Q;
☆ 有兩個(gè)穩(wěn)定狀態(tài)。通常將Q=1和Q=0稱為“1”狀態(tài),而把Q=0和Q=1稱為“0” 狀態(tài)。當(dāng)輸入信號(hào)不發(fā)生變化時(shí),觸發(fā)器狀態(tài)穩(wěn)定不變;
☆ 在一定輸入信號(hào)作用下,觸發(fā)器可以從一個(gè)穩(wěn)定狀態(tài)轉(zhuǎn)移到另一個(gè)穩(wěn)定狀態(tài)。通常把輸入信號(hào)作用之前的狀態(tài)稱為現(xiàn)態(tài),記作Qn 和Qn,而把輸入信號(hào)作用后的狀態(tài)稱為觸發(fā)器的次態(tài),記作Q(n+1)和Q(n+1)。
為了簡(jiǎn)單起見,現(xiàn)態(tài)一般省略的上標(biāo)n,就用Q 和Q 表示。顯然,次態(tài)是現(xiàn)態(tài)和輸入的函數(shù)。
觸發(fā)器是存儲(chǔ)一位二進(jìn)制信息的理想器件。集成觸發(fā)器的種類很多,分類方法也各不相同,但其結(jié)構(gòu)都是由邏輯門加上適當(dāng)?shù)姆答伨€耦合而成。
下面從實(shí)際應(yīng)用出發(fā),介紹幾種最常用的集成觸發(fā)器,重點(diǎn)掌握它們的外部工作特性。
3.4.1基本R-S觸發(fā)器
基本R-S觸發(fā)器是直接復(fù)位置位觸發(fā)器的簡(jiǎn)稱,由于它是構(gòu)成各種功能觸發(fā)器的基本部件,故稱為基本R-S觸發(fā)器。
一.用與非門構(gòu)成的基本R-S觸發(fā)器
1.組成
由兩個(gè)與非門交叉耦合構(gòu)成,其邏輯圖和邏輯符號(hào)分別見書P95。
圖中,Q和Q為觸發(fā)器的兩個(gè)互補(bǔ)輸出端;R和S為觸發(fā)器的兩個(gè)輸入端,R稱為置0端或者復(fù)位端,S稱為置1端或置位端;
在邏輯符號(hào)輸入端加的小圓圈表示低電平或負(fù)脈沖有效,即僅當(dāng)?shù)碗娖交蜇?fù)脈沖作用于輸入端時(shí),觸發(fā)器狀態(tài)才能發(fā)生變化(常稱為翻轉(zhuǎn)),有時(shí)稱這種情況為低電平或負(fù)脈沖觸發(fā)。
2. 工作原理
(1)若R=1,S=1,則觸發(fā)器保持原來(lái)狀態(tài)不變。
(2)若R=1,S=0,則觸發(fā)器置為1狀態(tài)。
(3)若R=0,S=1,則觸發(fā)器置為0狀態(tài)。(4)不允許出現(xiàn)R=0,S=0。
3.邏輯功能及其描述
由與非門構(gòu)成的R-S觸發(fā)器的邏輯功能如表3.5所示。表中“d”表示觸發(fā)器次態(tài)不確定。
表3.5 基本R-S觸發(fā)器功能表
R S 0 0 0 1 1 0 1 1
Q(n+1)d 0 1 Q
功能說(shuō)明 不定 置0 置1 不變 觸發(fā)器的次態(tài)方程: Q(n+1)= S + R·Q 因?yàn)镽、S不允許同時(shí)為0,所以輸入必須滿足約束條件: R+S=1(約束方程)
3.4.2幾種常用的時(shí)鐘控制觸發(fā)器
實(shí)際應(yīng)用中,往往要求觸發(fā)器按一定的時(shí)間節(jié)拍動(dòng)作,即讓觸發(fā)器狀態(tài)的變化由時(shí)鐘脈沖和輸入信號(hào)共同決定。因此,在觸發(fā)器的輸入端增加了時(shí)鐘控制信號(hào),這類觸發(fā)器由時(shí)鐘脈沖確定狀態(tài)轉(zhuǎn)換的時(shí)刻(何時(shí)轉(zhuǎn)換),由輸入信號(hào)確定觸發(fā)器狀態(tài)轉(zhuǎn)換的方向(如何轉(zhuǎn)換)。這種具有時(shí)鐘脈沖控制的觸發(fā)器稱為“時(shí)鐘控制觸發(fā)器”或者“定時(shí)觸發(fā)器”。
下面介紹四種最常用的時(shí)鐘控制觸發(fā)器。
一.時(shí)鐘控制R-S觸發(fā)器
時(shí)鐘控制R-S觸發(fā)器的邏輯圖如圖P100所示。
1.組成
它由四個(gè)與非門構(gòu)成。其中,與非門G1、G2構(gòu)成基本R-S觸發(fā)器;與非門G3、G4組成控制電路,通常稱為控制門。
2.工作原理
(1)無(wú)時(shí)鐘脈沖作用(即時(shí)鐘控制端C為0)時(shí):控制門G3、G4被封鎖。此時(shí),不管R、S端的輸入為何值,兩個(gè)控制門的輸出均為1,觸發(fā)器狀態(tài)保持不變。
(2)有時(shí)鐘脈沖作用(即時(shí)鐘控制端C為1)時(shí): 控制門G3、G4被打開,這時(shí)輸入端R、S的值可以通過控制門作用于上面的基本R-S觸發(fā)器。具體如下:
? ? ? ? 當(dāng)R=0,S=0時(shí),控制門G3、G4的輸出均為1,觸發(fā)器狀態(tài)保持不變;
當(dāng)R=0,S=1時(shí),控制門G3、G4的輸出分別為1和0,觸發(fā)器狀態(tài)置成1狀態(tài);
當(dāng)R=1,S=0時(shí),控制門G3、G4的輸出分別為0和1,觸發(fā)器狀態(tài)置成0狀態(tài);
當(dāng)R=1,S=1時(shí),控制門G3、G4的輸出均為0,觸發(fā)器狀態(tài)不確定(不允許)。
由此可見,這種觸發(fā)器的工作過程是由時(shí)鐘信號(hào)C和輸入信號(hào)R、S共同作用的;時(shí)鐘C控制轉(zhuǎn)換時(shí)間,輸入R和S確定轉(zhuǎn)換后的狀態(tài)。因此,它被稱作時(shí)鐘控制R-S觸發(fā)器,其邏輯符號(hào)如圖3.32(b)所示。
時(shí)鐘控制R-S觸發(fā)器的功能表、次態(tài)方程和約束條件與由或非門構(gòu)成的R-S觸發(fā)器相同。
在時(shí)鐘控制觸發(fā)器中,時(shí)鐘信號(hào)C是一種固定的時(shí)間基準(zhǔn),通常不作為輸入信號(hào)列入表中。對(duì)觸發(fā)器功能進(jìn)行描述時(shí),均只考慮時(shí)鐘作用(C=1)時(shí)的情況。
注意!時(shí)鐘控制R-S觸發(fā)器雖然解決了對(duì)觸發(fā)器工作進(jìn)行定時(shí)控制的問題,而且具有結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn),但依然存在如下兩點(diǎn)不足:
? ? 輸入信號(hào)不能同時(shí)為1,即R、S不能同時(shí)為1;
可能出現(xiàn)“空翻”現(xiàn)象。
所謂“空翻”是指在同一個(gè)時(shí)鐘脈沖作用期間觸發(fā)器狀態(tài)發(fā)生兩次或兩次以上變化的現(xiàn)象。引起空翻的原因是在時(shí)鐘脈沖作用期間,輸入信號(hào)依然直接控制著觸發(fā)器狀態(tài)的變化。具體說(shuō),當(dāng)時(shí)鐘C為1時(shí),如果輸入信號(hào)R、S發(fā)生變化,則觸發(fā)器狀態(tài)會(huì)跟著變化,從而使得一個(gè)時(shí)鐘脈沖作用期間引起多次翻轉(zhuǎn)?!翱辗睂⒃斐蔂顟B(tài)的不確定和系統(tǒng)工作的混亂,這是不允許的。因此,時(shí)鐘控制R-S觸發(fā)器要求在時(shí)鐘脈沖作用期間輸入信號(hào)保持不變。
由于時(shí)鐘控制R-S觸發(fā)器的上述缺點(diǎn),使它的應(yīng)用受到很大限制。一般只用它作為數(shù)碼寄存器而不宜用來(lái)構(gòu)成具有移位和計(jì)數(shù)功能的邏輯部件。
二.D
為了解決時(shí)鐘控制R-S觸發(fā)器在輸入端R、S同時(shí)為1時(shí)狀態(tài)不確定的問題,通常對(duì)時(shí)鐘控制R-S觸發(fā)器的觸發(fā)器
控制電路稍加修改,使之變成如圖3.33(a)所示的形式,這樣便形成了只有一個(gè)輸入端的D觸發(fā)器。其邏輯符號(hào)如圖P102所示。
修改后的控制電路除了實(shí)現(xiàn)對(duì)觸發(fā)器工作的定時(shí)控制外,另外一個(gè)作用是在時(shí)鐘脈沖作用期間(C=1時(shí)),將輸入信號(hào)D轉(zhuǎn)換成一對(duì)互補(bǔ)信號(hào)送至基本R-S觸發(fā)器的兩個(gè)輸入端,使基本R-S觸發(fā)器的兩個(gè)輸入信號(hào)只可能是01或者10兩種組合,從而消除了狀態(tài)不確定現(xiàn)象,解決了對(duì)輸入的約束問題。
工作原理如下:
? ? 當(dāng)無(wú)時(shí)鐘脈沖作用時(shí),即C=0時(shí),控制電路被封鎖,無(wú)論輸入D為何值,與非門G3、G4輸出均為1,觸發(fā)器狀態(tài)保持不變。
當(dāng)時(shí)鐘脈沖作用時(shí),即使C=1時(shí),若D=0,則門G4輸出為1,門G3輸出為0,觸發(fā)器狀態(tài)被置0;若D=1,則門G4輸出為0,門G3輸出為1,觸發(fā)器狀態(tài)被置1。
由此可見,在時(shí)鐘作用時(shí),D觸發(fā)器狀態(tài)的變化僅取決于輸入信號(hào)D,而與現(xiàn)態(tài)無(wú)關(guān)。其次態(tài)方程為
Q(n+1)= D
D觸發(fā)器的邏輯功能可用表3.7所示的功能表描述。
表3.7 D觸發(fā)器功能表
D 0 1
Q(n+1)0 1
上述D觸發(fā)器在時(shí)鐘作用期間要求輸入信號(hào)D不能發(fā)生變化,即依然存在“空翻”現(xiàn)象。工作波形如下:
為了進(jìn)一步解決“空翻”問題,實(shí)際中廣泛使用的集成D觸發(fā)器通常采用維持阻塞結(jié)構(gòu),稱為維持阻塞D觸發(fā)器。典型維持阻塞D觸發(fā)器的邏輯圖和邏輯符號(hào)分別如圖3.34(a)和(b)所示。圖中的D輸入端稱為數(shù)據(jù)輸入端;RD和SD分別稱為直接置“0”端和直接置“1” 端。它們均為低電平有效,即在不作直接置“0”和置“1”操作時(shí),保持為高電平。
圖3.34 維持阻塞D觸發(fā)器
該觸發(fā)器在時(shí)鐘脈沖沒有到來(lái)(C=0)時(shí),無(wú)論D端狀態(tài)怎樣變化,都保持原有狀態(tài)不變;當(dāng)時(shí)鐘脈沖到來(lái)(C=1)時(shí),觸發(fā)器在時(shí)鐘脈沖的上升邊沿將D輸入端的數(shù)據(jù)可靠地置入;在上升沿過后的時(shí)鐘脈沖期間,D的值可以隨意改變,觸發(fā)器的狀態(tài)始終以時(shí)鐘脈沖上升沿時(shí)所采樣的值為準(zhǔn)。由于利用了脈沖的邊沿作用和維持阻塞作用,從而有效地防止了“空翻”現(xiàn)象。
工作波形如下:
例如,若輸入D=1,在時(shí)鐘脈沖的上升沿,把“1”送入觸發(fā)器,使Q=1,Q=0。在觸發(fā)器進(jìn)入“1”狀態(tài)后,由于置1維持線和置0阻塞線的低電平0的作用,即使輸入端D由1變?yōu)?,觸發(fā)器的“1”狀態(tài)也不會(huì)改變;同理,若D=0,時(shí)鐘脈沖的上升沿將使觸發(fā)器的狀態(tài)變?yōu)镼=0,Q=1。由于置0維持線和置1阻塞線為低電平0,所以,即使輸入端D由0變?yōu)?,觸發(fā)器的狀態(tài)也維持0態(tài)不變??梢姡撾娐繁WC了觸發(fā)器的狀態(tài)在時(shí)鐘脈沖作用期間只變化一次。
維持阻塞D觸發(fā)器的邏輯功能與前述D觸發(fā)器的邏輯功能完全相同。實(shí)際中使用的維持阻塞D觸發(fā)器有時(shí)具有幾個(gè)D輸入端,此時(shí),各輸入之間是相“與”的關(guān)系。例如,當(dāng)有三個(gè)輸入端D1、D2和D3時(shí),其次態(tài)方程是 : Q(n+1)= D1·D2·D3
由于維持阻塞D觸發(fā)器的不存在對(duì)輸入的約束問題,克服了空翻現(xiàn)象,抗干擾能力強(qiáng)。因此可用來(lái)實(shí)現(xiàn)寄存、計(jì)數(shù)、移位等功能。其主要缺點(diǎn)是邏輯功能比較簡(jiǎn)單。
三.J-K
為了既解決時(shí)鐘控制R-S觸發(fā)器對(duì)輸入信號(hào)的約束問題,又能使觸發(fā)器保持有兩個(gè)輸入端的作用,可將時(shí)鐘觸發(fā)器
控制R-S觸發(fā)器改進(jìn)成如圖3.35(a)所示的形式。即增加兩條反饋線,將觸發(fā)器的輸出Q和Q 交叉反饋到兩個(gè)控制門的輸入端,利用觸發(fā)器兩個(gè)輸出端信號(hào)始終互補(bǔ)的特點(diǎn),有效地解決了在時(shí)鐘脈沖作用期間兩個(gè)輸入同時(shí)為1將導(dǎo)致觸發(fā)器狀態(tài)不確定的問題。修改后,把原來(lái)的輸入端S改成J,R改成K,稱為J-K觸發(fā)器。其邏輯符號(hào)P103所示。
工作原理如下:
(1)在時(shí)鐘脈沖未到來(lái)(C=0)時(shí),無(wú)論輸入端J和K怎樣變化,控制門G3、G4的輸出均為1.觸發(fā)器保持原來(lái)狀態(tài)不變。
(2)在時(shí)鐘脈沖作用(C=1)時(shí),可分為4種情況。
歸納起來(lái),J-K觸發(fā)器的功能表如表3.8所示。
表3.8 J-K觸發(fā)器功能表
J K 0 0 0 1 1 0 1 1
其次態(tài)方程為 : Q
上述J-K觸發(fā)器結(jié)構(gòu)簡(jiǎn)單,且具有較強(qiáng)的邏輯功能,但依然存在“空翻”現(xiàn)象。為了進(jìn)一步解決“空翻”(n+1)
Q(n+1)Q 0 1 Q
功能說(shuō)明 不變 置0 置1 翻轉(zhuǎn)
= J·Q + K·Q
問題,實(shí)際中廣泛采用主從J-K觸發(fā)器。主從J-K觸發(fā)器的邏輯電路圖及邏輯符號(hào)如圖3.36(a)、(b)所示。
圖3.36 主從J-K觸發(fā)器
主從J-K觸發(fā)器由上、下兩個(gè)時(shí)鐘控制R-S觸發(fā)器組成,分別稱為從觸發(fā)器和主觸發(fā)器。主觸發(fā)器的輸出是從觸發(fā)器的輸入,而從觸發(fā)器的輸出又反饋到主觸發(fā)器的輸入。主、從兩個(gè)觸發(fā)器的時(shí)鐘脈沖是反相的。圖中的RD和SD分別為直接置0端和直接置1端。邏輯符號(hào)中時(shí)鐘端的小圓圈表示觸發(fā)器狀態(tài)的改變是在時(shí)鐘脈沖的后沿(下降沿)產(chǎn)生的。
工作原理如下:
● 當(dāng)時(shí)鐘脈沖未到來(lái)時(shí),主觸發(fā)器被封鎖,從觸發(fā)器狀態(tài)由主觸發(fā)器狀態(tài)決定,兩者狀態(tài)相同;
● 當(dāng)時(shí)鐘脈沖到來(lái)時(shí),在時(shí)鐘脈沖的前沿(上升沿)接收輸入信號(hào)并暫存到主觸發(fā)器中,此時(shí)從觸發(fā)器被封鎖,保持原狀態(tài)不變。在時(shí)鐘脈沖的后沿(下降沿),主觸發(fā)器狀態(tài)傳送到從觸發(fā)器,使從觸發(fā)器輸出(即整個(gè)觸發(fā)器輸出)變到新的狀態(tài),而此時(shí)主觸發(fā)器本身被封鎖,不受輸入信號(hào)變化的影響。即該觸發(fā)器是“前沿采樣,后沿定局”。由于整個(gè)觸發(fā)器的狀態(tài)更新是在時(shí)鐘脈沖的后沿發(fā)生的,因此解決了“空翻”的問題。
與前面所述J-K觸發(fā)器相比,主從J-K觸發(fā)器僅進(jìn)行了性能上的改進(jìn),而邏輯功能完全相同。由于該觸發(fā)器具有輸入信號(hào)J和K無(wú)約束、無(wú)空翻、功能較全等優(yōu)點(diǎn),因此,使用方便,應(yīng)用廣泛。
四.T觸發(fā)器
T觸發(fā)器又稱為計(jì)數(shù)觸發(fā)器。如果把J-K觸發(fā)器的兩個(gè)輸入端J和K連接起來(lái),并把連接在一起的輸入端用符號(hào)T表示,就構(gòu)成了T觸發(fā)器。相應(yīng)的邏輯圖和邏輯符號(hào)分別如圖3.37(a)和(b)所示。
圖3.37 T觸發(fā)器
T觸發(fā)器的邏輯功能可直接由J-K觸發(fā)器的次態(tài)方程導(dǎo)出。J-K觸發(fā)器的次態(tài)方程為
Q(n+1)= J·Q + K·Q
將該方程中的J和K均用T代替后,即可得到T觸發(fā)器的次態(tài)方程:
Q(n+1)= T·Q + T·Q
根據(jù)次態(tài)方程,可列出T觸發(fā)器的功能表如表3.9所示。
表3.9 T觸發(fā)器功能表
T 0 1
Q(n+1)Q Q
功能說(shuō)明 不變 翻轉(zhuǎn) 由功能表可知,當(dāng)T=1時(shí),只要有時(shí)鐘脈沖到來(lái),觸發(fā)器狀態(tài)就翻轉(zhuǎn),或由1變?yōu)?或由0變?yōu)?,相當(dāng)于一位二進(jìn)制計(jì)數(shù)器;當(dāng)T=0時(shí),即使有時(shí)鐘脈沖作用,觸發(fā)器狀態(tài)也保持不變。
圖3.37所示的T觸發(fā)器也存在“空翻”現(xiàn)象,實(shí)際數(shù)字電路中使用的集成T觸發(fā)器通常采用主從式結(jié)構(gòu),或者增加維持阻塞功能。集成T觸發(fā)器的邏輯符號(hào)分別如圖3.38(a)、(b)所示,它們除了在性能方面的改進(jìn)外,邏輯功能與上述T觸發(fā)器完全相同。
第三篇:邏輯設(shè)計(jì)心得
序
很早之前就想對(duì)這幾個(gè)月工作經(jīng)歷寫的東西,一是作為自己的總結(jié),二是自己也很 想將自己這段時(shí)間的一些經(jīng)歷和大家分享一下,希望對(duì)初學(xué)者而言能使得他們能少走一 些彎路。只是公司里的事情很多,最近經(jīng)常加班,所以一直拖到現(xiàn)在。
能來(lái)到這家公司應(yīng)該是一種緣份--緣起NIOS。當(dāng)初三月份altera來(lái)我們學(xué)校建立SO PC實(shí)驗(yàn)室的時(shí)候自己還不知道NIOS是什么東西,只是想在altera的FAE講完NIOS后多問他 幾個(gè)時(shí)序約束的問題,然后拷一份PPT回去。但是想不到因?yàn)槟且环軳IOS的培訓(xùn)資料,我 認(rèn)識(shí)了edacn上的cawan,他給我講了很多NIOS的東西,之后是丁哥在SOC版帖了位NIOS大 賽的通知,然后我和隊(duì)友就去報(bào)了名,并去川大參加了NIOS的培訓(xùn),認(rèn)識(shí)了峻龍的FAE------o|> | | | / clk |--------|---------10)禁止用計(jì)數(shù)器分頻后的信號(hào)做其它模塊的時(shí)鐘,而要用改成時(shí)鐘使能的方式,否則這種時(shí)鐘滿天飛的方式對(duì)設(shè)計(jì)的可靠性極為不利,也大大增加了靜態(tài)時(shí)序分析的 復(fù)雜性。如FPGA的輸入時(shí)鐘是25M的,現(xiàn)在系統(tǒng)內(nèi)部要通過RS232與PC通信,要以rs232_ 1xclk的速率發(fā)送數(shù)據(jù)。不要這樣做: always(posedge rs232_1xclk or negedge rst_n)begin...end 而要這樣做:
always(posedge clk_25m or negedge rst_n)begin...else if(rs232_1xclk == 1'b1)...end 11)狀態(tài)機(jī)要寫成3段式的(這是最標(biāo)準(zhǔn)的寫法),即...always @(posedge clk or negedge rst_n)...current_state <= next_state;...always @(current_state...)...case(current_state)...s1: if...next_state = s2;......always @(posedge clk or negedge rst_n)...else a <= 1'b0;c <= 1'b0;c <= 1'b0;//賦默認(rèn)值 case(current_state)s1: a <= 1'b0;//由于上面賦了默認(rèn)值,這里就不用再對(duì)b、c賦值了
s2: b <= 1'b1;s3: c <= 1'b1;default:......3.ALTERA參考設(shè)計(jì)準(zhǔn)則
1)Ensure Clock, Preset, and Clear configurations are free of glitch es.2)Never use Clocks consisting of more than one level of combinatori al logic.3)Carefully calculate setup times and hold times for multi-Clock sy stems.4)Synchronize signals between flipflops in multi-Clock systems when the setup and hold time requirements cannot be met.5)Ensure that Preset and Clear signals do not contain race conditio ns.6)Ensure that no other internal race conditions exist.7)Register all glitch-sensitive outputs.Synchronize all asynchronous inputs.9)Never rely on delay chains for pin-to-pin or internal delays.10)Do not rely on Power-On Reset.Use a master Reset pin to clear al l flipflops.11)Remove any stuck states from state machines or synchronous logic.其它方面的規(guī)范一時(shí)沒有想到,想到了再寫,也歡迎大家補(bǔ)充。
如何提高電路工作頻率
對(duì)于設(shè)計(jì)者來(lái)說(shuō),我們當(dāng)然希望我們?cè)O(shè)計(jì)的電路的工作頻率(在這里如無(wú)特別說(shuō)明,工作頻率指FPGA片內(nèi)的工作頻率)盡量高。我們也經(jīng)常聽說(shuō)用資源換速度,用流水的 方式可以提高工作頻率,這確實(shí)是一個(gè)很重要的方法,今天我想進(jìn)一步去分析該如何提 高電路的工作頻率。
我們先來(lái)分析下是什么影響了電路的工作頻率。
我們電路的工作頻率主要與寄存器到寄存器之間的信號(hào)傳播時(shí)延及clock skew有關(guān)。在FPGA內(nèi)部如果時(shí)鐘走長(zhǎng)線的話,clock skew很小,基本上可以忽略, 在這里為了簡(jiǎn) 單起見,我們只考慮信號(hào)的傳播時(shí)延的因素。
信號(hào)的傳播時(shí)延包括寄存器的開關(guān)時(shí)延、走線時(shí)延、經(jīng)過組合邏輯的時(shí)延(這樣劃 分或許不是很準(zhǔn)確,不過對(duì)分析問題來(lái)說(shuō)應(yīng)該是沒有可以的),要提高電路的工作頻率,我們就要在這三個(gè)時(shí)延中做文章,使其盡可能的小。
我們先來(lái)看開關(guān)時(shí)延,這個(gè)時(shí)延是由器件物理特性決定的,我們沒有辦法去改變,所以我們只能通過改變走線方式和減少組合邏輯的方法來(lái)提高工作頻率。1.通過改變走線的方式減少時(shí)延。
以altera的器件為例,我們?cè)趒uartus里面的timing closure floorplan可以看到有 很多條條塊塊,我們可以將條條塊塊按行和按列分,每一個(gè)條塊代表1個(gè)LAB,每個(gè)LAB里 有8個(gè)或者是10個(gè)LE。它們的走線時(shí)延的關(guān)系如下:同一個(gè)LAB中(最快)< 同列或者同 行 < 不同行且不同列。
我們通過給綜合器加適當(dāng)?shù)募s束(不可貪心,一般以加5%裕量較為合適,比如電路 工作在100Mhz,則加約束加到105Mhz就可以了,貪心效果反而不好,且極大增加綜合時(shí) 間)可以將相關(guān)的邏輯在布線時(shí)盡量布的靠近一點(diǎn),從而減少走線的時(shí)延。(注:約束 的實(shí)現(xiàn)不完全是通過改進(jìn)布局布線方式去提高工作頻率,還有其它的改進(jìn)措施)2.通過減少組合邏輯的減少時(shí)延。
上面我們講了可以通過加約束來(lái)提高工作頻率,但是我們?cè)谧鲈O(shè)計(jì)之初可萬(wàn)萬(wàn)不可 將提高工作頻率的美好愿望寄托在加約束上,我們要通過合理的設(shè)計(jì)去避免出現(xiàn)大的組 合邏輯,從而提高電路的工作頻率,這才能增強(qiáng)設(shè)計(jì)的可移植性,才可以使得我們的設(shè) 計(jì)在移植到另一同等速度級(jí)別的芯片時(shí)還能使用。
我們知道,目前大部分FPGA都基于4輸入LUT的,如果一個(gè)輸出對(duì)應(yīng)的判斷條件大于 四輸入的話就要由多個(gè)LUT級(jí)聯(lián)才能完成,這樣就引入一級(jí)組合邏輯時(shí)延,我們要減少組 合邏輯,無(wú)非就是要輸入條件盡可能的少,這樣就可以級(jí)聯(lián)的LUT更少,從而減少了組 合邏輯引起的時(shí)延。
我們平時(shí)聽說(shuō)的流水就是一種通過切割大的組合邏輯(在其中插入一級(jí)或多級(jí)D觸發(fā) 器,從而使寄存器與寄存器之間的組合邏輯減少)來(lái)提高工作頻率的方法。比如一個(gè)32 位的計(jì)數(shù)器,該計(jì)數(shù)器的進(jìn)位鏈很長(zhǎng),必然會(huì)降低工作頻率,我們可以將其分割成4位和 8位的計(jì)數(shù),每當(dāng)4位的計(jì)數(shù)器計(jì)到15后觸發(fā)一次8位的計(jì)數(shù)器,這樣就實(shí)現(xiàn)了計(jì)數(shù)器的切 割,也提高了工作頻率。
在狀態(tài)機(jī)中,一般也要將大的計(jì)數(shù)器移到狀態(tài)機(jī)外,因?yàn)橛?jì)數(shù)器這東西一般是經(jīng)常 是大于4輸入的,如果再和其它條件一起做為狀態(tài)的跳變判據(jù)的話,必然會(huì)增加LUT的級(jí) 聯(lián),從而增大組合邏輯。以一個(gè)6輸入的計(jì)數(shù)器為例,我們?cè)M?dāng)計(jì)數(shù)器計(jì)到111100后 狀態(tài)跳變,現(xiàn)在我們將計(jì)數(shù)器放到狀態(tài)機(jī)外,當(dāng)計(jì)數(shù)器計(jì)到111011后產(chǎn)生個(gè)enable信號(hào) 去觸發(fā)狀態(tài)跳變,這樣就將組合邏輯減少了。
上面說(shuō)的都是可以通過流水的方式切割組合邏輯的情況,但是有些情況下我們是很 難去切割組合邏輯的,在這些情況下我們又該怎么做呢?
狀態(tài)機(jī)就是這么一個(gè)例子,我們不能通過往狀態(tài)譯碼組合邏輯中加入流水。如果我 們的設(shè)計(jì)中有一個(gè)幾十個(gè)狀態(tài)的狀態(tài)機(jī),它的狀態(tài)譯碼邏輯將非常之巨大,毫無(wú)疑問,這極有可能是設(shè)計(jì)中的關(guān)鍵路徑。那我們?cè)撛趺醋瞿??還是老思路,減少組合邏輯。我 們可以對(duì)狀態(tài)的輸出進(jìn)行分析,對(duì)它們進(jìn)行重新分類,并根據(jù)這個(gè)重新定義成一組組小 狀態(tài)機(jī),通過對(duì)輸入進(jìn)行選擇(case語(yǔ)句)并去觸發(fā)相應(yīng)的小狀態(tài)機(jī),從而實(shí)現(xiàn)了將大的 狀態(tài)機(jī)切割成小的狀態(tài)機(jī)。在ATA6的規(guī)范中(硬盤的標(biāo)準(zhǔn)),輸入的命令大概有20十種,每一個(gè)命令又對(duì)應(yīng)很多種狀態(tài),如果用一個(gè)大的狀態(tài)機(jī)(狀態(tài)套狀態(tài))去做那是不可 想象的,我們可以通過case語(yǔ)句去對(duì)命令進(jìn)行譯碼,并觸發(fā)相應(yīng)的狀態(tài)機(jī),這樣做下來(lái) 這一個(gè)模塊的頻率就可以跑得比較高了。
總結(jié):提高工作頻率的本質(zhì)就是要減少寄存器到寄存器的時(shí)延,最有效的方法就是 避免出現(xiàn)大的組合邏輯,也就是要盡量去滿足四輸入的條件,減少LUT級(jí)聯(lián)的數(shù)量。我們 可以通過加約束、流水、切割狀態(tài)的方法提高工作頻率。
第四篇:數(shù)字邏輯設(shè)計(jì)報(bào)告
《數(shù)字邏輯課程設(shè)計(jì)》
姓名: 宋國(guó)正 班級(jí):計(jì)142 學(xué)號(hào):149074056
2016年9月25日
一、設(shè)計(jì)任務(wù)要求
數(shù)字時(shí)鐘是由振蕩器、分頻器、計(jì)秒電路、計(jì)分電路、計(jì)時(shí)電路組成。計(jì)時(shí)采用24h和12h兩種。當(dāng)接通電源或數(shù)字鐘走時(shí)出現(xiàn)誤差,都需要對(duì)數(shù)字鐘作時(shí)、分、秒時(shí)間校正。本次設(shè)計(jì)的具體要求如下:
1、顯示時(shí)、分、秒的十進(jìn)制顯示,采用24小時(shí)制。
2、校時(shí)功能。
3、整點(diǎn)報(bào)時(shí)。
二、設(shè)計(jì)思路
1、數(shù)字鐘的組成原理圖
數(shù)字式電子鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)1Hz 進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路!秒計(jì)數(shù)器滿60 后向分計(jì)數(shù)器進(jìn)位,分計(jì)數(shù)器滿60 后向時(shí)計(jì)數(shù)器進(jìn)位, 時(shí)計(jì)數(shù)器按24翻1 規(guī)律計(jì)數(shù), 計(jì)數(shù)輸出經(jīng)譯碼器送LED 顯示器,由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間一致,故需要在電路上加上一個(gè)校時(shí)電路。
同時(shí)標(biāo)準(zhǔn)的1Hz時(shí)間信號(hào)必須做到準(zhǔn)確、穩(wěn)定,通常使用石英晶體振蕩器電
路構(gòu)成。
時(shí)顯示器
分顯示器 秒顯示器
時(shí)譯碼器
分譯碼器
秒譯碼器
時(shí)計(jì)數(shù)器
時(shí)計(jì)數(shù)器 時(shí)計(jì)數(shù)器
校時(shí)電路
振蕩器
分頻器
2、數(shù)字鐘設(shè)計(jì)方案
為完成上述功能,可以把數(shù)字鐘系統(tǒng)劃分為三部分:時(shí)針源(即標(biāo)準(zhǔn)秒鐘的產(chǎn)生電路)主體電路,擴(kuò)展電路。主體電路EDA 設(shè)計(jì)又可劃分為計(jì)時(shí)電路、校時(shí)電路、譯碼顯示電路3部分。
3、底層電路設(shè)計(jì)
時(shí)針源——晶體振蕩器電路給數(shù)字式電子鐘提供一個(gè)頻率穩(wěn)定、準(zhǔn)確的32768Hz的方波信號(hào),將32768Hz的高頻方波信號(hào)經(jīng)32768次分頻后得到1Hz 的方波信號(hào)供秒計(jì)數(shù)器進(jìn)行計(jì)數(shù),實(shí)現(xiàn)該分頻功能的計(jì)數(shù)器相當(dāng)于15 級(jí)二進(jìn)制計(jì)數(shù)器。
計(jì)時(shí)電路——時(shí)間計(jì)數(shù)器電路由秒個(gè)位、秒十位計(jì)數(shù)器,分個(gè)位、分十位計(jì)數(shù)及時(shí)個(gè)位、時(shí)十位計(jì)數(shù)電路構(gòu)成。其中,秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)為六十進(jìn)制計(jì)數(shù)器,而根據(jù)設(shè)計(jì)要求時(shí)個(gè)位和時(shí)十位構(gòu)成的為二十四進(jìn)制計(jì)數(shù)器,時(shí)間計(jì)數(shù)單元共有:時(shí)計(jì)數(shù),分計(jì)數(shù)和秒計(jì)數(shù)3部分,根據(jù)設(shè)計(jì)要求時(shí)計(jì)數(shù)單元為一個(gè)二十四進(jìn)制計(jì)數(shù)器,共輸出為兩位8421BCD碼形式;分計(jì)數(shù)和秒計(jì)數(shù)單元為六十進(jìn)制計(jì)數(shù)器!共輸出也為兩位8421BCD碼。圖1和圖2 分別給出了60進(jìn)制計(jì)數(shù)器和24進(jìn)制邏輯圖。
圖
一、60進(jìn)制計(jì)數(shù)器
圖
二、24進(jìn)制計(jì)數(shù)器
校時(shí)電路——當(dāng)剛接通電源或走時(shí)出現(xiàn)誤差時(shí)都需要對(duì)時(shí)間進(jìn)行校正。對(duì)時(shí)間的校正是通過截?cái)嗾5挠?jì)數(shù)通路,而用頻率較高的方波信號(hào)加到其需要校正的計(jì)數(shù)單元的輸入端!這樣可以很快使校正的時(shí)間調(diào)整到標(biāo)準(zhǔn)時(shí)間的數(shù)值,這時(shí)再將選擇開關(guān)打向正常時(shí)就可以準(zhǔn)確走時(shí)了。如圖3所示為時(shí)、分、秒校時(shí)的校時(shí)電路。在校時(shí)電路中,其實(shí)現(xiàn)方法是采用計(jì)數(shù)脈沖和計(jì)數(shù)使能來(lái)實(shí)現(xiàn)校時(shí)的。
譯 碼 顯 示 電 路——為了將計(jì)數(shù)器輸出的8421BCD碼顯示出來(lái),須用顯示譯碼電路將計(jì)數(shù)器的輸出數(shù)碼轉(zhuǎn)換為數(shù)碼顯示器件所需要的輸出邏輯和一定的電流,這種譯碼器通常稱為七段譯碼顯示驅(qū)動(dòng)器電路,本設(shè)計(jì)可選器件7447為譯碼驅(qū)動(dòng)電路。譯碼驅(qū)動(dòng)電路將計(jì)數(shù)器輸出的8421BCD碼轉(zhuǎn)換為數(shù)碼管需要的邏輯狀態(tài),并且為保證數(shù)碼管正常工作提供足夠的工作電流。
4、數(shù)字鐘頂層電路設(shè)計(jì)
首先按前面的設(shè)計(jì)方案進(jìn)行低層模塊的設(shè)計(jì)與編輯仿真,正確無(wú)誤后,即可將設(shè)計(jì)的低層模塊轉(zhuǎn)化為與之相對(duì)應(yīng)的元件符號(hào),而后我們就可以用這些元件符號(hào)來(lái)設(shè)計(jì)數(shù)字鐘的頂層原理圖,如圖4所示。本設(shè)計(jì)中要仿真的對(duì)象為數(shù)字鐘,須設(shè)定一個(gè)1Hz的輸入時(shí)鐘信號(hào)和一個(gè)校時(shí)脈沖SET,模擬的設(shè)置開關(guān)信號(hào)MODE的波形,為了能夠看到合適的仿真結(jié)果,假定網(wǎng)絡(luò)時(shí)間(Girl Size)為10.0ns,總模
擬的時(shí)間(END TIME)為3ms。
三、軟件仿真 1、60進(jìn)制計(jì)數(shù)器的仿真結(jié)果如下:
60進(jìn)制計(jì)數(shù)器仿真波形圖 2、24進(jìn)制計(jì)數(shù)器仿真結(jié)果如下:
24進(jìn)制計(jì)數(shù)器仿真波形圖
3、數(shù)字鐘的頂層電路仿真結(jié)果如下:
數(shù)字鐘的頂層電路波形仿真圖
四、討論
數(shù)字時(shí)鐘基于MAX+ plus II設(shè)計(jì), 經(jīng)過軟件仿真并下載到硬件(電子EDA 10
實(shí)驗(yàn)開發(fā)系統(tǒng))實(shí)現(xiàn), 結(jié)果表明本設(shè)計(jì)是合理可行的,但是感覺很繁瑣,是不是可以考慮一種過程簡(jiǎn)單一點(diǎn)的呢?通過查閱大量資料發(fā)現(xiàn)是可以的。其另一種設(shè)計(jì)思想及方法是以語(yǔ)言描述為主, 原理圖設(shè)計(jì)相結(jié)合。但是使用過多可能會(huì)導(dǎo)致編譯失敗。所以在設(shè)計(jì)的過程中,如何取舍是一個(gè)難題,本人認(rèn)為對(duì)于我這樣基礎(chǔ)不是很扎實(shí)的,采用前者是比較合理的。
五、參考文獻(xiàn)
(1)張輝宜,數(shù)字邏輯 中國(guó)科學(xué)技術(shù)大學(xué)出版社
(2)廖裕評(píng),陸瑞強(qiáng),CPLD數(shù)字電路設(shè)計(jì)__使用 MAX+Plus II[M],北京:清華大學(xué)出版社
六、心得體會(huì)
我學(xué)到了很多東西,掌握了數(shù)字邏輯的各種設(shè)計(jì)方法
第五篇:邏輯設(shè)計(jì)工程師崗位職責(zé)
1.根據(jù)項(xiàng)目需求完成相應(yīng)的PLD、FPGA程序設(shè)計(jì)、優(yōu)化及調(diào)試等工作。
2.根據(jù)要求書寫規(guī)范的編程手冊(cè)、調(diào)測(cè)報(bào)告等文檔。
3.配合硬件工程師進(jìn)行調(diào)測(cè)。