版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課題名稱3232 進制同步減法計數(shù)器設計設計內(nèi)容及要求試設計一個 3232 進制同步減法計數(shù)器,輸入的數(shù)字信號由實驗裝置上的開 關給定,輸出由 LEDLED 完成,同時數(shù)碼管也顯示輸入和輸出的數(shù)字信號。要求 設置 2 2 個按鈕,一個供開始”用,一個供系統(tǒng)復位”用。系統(tǒng)提供 50MHZ50MHZ 頻率的時鐘源。完成該系統(tǒng)的硬件和軟件的設計,并制作出實物裝置,調(diào)試 好后并能實際運用(指導教師提供制作所需的器件),最后就課程設計本身提 交一篇課程設計說明書。設計工作量1 1、VHDLVHDL 語言程序設計;2 2、波形仿真;3 3、 在實驗裝置上進行硬件測試,并進行演示;4 4、提交一份完整的課程
2、設計說明書,包括設計原理、程序設計、程序分析、 仿真分析、硬件測試、調(diào)試過程,參考文獻、設計總結等。進度安排起止日期(或時間量)設計內(nèi)容(或預期目標)備注第 1 1 天課題介紹,答疑,收集材料第 2 2 天設計方案論證第 3 3 天進一步討論方案,對設計方案進行必要的修 正,方案確定后開始進行 VHDLVHDL 語言程序設 計第 4 4 天設計 VHDLVHDL 語言程序第 5959 天在實驗裝置上進行硬件測試,對 VHDLVHDL 語言 程序進行必要的修正,并進行演示第 1010 天編寫設計說明書系(部)主管領導意見年 月曰年 月曰教研室意見目錄一、設計目的 .1二、設計原理 .1三、設計
3、.13.1設計思路 .13.2設計步驟 .1四、.Quartus口9.0操作步驟3五、.程序45.1完整程序 .45.2仿真程序 .8六、仿真 .126.1仿真結果 .126.2仿真結果分析 .12七、.引腳分配13八、.課程設計總結 .14參考文獻 .151一、設計目的1 )鞏固和加深對“ EDA 技術”的基本知識的理解,提高綜合運用本課程所學知識的能力。2 )培養(yǎng)學生根據(jù)課題需要選學參考書籍、查閱手冊、圖表和文獻資料的自學能力。通過獨立 思考,深入鉆研相關問題,學會自己分析解決問題的方法。3)培養(yǎng)硬件設計、軟件設計及系統(tǒng)軟、硬件調(diào)試的基本思路、方法和技巧,并能熟練使用當 前較流行的一些有關
4、電路設計與分析的軟件和硬件。二、設計原理計數(shù)是一種最簡單基本的運算,計數(shù)器就是實現(xiàn)這種運算的邏輯電路,計數(shù)器在數(shù)字系統(tǒng)中 主要是對脈沖的個數(shù)進行計數(shù),以實現(xiàn)測量、計數(shù)和控制的功能,同時兼有分頻功能,計數(shù)器是 由基本的計數(shù)單元和一些控制門所組成,計數(shù)單元則由一系列具有存儲信息功能的各類觸發(fā)器構 成,這些觸發(fā)器有 RS 觸發(fā)器、T觸發(fā)器、D 觸發(fā)器及 JK 觸發(fā)器等。按照計數(shù)器中的觸發(fā)器是否同 時翻轉分類,可將計數(shù)器分為同步計數(shù)器和異步計數(shù)器兩種。本次設計是 32進制同步減法計數(shù)器。 32進制的二進制范圍為“ 00000”到“ 11111 ”, 即十進 制 031。當顯示的數(shù)小于 31 時,數(shù)字將
5、自減,減至 0 時又跳會預先輸入的數(shù),如此循環(huán)。系統(tǒng)提 供 50MHZ 頻率的時鐘源,輸入的數(shù)字信號由實驗裝置上的開關給定,輸出由LED 完成,同時數(shù)碼管顯示輸入和輸出的數(shù)字信號。設置2 個按鈕,一個作“開始”,即使能端 en,個作系統(tǒng)“復位” res。三、設計3.1設計思路本次程序設計的思路主要是分模塊進行。32 進制同步減法計數(shù)器的基本工作原理是循環(huán)自減,因此得需要一個自減 VHDL 的程序。系統(tǒng)提供 50MHZ 頻率的時鐘源,頻率太大,肉眼無法觀察,得 需要一個分頻的程序。數(shù)碼管的同步顯示需要一個掃頻的程序。輸入的數(shù)字可能是一位數(shù)也有可能是兩位數(shù),一個數(shù)碼管只能顯示一位數(shù),因此需要有把一
6、個兩位數(shù)分成兩個一位數(shù)的 程序,本次設計的程序就是利用了取余的函數(shù)rem。將以上幾個分支程序進行整理,再加上數(shù)碼管的顯示程序以及一些附加程序便可得完整的程 序。3.2設計步驟1.自減 VHDL 程序process(en,res,clk1)beginx=conv_integer(start) rem 10;y=(conv_integer(start)/10)rem 10;x2=y;y2=x;i f res=1thendi=0;xp=start;elsif en=1thenif clk1event and clk1=1 thenif xp=0 thenxp=start;elsexp=xp-1;en
7、d if ;end if;end if;end process;程序中, res 是復位信號, 功能是在在出現(xiàn) res=1 是,將數(shù)碼管回到最初始狀態(tài), 循環(huán)顯示; en 是一個開始信號,只有 en=1 時,計數(shù)才開始工作; conv_integer() 為十進制數(shù); start 為輸入信號, xp 為信號。2.分頻程序process(clk)variable a1:integer range 24999999 downto 0;beginif clkevent and clk=1 thenif a124999999 thena1:=a1+1;elsea1:=0;clk1=not clk1;e
8、nd if;end if;當 rst=0 是,是將二進制變1end process;將 50MHZ 的頻率分為 1HZ 即將 50MHZ 分成兩部分,每數(shù)完 25MHZ 信號 clkl 就變化一次, 以此達到目的。3. 掃頻程序process(clk)variable b1:integer range 20000 downto 0;begini f clkevent and clk=1 then if b120000 then b1:=b1+1;elseb1:=0;clk2=not clk2;end if;end if;end process;掃頻的程序與分頻程序原理都一樣4. 位數(shù)分離程序p
9、rocess(xp)variable b:integer range 0 to 9;variable a:integer range 0 to 3;beginb:=conv_integer(xp) rem 10; a:=(conv_integer(xp)/10)rem 10;ai=a;bi=b;end process;此程序用到了 rem 求余函數(shù),將個位與十位分開。四、Quartusn9.0操作步驟1 .運行 Quartusn9. 0 并創(chuàng)建工程路徑(如: E:example ),以便相關設計文件和工程管理。2. 新建一個 VHDL 文本文件。3. 創(chuàng)建新工程并添加設計文件到工程。4. 選擇
10、目標器件 Cyclone 系列 EP1C20F324C8 芯片。5. 對源代碼進行語法檢查和編譯。6. 創(chuàng)建仿真波形文件并仿真。7引腳分配。8重編譯,編程下載,下載完成后驗證功能。五、程序5.1完整程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DCLK ISPORT(clk:IN STD_LOGIC;res,en:in std_logic;start:IN STD_LOGIC_VECTOR(4 DOWNTO 0); le
11、d7s2:out std_logic_vector(6 downto 0); scan:outstd_logic_vector(3 downto 0) );end;architecture one of DCLK IS signal di:integer range 31 to 0; signal w:std_logic_vector( 2 downto 0);signal clk1,clk2:std_logic; signal ai,bi:integer;signal xp:STD_LOGIC_VECTOR(4 DOWNTO 0); signal x,y:integer range 0 to
12、 9;-FENPINbeginprocess(clk)variable a1:integer range 24999999 downto 0; beginif clkevent and clk=1 thenif a124999999 then a1:=a1+1;else a1:=0;clk1=not clk1;end if;end if; end process; -SCAN CLK process(clk) variable b1:integer range 20000 downto 0; begini f clkevent and clk=1 then if b120000 thenb1:
13、=b1+1;else b1:=0;clk2=not clk2;end if;end if;end process;-COUNTER process(en,res,clk1) beginx=conv_integer(start) rem 10; y=(conv_integer(start)/10)rem 10; x2=y;y2=x;i f res=1thendi=0; xp=start;elsif en=1thenif clk1event and clk1=1 then if xp=0 thenxp=start; elsexp=xp-1; end if ;end if;end if;end pr
14、ocess; process(xp) variable b:integer range 0 to 9; variable a:integer range 0 to 3;begin b:=conv_integer(xp) rem 10; a:=(conv_integer(xp)/10)rem 10; ai=a;bi=b;end process; process(ai,bi,clk2,y,x) begini f clk2event and clk2=1 then if w=100 thenw=000; else w=w+1;if w=000 thenscanled7s2led7s2led7s2le
15、d7s2null;end case;end if;if w=001 thenscanled7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2null;end case;end if;if w=010 thenscanled7s2led7s2led7s2led7s2null;end case;end if;if w=011 thenscanled7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2null;end case;end if;end if;end if;end
16、 process; end;5.2仿真程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DCLK ISPORT(clk:IN STD_LOGIC;res,en:in std_logic;start:IN STD_LOGIC_VECTOR(4 DOWNTO 0); led7s2:out std_logic_vector(6 downto 0);scan:out std_logic_vector(3 downto 0);x1,y
17、1:out integer range 0 to 9;x2,y2:out integer range 0 to 9;xp_disp:out STD_LOGIC_VECTOR(4 DOWNTO 0); end;architecture one of DCLK ISsignal di:integer range 31 to 0;signal w:std_logic_vector( 2 downto 0);signal clk1,clk2:std_logic;signal ai,bi:integer;signal xp:STD_LOGIC_VECTOR(4 DOWNTO 0); signal x,y
18、:integer range 0 to 9;begin-FENPIN process(clk)variable a1:integer range 4 downto 0;beginif clkevent and clk=1 thenif a14 thena1:=a1+1;elsea1:=0;clk1=not clk1;end if;end if;end process;-SCAN CLKprocess(clk)variable b1:integer range 20000 downto 0; begini f clkevent and clk=1 thenif b120000 thenb1:=b
19、1+1;else b1:=0;clk2=not clk2;end if;end if;end process;-COUNTER process(en,res,clk1) beginx=conv_integer(start) rem 10; y=(conv_integer(start)/10)rem 10; x2=y;-TEST SHURU SHIWEIy2=x;-TEST SHURU GEWEI i f res=1thendi=0;xp=start;elsif en=1thenif clk1event and clk1=1 thenif xp=0 thenxp=start;elsexp=xp-
20、1;end if ;end if;end if; xp_disp=xp; -TEST ZIJIAN end process;process(xp)variable b:integer range 0 to 9; variablea:integer range 0 to 3;begin b:=conv_integer(xp) rem 10; a:=(conv_integer(xp)/10)rem 10; ai=a;bi=b;x1=ai;-TEST SHUCHU SHIWEI y1=bi;-TEST SHUCHU GEWEI end process;process(ai,bi,clk2,y,x)
21、begini f clk2event and clk2=1 then if w=100then w=000;else w=w+1; if w=000 then scanled7s2led7s2led7s2led7s2null;end case;end if;if w=001 thenscanled7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2null;end case;end if;if w=010 thenscanled7s2led7s2led7s2led7s2null;end case;end if;if w=011 th
22、enscanled7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2led7s2nu II;end case;end if;end if;end if;end process;en d;六、仿真6.1仿真結果6.2仿真結果分析Clk 為時鐘源,10hz 分頻為 1hz , Ied7s2 為數(shù)碼管顯示,en 為使能控制端,res 為復位端,start 為輸入,scan 為片選輸出,x1 為輸出的十位,y1 為輸出的個位,x2 為輸入的十位,y2 為 輸入的個位,xp_disp 為輸入數(shù)的自減。當 res 為低電平,en 為高電平時,程序開始運行
23、;當 res 為高電平時,輸出的值就跳回最開 始輸入的值,h!fah!fa B B B B- K K h!kh!k一.53.53-3-3-flIL-flIL-一arn-lb1!1! lele- - 4444 JPJP一inin聃一ntfntf - -高電平消失后,程序又開始自減,如此循環(huán)顯示。七、引腳分配3Partition Hierarchyroot partitjonYesldkLocationPINJ3YesLocationPIN P3YeslresLocationPIN R1YeslstartOLocationPIh M3YesLocationPIh M4Yeslstart2Locab
24、onPIN N1YesR5tart3LxntjonPINJ42Yes吃t勺LocationPIN N3Yested7s20LocationPIN_L3Yested7s22LocationPIN H3Yesfted7s23LocabonPIN H4Yested7s24LocationPIN H1YesaiEd7s25LocationPIN L2Yesabd?s26LocationPIN K4YesiscanOLocationPIh G3YesCscanlLocationPIN G4Yes衿scan 2LocationPIN E2Yesscan 3LgtionPINJ=2Yesewn ew八、課程
25、設計總結EDA 課程設計很快就結束了, 雖然在之前的學習過程中還存在著沒有弄懂的問題,但是通過這次設計,進一步加深了對 EDA 的 了解,讓我對它有了更加濃厚的興趣。EDA 設計我感覺程序調(diào)試、試驗軟件、硬件熟悉最重要。在編完各模塊程序之后,編譯查錯最 初有十幾個錯誤,有輸入錯誤、語法錯誤。一遍一遍的編譯查錯,直到?jīng)]有錯誤。必須注意工程 名和實體名一致,不然一般會出錯。在沒有錯誤之后可以進行波型仿真。若與理想的不同,再查 看程序,有無原理上的編輯錯誤或沒有查出的輸入錯誤。通過本次 EDA 課程設計,讓我更進一步的熟悉了VHDL 語言,了解了其中的語法,同時,在做32 進制同步減法計數(shù)器計數(shù)顯示的過程中, 遇到了很多的困難, 但從這些困哪中,我也受益匪淺, 有困難才會提高,這樣自己才能學到更多的東西。在本次課程設計中,讓我學到了不少知識,知道了什么叫數(shù)碼管的動態(tài)顯示,更深一步了解 了數(shù)碼管的顯示原理,以前在做實驗時,只知道按照實驗指導書上一步一步按部就班的做,有些 地方根本就沒有深刻的理解,
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度設施農(nóng)業(yè)種植與銷售合同3篇
- 2025農(nóng)村自建房綠色建材采購與應用合同
- 二零二五年度兼職業(yè)務員客戶滿意度調(diào)查合同3篇
- 2025年度公司解除與因自然災害影響員工勞動合同證明3篇
- 二零二五年度環(huán)保材料研發(fā)與應用股東合伙人協(xié)議3篇
- 2025技術培訓合同范本
- 2025年度創(chuàng)意產(chǎn)業(yè)園區(qū)商鋪租賃管理協(xié)議3篇
- 2025年度礦山礦產(chǎn)資源勘查與開發(fā)利用合作協(xié)議3篇
- 二零二五年度地質(zhì)勘探駕駛員聘用合同協(xié)議書3篇
- 二零二五年度市政工程機械租賃與施工合同3篇
- 物流公司安全生產(chǎn)監(jiān)督檢查管理制度
- DB22T 277-2011 建筑電氣防火檢驗規(guī)程
- 2024年基本公共衛(wèi)生服務工作計劃(三篇)
- 2024-2030年中國錸行業(yè)供需趨勢及發(fā)展規(guī)模分析報告
- 2025屆上海市復旦附中浦東分校物理高二上期末教學質(zhì)量檢測試題含解析
- 2023-2024學年《軟件設計與體系結構》模擬試卷及答案解析
- 2024年中國氦氣市場調(diào)查研究報告
- GB/T 22723-2024天然氣能量的測定
- 航空與航天學習通超星期末考試答案章節(jié)答案2024年
- 第四單元圖形的變化(單元測試)-2024-2025學年二年級上冊數(shù)學北師大版
- 2023-2024年福建高中物理會考試卷(福建會考卷)
評論
0/150
提交評論