《電子設(shè)計(jì)自動(dòng)化》課件第7章_第1頁
《電子設(shè)計(jì)自動(dòng)化》課件第7章_第2頁
《電子設(shè)計(jì)自動(dòng)化》課件第7章_第3頁
《電子設(shè)計(jì)自動(dòng)化》課件第7章_第4頁
《電子設(shè)計(jì)自動(dòng)化》課件第7章_第5頁
已閱讀5頁,還剩182頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

7.1組合邏輯電路

7.2時(shí)序邏輯電路設(shè)計(jì)

7.3常用時(shí)序邏輯電路的設(shè)計(jì)

7.4實(shí)訓(xùn)

習(xí)題

7.1組合邏輯電路對(duì)于組合邏輯電路,電路任何時(shí)刻的輸出信號(hào)僅取決于當(dāng)時(shí)的輸入信號(hào),其輸出的值由輸入決定。在設(shè)計(jì)組合邏輯電路時(shí),在進(jìn)程中要包括所有的輸入信號(hào),以確保每一個(gè)信號(hào)的變化都要啟動(dòng)進(jìn)程。常用的組合邏輯電路有編碼器、譯碼器、比較器、三態(tài)門、加法器等。7.1.1編碼器和譯碼器

1.優(yōu)先級(jí)8-3編碼器

優(yōu)先級(jí)8-3編碼器有d7~d0八個(gè)輸入信號(hào),y2、y1、y0三個(gè)輸出信號(hào),各信號(hào)高電平有效。其真值表如表7-1所示,邏輯符號(hào)如圖7-1所示。硬件電路中的優(yōu)先級(jí)關(guān)系在VHDL語言中可以用IF分支判斷語句或在PROCESS進(jìn)程語句中設(shè)置臨時(shí)變量來實(shí)現(xiàn)。如用IF語句,多條件的IF語句的條件是有優(yōu)先級(jí)的,最前面的條件的優(yōu)先級(jí)最高,越往后優(yōu)先級(jí)越低。例7-1是使用IF的分支判斷語句實(shí)現(xiàn)優(yōu)先級(jí)8-3編碼器的VHDL程序,其利用了進(jìn)程中語句順序執(zhí)行的特點(diǎn),由于語句是由上至下執(zhí)行的,因而后面的賦值將覆蓋前面的賦值。例7-2為使用PROCESS進(jìn)程語句中變量的特點(diǎn)實(shí)現(xiàn)優(yōu)先級(jí)8-3編碼器的VHDL程序。(本章的程序?yàn)楹?jiǎn)單起見,全部采用小寫形式,VHDL程序不區(qū)分大小寫。)圖7-1優(yōu)先級(jí)8-3編碼器邏輯符號(hào)

2.3-8譯碼器

3-8譯碼器的電路功能與編碼器相反,其輸入為a2、a1、a0三個(gè)信號(hào),輸出為y7~y0八個(gè)信號(hào),另外還有三個(gè)控制信號(hào)g1、g2a和g2b。其真值表如表7-2所示,邏輯符號(hào)如圖7-2所示。圖7-23-8譯碼器邏輯符號(hào)7.1.2多位比較器

多位比較器的真值表如表7-3所示,邏輯符號(hào)如圖7-3所示。圖7-38位比較器邏輯符號(hào)

【例7-4】下面為多位比較器的VHDL源程序,此程序?yàn)?位比較器。7.1.3三態(tài)門

三態(tài)門是驅(qū)動(dòng)電路經(jīng)常用到的器件,其輸出有三種狀態(tài),分別為“1”、“0”與“Z”(即高阻狀態(tài))。三態(tài)門的邏輯符號(hào)如圖7-4所示。圖7-4三態(tài)門邏輯符號(hào)7.1.4加法器

加法器的結(jié)構(gòu)化設(shè)計(jì)見6.3.3節(jié),其實(shí)也可以調(diào)用IEEE庫中的STD_LOGIC_UNSIGNED庫進(jìn)行設(shè)計(jì),對(duì)兩個(gè)輸入類型為STD_LOGIC_VECTOR的數(shù)直接進(jìn)行加法運(yùn)算。

【例7-6】?jī)蓚€(gè)4位加法器的VHDL程序如下:7.2時(shí)序邏輯電路設(shè)計(jì)對(duì)于時(shí)序邏輯電路,其任何時(shí)刻的輸出信號(hào)不僅取決于當(dāng)時(shí)的輸入信號(hào),而且還取決于電路原來的工作狀態(tài),即與以前的輸入信號(hào)及輸出信號(hào)也有關(guān)系。在時(shí)序邏輯電路的設(shè)計(jì)中,時(shí)鐘信號(hào)比較重要,基本每一個(gè)時(shí)序邏輯電路都是由時(shí)鐘控制的。時(shí)序邏輯電路的控制信號(hào)還包括兩種重要的信號(hào):同步控制信號(hào)與異步控制信號(hào)。7.2.1時(shí)鐘信號(hào)

時(shí)序邏輯電路只有在時(shí)鐘信號(hào)的邊沿到來時(shí),其狀態(tài)才發(fā)生改變。因此,時(shí)鐘信號(hào)通常描述時(shí)序電路程序執(zhí)行的條件。另外,時(shí)序邏輯電路總是以時(shí)鐘進(jìn)程的形式來進(jìn)行描述的,其描述方式一般分兩種情況。

1.進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)

在這種情況下,時(shí)鐘信號(hào)應(yīng)作為進(jìn)程敏感信號(hào),顯式地出現(xiàn)在process語句后面的括號(hào)中,例如process(clock_signal)。時(shí)鐘信號(hào)邊沿的到來,將作為時(shí)序邏輯電路語句執(zhí)行的條件。例7-7程序說明,該進(jìn)程在時(shí)鐘信號(hào)(clock_signal)發(fā)生變化時(shí)被啟動(dòng),而在時(shí)鐘邊沿的條件得到滿足后才真正執(zhí)行時(shí)序電路所對(duì)應(yīng)的語句。

2.用waiton或waituntil語句控制進(jìn)程啟動(dòng)

在這種情況下,描述時(shí)序電路的進(jìn)程將沒有敏感信號(hào),而是用waiton或waituntil語句來控制進(jìn)程的執(zhí)行,也就是說,進(jìn)程通常停留在waiton或waituntil語句上,只有在時(shí)鐘信號(hào)到來且滿足邊沿條件時(shí),其余的語句才被執(zhí)行,如例7-8所示。在編寫上述兩個(gè)程序時(shí)應(yīng)注意:

(1)無論if語句還是wait語句,在對(duì)時(shí)鐘邊沿說明時(shí),一定要注明是上升沿還是下降沒(前沿還是后沿),光說明是邊沿是不行的。

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

(3)?wait語句只能放在進(jìn)程的最前面或者最后面。

3.時(shí)鐘邊沿的描述

為了描述時(shí)鐘邊沿,一定要指定是上升沿還是下降沿,這一點(diǎn)可以用時(shí)鐘信號(hào)的屬性描述來實(shí)現(xiàn)。也就是說,通過確定時(shí)鐘信號(hào)的值是從“0”到“1”變化,還是從“1”到“0”變化,由此得知是時(shí)鐘脈沖信號(hào)的上升沿還是下降沿。

1)時(shí)鐘脈沖的上升沿描述

時(shí)鐘脈沖上升沿波形與時(shí)鐘信號(hào)屬性的描述關(guān)系如圖7-5所示。

從圖中可以看到,時(shí)鐘信號(hào)起始值為“0”,故其屬性值clk’last_value=‘0’;其上升沿的到來表示發(fā)生了一個(gè)事件,故用clk’event表示;上升沿以后,時(shí)鐘信號(hào)的值為“1”,故其當(dāng)前屬性值為clk=‘1’。這樣,表示上升沿到來的條件可寫為

ifclk’eventandclk’last_value='0'andclk='1'then圖7-5時(shí)鐘脈沖上升沿屬性描述關(guān)系

2)時(shí)鐘脈沖的下降沿描述

時(shí)鐘脈沖下降沿波形與時(shí)鐘信號(hào)屬性的描述關(guān)系如圖7-6所示。

從圖中可以看到,時(shí)鐘信號(hào)起始值為“1”,故其屬性值clk’last_value=‘1’;其下降沿的clk’last_value=‘1’,時(shí)鐘信號(hào)當(dāng)前值為clk=‘0’,下降沿到來的事件為clk’event。這樣表示下降沿到來的條件可寫為

ifclk’eventandclk’last_value='1'andclk='0'then圖7-6時(shí)鐘脈沖下降沿屬性描述關(guān)系根據(jù)上面的描述,時(shí)鐘的邊沿檢測(cè)條件可以統(tǒng)一描述如下:

ifclock_signal=current_valueandclock_signal’last_valueandclock_signal’eventthen

在某些應(yīng)用中,也可以簡(jiǎn)寫成如下形式:

ifclock_signal=current_valueandclock_signal’eventthen

另外,對(duì)于STD_LOGIC類型的信號(hào)可以用預(yù)定義好的兩個(gè)函數(shù)來表示時(shí)鐘的邊沿:

rising_edge(clk)表示時(shí)鐘的上升沿

falling_edge(clk)?表示時(shí)鐘的下降沿7.2.2其他控制信號(hào)

1.同步控制信號(hào)

在時(shí)序邏輯電路中,同步控制信號(hào)指該信號(hào)控制功能的產(chǎn)生必須等時(shí)鐘的邊沿到來時(shí)才有效,也即與時(shí)鐘同步。因此,要使同步控制信號(hào)能夠可靠地產(chǎn)生控制作用,其寬度必須保證至少有一個(gè)時(shí)鐘周期。時(shí)鐘的上升沿比同步控制信號(hào)的優(yōu)先級(jí)要高,所以在編寫程序時(shí)一定要把檢測(cè)同步控制信號(hào)有效的語句放在檢測(cè)時(shí)鐘邊沿的后面。在進(jìn)程的敏感信號(hào)列表中可以不包括同步控制信號(hào),因?yàn)闀r(shí)鐘邊沿信號(hào)的優(yōu)先級(jí)比同步控制信號(hào)要高,只有在時(shí)鐘邊沿到來時(shí)控制信號(hào)才有效,這時(shí)進(jìn)程已經(jīng)啟動(dòng)了,所以可以檢測(cè)到同步控制信號(hào)。當(dāng)然在進(jìn)程的敏感信號(hào)列表中也可以包含同步控制信號(hào),但這會(huì)造成進(jìn)程的多余啟動(dòng),對(duì)于程序的運(yùn)行結(jié)果則沒有影響。如果電路中含有使能信號(hào)(其性質(zhì)是同步控制信號(hào)),則可以把使能信號(hào)看做同步控制信號(hào)。

【例7-9】帶有使能信號(hào)的同步清零的八進(jìn)制計(jì)數(shù)器,其仿真波形見圖7-7。圖7-7同步控制信號(hào)仿真波形

2.異步控制信號(hào)

在時(shí)序邏輯電路中,異步控制信號(hào)指該信號(hào)的控制功能只要滿足條件就立即產(chǎn)生,而不需等時(shí)鐘的邊沿到來時(shí)才有效。因此,異步控制信號(hào)時(shí)鐘的上升沿比同步控制信號(hào)的優(yōu)先級(jí)要高,在編寫程序時(shí)一定要把檢測(cè)異步控制信號(hào)有效的語句放在檢測(cè)時(shí)鐘邊沿的前面。在進(jìn)程的敏感信號(hào)列表中應(yīng)該包括異步控制信號(hào),因?yàn)闀r(shí)鐘邊沿信號(hào)的優(yōu)先級(jí)比異步控制信號(hào)要低,所以只要異步控制信號(hào)有效,進(jìn)程就必須啟動(dòng)。

【例7-10】設(shè)計(jì)帶有使能信號(hào)的異步清零的八進(jìn)制計(jì)數(shù)器,其仿真波形見圖7-8。圖7-8異步控制信號(hào)仿真波形7.3常用時(shí)序邏輯電路的設(shè)計(jì)7.3.1存儲(chǔ)器

1.存儲(chǔ)器描述中的共性問題

1)存儲(chǔ)器的數(shù)據(jù)類型存儲(chǔ)器是眾多存儲(chǔ)單元的集合體,按照單元號(hào)順序排列,每個(gè)單元由若干二進(jìn)制位構(gòu)成,以表示單元中存放的數(shù)據(jù)值。這種結(jié)構(gòu)和數(shù)組的結(jié)構(gòu)是非常相似的。每個(gè)存儲(chǔ)單元所存放的數(shù)可以用不同的、由VHDL語句所定義的數(shù)的類型來描述,例如用整數(shù)和位矢量來描述:

typememoryisarray(integerrange<>)ofinteger;

這是一個(gè)元素用整數(shù)表示的數(shù)組,用它來描述存儲(chǔ)器存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu)。

subtypewordisstd_logic_vector(k-1downto0);

typememoryisarray(0to2**w-1)ofword;

這是一個(gè)元素用位矢量表示的數(shù)組,用它來描述存儲(chǔ)器存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu)。這里k表示存儲(chǔ)單元二進(jìn)制位數(shù),w表示數(shù)組的元素個(gè)數(shù)。

2)存儲(chǔ)的初始化

在用VHDL語言描述ROM時(shí),ROM的內(nèi)容應(yīng)該在仿真時(shí)事先讀到ROM中,這就是所謂存儲(chǔ)器的初始化。存儲(chǔ)器的初始化要依賴于外部文件的讀取,也就是說依賴于TEXTIO。下面就是對(duì)ROM進(jìn)行初始化的例子。

2.只讀存儲(chǔ)器ROM

用VHDL語言編寫ROM(ReadOnlyMemory)時(shí)需要對(duì)其進(jìn)行初始化。

3.隨機(jī)存儲(chǔ)器RAM

RAM和ROM的主要區(qū)別在于RAM的描述中有“讀”和“寫”兩種操作,而且其讀、寫操作對(duì)時(shí)間有著嚴(yán)格的要求。

【例7-13】設(shè)計(jì)一個(gè)8×8位RAM,基中cs為片選信號(hào),wr為寫信號(hào),rd為讀信號(hào)。當(dāng)cs=1、在wr信號(hào)的上升沿時(shí),將IO上的數(shù)據(jù)寫入到由addr指定的單元;當(dāng)cs=0、rd=0時(shí),將addr指定的單元讀出送至IO。7.3.2先入先出存儲(chǔ)器

先入先出(FirstInFirstOut,F(xiàn)IFO)存儲(chǔ)器作為數(shù)據(jù)緩沖器,通常其數(shù)據(jù)存放結(jié)構(gòu)與RAM是一致的,只是存取方式有所不同。

7.3.3堆棧

堆棧是一種常見的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),它的特點(diǎn)是數(shù)據(jù)后進(jìn)先出。堆棧會(huì)在實(shí)現(xiàn)某些控制算法的電路中出現(xiàn),但一般不會(huì)用來處理大流量的數(shù)據(jù)。大多的器件廠家都沒有提供專門的堆棧單元模塊,因此需要在設(shè)計(jì)中描述寄存器堆來實(shí)現(xiàn)堆棧結(jié)構(gòu)。

【例7-16】6分頻的VHDL源程序如下,其中architecturea使用第一種方案,architectureb使用第二種方案,使用configuration配置語句為實(shí)體指定結(jié)構(gòu)體。7.3.5波形產(chǎn)生電路

1.基于ROM的波形產(chǎn)生電路

波形產(chǎn)生電路主要通過調(diào)用寄存器中的數(shù)據(jù),控制取出數(shù)據(jù)的速度從而控制周期。波形周期的改變一般有兩種方法:一種是改變時(shí)鐘的速度,也即改變?nèi)〕黾拇嫫髦袛?shù)據(jù)的速度控制所產(chǎn)生波形的速度;另一種是通過控制取出寄存器中數(shù)據(jù)的間隔來控制產(chǎn)生波形的周期,所取數(shù)據(jù)的間隔越大,所產(chǎn)生的波形頻率就越大。

【例7-18】用一個(gè)數(shù)組表示數(shù)據(jù)寄存器,并把該數(shù)組用程序包進(jìn)行描述。

2.任意波形的產(chǎn)生

1)正弦波

【例7-19】正弦波的VHDL源程序如下:

2)三角波

由于三角是由線性增加和線性遞減的兩條線段構(gòu)成的,所以可以直接用VHDL語言編程來實(shí)現(xiàn)三角波。當(dāng)線性自加到最高點(diǎn)時(shí),由控制語句控制其自減,直到減到最低點(diǎn)時(shí)再重復(fù)之前的過程,從而實(shí)現(xiàn)三角波。

【例7-20】采用VHDL語言編程的三角波源程序如下:

3)鋸齒波

鋸齒波的采樣也可以用VHDL語言來實(shí)現(xiàn):當(dāng)波形自加到所要求的最高點(diǎn)時(shí),由控制語句使其返回0點(diǎn)重復(fù)以前的過程,從而實(shí)現(xiàn)鋸齒波。另外設(shè)置一個(gè)控制按鍵,來控制輸出上升鋸齒波或下降鋸齒波。

【例7-21】鋸齒波VHDL源程序如下:

4)方波

由于時(shí)鐘脈沖輸出即為方波,因而對(duì)方波的設(shè)計(jì)可以簡(jiǎn)化為直接輸出時(shí)鐘脈沖信號(hào)。但是,在本設(shè)計(jì)中方波與其他三個(gè)波形要同步且要經(jīng)過D/A轉(zhuǎn)換,所以還需把時(shí)鐘脈沖變成8位輸出才可以經(jīng)由D/A轉(zhuǎn)換輸出,具體過程可以由例7-22所示的程序?qū)崿F(xiàn)。

5)波形選擇與控制

在前面已經(jīng)分別介紹了4種基礎(chǔ)波形的設(shè)計(jì),現(xiàn)在介紹如何將4種波形合并,使它們按操作輸出所需波形,波形選擇與控制功能由時(shí)鐘脈沖輸入選擇模塊完成。當(dāng)選擇了一種波形時(shí),對(duì)應(yīng)的波形模塊輸入時(shí)鐘脈沖,并輸出波形數(shù)據(jù),其他三個(gè)波形模塊的輸入則始終為0,不能輸出波形。但是,其他波形模塊始終有0信號(hào)輸入,也能產(chǎn)生數(shù)據(jù),會(huì)對(duì)輸出的波形產(chǎn)生干擾。因此,需要輸出波形選擇模塊來選擇有用的波形,隔離干擾數(shù)據(jù)。為了同時(shí)實(shí)現(xiàn)時(shí)鐘脈沖選擇與輸出波形選擇,同時(shí)也為了消除延遲,在輸出波形選擇模塊與時(shí)鐘脈沖選擇模塊中采用同一組控制開關(guān)。這樣當(dāng)輸入一種控制數(shù)據(jù)時(shí),輸出的波形也就是所需的波形。這種設(shè)計(jì)可以減少按鍵的數(shù)量,節(jié)省資源,降低錯(cuò)誤機(jī)率。任意波形發(fā)生器的系統(tǒng)總體設(shè)計(jì)原理圖如圖7-9所示。圖7-9任意波形發(fā)生器的系統(tǒng)總體設(shè)計(jì)原理圖7.3.6狀態(tài)機(jī)

狀態(tài)機(jī)通常分為米勒型(Mealy)和摩爾型(Moore)。米勒型狀態(tài)機(jī)的輸出由電路當(dāng)前的輸入和電路原來的狀態(tài)決定,屬于同步輸出狀態(tài)機(jī),一旦輸入信號(hào)或狀態(tài)發(fā)生變化,輸出信號(hào)立即發(fā)生變化。摩爾型狀態(tài)機(jī)的輸出是當(dāng)前狀態(tài)的函數(shù),屬于異步輸出狀態(tài)機(jī),輸出信號(hào)只在時(shí)鐘邊沿到來時(shí)才發(fā)生變化。7.4實(shí)訓(xùn)7.4.14位乘法器設(shè)計(jì)一、實(shí)訓(xùn)目的

(1)用組合邏輯電路設(shè)計(jì)4位并行乘法器。

(2)了解并行乘法器的設(shè)計(jì)原理。

(3)掌握結(jié)構(gòu)化設(shè)計(jì)方法。二、實(shí)訓(xùn)原理

4位乘法器有多種實(shí)現(xiàn)方案,根據(jù)乘法器的運(yùn)算原理,使部分乘積項(xiàng)對(duì)齊相加(通常稱并行法)是最典型的算法之一。這種算法可用組合電路實(shí)驗(yàn),其特點(diǎn)是設(shè)計(jì)思路簡(jiǎn)單直觀、電路運(yùn)算速度快,缺點(diǎn)是使用器件較多。

1.并行乘法的算法

下面將根據(jù)乘法例題來分析這種算法,題中M4、M3、M2、M1是被乘數(shù),用M表示。N4、N3、N2、N1是乘數(shù),用N表示,如圖7-10所示。從以上乘法實(shí)例可以看到,乘數(shù)N中的每一位都要與被乘數(shù)M相乘,獲得不同的積,每部分乘法之和相加時(shí)需按高低位對(duì)齊,并行相加,才能得到正確的結(jié)果。

2.并行乘法電路原理

并行乘法電路完全是根據(jù)以上算法而設(shè)計(jì)的,其電路框圖如圖7-11所示。圖中XB0、XB1、XB2、XB3是乘數(shù)B的第N位與被乘數(shù)A相乘的1×4bit乘法器。三個(gè)加法器將1×4bit乘法器的積作為加數(shù)A,前一級(jí)加法器的和作為加數(shù)B,相加后得到新的部分積,通過三級(jí)加法器的累加最終得到乘積P(P7P6P5P4P3P2P1P0)。圖7-11并行乘法電路框圖

三、實(shí)訓(xùn)內(nèi)容

(1)用VHDL語言設(shè)計(jì)4位乘法器。

(2)設(shè)計(jì)乘法器功能模塊及4位加法器功能模塊,并解釋程序。

(3)采用結(jié)構(gòu)化方法設(shè)計(jì)該乘法器。

(4)進(jìn)行軟件仿真,并分析仿真結(jié)果。

(5)鎖定引腳,并下載驗(yàn)證。

四、實(shí)訓(xùn)步驟(略)

五、器件下載編程與硬件實(shí)現(xiàn)

在進(jìn)行硬件測(cè)試時(shí),選擇8個(gè)按鍵作為4個(gè)數(shù)據(jù)輸入信號(hào),用8個(gè)LED燈作為運(yùn)算結(jié)果數(shù)據(jù)輸出指示,每4個(gè)數(shù)為一個(gè)二進(jìn)制數(shù)值,通過LED燈的亮滅來顯示乘法的運(yùn)算結(jié)果。其硬件對(duì)應(yīng)示意表如表7-4所示。本實(shí)訓(xùn)的硬件結(jié)構(gòu)示意圖如圖7-12所示。圖7-12硬件結(jié)構(gòu)示意圖

六、實(shí)訓(xùn)報(bào)告

(1)說明實(shí)訓(xùn)項(xiàng)目的工作原理、所需要的器材。

(2)寫出設(shè)計(jì)源程序,并進(jìn)行解釋。

(3)寫出軟件仿真結(jié)果,并進(jìn)行分析。

(4)說明硬件原理與測(cè)試情況。

(5)寫出心得體會(huì)。7.4.2步長(zhǎng)可變的加減計(jì)數(shù)器設(shè)計(jì)

一、實(shí)訓(xùn)目的

(1)掌握加減法計(jì)數(shù)器以及特殊功能計(jì)數(shù)器的設(shè)計(jì)原理。

(2)用VHDL語言設(shè)計(jì)多功能計(jì)數(shù)器。

二、實(shí)訓(xùn)原理

1.加減工作原理

加減計(jì)數(shù)也稱為可逆計(jì)數(shù),就是根據(jù)計(jì)數(shù)控制信號(hào)的不同,在時(shí)鐘脈沖的作用下,計(jì)數(shù)器可以進(jìn)行加1計(jì)數(shù)操作或者減1計(jì)數(shù)操作。

2.變步長(zhǎng)工作原理

如步長(zhǎng)為3的加法計(jì)數(shù)器,計(jì)數(shù)狀態(tài)變化為0,3,6,9,12,…,步長(zhǎng)值由輸入端控制。在加法計(jì)數(shù)時(shí),當(dāng)計(jì)數(shù)值達(dá)到或超過99時(shí),下一個(gè)時(shí)鐘脈沖過后,計(jì)數(shù)器清零;在減法計(jì)數(shù)時(shí),當(dāng)計(jì)數(shù)值達(dá)到或小于0時(shí),下一個(gè)時(shí)鐘脈沖過后,計(jì)數(shù)器也清零。其工作過程如圖7-13所示。圖7-13步長(zhǎng)可變的加減計(jì)數(shù)器工作過程

三、實(shí)訓(xùn)內(nèi)容

(1)設(shè)計(jì)的計(jì)數(shù)步長(zhǎng)可在0~99之間變化。

(2)通過仿真或觀察波形圖驗(yàn)證設(shè)計(jì)的正確性。

(3)編譯下載,驗(yàn)證結(jié)果。

四、設(shè)計(jì)提示

(1)注意IF語句的嵌套。

(2)注意加減計(jì)數(shù)狀態(tài)的變化,計(jì)數(shù)值由9變0(加法)及由0變9(減法)各位的變化。由于計(jì)數(shù)器為十進(jìn)制計(jì)數(shù)器,還應(yīng)考慮進(jìn)位或借位后進(jìn)行加6及減6校正。

五、實(shí)訓(xùn)步驟(略)

六、器件下載編程與硬件實(shí)現(xiàn)

在進(jìn)行硬件測(cè)試時(shí),取按鍵K1~K4對(duì)應(yīng)步長(zhǎng)數(shù)的十位(BCD碼),K1為高位;按鍵K5~K8對(duì)應(yīng)步長(zhǎng)數(shù)的個(gè)位(BCD碼),K5為高位;按鍵K9為使能開關(guān)(高電平有效);按鍵K10為加減模式切換開關(guān)(高電平為加,低電平為減);按鍵K11為同步清零開關(guān)(低電平有效)。計(jì)數(shù)的結(jié)果通過兩個(gè)數(shù)碼管M2、M1顯示輸出。

本實(shí)訓(xùn)的硬件結(jié)構(gòu)示意圖如圖7-14所示。圖7-14硬件結(jié)構(gòu)示意圖

七、實(shí)訓(xùn)報(bào)告

(1)指出實(shí)訓(xùn)所需要的器材。

(2)寫出多模加減計(jì)數(shù)器的VHDL源程序,并進(jìn)行分析說明。

(3)敘述多模加減計(jì)數(shù)器的工作原理。

(4)畫出計(jì)數(shù)器仿真工作波形圖,并分析說明。

(5)寫出硬件測(cè)試情況。

(6)寫出心得體會(huì)。7.4.3序列檢測(cè)器設(shè)計(jì)

一、實(shí)訓(xùn)目的

(1)了解狀態(tài)機(jī)的設(shè)計(jì)方法。

(2)運(yùn)用狀態(tài)機(jī)的原理設(shè)計(jì)一個(gè)序列檢測(cè)器。

(3)掌握枚舉類型的用法。二、實(shí)訓(xùn)原理

序列檢測(cè)器在數(shù)據(jù)通信、雷達(dá)和遙測(cè)等領(lǐng)域中用于檢測(cè)同步識(shí)別標(biāo)志。它是一種用于檢測(cè)一組或多組序列信號(hào)的電路,例如檢測(cè)器收到一組串行碼1110010后,輸出標(biāo)志1,否則輸出0??紤]這個(gè)例子,每收到一個(gè)符合要求的串行碼就需要用一個(gè)狀態(tài)機(jī)進(jìn)行記憶。串行碼長(zhǎng)度為7位,需要7個(gè)狀態(tài)。另外,還需要增加一個(gè)“未收到一個(gè)有效位”的狀態(tài),共8個(gè)狀態(tài)(S0~S7),狀態(tài)標(biāo)志符的下標(biāo)表示有幾個(gè)有效位被讀出。畫出狀態(tài)轉(zhuǎn)移圖,如圖7-15所示,很顯然這是一個(gè)摩爾型狀態(tài)機(jī)。8個(gè)狀態(tài)機(jī)根據(jù)編碼原則可以用3位二進(jìn)制數(shù)來表示。圖7-15序列檢測(cè)器的狀態(tài)轉(zhuǎn)換圖

三、實(shí)訓(xùn)內(nèi)容

(1)用VHDL語言編寫出源程序。

(2)設(shè)計(jì)兩個(gè)脈沖發(fā)生器,一個(gè)檢測(cè)1110010序列;另一個(gè)不包含此序列,用于檢測(cè)程序的正確性。

(3)將脈沖序列發(fā)生器和脈沖序列檢測(cè)器結(jié)合生成一個(gè)文件,并編譯下載,驗(yàn)證結(jié)果。

四、實(shí)訓(xùn)步驟

該實(shí)訓(xùn)項(xiàng)目因?yàn)橐幸粋€(gè)符合要求的序列信號(hào),所以涉及第3章的實(shí)訓(xùn),需要一個(gè)脈沖序列發(fā)生器。第3章的實(shí)訓(xùn)是通過原理圖進(jìn)行設(shè)計(jì)的,讀者也可以用VHDL語言進(jìn)行設(shè)計(jì),這樣可以修改產(chǎn)生的脈沖序列。在產(chǎn)生脈沖序列的程序中可以添加控制按鍵,用于產(chǎn)生不同的脈沖序列信號(hào),比如當(dāng)控制按鍵為高電平時(shí)輸出“11100100”序列,低電平時(shí)輸出“10101010”序列,然后再用本實(shí)訓(xùn)的序列檢測(cè)器檢測(cè)該序列,通過LED燈的亮滅表示是否檢測(cè)到該序列。也可以通過示波器先檢測(cè)一下脈沖序列信號(hào)是否正確??梢酝ㄟ^一個(gè)程序完成全部功能,該程序包括脈沖信號(hào)產(chǎn)生程序與脈沖信號(hào)檢測(cè)程序,也可以兩個(gè)人合作通過兩臺(tái)EDA實(shí)驗(yàn)開發(fā)系統(tǒng)的擴(kuò)展口分別實(shí)現(xiàn)兩個(gè)程序及其之間的通信。五、器件下載編程與硬件實(shí)現(xiàn)

在進(jìn)行硬件測(cè)試時(shí),在脈沖信號(hào)產(chǎn)生程序中按鍵K1為復(fù)位端(低電平時(shí)復(fù)位),按鍵K2為數(shù)據(jù)選擇開關(guān)(高電平時(shí)輸出“11100100”序列,低電平時(shí)輸出“10101010”序列),擴(kuò)展口(JK3)輸出脈沖信號(hào),擴(kuò)展口JK4為接收數(shù)據(jù)端,LED燈用于顯示是否接到一個(gè)正確的脈沖序列。本實(shí)訓(xùn)的硬件結(jié)構(gòu)示意圖如圖7-16所示。圖7-16序列檢測(cè)器的硬件結(jié)構(gòu)示意圖

六、實(shí)訓(xùn)報(bào)告

(1)說明實(shí)訓(xùn)項(xiàng)目的工作原理、所需要的器材。

(2)寫出設(shè)計(jì)源程序,并進(jìn)行解釋。

(3)寫出軟件仿真結(jié)果,并進(jìn)行分析。

(4)說明硬件原理與測(cè)試情況。

(5)寫出心得體會(huì)。7.4.44人搶答器設(shè)計(jì)

一、實(shí)訓(xùn)目的

(1)掌握小型數(shù)字系統(tǒng)的設(shè)計(jì)。

(2)掌握利用原理圖輸入與VHDL輸入共同設(shè)計(jì)電路的方法。

二、實(shí)訓(xùn)原理與要求

1.設(shè)計(jì)要求

4人搶答器的設(shè)計(jì)要求如下:

(1)有多路搶答,搶答臺(tái)數(shù)為4。

(2)搶答開始后20秒倒計(jì)時(shí),20秒倒計(jì)時(shí)后無人搶答則顯示超時(shí),并報(bào)警。

(3)能顯示超前搶答臺(tái)號(hào)并給出犯規(guī)警報(bào)。

(4)系統(tǒng)復(fù)位后進(jìn)入搶答狀態(tài),當(dāng)有一路搶答按鍵按下時(shí),該路搶答信號(hào)將其余各路搶答信號(hào)封鎖,同時(shí)鈴聲響起,直至該路按鍵松開,顯示牌顯示該路搶答臺(tái)號(hào)。

(5)用VHDL設(shè)計(jì)符合上述功能要求的4人搶答器,并用層次化設(shè)計(jì)方法設(shè)計(jì)該電路。

2.設(shè)計(jì)原理

4人搶答器原理框圖如圖7-17所示。

系統(tǒng)復(fù)位后,反饋信號(hào)為一個(gè)高電平信號(hào),使K1、K2、K3、K4輸入有效。搶答開始后,有第一個(gè)人按鍵,搶答保持電路輸出低電平,同時(shí)送顯示電路,讓其保存按鍵的臺(tái)號(hào)并輸出,并反饋給搶答臺(tái),使所有的搶答臺(tái)輸入無效,計(jì)時(shí)電路停止。當(dāng)在規(guī)定時(shí)間內(nèi)無人搶答時(shí),倒計(jì)時(shí)電路輸出超時(shí)信號(hào)。當(dāng)有人搶先按鍵時(shí)將顯示犯規(guī)信號(hào)。

這是一個(gè)簡(jiǎn)單實(shí)用的數(shù)字系統(tǒng),可采用自頂向下的設(shè)計(jì)方法,頂層系統(tǒng)采用原理設(shè)計(jì)方式,各個(gè)模塊用VHDL進(jìn)行編程,系統(tǒng)圖如圖7-18所示,即以原理圖作為頂層文件(工程項(xiàng)目文件)。圖7-174人搶答器原理框圖圖7-18中,reset為復(fù)位鍵,k[3..0]為開關(guān)輸入,firstman為輸出搶答人員編號(hào);RED為紅燈輸出,GREE

溫馨提示

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

評(píng)論

0/150

提交評(píng)論