




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
EDA課程的地位和作用
項目8
時序電路的VHDL設計
工作任務:1.基礎知識學習2.通用計數(shù)器設計3.十進制減法計數(shù)器設計4.十二進制加法計數(shù)器設計8-2計數(shù)器的VHDL設計1.基礎知識學習計數(shù)器功能:對輸入脈沖計數(shù)計數(shù)器應用:計數(shù)、定時、控制、分頻等計數(shù)器分類:
按同步方式分:同步計數(shù)器、異步計數(shù)器
同步:受同一個時鐘控制異步:不受同一個時鐘控制
按計數(shù)方向分:加法計數(shù)器、減法計數(shù)器
按模數(shù)分:二進制、五進制、十進制等計數(shù)器:1.基礎知識學習PLD原理PLD分類CPLD:PAL擴展型FPGA:邏輯單元型可編程邏輯器件(PLD):輸入電路與門陣列或門陣列輸出電路輸入輸出1.基礎知識學習PLD優(yōu)點:
密度大功耗低速度快結構靈活開發(fā)工具先進可編程邏輯器件(PLD):VHDL語言要點:結合VHDL源程序?qū)嵗v解2.通用計數(shù)器設計設計一個通用計數(shù)器,要求:復位信號為高電平時計數(shù)器清零或賦初值;使能信號為高電平時計數(shù)器正常工作,低電平時計數(shù)值不變;計數(shù)方向控制信號為高電平時,按加法規(guī)則計數(shù),即來一個時鐘計數(shù)器加1,計數(shù)器達到最大值時再來一個時鐘自動清零;否則,按減法規(guī)則計數(shù),減到0時再來一個時鐘計數(shù)器為最大值;計數(shù)器的??烧{(diào);計數(shù)器觸發(fā)邊沿可調(diào)。設計要求:resetenableclkQ[0…N-1]通用計數(shù)器dir(1)構思——擬定設計方案CDIO(構思、設計、實現(xiàn)、運行)理念(2)設計——編寫VHDL源程序方案一、用硬件搭接,缺點是電路復雜,焊點多,可靠性差,不夠靈活;方案二、用單片機實現(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ù)器復位
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就是一個十進制加法計數(shù)器。如果要生成其它進制的加法計數(shù)器,只要修改generic類屬變量參數(shù)N的值即可。例如:設計五進制計數(shù)器時,令N=5;設計十二進制計數(shù)器時,令N=12。如果需要對輸入脈沖下降沿計數(shù),只要將if(clk‘eventandclk=‘1’)then語句中的’1’改為’0’即可。(4)運行——測試、改進、總結3.學中做——十進制減法計數(shù)器要求:設計一個十進制減法計數(shù)器,初值為9。構思:
方案一、仿照countn重新設計,好處是可以省掉加法計數(shù)部分的的語句,節(jié)省資源,但改動地方較多,容易出錯;
方案二、在通用計數(shù)器countn源程序的基礎上稍作修改即可滿足設計要求,好處是可以簡化程序設計,但占用資源稍多。設計:采用方案二。將countn中語句ifreset=‘1’thencnt:=0;
改為ifreset=‘1’thencnt:=9;實現(xiàn)初值為9的要求;仿真時令dir為低電平,實現(xiàn)減法計數(shù)的要求。3.學中做——十進制減法計數(shù)器圖中可以看出,reset為高電平時計數(shù)器輸出為9;由于dir為低電平,N=10,所以countn變成了一個十進制減法計數(shù)器。實現(xiàn):編輯、編譯、仿真、編程運行:測試、改進、總結4.做中學——設計一個十二進制加法計數(shù)器
設計要求:輸入輸出resetenableclkQ3Q2Q1Q01XX000000X不變不變不變不變01計數(shù)器+1(N=11時清零)十二進制加法計數(shù)器功能表(1)構思——擬定設計方案resetenableclkQ[0…11]十二進制加法計數(shù)器dir‘1’(2)設計——編寫VHDL源程序
將countn源程序中的語句generic(N:integer:=10)改為generic(N:integer:=12即可。方案一、仿照countn重新設計,好處是可以省掉減法計數(shù)部分的語句,節(jié)省資源;方案二、在通用計數(shù)器countn源程序的基礎上稍作修改,好處是可以簡化程序設計。
(3)實現(xiàn)——編輯、編譯、仿真、編程(4)運行——測試、改進、總結仿真時令dir為高電平。圖中可以看出,由于dir=‘1’,N=12,這時countn就變成一個十二進制加法計數(shù)器。課后作業(yè):按照“構思、設計、實現(xiàn)、運行”的步驟,完成初值為5的六進制減法計數(shù)器設計。課堂練習:按照“構思、設計、實現(xiàn)、運行”的步驟,設計一個初值為2的五進制雙向計數(shù)器。工作任務:1.分頻器概念2.通用分頻器設計3.占空比50%的奇數(shù)分頻器設計8-3分頻器的VHDL設計1.分頻器概念分頻器功能:把頻率較高的信號變成頻率較低的信號。分頻器參數(shù):分頻系數(shù):rate=fin/fout
占空比:輸出脈沖持續(xù)高電平的時間:周期。分頻器種類:偶數(shù)分頻器、奇數(shù)分頻器、占空比可調(diào)的分頻器。clkinclkout分頻器2.設計舉例——通用分頻器設計要求:分頻系數(shù)可調(diào),占空比為可調(diào)(占空比為50%時分頻系數(shù)不能是奇數(shù))。構思:
假設,分頻系數(shù)為n,占空比為m:n(m,n為正整數(shù),且m<n;m:n=50%時n不能為奇數(shù))。方案一、用硬件搭接,缺點是電路復雜,焊點多,可靠性、靈活性差;
方案二、用單片機實現(xiàn),雖然靈活性較好,但速度慢;
方案三、用硬件描述語言(HDL)編程,用可編程邏輯器件(PLD)實現(xiàn),好處是可靠性高、靈活性好。clkinclkout分頻器2.設計舉例——通用分頻器設計:采用方案三例如,設計占空比為30%的10分頻器,其輸入輸出波形如下圖所示??梢钥闯?,輸出1個周期=輸入信號的10個周期,前3個輸入周期,輸出高電平;后7個輸入周期,輸出低電平。
方法:設計一個摸數(shù)為分頻系數(shù)n的計數(shù)器,對輸入時鐘脈沖計數(shù),當計數(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%。修改上述程序中generic類屬變量m和n的參數(shù)值,即可得到不同分頻系數(shù)和占空比的分頻器。實現(xiàn):編輯、編譯、仿真、編程運行:測試、改進、總結做做看——設計一個占空比40%的5分頻器做做看——設計占空比40%的5分頻器構思:因分頻系數(shù)為5,占空比40%,故取n=5,m=2。設計:修改fdivn中generic類屬變量m和n的參數(shù)值,令n=5,m=2。實現(xiàn):修改程序并存盤,編譯、仿真。
3.學中做——占空比50%的奇數(shù)分頻器設計設計要求:分頻系數(shù)為奇數(shù),占空比50%構思:
分析:因為計數(shù)器模數(shù)為奇數(shù),占空比為50%,所以計數(shù)器輸出的前半個周期和后半個周期所包含的輸入時鐘的周期數(shù)不是整數(shù)。例如,5分頻器,clkout的前半個周期包含2.5個clkin周期,后半個周期包含2.5個clkin周期。方案:設計兩個摸為分頻系數(shù)的計數(shù)器,一個對輸入時鐘的上升沿計數(shù),另一個對輸入時鐘的下降沿計數(shù),然后把這兩個計數(shù)器的輸出接到“或門”的輸入,“或門”的輸做分頻器的輸出clkout。設計:
源程序:占空比為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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司債款轉(zhuǎn)讓合同標準文本
- 買賣青椒合同樣本
- 兩人合伙開臺球室合同樣本
- 上海租房線上合同標準文本
- ktv公主勞動合同標準文本
- 分期車輛轉(zhuǎn)賣合同標準文本
- 企業(yè)汽車抵押合同樣本
- 書贈與協(xié)議合同樣本
- 乒乓球訓練服務合同范例
- 農(nóng)場土地交換合同樣本
- 環(huán)境健康與安全EHS管理制度
- 2024年06月工商銀行黑龍江分行金融科技社會招聘(41人)筆試歷年參考題庫附帶答案詳解
- 公共基礎知識課堂筆記
- 2025廣東省廣州打撈局編外人員招聘21名高頻重點提升(共500題)附帶答案詳解
- 產(chǎn)科護理臨床案例分享
- 煙草制品零售數(shù)據(jù)統(tǒng)計分析考核試卷
- 《中國動畫發(fā)展史》課件
- 中電建新能源集團股份有限公司云南分公司招聘筆試沖刺題2024
- 經(jīng)皮放射性粒子植入護理全程管理專家共識
- 【名校區(qū)域大聯(lián)考】專題04.閱讀理解D篇(說明文或議論文為主)(解析版)
- 專題四 二次函數(shù)綜合題(含答案)2025年中考數(shù)學一輪題型專練(陜西)
評論
0/150
提交評論