數(shù)字規(guī)律電路設(shè)計試驗教案_第1頁
數(shù)字規(guī)律電路設(shè)計試驗教案_第2頁
數(shù)字規(guī)律電路設(shè)計試驗教案_第3頁
數(shù)字規(guī)律電路設(shè)計試驗教案_第4頁
數(shù)字規(guī)律電路設(shè)計試驗教案_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——數(shù)字規(guī)律電路設(shè)計試驗教案數(shù)字規(guī)律電路設(shè)計試驗教案趙蕙

試驗四四位全加器

試驗要求

使用EDA設(shè)計開發(fā)工具QuartusII,以VHD語言方式設(shè)計實現(xiàn)組合規(guī)律電路四位全加器。

試驗原理

四位全加器可由一位全加器以串行方式連接而成,更為高效的方式是直接用VHDL語言實現(xiàn)。

試驗步驟

1.新建工程

參考試驗二指導(dǎo),,工程名和頂層模塊名均設(shè)為fadder_4。

2.設(shè)計輸入

點擊菜單項File->new?,這次試驗我們使用VHDL描述語言方式設(shè)計電路,所以選擇新建一個“VHDLFile〞文件,點擊“OK〞按鈕,開啟代碼編輯器,將下面的代碼輸入空白編輯區(qū),輸入完成后,保存文件,文件名與實體名一致(本例為:fadder_4.vhd)。libraryieee;useieee.std_logic_1164.all;useieee.numeric_std.all;entityfadder_4isarchitecturebehaveoffadder_4isbeginresultnew?,這次試驗我們使用狀態(tài)圖方式設(shè)計電路,所以選擇新建一個“StateMachineFile〞文件,點擊“OK〞按鈕,開啟狀態(tài)圖編輯器,使用工具欄完成狀態(tài)l圖的編輯。

下圖工具欄上的按鈕作用分別是“分開窗口切換〞、“全屏幕切換〞、“選擇〞、“放大縮小〞、“查找〞、“狀態(tài)工具〞、“條件轉(zhuǎn)換工具〞、“狀態(tài)表工具〞、“狀態(tài)機生成向?qū)Ж?、“插入輸入端口〞、“插入輸出端口〞、“條件轉(zhuǎn)換等式顯示〞、“生成HDL文件工具〞、“橡皮筋工具〞。

完成后的序列檢測狀態(tài)圖如下,保存文件,本例為sequencer.smf。。

狀態(tài)圖完成后,使用“生成HDL文件工具〞

將狀態(tài)圖轉(zhuǎn)換成HDL代碼,在彈出的對話

框中可以選擇生成VerilogHDL、VHDL或SystemVerilog,本例選擇生成VHDL代碼,一個sequencer.vhd文件會自動生成并保存在你的工程文件夾里。

第23頁共37頁

數(shù)字規(guī)律電路設(shè)計試驗教案_指導(dǎo)教師趙蕙

3.規(guī)律綜合

參考試驗二指導(dǎo)。

4.功能仿真

參考試驗二指導(dǎo),創(chuàng)立仿真波形文件,根據(jù)生成的仿真波形圖,分析結(jié)果是否正確。

5.布局布線

用一個開關(guān)K1(引腳號:A12)作為序列檢測器的switch輸入,用一個發(fā)光管D1(引腳號:A0)作為序列檢測器的輸出lamp,時鐘信號可以使用開發(fā)平臺的可調(diào)數(shù)字時鐘模塊CLK(引腳號:J4),但是由于試驗平臺上沒有單拍時鐘,所以本例把時鐘信號到開關(guān)K2(引腳號:B12),通過撥動開關(guān)K2從0->1->0的變化,來模擬時鐘。

詳細引腳對應(yīng)關(guān)系見附錄。使用菜單項Assignment->Pins進行引腳分派,完成后點擊對設(shè)計進行全編譯。

按鈕,

6.編程

參考試驗二指導(dǎo)。

7.驗證

試驗報告要求

1.有限狀態(tài)機分為Moore狀態(tài)機和Mealy狀態(tài)機,簡述兩者的特點,分析本例的序列檢測器狀

態(tài)機應(yīng)當屬于哪一種?

2.設(shè)計一個1010序列檢測器,畫出狀態(tài)圖。

第24頁共37頁

數(shù)字規(guī)律電路設(shè)計試驗教案趙蕙

試驗六計數(shù)器和分頻器

試驗要求

層次化設(shè)計方法,使用VHDL方式設(shè)計實現(xiàn)10進制加法計數(shù)器。要求計數(shù)器以1秒鐘的頻率計數(shù),具有同步計數(shù),異步清零,同步預(yù)置數(shù)功能,要求計數(shù)值同時在八個數(shù)碼管上顯示。主時鐘選擇1KHz的頻率,同時作為數(shù)碼管動態(tài)掃描時鐘,1KHz主時鐘分頻后作為10進制加法器的計數(shù)時鐘。

試驗原理

計數(shù)器是最常見的時序規(guī)律電路,從微處理器的地址發(fā)生器到頻率計都需要用到計數(shù)器。分頻器與計數(shù)器十分類似,時序電路設(shè)計中需要各種各樣的分頻器來獲得不同頻率的時鐘,其中以整數(shù)分頻器最為常見,整數(shù)分頻可以簡單地使用模n計數(shù)器實現(xiàn),即隨驅(qū)動時鐘跳動n次后就輸出一個進位脈沖,然后馬上被清零或置位,再開始新一輪循環(huán)的計數(shù)器。

試驗步驟

1.新建工程

參考試驗二指導(dǎo),工程名和頂層模塊名均設(shè)為counter_TOP。

2.設(shè)計輸入

1)計數(shù)器

點擊菜單項File->new?,新建一個“VHDLFile〞文件,點擊“OK〞按鈕,開啟代碼編輯器,將下面的代碼輸入空白編輯區(qū),輸入完成后,保存文件,文件名與實體名一致(本例為:counter.vhd)。計數(shù)器模塊采用參數(shù)化設(shè)計,從MIN_COUNT開始加1計數(shù),計到MAX_COUNT后,重新回到MIN_COUNT開始計數(shù)。使用參數(shù)化設(shè)計的最大特點在于它可以被便利地修改,所以常用來建模一些需要調(diào)整的數(shù)據(jù),以便在實例化模塊時根據(jù)需要進行配置。

libraryieee;useieee.std_logic_1164.all;useieee.numeric_std.all;entitycounterisgeneric(MIN_COUNT:natural:=0;MAX_COUNT:natural:=9);port(clk:instd_logic;reset:instd_logic;load:instd_logic;enable:instd_logic;d:inintegerrangeMIN_COUNTtoMAX_COUNT;q:outintegerrangeMIN_COUNTtoMAX_COUNTendentity;);第25頁共37頁

數(shù)字規(guī)律電路設(shè)計試驗教案趙蕙

試驗一半加器和全加器I

試驗平臺試驗要求

使用TTL小規(guī)模集成電路芯片74LS00搭建半加器電路和全加器電路,電路的輸入接試驗平臺開關(guān),電路輸出接試驗平臺的發(fā)光管。希望同學們能夠通過試驗把握使用基本門電路設(shè)計實現(xiàn)數(shù)字電路的方法。

試驗原理

在數(shù)字電路中,門電路就是用來實現(xiàn)基本規(guī)律關(guān)系的電路,譬如這個試驗中的半加器和全加器。最基本的門電路是與門、或門和非門,由這些門可以組合成其它的規(guī)律電路。門電路最初由分立元件組成,集成電路出現(xiàn)后,我們現(xiàn)在使用的門電路都是集成門電路。

半加器:完成兩個一位二進制數(shù)的相加而求得“和〞及“進位〞。

全加器:當多位二進制數(shù)相加時,高位的相加運算除了要將本位的加數(shù)和被加數(shù)相加以外,還要考慮低位是否有向該位的進位。全加器完成將兩個一位的二進制數(shù)相加,并考慮低位來的進位,相當于三個一位二進制數(shù)相加的電路。

試驗步驟

1.設(shè)計

根據(jù)半加器和全加器列出真值表,寫出輸出函數(shù),由于試驗要求使用“與非門〞實現(xiàn),將輸出函數(shù)轉(zhuǎn)換為“與非門〞形式,畫出訪用與非門實現(xiàn)半加器和全加器的電路圖。

useieee.std_logic_1164.all;entityDecode4_7isport(switch:instd_logic_vector(3downto0);--四位輸入信號ledag:outstd_logic_vector(6downto0);--8個數(shù)碼管的7段輸出sel:outstd_logic_vector(2downto0)--8個數(shù)碼管的位選輸出);endDecode4_7;architecturebehaveofDecode4_7isbeginselSetasTop-LevelEntitey可以將當前正開啟的文件設(shè)置為頂層文件;方法二:使用菜單項Assignmengs->Settings…,在開啟的設(shè)置對話框中,選擇左邊最上面的“General〞,在右邊的Top-Levelentity編輯框中選擇設(shè)計頂層。

4.布局布線

參考附錄FPGA引腳對應(yīng)關(guān)系,自己完成引腳的選擇和約束。

5.編程6.驗證

附:VHDL知識點

4.元件(模塊)聲明

結(jié)構(gòu)化模型中所使用的元件事先已經(jīng)定義過,在使用之前必需首先聲明。元件聲明格式如下:COMPONENT元件名;PORT(信號列表);ENDCOMPONENT5.元件例化元件例化語句是要對所適用的元件與當前設(shè)計實體中其他組件及端口信號的連接方法加以說明,元件例化的格式如下:元件實例:元件名genericmap(參數(shù))portmap(端口信號1=>信號名1,??)這里使用的端口信號就是實體中port部分使用的端口名,而信號名則是加到當前元件的實際信號的名稱。通過端口信號映像portmap,指明白元件和外部端口信號、元件和元件中間的連接。

第30頁共37頁

數(shù)字規(guī)律電路設(shè)計試驗教案趙蕙

試驗七數(shù)字鐘

試驗要求

使用VHDL語言,利用層次化設(shè)計方法,設(shè)計實現(xiàn)具有時、分、秒計時的簡易數(shù)字鐘。

試驗原理

分計時和秒計時可以設(shè)計60進制計數(shù)器實現(xiàn),小時計時可以設(shè)計24進制計數(shù)器實現(xiàn)。秒計時器從0開始計數(shù)滿59時,回零,此時分計時器計數(shù)一次;分計時計數(shù)器從0開始計數(shù)滿59時,回零,此時小時計數(shù)器計數(shù)一次,從0計到23時,回零。將秒、分、時計數(shù)器的計數(shù)值,在數(shù)碼管上顯示出來。

試驗步驟

1.新建工程2.設(shè)計輸入

1)參數(shù)化方法設(shè)計任意進制計數(shù)器

參考試驗六計數(shù)器修改設(shè)計,在計數(shù)到最大值時輸出計數(shù)滿標志。2)數(shù)碼管動態(tài)掃描電路參考試驗六。3)頂層模塊

計數(shù)器模塊實例化6次,每次參數(shù)不同,實例成3個10進制計數(shù)器(時鐘計數(shù)個位,分鐘計數(shù)個位,秒鐘計數(shù)個位),1個二進制計數(shù)器(時鐘計數(shù)十位),2個6進制計數(shù)器(秒鐘計數(shù)十位,分鐘計數(shù)十位)。

秒鐘個位計數(shù)器計滿標志作為秒計十位計數(shù)器的計數(shù)使能(enable),秒鐘十位計數(shù)器計滿標志作為分鐘個位計數(shù)器的計數(shù)使能(enable),分鐘個位計數(shù)器計滿標志作為分鐘十位計數(shù)器的計數(shù)使能,分鐘十位計數(shù)器計滿標志作為時鐘個位計數(shù)器的計數(shù)使能,時鐘個位計數(shù)器的計滿標志作為時鐘十位計數(shù)器的計數(shù)使能。

01libraryieee;02useieee.std_logic_1164.all;--該程序包中定義了轉(zhuǎn)換函數(shù)conv_std_loigc_vector(A,位長)03useieee.std_logic_ARITH.all;04entitycounter_TOPis05generic06(MIN_COUNT:natural:=0;MAX_COUNT:natural:=9;07DATAWIDTH:natural:=408);09port10(11clk:instd_logic;12reset:instd_logic;13loadHOUR:instd_logic;第31頁共37頁

數(shù)字規(guī)律電路設(shè)計試驗教案_指導(dǎo)教師趙蕙

14loadMIN:instd_logic;15loadSEC:instd_logic;16enable:instd_logic;17d:inintegerrangeMIN_COUNTtoMAX_COUNT;18ledag:outstd_logic_vector(7downto0);19sel:outstd_logic_vector(2downto0)20);21endentity;22architecturebehaveofcounter_TOPis23componentcounter24generic25(MIN_COUNT:natural:=0;26MAX_COUNT:natural:=927);28port29(clk:instd_logic;30reset:instd_logic;31load:instd_logic;32enable:instd_logic;33carry_out:outstd_logic;34d:inintegerrangeMIN_COUNTtoMAX_COUNT;35q:outintegerrangeMIN_COUNTtoMAX_COUNT36);37endcomponent;38componentdivider39PORT40(41clock:INSTD_LOGIC;42cout:OUTSTD_LOGIC;43q:OUTSTD_LOGIC_VECTOR(9DOWNTO0)44);45endcomponent;46componentDynamic_Scan47port(clk:instd_logic;48HOUR10:instd_logic_vector(3downto0);49HOUR1:instd_logic_vector(3downto0);50MIN10:instd_logic_vector(3downto0);51MIN1:instd_logic_vector(3downto0);52SEC10:instd_logic_vector(3downto0);53SEC1:instd_logic_vector(3downto0);54ledag:outstd_logic_vector(7downto0);55sel:outstd_logic_vector(2downto0)56);57endcomponent;第32頁共37頁

數(shù)字規(guī)律電路設(shè)計試驗教案趙蕙

58signalclk_sig:std_logic;59signalcarry_hour,carry_min,carry_sec:std_logic;60signalHOUR:integerrange0to23;61signalMIN:integerrange0to59;62signalSEC:integerrange0to59;6364signalHOUR10:std_logic_vector(DATAWIDTH-1downto0);65signalHOUR1:std_logic_vector(DATAWIDTH-1downto0);66signalMIN10:std_logic_vector(DATAWIDTH-1downto0);67signalMIN1:std_logic_vector(DATAWIDTH-1downto0);68signalSEC10:std_logic_vector(DATAWIDTH-1downto0);69signalSEC1:std_logic_vector(DATAWIDTH-1downto0);7071begin72divider_inst:dividerPORTMAP(clk,clk_sig);7374counter_HOUR:countergenericmap(0,23)portmap(clk_sig,reset,loadHOUR,carry_min,carry_hour,d,HOUR);75counter_MIN:countergenericmap(0,59)portmap(clk_sig,reset,loadMIN,carry_sec,carry_min,d,MIN);76counter_SEC:countergenericmap(0,59)portmap(clk_sig,reset,loadSEC,enable,carry_sec,d,SEC);7778HOUR10null;60endcase;61endprocess;6263endbehave;3.規(guī)律綜合4.布局布線

參考附錄中FPGA管腳對應(yīng)關(guān)系,根據(jù)自己的設(shè)計需要,為

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論