版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄一:設計目的2二:設計方案21.方案論證22.模塊電路設計23.計時電路34.計數(shù)器模塊35.數(shù)字跑表的流程圖36. 控制信號的作用4三:設計總體框圖5四:硬件電路設計與程序設計61. 設計思路62.控制模塊63.十進制計數(shù)模塊74.六進制計數(shù)模塊75.數(shù)碼管掃描模塊76.七段譯碼顯示模塊8五:程序設計如下9六:編譯仿真及硬件測試15 1.編譯仿真152.頂層設計圖153.仿真后得到如下仿真波形圖16七. 硬件實驗調試171.開始計時172.暫停173.清零18八實驗心得及體會19九.參考文獻20一:設計目的(1)學會利用Quartus和所學的數(shù)字電路知識,搭建復雜一點的數(shù)字電路或系統(tǒng)。
2、(2)學會使用EDA的程序語言FPGA/CPLD設計數(shù)字跑表,設計主要包括功能分析、方案設計和電路測試幾個步驟。二:設計方案1.方案論證 數(shù)字跑表設三個輸入端,分別為時鐘輸入(CLK),復位(CLR),啟動、暫停按鍵(PUSE)。復位信號高電平有效,可對跑表異步清零;當啟動、暫停鍵為低電平時跑表開始計時,為高電平時暫停,變低后在原來的數(shù)值基礎上繼續(xù)計數(shù)。數(shù)字跑表的結構示意圖如下:圖1跑表示意圖 2.模塊電路設計數(shù)字跑表實際上為計數(shù)器,數(shù)據(jù)選擇器,七段數(shù)碼管譯碼器等模塊構成,核心模塊應為計數(shù)器,其次為暫??刂坪颓辶憧刂?。3.計時電路計時電路又分為百分秒計時電路、秒計時電路和分計時電路三個模塊。百
3、分秒計時電路是一個100進制的計數(shù)器,以100Hz輸入信號作為計數(shù)時鐘,其進位信號作為秒計數(shù)電路的計數(shù)時鐘,當秒計數(shù)器計滿時,產生的進位信號又作為分計數(shù)電路的計數(shù)時鐘。電路的暫停和復位信號用于控制計時的開始、停止和清零。4.計數(shù)器模塊數(shù)字跑表的計時器功能是,當PAUSE為低電平時開始計數(shù),百分秒低位自加一,加到九時歸零,百分秒高位自加一,加到九時歸零,且向秒位發(fā)出一個高電平,秒低位自加一,加到九時歸零,秒高位自加一,加到五時歸零,且向分位發(fā)出一個高電平,分低位自加一,加到六時系統(tǒng)清零。5.數(shù)字跑表的流程圖數(shù)字跑表主要由計時器,七段數(shù)碼管譯碼器組成。流程框圖如圖所示。數(shù)碼管譯碼器百分秒計數(shù)器 C
4、LKmsl pause秒計數(shù)器 clr分計數(shù)器 圖2程序流程圖6. 控制信號的作用 表1 控制信號的作用復位clr異步復位信號,高電平有效pause同步暫停信號,低電平有效計數(shù)。sel共陰數(shù)碼管的位選信號seg共陰數(shù)碼管的段選信號 三:設計總體框圖圖3設計總體框圖四:硬件電路設計與程序設計1. 設計思路 數(shù)字秒表電路計時范圍的要求為0.011小時,即59分59.99秒,所以這就需要獲得一個比較精確的計時基準信號,此基準信號可以由CPLD/FPGA試驗箱提供的頻率具體設定分頻器。分頻器在實驗中顯得很重要,因為如果分頻的要求達不到,便會出現(xiàn)諸如缺少數(shù)字位、計時不精確等實驗現(xiàn)象。六進制計數(shù)器針對10
5、秒和10分位,十進制針對0.01秒、0.1秒、1秒和1分位,這是根據(jù)不同的計數(shù)進位而設定的。電路還需要一個掃描電路,對每一位的計時結果進行不斷的掃描,掃描的速度要大于輸入信號的頻率,避免出現(xiàn)掃描滯后、顯示的結果不是當前結果的現(xiàn)象。掃描的同時還需要一個位碼電路。位碼電路的作用是將數(shù)字秒表的各位選中,以便七段數(shù)碼管的顯示。2.控制模塊為了方便控制所有計數(shù)模塊清零和使能功能需要設計一個控制模塊,所以該模塊的功能就是控制什么時候發(fā)出置零信號和使能信號來控制計數(shù)器工作。其模塊圖如下圖所示: Clk為開始/暫停功能按鈕(下降沿有效),初次按下它clc(控制計數(shù)器清零)為低電平,en(使計數(shù)器計數(shù))為高電平
6、;再次按下它時,clc保持為低電平,en跳變?yōu)榈碗娖?,如此重復循環(huán)。Reset為清零按鈕(下降沿有效),無論何時按下它時,clc跳變?yōu)楦唠娖?,en變?yōu)榈碗娖剑赃_到使計數(shù)器清零的目的。3.十進制計數(shù)模塊此模塊的功能就是完成十進制的計數(shù)功能,同時輸出進位信號。其模塊圖如下圖所示:Clk為時鐘信號輸入端,rst為計數(shù)器清零端(高電平有效),en為計數(shù)器使能端(高電平有效);daout為數(shù)據(jù)輸出端,cout為進位信號輸出端。4.六進制計數(shù)模塊 此模塊的功能就是完成六進制的計數(shù)功能,同時輸出進位信號。其端口功能同十進制計數(shù)模塊,在次不再重復訴說。5.數(shù)碼管掃描模塊該模塊的功能是選擇各個計數(shù)端口來的數(shù)據(jù)
7、,當相應的數(shù)據(jù)到來時,數(shù)據(jù)選擇器選擇數(shù)據(jù)后輸出給七段譯碼器,同時輸出位選信號,再接入到實驗箱上的8字數(shù)碼顯示電路上就可顯示了。 其模塊圖如下圖所示:Clk為時鐘信號輸入端,msec1.minute2是各個計數(shù)端口來的數(shù)據(jù)的輸入端,deout為數(shù)據(jù)選擇器選擇數(shù)據(jù)后輸出端,sel為位選信號輸出端。6.七段譯碼顯示模塊 該模塊的功能就是把輸入的四位二進制數(shù)據(jù)轉換為七段數(shù)碼管的顯示編碼,再輸入到七段數(shù)碼管中顯示出數(shù)據(jù)。其模塊圖如下圖所示:五:程序設計如下分頻計的源程序代碼LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FP ISPORT(CLK: IN
8、STD_LOGIC;NEWCLK: OUT STD_LOGIC);END FP;ARCHITECTURE ART OF FP IS SIGNAL CNTER: INTEGER RANGE 0 TO 10#29999#; BEGIN PROCESS(CLK) IS BEGIN IF CLK'EVENT AND CLK='1' THEN IF CNTER=10#29999# THEN CNTER<=0; ELSE CNTER<=CNTER + 1; END IF; END IF;END PROCESS;PROCESS(CNTER) ISBEGIN IF CNTE
9、R=10#29999# THEN NEWCLK<='1' ELSE NEWCLK<='0' END IF;END PROCESS;END ART;六進制計數(shù)器的源程序代碼LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TN6 ISPORT(CLK: IN STD_LOGIC;CLR: IN STD_LOGIC;ENA: IN STD_LOGIC;CQ: OUT INTEGER RANGE 0 TO 15;CARRY_OUT: OUT STD_LOGIC);END TN6;ARCHITECTURE ART
10、 OF TN6 ISSIGNAL CQI: INTEGER RANGE 0 TO 15;BEGINPROCESS(CLK,CLR,ENA) ISBEGINIF CLR='1' THEN CQI<=0;ELSIF CLK'EVENT AND CLK='1' THENIF ENA='1' THENIF CQI<5 THEN CQI<=CQI+1;ELSE CQI<=0;END IF;END IF;END IF;END PROCESS;PROCESS(CQI) ISBEGINIF CQI=5 THEN CARRY_OUT
11、<='1'ELSE CARRY_OUT<='0' END IF;END PROCESS;CQ<=CQI;END ART;十進制計數(shù)器源程序代碼LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TN10 ISPORT(CLK: IN STD_LOGIC;CLR: IN STD_LOGIC;ENA: IN STD_LOGIC;CQ: OUT INTEGER RANGE 0 TO 15;CARRY_OUT: OUT STD_LOGIC);END TN10;ARCHITECTURE ART OF TN10
12、ISSIGNAL CQI: INTEGER RANGE 0 TO 15;BEGINPROCESS(CLK,CLR,ENA) ISBEGINIF CLR='1' THEN CQI<=0;ELSIF CLK'EVENT AND CLK='1' THENIF ENA='1' THENIF CQI<9 THEN CQI<=CQI+1;ELSE CQI<=0;END IF;END IF;END IF;END PROCESS;PROCESS(CQI) ISBEGINIF CQI=9 THEN CARRY_OUT<=
13、9;1'ELSE CARRY_OUT<='0' END IF;END PROCESS;CQ<=CQI;END ART;掃描電路的源程序代碼LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SCAN ISPORT(scanclk:in std_logic;count1,Count2,count3,count4,count5,count6:in std_logic_VECTOR(3 DOWNTO 0);S:OUT STD_LOGIC_VECTOR(2 D
14、OWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY SCAN;ARCHITECTURE DATAFLOW OF SCAN ISSIGNAL SS:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(scanclk)beginIF(scanclk'EVENT AND scanclk='1')THENIF(SS="101")THENSS<="000"ELSESS<=SS+1;END IF;END IF;END PROCESS;S
15、<=SS;DOUT<=COUNT1 WHEN SS="000" ELSE COUNT2 WHEN SS="001" ELSE COUNT3 WHEN SS="010" ELSE COUNT4 WHEN SS="011" ELSE COUNT5 WHEN SS="100" ELSE COUNT6;END DATAFLOW;位碼選擇電路的源程序代碼LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.AL
16、L;ENTITY YIMA ISPORT(INP: IN STD_LOGIC_VECTOR(2 DOWNTO 0);OUTP: OUT BIT_VECTOR(7 DOWNTO 0);END YIMA;ARCHITECTURE ART OF YIMA ISBEGINOUTP(0)<='1' WHEN INP="000" ELSE '0'OUTP(1)<='1' WHEN INP="001" ELSE '0'OUTP(2)<='1' WHEN INP="
17、;010" ELSE '0'OUTP(3)<='1' WHEN INP="011" ELSE '0'OUTP(4)<='1' WHEN INP="100" ELSE '0'OUTP(5)<='1' WHEN INP="101" ELSE '0'OUTP(6)<='1' WHEN INP="110" ELSE '0'OUTP(7)<=&
18、#39;1' WHEN INP="111" ELSE '0'END ART;七位數(shù)碼管顯示電路的源程序代碼LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DELED ISPORT(NUM: IN STD_LOGIC_VECTOR(3 DOWNTO 0); A,B,C,D,E,F,G: OUT STD_LOGIC);END DELED;ARCHITECTURE ART OF DELED ISSIGNAL LED : STD_LOGIC_VEC
19、TOR(6 DOWNTO 0);BEGINPROCESS(NUM)BEGIN CASE NUM ISWHEN "0000" => LED <= "1111110"WHEN "0001" => LED <= "0110000"WHEN "0010" => LED <= "1101101"WHEN "0011" => LED <= "1111001"WHEN "0100"
20、=> LED <= "0110011"WHEN "0101" => LED <= "1011011"WHEN "0110" => LED <= "1011111"WHEN "0111" => LED <= "1110000"WHEN "1000" => LED <= "1111111"WHEN "1001" => LED <=
21、 "1111011"WHEN "1010" => LED <= "1110111"WHEN "1011" => LED <= "0011111"WHEN "1100" => LED <= "1001110"WHEN "1101" => LED <= "0111101"WHEN "1110" => LED <= "1001111&
22、quot;WHEN OTHERS => LED <= "1000111"END CASE;END PROCESS;A<=LED(6);B<=LED(5);C<=LED(4);D<=LED(3);E<=LED(2);F<=LED(1);G<=LED(0);END ART;六:編譯仿真及硬件測試1.編譯仿真當完成了以上秒表系統(tǒng)各個模塊的VHDL設計,就可以使用Quartus對本設計進行編譯和仿真。首先使用文本編輯器輸入本設計的所有模塊的源程序,先對各個模塊進行編譯和仿真,當所有模塊全部編譯通過和仿真功能正確后,就可以利用圖形編輯工具完成頂層設計,其設計圖如頂層設計圖所示。然后再對圖形編輯器編輯出的頂層設計圖進行全程編譯,通過之后就可以進行系統(tǒng)的整體仿了。其中各個模塊的仿真已在模塊設計中完成,在此從略,下面只說明系統(tǒng)的整體仿真。2.頂層設計圖 在仿真中,合理選取start和reset信號,就可以進行系統(tǒng)的整體仿真了。3.仿真后得到如下仿真波形圖7. 硬件實驗調試1.開始計時2.暫停圖為運行至5.42秒暫停3.清零八實驗心得及體會從實驗中,我對整個流程有了初步了解;對實驗進行了深入學習,讓我掌握硬件描述語言Veril
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度國際公路貨運物流信息化與智能化改造合同
- 2025年度建筑工程安全防護設施施工合同(安全至上典范)
- 2025年度舊機床買賣合同范本專業(yè)修訂版
- 2025年度可再生能源技術合同增值稅專用發(fā)票使用指南
- 2025年度古建筑修復工程綠色施工合同范本
- 2025年度城市軌道交通監(jiān)理合同終止協(xié)議范本
- 2025年度文化中心工裝裝修工程合同范本
- 2025年度建筑垃圾清運與環(huán)保設備租賃合同
- 2025年度加油站新能源車輛充電設施運營合同
- 2025年度護士團隊建設與協(xié)作聘用合同
- 一級建造師繼續(xù)教育最全題庫及答案(新)
- 2022年高考湖南卷生物試題(含答案解析)
- GB/T 20909-2007鋼門窗
- GB/T 17854-1999埋弧焊用不銹鋼焊絲和焊劑
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
- 直線加速器專項施工方案
- 聯(lián)苯二氯芐生產工藝及產排污分析
- 儲能設備項目采購供應質量管理方案
- 2022年全國卷高考語文答題卡格式
- 復旦大學簡介 (課堂PPT)
- CKD馬達使用說明
評論
0/150
提交評論