VHDL語言 第八章 時序邏輯電路設(shè)計_第1頁
VHDL語言 第八章 時序邏輯電路設(shè)計_第2頁
VHDL語言 第八章 時序邏輯電路設(shè)計_第3頁
VHDL語言 第八章 時序邏輯電路設(shè)計_第4頁
VHDL語言 第八章 時序邏輯電路設(shè)計_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第八章

時序邏輯電路設(shè)計時序邏輯電路定義:任意時刻的輸出不僅取決于當(dāng)時的輸入信號,而且還取決于電路原來的狀態(tài),或者說,還與以前的輸入有關(guān)。

按照電路的工作方式,時序邏輯電路可分為同步時序邏輯電路(簡稱同步時序電路)和異步時序邏輯電路(簡稱異步時序電路)兩種類型。

常見的時序邏輯電路有觸發(fā)器、計數(shù)器、寄存器等。概述8.1時鐘信號和復(fù)位信號8.1.1時鐘信號描述時序電路總是以時鐘進(jìn)程形式來描述,方式有兩種:1)進(jìn)程的敏感信號是時鐘信號2)用進(jìn)程中的WAITON語句等待時鐘任何時序電路都是用時鐘信號作為驅(qū)動信號的。時序電路只是在時鐘信號的有效沿或電平到來時,其狀態(tài)才發(fā)生變化。因此,時鐘信號通常是描述時序電路的程序的執(zhí)行條件。1)進(jìn)程的敏感信號是時鐘信號在這種情況下,時鐘信號應(yīng)作為敏感信號,顯式地出現(xiàn)在PROCESS語句后跟的括號中,例如PROCESS(clock_signal)。時鐘信號邊沿的到來,將作為時序電路語句執(zhí)行的條件。例:PROCESS(clock_signal)BEGINIF(clock_edge_condition)THENsignal_out<=signal_in;---

其它時序語句;

---ENDIF;ENDPROCESS;該進(jìn)程在時鐘信號發(fā)生變化時被啟動,而在時鐘邊沿的條件得到滿足時才真正執(zhí)行時序電路所對應(yīng)的語句。使用了IF語句對時鐘沿進(jìn)行說明。在這種情況下,描述時序電路的進(jìn)程將沒有敏感信號,而是用WAITON語句來控制進(jìn)程的執(zhí)行。也就是說,進(jìn)程通常停留在WAITON語句上,只有在時鐘信號到來,且滿足邊沿條件時,其余的語句才能執(zhí)行,如下例如示:PROCESSBEGINWAITON(clock_signal)UNTIL(clock_edge_conditon);signal_out<=signal_in;---

其它時序語句;

---ENDPROCESS2)用進(jìn)程中的WAITON語句等待時鐘在使用WAITON語句的進(jìn)程中,敏感信號量應(yīng)寫在進(jìn)程中的WAITON語句后面。在編寫上述兩個程序時應(yīng)注意:

?無論IF語句還是WAITON語句,在對時鐘邊沿說明時,一定要注明是上升沿還是下降沿,光說明是邊沿是不行的。

?當(dāng)時鐘信號作為進(jìn)程的敏感信號時,在敏感信號的表中不能出現(xiàn)一個以上的時鐘信號,除時鐘信號以外,像復(fù)位信號等是可以和時鐘信號一起出現(xiàn)在敏感表中的。

?WAITON語句只能放在進(jìn)程的最前面或者是最后面。3)時鐘邊沿的描述可以用時鐘信號的屬性來描述時鐘的邊沿。其上升沿的描述為:IFclk=‘1’ANDclk’LAST_VALUE=‘0’ANDclk’EVENT時鐘的下降沿的描述為:IFclk=‘0’ANDclk’LAST_VALUE=‘1’ANDclk’EVENT在一些程序中經(jīng)常所見時鐘沿表達(dá)如下時鐘上升沿:

(clock’eventandclock=‘1’)時鐘下降沿:

(clock’eventandclock=‘0’)8.1.2觸發(fā)器的同步和非同步復(fù)位同步復(fù)位:當(dāng)復(fù)位信號有效且在給定的時鐘邊沿到來時,觸發(fā)器才被復(fù)位。異步復(fù)位:一旦復(fù)位信號有效,觸發(fā)器就被復(fù)位。1)同步復(fù)位在用VHDL語言描述時,同步復(fù)位一定在以時鐘為敏感信號的進(jìn)程中定義,且用IF語句來描述必要的復(fù)位條件。例如:process(clock_signal)beginif(clock_edge_condition)then

if(reset_condition)thensignal_out<=reset_value;elsesignal_out<=signal_in;┇endif;endif;endprocess;2)非同步復(fù)位異步復(fù)位在描述時與同步方式不同:首先在進(jìn)程的敏感信號中除時鐘信號以外,還應(yīng)加上復(fù)位信號;其次是用IF語句描述復(fù)位條件;最后在ELSE段描述時鐘信號邊沿的條件,并加上EVENT屬性。其描述方式如:PROCESS(reset_signal,clk_signal)BEGINIF(reset_condition)THENsignal_out<=reset_value;ELSIF(clk_eventANDclk_edge_condition)THENsignal_out<=signal_in;---

其它時序語句;

---屬性’EVENT

對在當(dāng)前的一個極小的時間段Δ內(nèi)發(fā)生的事件的情況進(jìn)行檢測。如發(fā)生事件,則返回true,否則返回false。發(fā)生事件:信號電平發(fā)生變化。左例中進(jìn)程后跟括號內(nèi)有兩個敏感信號:復(fù)位信號和時鐘信號。進(jìn)程中的IF語句一開始就判斷復(fù)位條件,可見復(fù)位優(yōu)先級高于時鐘。8.2觸發(fā)器觸發(fā)器(FlipFlop)是一種可以存儲電路狀態(tài)的電子元件。按邏輯功能不同分為:RS觸發(fā)器、D觸發(fā)器、JK觸發(fā)器、T觸發(fā)器。8.2.1鎖存器

鎖存器(Latch)是一種對脈沖電平敏感的存儲單元電路,它們可以在特定輸入脈沖電平作用下改變狀態(tài)。鎖存,就是把信號暫存以維持某種電平狀態(tài)。鎖存器的最主要作用是緩存。鎖存器根據(jù)觸發(fā)邊沿、復(fù)位和預(yù)置方式以及輸出端多少的不同可以有多種形式的鎖存器。1)D鎖存器上升沿觸發(fā)的D鎖存器:上升沿觸發(fā)的D鎖存器,有一個數(shù)據(jù)輸入端d,一個時鐘輸入端Clk和一個數(shù)據(jù)輸出端q。D鎖存器的輸出端只有在上升沿脈沖過后輸入端d的數(shù)據(jù)才傳送到輸出端q。時鐘信號應(yīng)作為敏感信號,顯式地出現(xiàn)在PROCESS語句后跟的括號中。使用了IF語句對時鐘沿進(jìn)行說明。時鐘邊沿的到來時,將作為時序電路語句執(zhí)行的條件。D鎖存器程序?qū)嵗?D鎖存器程序?qū)嵗?WAITUNTIL

表達(dá)式;當(dāng)表達(dá)式的值為“真”時,進(jìn)程被啟動,否則進(jìn)程被掛起。

該語句在表達(dá)式中將建立一個隱式的敏感信號量表,當(dāng)表中的任何一個信號量發(fā)生變化時,就立即對表達(dá)式進(jìn)行一次評估。如果評估結(jié)果使表達(dá)式返回一個“真”值,則進(jìn)程脫離等待狀態(tài),繼續(xù)執(zhí)行下一個語句。2)異步復(fù)位D鎖存器異步復(fù)位D鎖存器和一般的D鎖存器區(qū)別是多了一個復(fù)位輸入端clr。當(dāng)clr=‘0’時,輸出端q置‘0’。clr稱為清0輸入端。clr低電平有效。進(jìn)程后跟括號內(nèi)有兩個敏感信號:清0信號和時鐘信號。進(jìn)程中的IF語句一開始就判斷清0條件,可見此時清0優(yōu)先級高于時鐘。異步復(fù)位D鎖存器程序?qū)嵗?)異步復(fù)位/置位D鎖存器除了前述的d,clk,q端外,還有clr和pset的復(fù)位、置位端。當(dāng)clr=‘0’時復(fù)位,使q=‘0’;當(dāng)pset=‘0’時置位,使q=‘1’;clr、pset均是低電平有效。異步復(fù)位/置位D鎖存器程序?qū)嵗M(jìn)程后跟括號內(nèi)有三個敏感信號:時鐘信號,復(fù)位信號和置位信號。通過進(jìn)程中的IFTHENELSEIF語句可以看出:優(yōu)先級,置位最高,復(fù)位次之,時鐘最低。4)同步復(fù)位D鎖存器與異步方式不同的是,當(dāng)復(fù)位信號有效(clr=‘1’)以后,只是在有效邊沿來時才能進(jìn)行復(fù)位操作。從圖中可以看出復(fù)位信號的優(yōu)先級比d端的數(shù)據(jù)輸入高,也就是當(dāng)clr=‘1’時,無論d端輸入什么信號,在clk的上升沿到來時,q輸出總是“0”。同步復(fù)位D鎖存器程序?qū)嵗M(jìn)程后跟括號內(nèi)只有一個敏感信號:時鐘信號。通過進(jìn)程中的IFTHENELSEIF語句可以看出:優(yōu)先級,時鐘最高,復(fù)位次之。8.2.2JK觸發(fā)器JK觸發(fā)器是數(shù)字電路觸發(fā)器中的一種電路單元。JK觸發(fā)器具有置0、置1、保持和翻轉(zhuǎn)功能,在各類集成觸發(fā)器中,JK觸發(fā)器的功能最為齊全。在實際應(yīng)用中,它不僅有很強(qiáng)的通用性,而且能靈活地轉(zhuǎn)換其他類型的觸發(fā)器。由JK觸發(fā)器可以構(gòu)成D觸發(fā)器和T觸發(fā)器。JK觸發(fā)器的輸入端有置位輸入pset,復(fù)位輸入clr,控制輸入j和k,時鐘信號輸入clk;輸出端有正向輸出端q和反向輸出端qb。JK觸發(fā)器的真值表如表所示。表中q0表示原狀態(tài)不變,翻轉(zhuǎn)表示改變原來的狀態(tài)。優(yōu)先級:置位最高于復(fù)位,與真值表不一致,沒有考慮pset=clr=“0”時,輸出時q=“X”(未知態(tài))。四個敏感信號,異步與真值表一致的程序此例中pset=clr=“0”這種情況沒有考慮,在邏輯綜合時,輸出是未知的。8.2.3T觸發(fā)器TClkQQ

libraryieee;useieee.std_logic_1164.all;entityt_ffisport(t,clk:instd_logic;q:bufferstd_logic);endt_ff;architecturertloft_ffisbeginprocess(clk)beginifclk’eventandclk=‘1’thenift=‘1’thenq<=notq;elseq<=q;endif;endprocess;endrtl;T觸發(fā)器程序?qū)嵗齦ibraryieee;useieee.std_logic_1164.all;entityrs_ffisport(r,s,clk:instd_logic;q,qn:bufferstd_logic);endrs_ff;architecturertlofrs_ffisbeginprocess(r,s,clk)beginifclk’eventandclk=‘1’thenifs=‘1’andr=‘0’thenq<=‘0’;qn<=‘1’;elsifs=‘0’andr=‘1’thenq<=‘1’;qn<=‘0’;elsifs=‘0’andr=‘0’thenq<=q;qn<=qn;elsenull;endif;endif;endprocess;endrtl;SClkQQRSRQQn00QQn0110100111??8.2.4同步RS觸發(fā)器null為空語句,不作任何操作。格式:

null;8.3寄存器數(shù)字電路中,用來存放二進(jìn)制數(shù)據(jù)或代碼的電路稱為寄存器。

寄存器是由具有存儲功能的觸發(fā)器組合起來構(gòu)成的。一個觸發(fā)器可以存儲1位二進(jìn)制代碼,存放n位二進(jìn)制代碼的寄存器,需用n個觸發(fā)器來構(gòu)成。

按照功能的不同,可將寄存器分為基本寄存器和移位寄存器兩大類?;炯拇嫫髦荒懿⑿兴腿霐?shù)據(jù),需要時也只能并行輸出。移位寄存器中的數(shù)據(jù)可以在移位脈沖作用下依次逐位右移或左移,數(shù)據(jù)既可以并行輸入、并行輸出,也可以串行輸入、串行輸出,還可以并行輸入、串行輸出,串行輸入、并行輸出,十分靈活,用途也很廣。8位串行輸入、串行輸出移位寄存器它具有兩個輸入端:數(shù)據(jù)輸入端a和時鐘輸入端clk;一個數(shù)據(jù)輸出端b。在時鐘信號作用下,前級數(shù)據(jù)向后級移動。該8位寄存器由8個D觸發(fā)器構(gòu)成。8位移位寄存器描述(結(jié)構(gòu)描述)在結(jié)構(gòu)體的說明部分利用COMPONENT語句對要引用元件進(jìn)行聲明。利用生成語句指定生成次數(shù)利用COMPONENT_INSTANT語句,調(diào)用元件,用位置映射方式8位移位寄存器直接用信號連接描述進(jìn)程中執(zhí)行信號代入語句時,被代入信號量的值在當(dāng)時并沒有發(fā)生改變,直到進(jìn)程結(jié)束,代入過程才同時發(fā)生。此例描述了移位功能。若將程序中信號改成變量,變量賦值語句中,被賦值的變量的值會立即改變,結(jié)果如何?8.4計數(shù)器在數(shù)字電子技術(shù)中應(yīng)用的最多的時序邏輯電路。計數(shù)器不僅能用于對時鐘脈沖計數(shù),還可以用于分頻、定時、產(chǎn)生節(jié)拍脈沖和脈沖序列以及進(jìn)行數(shù)字運(yùn)算等。但是并無法顯示計算結(jié)果,一般都是要通過外接LCD或LED屏才能顯示。1、如果按照計數(shù)器中的觸發(fā)器是否同時翻轉(zhuǎn)分類,可將計數(shù)器分為同步計數(shù)器和異步計數(shù)器兩種。常見的同步計數(shù)器有74160系列,74LS190系列,常見的異步計數(shù)器有74LS290系列。2、如果按照技術(shù)過程中數(shù)字增減分類,又可將計數(shù)器分為加法計數(shù)器和減法計數(shù)器,隨時鐘信號不斷增減的為加法計數(shù)器,不斷減少的為減法計數(shù)器。

同步計數(shù)器指在時鐘脈沖(計數(shù)脈沖)的控制下,構(gòu)成計數(shù)器的各觸發(fā)器狀態(tài)同時發(fā)生變化的計數(shù)器。8.4.1同步計數(shù)器(1)帶允許端的十二進(jìn)制計數(shù)器計數(shù)器由4個觸發(fā)器構(gòu)成,clr是清零,en是計數(shù)控制端,qa,qb,qc,qd為計數(shù)器的4位二進(jìn)制值的輸出端。帶允許端的十二進(jìn)制計數(shù)器調(diào)用了標(biāo)準(zhǔn)邏輯無符號包定義了計數(shù)中間信號,由于輸出qa,qb,qc,qd被定義為out類型PROCESS后跟兩個敏感信號判斷清零信號判斷計數(shù)使能信號判斷時鐘信號判斷計數(shù)的終點(diǎn)‘’不同類型數(shù)據(jù)值可以進(jìn)行相加,這是因為調(diào)用了標(biāo)準(zhǔn)邏輯無符號程序包(2)可逆計數(shù)器

可逆計數(shù)器根據(jù)計數(shù)控制信號的不同,在時鐘脈沖作用下,可以實現(xiàn)加1和減1的操作??刂贫藆pdn=‘1’計數(shù)器加1,updn=‘0’計數(shù)器減1??赡嬗嫈?shù)器(加減計數(shù)器)程序設(shè)計調(diào)用了標(biāo)準(zhǔn)邏輯無符號包定義了計數(shù)中間信號PRO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論