計數(shù)器與分頻器VHDL設(shè)計_第1頁
計數(shù)器與分頻器VHDL設(shè)計_第2頁
計數(shù)器與分頻器VHDL設(shè)計_第3頁
計數(shù)器與分頻器VHDL設(shè)計_第4頁
計數(shù)器與分頻器VHDL設(shè)計_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

EDA課程的地位和作用

項目8

時序電路的VHDL設(shè)計

工作任務(wù):1.基礎(chǔ)知識學(xué)習(xí)2.通用計數(shù)器設(shè)計3.十進(jìn)制減法計數(shù)器設(shè)計4.十二進(jìn)制加法計數(shù)器設(shè)計8-2計數(shù)器的VHDL設(shè)計1.基礎(chǔ)知識學(xué)習(xí)計數(shù)器功能:對輸入脈沖計數(shù)計數(shù)器應(yīng)用:計數(shù)、定時、控制、分頻等計數(shù)器分類:

按同步方式分:同步計數(shù)器、異步計數(shù)器

同步:受同一個時鐘控制異步:不受同一個時鐘控制

按計數(shù)方向分:加法計數(shù)器、減法計數(shù)器

按模數(shù)分:二進(jìn)制、五進(jìn)制、十進(jìn)制等計數(shù)器:1.基礎(chǔ)知識學(xué)習(xí)PLD原理PLD分類CPLD:PAL擴(kuò)展型FPGA:邏輯單元型可編程邏輯器件(PLD):輸入電路與門陣列或門陣列輸出電路輸入輸出1.基礎(chǔ)知識學(xué)習(xí)PLD優(yōu)點:

密度大功耗低速度快結(jié)構(gòu)靈活開發(fā)工具先進(jìn)可編程邏輯器件(PLD):VHDL語言要點:結(jié)合VHDL源程序?qū)嵗v解2.通用計數(shù)器設(shè)計設(shè)計一個通用計數(shù)器,要求:復(fù)位信號為高電平時計數(shù)器清零或賦初值;使能信號為高電平時計數(shù)器正常工作,低電平時計數(shù)值不變;計數(shù)方向控制信號為高電平時,按加法規(guī)則計數(shù),即來一個時鐘計數(shù)器加1,計數(shù)器達(dá)到最大值時再來一個時鐘自動清零;否則,按減法規(guī)則計數(shù),減到0時再來一個時鐘計數(shù)器為最大值;計數(shù)器的??烧{(diào);計數(shù)器觸發(fā)邊沿可調(diào)。設(shè)計要求:resetenableclkQ[0…N-1]通用計數(shù)器dir(1)構(gòu)思——擬定設(shè)計方案CDIO(構(gòu)思、設(shè)計、實現(xiàn)、運行)理念(2)設(shè)計——編寫VHDL源程序方案一、用硬件搭接,缺點是電路復(fù)雜,焊點多,可靠性差,不夠靈活;方案二、用單片機(jī)實現(xiàn),但可靠性差,速度慢;方案三、用硬件描述語言(HDL)編程,用可編程邏輯器件(PLD)實現(xiàn),好處是可靠性高、靈活性好。

VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.numeric_std.all;entitycountnis

generic(N:integer:=10);--N為正整數(shù) port ( clk,dir :instd_logic; reset :instd_logic; enable:instd_logic; q:outintegerrange0toN-1 );endentity;architecturertlofcountnisbeginprocess(clk)

variablecnt :integerrange0toN-1;begin

ifreset='1'then

cnt:=0;--計數(shù)器復(fù)位

elsifenable='1'then--

計數(shù)器正常工作 if(clk'eventandclk='1')then--時鐘上升沿到來

ifdir='1'then

if(cnt<N-1)then--加法計數(shù)cnt:=cnt+1;elsecnt:=0;endif;

else

if(cnt>0)then--減法計數(shù)cnt:=cnt-1;elsecnt:=N-1;endif;

endif;

endif;

endif;q<=cnt;--輸出計數(shù)值endprocess;endrtl;(3)實現(xiàn)——編輯、編譯、仿真、編程由波形圖可以看出,由于dir為高電平,N=10,這時countn就是一個十進(jìn)制加法計數(shù)器。如果要生成其它進(jìn)制的加法計數(shù)器,只要修改generic類屬變量參數(shù)N的值即可。例如:設(shè)計五進(jìn)制計數(shù)器時,令N=5;設(shè)計十二進(jìn)制計數(shù)器時,令N=12。如果需要對輸入脈沖下降沿計數(shù),只要將if(clk‘eventandclk=‘1’)then語句中的’1’改為’0’即可。(4)運行——測試、改進(jìn)、總結(jié)3.學(xué)中做——十進(jìn)制減法計數(shù)器要求:設(shè)計一個十進(jìn)制減法計數(shù)器,初值為9。構(gòu)思:

方案一、仿照countn重新設(shè)計,好處是可以省掉加法計數(shù)部分的的語句,節(jié)省資源,但改動地方較多,容易出錯;

方案二、在通用計數(shù)器countn源程序的基礎(chǔ)上稍作修改即可滿足設(shè)計要求,好處是可以簡化程序設(shè)計,但占用資源稍多。設(shè)計:采用方案二。將countn中語句ifreset=‘1’thencnt:=0;

改為ifreset=‘1’thencnt:=9;實現(xiàn)初值為9的要求;仿真時令dir為低電平,實現(xiàn)減法計數(shù)的要求。3.學(xué)中做——十進(jìn)制減法計數(shù)器圖中可以看出,reset為高電平時計數(shù)器輸出為9;由于dir為低電平,N=10,所以countn變成了一個十進(jìn)制減法計數(shù)器。實現(xiàn):編輯、編譯、仿真、編程運行:測試、改進(jìn)、總結(jié)4.做中學(xué)——設(shè)計一個十二進(jìn)制加法計數(shù)器

設(shè)計要求:輸入輸出resetenableclkQ3Q2Q1Q01XX000000X不變不變不變不變01計數(shù)器+1(N=11時清零)十二進(jìn)制加法計數(shù)器功能表(1)構(gòu)思——擬定設(shè)計方案resetenableclkQ[0…11]十二進(jìn)制加法計數(shù)器dir‘1’(2)設(shè)計——編寫VHDL源程序

將countn源程序中的語句generic(N:integer:=10)改為generic(N:integer:=12即可。方案一、仿照countn重新設(shè)計,好處是可以省掉減法計數(shù)部分的語句,節(jié)省資源;方案二、在通用計數(shù)器countn源程序的基礎(chǔ)上稍作修改,好處是可以簡化程序設(shè)計。

(3)實現(xiàn)——編輯、編譯、仿真、編程(4)運行——測試、改進(jìn)、總結(jié)仿真時令dir為高電平。圖中可以看出,由于dir=‘1’,N=12,這時countn就變成一個十二進(jìn)制加法計數(shù)器。課后作業(yè):按照“構(gòu)思、設(shè)計、實現(xiàn)、運行”的步驟,完成初值為5的六進(jìn)制減法計數(shù)器設(shè)計。課堂練習(xí):按照“構(gòu)思、設(shè)計、實現(xiàn)、運行”的步驟,設(shè)計一個初值為2的五進(jìn)制雙向計數(shù)器。工作任務(wù):1.分頻器概念2.通用分頻器設(shè)計3.占空比50%的奇數(shù)分頻器設(shè)計8-3分頻器的VHDL設(shè)計1.分頻器概念分頻器功能:把頻率較高的信號變成頻率較低的信號。分頻器參數(shù):分頻系數(shù):rate=fin/fout

占空比:輸出脈沖持續(xù)高電平的時間:周期。分頻器種類:偶數(shù)分頻器、奇數(shù)分頻器、占空比可調(diào)的分頻器。clkinclkout分頻器2.設(shè)計舉例——通用分頻器設(shè)計要求:分頻系數(shù)可調(diào),占空比為可調(diào)(占空比為50%時分頻系數(shù)不能是奇數(shù))。構(gòu)思:

假設(shè),分頻系數(shù)為n,占空比為m:n(m,n為正整數(shù),且m<n;m:n=50%時n不能為奇數(shù))。方案一、用硬件搭接,缺點是電路復(fù)雜,焊點多,可靠性、靈活性差;

方案二、用單片機(jī)實現(xiàn),雖然靈活性較好,但速度慢;

方案三、用硬件描述語言(HDL)編程,用可編程邏輯器件(PLD)實現(xiàn),好處是可靠性高、靈活性好。clkinclkout分頻器2.設(shè)計舉例——通用分頻器設(shè)計:采用方案三例如,設(shè)計占空比為30%的10分頻器,其輸入輸出波形如下圖所示??梢钥闯?,輸出1個周期=輸入信號的10個周期,前3個輸入周期,輸出高電平;后7個輸入周期,輸出低電平。

方法:設(shè)計一個摸數(shù)為分頻系數(shù)n的計數(shù)器,對輸入時鐘脈沖計數(shù),當(dāng)計數(shù)值為0~m-1時,輸出高電平;計數(shù)值為m~n-1時,輸出低電平。

源程序:見下頁通用分頻器的VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityfdivnisgeneric(n:integer:=10;m:integer:=3);--n為分頻系數(shù),占空比m:n;占空比=50%時n不能為奇數(shù)port(clkin:INstd_logic;clkout:OUTstd_logic);endfdivn;architectureaoffdivnissignalcnt:integerrange0ton-1;--定義中間信號(這里為么不用變量?信號與變量有何不同?)beginprocess(clkin)beginif(clkin'eventandclkin='1')thenif(cnt<n-1)thencnt<=cnt+1;elsecnt<=0;endif;endif;endprocess;clkout<='1'whencnt<melse'0';enda;從波形圖可以看到,clkout是clkin的10分頻,且占空比為3:10,即30%。修改上述程序中g(shù)eneric類屬變量m和n的參數(shù)值,即可得到不同分頻系數(shù)和占空比的分頻器。實現(xiàn):編輯、編譯、仿真、編程運行:測試、改進(jìn)、總結(jié)做做看——設(shè)計一個占空比40%的5分頻器做做看——設(shè)計占空比40%的5分頻器構(gòu)思:因分頻系數(shù)為5,占空比40%,故取n=5,m=2。設(shè)計:修改fdivn中g(shù)eneric類屬變量m和n的參數(shù)值,令n=5,m=2。實現(xiàn):修改程序并存盤,編譯、仿真。

3.學(xué)中做——占空比50%的奇數(shù)分頻器設(shè)計設(shè)計要求:分頻系數(shù)為奇數(shù),占空比50%構(gòu)思:

分析:因為計數(shù)器模數(shù)為奇數(shù),占空比為50%,所以計數(shù)器輸出的前半個周期和后半個周期所包含的輸入時鐘的周期數(shù)不是整數(shù)。例如,5分頻器,clkout的前半個周期包含2.5個clkin周期,后半個周期包含2.5個clkin周期。方案:設(shè)計兩個摸為分頻系數(shù)的計數(shù)器,一個對輸入時鐘的上升沿計數(shù),另一個對輸入時鐘的下降沿計數(shù),然后把這兩個計數(shù)器的輸出接到“或門”的輸入,“或門”的輸做分頻器的輸出clkout。設(shè)計:

源程序:占空比為50%的奇數(shù)分頻器 占空比為50%的奇數(shù)分頻器VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityfdivoisgeneric(N:integer:=5);--分頻系數(shù)=N,N是奇數(shù)port(clkin:instd_logic;clkout:outstd_logic);endfdivo;architectureaoffdivoissignalcnt1,cnt2:integerrange0toN-1;beginprocess(clkin)beginif(clkin'eventandclkin='1')then--上升沿計數(shù)if(cnt1<N-1)thencnt1<=cnt1+1;else cnt1<=0; endif;

溫馨提示

  • 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

提交評論