版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
EDA課程的地位和作用
項目8
時序電路的VHDL設計
工作任務:1.基礎知識學習2.通用計數器設計3.十進制減法計數器設計4.十二進制加法計數器設計8-2計數器的VHDL設計1.基礎知識學習計數器功能:對輸入脈沖計數計數器應用:計數、定時、控制、分頻等計數器分類:
按同步方式分:同步計數器、異步計數器
同步:受同一個時鐘控制異步:不受同一個時鐘控制
按計數方向分:加法計數器、減法計數器
按模數分:二進制、五進制、十進制等計數器:1.基礎知識學習PLD原理PLD分類CPLD:PAL擴展型FPGA:邏輯單元型可編程邏輯器件(PLD):輸入電路與門陣列或門陣列輸出電路輸入輸出1.基礎知識學習PLD優點:
密度大功耗低速度快結構靈活開發工具先進可編程邏輯器件(PLD):VHDL語言要點:結合VHDL源程序實例講解2.通用計數器設計設計一個通用計數器,要求:復位信號為高電平時計數器清零或賦初值;使能信號為高電平時計數器正常工作,低電平時計數值不變;計數方向控制信號為高電平時,按加法規則計數,即來一個時鐘計數器加1,計數器達到最大值時再來一個時鐘自動清零;否則,按減法規則計數,減到0時再來一個時鐘計數器為最大值;計數器的模可調;計數器觸發邊沿可調。設計要求:resetenableclkQ[0…N-1]通用計數器dir(1)構思——擬定設計方案CDIO(構思、設計、實現、運行)理念(2)設計——編寫VHDL源程序方案一、用硬件搭接,缺點是電路復雜,焊點多,可靠性差,不夠靈活;方案二、用單片機實現,但可靠性差,速度慢;方案三、用硬件描述語言(HDL)編程,用可編程邏輯器件(PLD)實現,好處是可靠性高、靈活性好。
VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.numeric_std.all;entitycountnis
generic(N:integer:=10);--N為正整數 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;--計數器復位
elsifenable='1'then--
計數器正常工作 if(clk'eventandclk='1')then--時鐘上升沿到來
ifdir='1'then
if(cnt<N-1)then--加法計數cnt:=cnt+1;elsecnt:=0;endif;
else
if(cnt>0)then--減法計數cnt:=cnt-1;elsecnt:=N-1;endif;
endif;
endif;
endif;q<=cnt;--輸出計數值endprocess;endrtl;(3)實現——編輯、編譯、仿真、編程由波形圖可以看出,由于dir為高電平,N=10,這時countn就是一個十進制加法計數器。如果要生成其它進制的加法計數器,只要修改generic類屬變量參數N的值即可。例如:設計五進制計數器時,令N=5;設計十二進制計數器時,令N=12。如果需要對輸入脈沖下降沿計數,只要將if(clk‘eventandclk=‘1’)then語句中的’1’改為’0’即可。(4)運行——測試、改進、總結3.學中做——十進制減法計數器要求:設計一個十進制減法計數器,初值為9。構思:
方案一、仿照countn重新設計,好處是可以省掉加法計數部分的的語句,節省資源,但改動地方較多,容易出錯;
方案二、在通用計數器countn源程序的基礎上稍作修改即可滿足設計要求,好處是可以簡化程序設計,但占用資源稍多。設計:采用方案二。將countn中語句ifreset=‘1’thencnt:=0;
改為ifreset=‘1’thencnt:=9;實現初值為9的要求;仿真時令dir為低電平,實現減法計數的要求。3.學中做——十進制減法計數器圖中可以看出,reset為高電平時計數器輸出為9;由于dir為低電平,N=10,所以countn變成了一個十進制減法計數器。實現:編輯、編譯、仿真、編程運行:測試、改進、總結4.做中學——設計一個十二進制加法計數器
設計要求:輸入輸出resetenableclkQ3Q2Q1Q01XX000000X不變不變不變不變01計數器+1(N=11時清零)十二進制加法計數器功能表(1)構思——擬定設計方案resetenableclkQ[0…11]十二進制加法計數器dir‘1’(2)設計——編寫VHDL源程序
將countn源程序中的語句generic(N:integer:=10)改為generic(N:integer:=12即可。方案一、仿照countn重新設計,好處是可以省掉減法計數部分的語句,節省資源;方案二、在通用計數器countn源程序的基礎上稍作修改,好處是可以簡化程序設計。
(3)實現——編輯、編譯、仿真、編程(4)運行——測試、改進、總結仿真時令dir為高電平。圖中可以看出,由于dir=‘1’,N=12,這時countn就變成一個十二進制加法計數器。課后作業:按照“構思、設計、實現、運行”的步驟,完成初值為5的六進制減法計數器設計。課堂練習:按照“構思、設計、實現、運行”的步驟,設計一個初值為2的五進制雙向計數器。工作任務:1.分頻器概念2.通用分頻器設計3.占空比50%的奇數分頻器設計8-3分頻器的VHDL設計1.分頻器概念分頻器功能:把頻率較高的信號變成頻率較低的信號。分頻器參數:分頻系數:rate=fin/fout
占空比:輸出脈沖持續高電平的時間:周期。分頻器種類:偶數分頻器、奇數分頻器、占空比可調的分頻器。clkinclkout分頻器2.設計舉例——通用分頻器設計要求:分頻系數可調,占空比為可調(占空比為50%時分頻系數不能是奇數)。構思:
假設,分頻系數為n,占空比為m:n(m,n為正整數,且m<n;m:n=50%時n不能為奇數)。方案一、用硬件搭接,缺點是電路復雜,焊點多,可靠性、靈活性差;
方案二、用單片機實現,雖然靈活性較好,但速度慢;
方案三、用硬件描述語言(HDL)編程,用可編程邏輯器件(PLD)實現,好處是可靠性高、靈活性好。clkinclkout分頻器2.設計舉例——通用分頻器設計:采用方案三例如,設計占空比為30%的10分頻器,其輸入輸出波形如下圖所示。可以看出,輸出1個周期=輸入信號的10個周期,前3個輸入周期,輸出高電平;后7個輸入周期,輸出低電平。
方法:設計一個摸數為分頻系數n的計數器,對輸入時鐘脈沖計數,當計數值為0~m-1時,輸出高電平;計數值為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為分頻系數,占空比m:n;占空比=50%時n不能為奇數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%。修改上述程序中generic類屬變量m和n的參數值,即可得到不同分頻系數和占空比的分頻器。實現:編輯、編譯、仿真、編程運行:測試、改進、總結做做看——設計一個占空比40%的5分頻器做做看——設計占空比40%的5分頻器構思:因分頻系數為5,占空比40%,故取n=5,m=2。設計:修改fdivn中generic類屬變量m和n的參數值,令n=5,m=2。實現:修改程序并存盤,編譯、仿真。
3.學中做——占空比50%的奇數分頻器設計設計要求:分頻系數為奇數,占空比50%構思:
分析:因為計數器模數為奇數,占空比為50%,所以計數器輸出的前半個周期和后半個周期所包含的輸入時鐘的周期數不是整數。例如,5分頻器,clkout的前半個周期包含2.5個clkin周期,后半個周期包含2.5個clkin周期。方案:設計兩個摸為分頻系數的計數器,一個對輸入時鐘的上升沿計數,另一個對輸入時鐘的下降沿計數,然后把這兩個計數器的輸出接到“或門”的輸入,“或門”的輸做分頻器的輸出clkout。設計:
源程序:占空比為50%的奇數分頻器 占空比為50%的奇數分頻器VHDL源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityfdivoisgeneric(N:integer:=5);--分頻系數=N,N是奇數port(clkin:instd_logic;clkout:outstd_logic);endfdivo;architectureaoffdivoissignalcnt1,cnt2:integerrange0toN-1;beginprocess(clkin)beginif(clkin'eventandclkin='1')then--上升沿計數if(cnt1<N-1)thencnt1<=cnt1+1;else cnt1<=0; endif;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026新風鳴公司面試題及答案
- 2026信念責任面試題及答案
- 2026煙草審計面試題目及答案
- 2026醫學營養面試題庫及答案
- 2026英文互聯網面試題及答案
- 2026中國新材料產業技術創新與產業化應用前景分析
- 2026城鎮管理面試題目及答案
- (2026年)醫院現代財務管理制度
- 2026人工智能行業發展現狀需求分析投資策略規劃研究深度分析報告
- 思想政治教師述職報告(3篇)
- 傷損鋼軌管理辦法
- 商務會見活動方案
- 2025數據處理與保密協議合同書
- 中外運2025校招在線筆試題目及答案
- 兒童彈性髓內釘課件
- 2025年家庭醫生簽約服務職業技能競賽-全科醫師試題
- DBJ-T45-180-2024 《電動自行車停放充電場所建設技術標準》
- DB52T 986-2015 地理標志產品 凱里紅酸湯
- 廣州市從化區紀委監委公開招考8名合同制紀檢監察輔助人員(高頻重點提升專題訓練)共500題附帶答案詳解
- DB3210T 1178-2024林權地籍調查技術規程
- 兒童吞咽障礙的康復護理
評論
0/150
提交評論