基于VHDL的數(shù)字頻率計_第1頁
基于VHDL的數(shù)字頻率計_第2頁
基于VHDL的數(shù)字頻率計_第3頁
基于VHDL的數(shù)字頻率計_第4頁
基于VHDL的數(shù)字頻率計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電子技術(shù)課程設(shè)計任務(wù)書1課程設(shè)計的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等):一、 題目基于VHDL的數(shù)字頻率計的設(shè)計二、 數(shù)字頻率計功能該數(shù)字頻率計的測量范圍為19999kHz,并能用4位十進制數(shù)字顯示測量結(jié)果。三、 設(shè)計要求1 詳細(xì)說明設(shè)計方案;2 用VHDL編寫設(shè)計程序;3 給出系統(tǒng)仿真結(jié)果;4 進行硬件驗證。四、 參考文獻1 潘 松等.EDA技術(shù)實用教程.2 盧 毅,賴杰.VHDL與數(shù)字電路設(shè)計.3 徐志軍,徐光輝.CPLD/FPGA的開發(fā)與應(yīng)用.4 林明權(quán).VHDL數(shù)字控制系統(tǒng)設(shè)計范例5 2對課程設(shè)計成果的要求包括圖表(或?qū)嵨铮┑扔布螅涸O(shè)計電路,安裝調(diào)試或仿真,分析實驗結(jié)果

2、,并寫出設(shè)計說明書,語言流暢簡潔,文字不得少于3500字。3主要參考文獻: 要求按國標(biāo)GB 771487文后參考文獻著錄規(guī)則書寫。4課程設(shè)計工作進度計劃:序號起 迄 日 期工 作 內(nèi) 容12011.1.31.5查閱文獻,收集資料。22011.1.61.9確定系統(tǒng)設(shè)計方案,用VHDL編寫設(shè)計程序。32011.1.101.12系統(tǒng)仿真和調(diào)試,分析實驗結(jié)果。42011.1.131.15撰寫設(shè)計說明書。主指導(dǎo)教師日期:2011年 1 月 3 日基于VHDL的數(shù)字頻率計摘要:本設(shè)計分為5個模塊:頂層文件程序,十進制計數(shù)器模塊,4位鎖存器模塊,控制模塊,譯碼顯示模塊。數(shù)字頻率計是數(shù)字電路中的一個典型應(yīng)用,

3、實際的硬件設(shè)計用到的器件較多,連線比較復(fù)雜,而且會產(chǎn)生比較大的延時,造成測量誤差、可靠性差。隨著復(fù)雜可編程邏輯器件(CPLD)的廣泛應(yīng)用,以EDA工具作為開發(fā)手段,運用VHDL語言。將使整個系統(tǒng)大大簡化。提高整體的性能和可靠性。關(guān)鍵詞:頻率,VHDL,模塊。目 錄0.前言 11.系統(tǒng)設(shè)計 11.1設(shè)計要求 1 1 11.2總體設(shè)計方案 1 1 2 22.程序設(shè)計 32.1 頂層文件 32.2 十進制計數(shù)模塊 32.3 4位鎖存器模塊 32.4 控制模塊 32.5 譯碼顯示模塊 43.系統(tǒng)仿真 44.結(jié)論 55.心得體會 5參考文獻 6附錄 各模塊源程序 70.前言隨著時代科技的迅猛發(fā)展,微電子

4、學(xué)和計算機等現(xiàn)代電子技術(shù)的成就給傳統(tǒng)的電子測量與儀器帶來了巨大的沖擊和革命性的影響。常規(guī)的測試儀器儀表和控制裝置被更先進的智能儀器所取代,使得傳統(tǒng)的電子測量儀器在遠(yuǎn)離、功能、精度及自動化水平定方面發(fā)生了巨大變化,并相應(yīng)的出現(xiàn)了各種各樣的智能儀器控制系統(tǒng),使得科學(xué)實驗和應(yīng)用工程的自動化程度得以顯著提高。數(shù)字頻率計在電子技術(shù)中扮演著一個重要的角色,因此數(shù)字頻率計是一種最基本的測量儀器,它被廣泛應(yīng)用于航天、電子、測控等領(lǐng)域,許多測量方案和測量結(jié)果都與頻率有著十分密切的關(guān)系,因此頻率的測量在電子產(chǎn)品的研究與生產(chǎn)中顯得尤為重要。1.系統(tǒng)設(shè)計1.1 設(shè)計要求(1)掌握數(shù)字頻率計的原理、功能、設(shè)計與調(diào)試方法

5、;(2)熟悉Quartus II的使用方法,學(xué)習(xí)用VHDL語言編寫程序。(1)設(shè)計數(shù)字頻率計的測量范圍為19999kHz,并能用4位十進制數(shù)字顯示測量結(jié)果;(2)詳細(xì)說明設(shè)計方案;(3)用VHDL編寫設(shè)計程序;(4)給出系統(tǒng)仿真結(jié)果;(5)進行硬件驗證。1.2 總體設(shè)計方案頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時鐘,對比測量其他信號的頻率。測頻法就是在確定的閘門時間Tw內(nèi),記錄被測信號的變化周期數(shù)(或脈沖個數(shù))Nx,則被是信號的頻率為fx=Nx/Tw 。通常情況下計算每秒內(nèi)待測信號的脈沖個數(shù),即閘門時間為1 s。閘門時間越長,得到的頻率值就越準(zhǔn)確,但閘門時間越長,則每測一次頻率的

6、間隔就越長。閘門時間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。一般取1 s作為閘門時間。原理圖:原理圖設(shè)計框圖FPGA設(shè)計框圖說明:當(dāng)系統(tǒng)正常工作時,脈沖發(fā)生器提供的1 Hz的輸入信號,經(jīng)過測頻控制信號發(fā)生器進行信號的變換,產(chǎn)生計數(shù)信號,被測信號通過信號整形電路產(chǎn)生同頻率的矩形波,送入計數(shù)模塊,計數(shù)模塊對輸入的矩形波進行計數(shù),將計數(shù)結(jié)果送入鎖存器中,保證系統(tǒng)可以穩(wěn)定顯示數(shù)據(jù),顯示譯碼驅(qū)動電路將二進制表示的計數(shù)結(jié)果轉(zhuǎn)換成相應(yīng)的能夠在七段數(shù)碼顯示管上可以顯示的十進制結(jié)果。在數(shù)碼顯示管上可以看到計數(shù)結(jié)果。設(shè)計模塊說明(1)頂層文件。用于各個控制模塊的連結(jié),使整個程序成立。(2)控制模塊

7、??刂剖M制計數(shù)器的計數(shù)及鎖存器的工作,當(dāng)計數(shù)器計數(shù)時,鎖存器鎖存前一次的技術(shù)狀態(tài);當(dāng)計數(shù)器停止計數(shù),則鎖存器接收計數(shù)器的計數(shù)數(shù)據(jù),因此控制模塊控制計數(shù)器與鎖存器的交替工作。(3)計數(shù)器。由于需要使用LED顯示頻率,所以采用的是十進制可清零、具有使能功能的計數(shù)器模塊。(4)鎖存模塊。接受4個計數(shù)器傳輸?shù)男盘栠M行鎖存。使顯示的數(shù)據(jù)穩(wěn)定,不會由于周期性的清零信號而不斷閃爍。(5)譯碼顯示模塊。一共有7個LED需要顯示,所以需要7個譯碼模塊。2.程序設(shè)計2.1 頂層文件基于VHDL 描述語言, 采用自頂向下的設(shè)計方法, 各模塊之間相互獨立, 底層模塊的修改不會影響其他模塊的工作, 這種設(shè)計方法的設(shè)計

8、結(jié)構(gòu)清晰、層次清楚, 便于對設(shè)計進行修改。在各個模塊獨立設(shè)計后, 編寫一個頂層文件, 將各個模塊連接在一起, 實現(xiàn)一個完整的數(shù)字頻率計。2.2 十進制計數(shù)器模塊計數(shù)器模塊是對輸入脈沖信號的頻率進行測量,由4個十進制加法器組成,其中EN為計數(shù)器選通控制信號,RST為計數(shù)清零信號。在計數(shù)清零信號清零后,當(dāng)計數(shù)使能信號EN有效時,開始對待測信號進行計數(shù)。如果計數(shù)使能信號EN的寬度為1是,那么計數(shù)結(jié)果就為待測信號的頻率。2.3 4位鎖存器模塊當(dāng)鎖存信號上升沿到來時,將計數(shù)器的計數(shù)值鎖存,這樣可由外部的七段譯碼器譯碼并在數(shù)碼管上顯示。設(shè)置鎖存器的好處是顯示的數(shù)據(jù)穩(wěn)定,不會由于周期性的清零信號而不斷閃爍。

9、鎖存器的位數(shù)應(yīng)跟計數(shù)器完全一樣,均是32位。寄存器是在計數(shù)結(jié)束后,利用觸發(fā)器的上升沿把最新的頻率測量值保存起來,這樣在計數(shù)過程中可不必一直看著數(shù)碼管顯示器,顯示器將最終的頻率讀數(shù)定期進行更新,其輸出將作為動態(tài)掃描電路的輸入。2.4 控制模塊根據(jù)頻率的定義和測量的基本原理,測量信號的頻率必須有一個脈寬為1秒的對輸入信號脈沖計數(shù)允許的信號,1秒計數(shù)結(jié)束后,計數(shù)值鎖入鎖存器的鎖存信號和為下一測頻計數(shù)周期作準(zhǔn)備的計數(shù)器清0信號。控制模塊的計數(shù)使能信號EN能產(chǎn)生一個1秒脈寬的周期信號,并對頻率計的每一計數(shù)器cnt10的EN使能端進行同步控制。當(dāng) EN為高電平時,允許計數(shù);低電平時停止計數(shù),并保持其所計的

10、脈沖數(shù)。在停止計數(shù)期間,首先需要一個鎖存信號load的上升沿將計數(shù)器在前1秒的計數(shù)值鎖存進各鎖存器中,并由外部的譯碼器譯出并顯示計數(shù)值。鎖存信號后必須有一個清零信號rst對計數(shù)器進行清零,為下一秒鐘的計數(shù)操作作準(zhǔn)備。2.5 譯碼顯示模塊動態(tài)顯示是把所有的led管的輸入信號連在一起,這種連接方式有2個優(yōu)點:一是節(jié)約器件的IO端口;二是降低功耗。每次向led寫數(shù)據(jù)時,通過片選信號選通其中一個led 管并把數(shù)據(jù)寫入,因此每一個時刻只有一個led 是亮的。3.系統(tǒng)仿真仿真圖:說明:進行系統(tǒng)仿真時,首先設(shè)置reset復(fù)位信號為一個周期的低電平對系統(tǒng)進行復(fù)位,然后在下一個時鐘周期給start信號低電平,開

11、始測量頻率。而weis位選信號用于數(shù)碼管的動態(tài)顯示位選擇,一個測頻周期結(jié)束之后DQ得到頻率數(shù)據(jù)的段碼,與weis信號一起做動態(tài)顯示。在一個測頻周期結(jié)束后系統(tǒng)將鎖存測量數(shù)據(jù),直到下一次start信號有效(低電平有效)。4.硬件測試由于實驗沒有信號源故需在程序里加一個分頻模塊把標(biāo)準(zhǔn)頻率分頻成被測信號,再通過實驗箱加以驗證,這里所用的實驗箱的基準(zhǔn)頻率為32MHZ,在做硬件仿真時,是把基率即50MHZ分頻成不同頻率的信號(如8KHZ),(具體的分頻模塊見附錄)再把此模塊加入頂層模塊中,重新綜合仿真,設(shè)置好端口約束文件把程序下載進入實驗箱。即可得到所要的結(jié)果。通過改變分頻得到不同的被測信號,由實驗知不同

12、的頻率段信號,均能良好的測也,故程序的硬件仿真成功。5.結(jié)論通過為期兩周的課程設(shè)計,完成了本次設(shè)計的技術(shù)指標(biāo),剛開始設(shè)計的時候,由于VHDL語言編寫程序這部分比較難懂,所以在分析設(shè)計程序模塊的時候,就會停下來設(shè)計控制電路,為了提高效率,在實際的操作中,先分模塊編寫程序再根據(jù)分塊程序?qū)懗隹偟某绦?,利用波形文件仿真實驗結(jié)果,調(diào)測符合要求。最后完成頂層文件的設(shè)計編寫。在硬件測試的過程中發(fā)現(xiàn)測量頻率時,檔位在1Hz9999999Hz,最終得到的結(jié)果,測量結(jié)果非常接近測量值。6.心得體會本次課程設(shè)計讓我們體味到設(shè)計電路、仿真電路、調(diào)測電路過程中的苦與甜。設(shè)計是我們將來必需的技能,這次課程設(shè)計恰恰給我們提

13、供了一個應(yīng)用自己所學(xué)知識的機會,盡管之前掌握這方面的知識較為貧乏,但是從到圖書館查找資料到對電路的設(shè)計對電路的調(diào)試再到最后電路的成型,我都是盡全力認(rèn)真完成,并且虛心積極的向他人請教。在實習(xí)的過程中發(fā)現(xiàn)了自己有很多相關(guān)知識并不掌握。制作過程是一個考驗人耐心的過程,不能有絲毫的急躁,馬虎,對電路的調(diào)試要一步一步來,不能急躁,因為是在電腦上調(diào)試,比較慢,又要求我們有一個比較正確的調(diào)試方法,像下載引腳等等。這又要我們要靈活處理,在不影響試驗的前提下可以加快進度。合理的分配時間。在設(shè)計控制電路的時候,我們可以連接譯碼顯示和計數(shù)電路,這樣就加快了完成的進度。在整個課程設(shè)計完后,總的感覺是:有收獲。以前上課

14、都是上一些最基本的東西而現(xiàn)在卻可以將以前學(xué)的東西作出有實際價值的東西。在這個過程中,我的確學(xué)得到很多在書本上學(xué)不到的東西,如:利用VHDL語言編寫程序,如何將程序正確仿真以及硬件測試。但也遇到了不少的挫折,有時遇到了一個錯誤怎么找也找不到原因所在,期間我請教了幾位這方面的高手,得到了不少幫助,我也學(xué)習(xí)到了很多。不管是在Quartus軟件的應(yīng)用,還是在VHDL編程語言的學(xué)習(xí),或是電路把硬件的操作我都有了一定的提高。通過緊張有序的設(shè)計實踐,我覺得自己的動手能力有了很大的提高,在課程設(shè)計中自己動腦子解決遇到的問題,有不懂的地方向他人請教。書本上的知識有了用武之地,這又鞏固和深化了自己的知識結(jié)構(gòu)。參考

15、文獻1 潘 松等.EDA技術(shù)實用教程. 科學(xué)出版社2006年09月2 盧 毅,賴杰.VHDL與數(shù)字電路設(shè)計. 科學(xué)出版社; 第1版 2001年4月3 林明權(quán).VHDL數(shù)字控制系統(tǒng)設(shè)計范例. 電子工業(yè)出版社2003年01月5謝煌, 黃為. 基于VHDL 語言設(shè)計頻率計. 北京: 現(xiàn)代電子技術(shù), 2003, 14附 錄頂層文件源程序:library IEEE;entity freq_top isport (CLKIN,RESET,QING1,start: IN STD_LOGIC; -對輸入輸出端口的定義DQ : OUT STD_LOGIC_VECTOR (6 DOWNTO 0; -數(shù)碼管顯示的7

16、個腳weis : out STD_LOGIC_VECTOR (3 DOWNTO 0; -位顯 4位COUTT : OUT STD_LOGIC;end freq_top;architecture Behavioral of freq_top isCOMPONENT TESTCTL -對控制模塊的說明 PORT ( rst, clk ,start: in std_logic;cnt_en, rst_cnt, load : out std_logic;END COMPONENT;COMPONENT CNT10 -對計數(shù)模塊的說明PORT ( f_in,CLK,RST,EN : IN STD_LOGI

17、C;CQ : OUT STD_LOGIC_VECTOR (3 DOWNTO 0;COUT : OUT STD_LOGIC ; END COMPONENT;COMPONENT REG4B -對鎖存模塊的說明 port ( clk,rst,load, QING : in std_logic;din : in std_logic_vector(3 downto 0;dout : out std_logic_vector(3 downto 0;END COMPONENT;COMPONENT DECL7S -對顯示模塊的說明PORT ( clk,scanclk ,rst,coutt: std_logic

18、;a1,a2,a3,a4,a5,a6,a7: in std_logic_vector(3 downto 0;weis: out std_logic_vector(3 downto 0;led7s : out std_logic_vector(6 downto 0;END COMPONENT;signal scan: integer range 0 to 1023;SIGNAL M : STD_LOGIC_VECTOR(15 downto 0;SIGNAL FIN,EN_S,RST_S,LOAD_S : STD_LOGIC;SIGNAL CQ1,CQ2,CQ3,CQ4,CQ5,CQ6,CQ7 :

19、 STD_LOGIC_VECTOR (3 DOWNTO 0;SIGNAL COUT1,COUT2,COUT3,COUT4,COUT5,COUT6 : STD_LOGIC;SIGNAL DOUT1,DOUT2,DOUT3,DOUT4,DOUT5,DOUT6,DOUT7 : STD_LOGIC_VECTOR (3 DOWNTO 0;signal scanclk,couttflag : std_logic; -定義中間信號beginPROCESS(CLKIN,RESETBEGINIF RESET='0' THEN scan<=0;ELSIF(CLKIN'EVENT AN

20、D CLKIN='1'THENif(scan = 1023then scan <= 0;elsescan <= scan +1;end if;END IF;END PROCESS;PROCESS(CLKIN,RESETBEGINIF RESET='0' THEN scanclk<='0'ELSIF(CLKIN'EVENT AND CLKIN='1'THENif(scan <511then scanclk <= '0' -產(chǎn)生每段數(shù)碼管顯示的時間else scanclk <

21、= '1'end if;end if;end process;PROCESS(CLKIN,RESETBEGINIF RESET='0' THEN M<=(others =>'0'ELSIF(CLKIN'EVENT AND CLKIN='1'THENM <= M +1;END IF;END PROCESS;FIN<= M(15; -產(chǎn)生被測頻率COUTT <='0' WHEN COUT4 = '1'ELSE'1' WHEN start = '

22、;0' -實例化底層元件U1 : TESTCTL PORT MAP (RST=>RESET,CLK=>clkin,start=>start, CNT_EN=>EN_S,RST_CNT=>RST_S, LOAD=>LOAD_S;U2 : CNT10 PORT MAP (FIN,clkin, RST_S, EN_S, CQ1, COUT1;-u2到u8位頻率計數(shù)器U3 : CNT10 PORT MAP (COUT1,clkin, RST_S, EN_S, CQ2, COUT2;U4 : CNT10 PORT MAP (COUT2,clkin, RST_S

23、, EN_S, CQ3, COUT3;U5 : CNT10 PORT MAP (COUT3,clkin, RST_S, EN_S, CQ4, COUT4;U6 : CNT10 PORT MAP (COUT4,clkin, RST_S, EN_S, CQ5, COUT5;U7 : CNT10 PORT MAP (COUT5,clkin, RST_S, EN_S, CQ6, COUT6;U8 : CNT10 PORT MAP (COUT6,clkin, RST_S, EN_S, CQ7, couttflag;-對測得的頻率數(shù)據(jù)進行鎖存U9 : REG4B PORT MAP (CLKIN,RESET

24、,LOAD_S, QING1, CQ1, DOUT1;U10 : REG4B PORT MAP (CLKIN,RESET,LOAD_S, QING1, CQ2, DOUT2;U11 : REG4B PORT MAP (CLKIN,RESET,LOAD_S, QING1, CQ3, DOUT3;U12 : REG4B PORT MAP (CLKIN,RESET,LOAD_S, QING1, CQ4, DOUT4;U13 : REG4B PORT MAP (CLKIN,RESET,LOAD_S, QING1, CQ5, DOUT5;U14 : REG4B PORT MAP (CLKIN,RESET

25、,LOAD_S, QING1, CQ6, DOUT6;U15 : REG4B PORT MAP (CLKIN,RESET,LOAD_S, QING1, CQ7, DOUT7;-顯示U16 : DECL7S PORT MAP (clkin,scanclk,RESET, couttflag,DOUT1, DOUT2, DOUT3, DOUT4, DOUT5, DOUT6, DOUT7,weis,DQ;end Behavioral;輸入端口:CLKIN:輸入信號;RESET:復(fù)位信號;QING1:清零信號;start:開始信號輸出端口:DQ:段顯; weis:位顯; coutt:輸出十進制計數(shù)器模塊

26、源程序:library IEEE;entity cnt10 isport (f_in,CLK,RST,EN : IN STD_LOGIC; -被測頻率輸入CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0; -數(shù)據(jù)輸出COUT : OUT STD_LOGIC ; -進位位輸出end cnt10;architecture Behavioral of cnt10 is -定義構(gòu)造體Behavioral signal CQI : STD_LOGIC_VECTOR(3 DOWNTO 0 :="0000"signal D1,D2,edge :STD_LOGIC;

27、beginprocess(clk,f_in,RST-detect the rising edge -上升沿檢測進程;begin IF RST = '1' THEN d1 <= '0' ; d2 <= '0' -RST高電平時,計數(shù)清零 elsIF CLK'EVENT AND CLK='1' THEN -EN高電平時,允許計數(shù)d1 <= f_in; d2 <= d1;end if;end process;edge <= '1' when (d1='1' and (

28、 d2 = '0' else '0' ;PROCESS(CLK, RST, CQI,EN -十進制計數(shù)進程BEGINIF RST = '1' THEN CQI <= (OTHERS =>'0'ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENif edge = '1' thenIF CQI < "1001" THEN CQI <= CQI + 1; COUT<= '0'

29、ELSE CQI <=(OTHERS=>'0' COUT <= '1' -當(dāng)每次計數(shù)滿10時輸出溢出位END IF;end if;END IF;END IF;CQ <= CQI;END PROCESS;END Behavioral;輸入端口:f_in:被測頻率輸入;CLK:時鐘信號;RST:復(fù)位信號;EN:使能端輸出端口:CQ :計數(shù); COUT: 輸出4位鎖存器模塊源程序:library IEEE;entity reg4b isport ( clk, rst,load : in std_logic;qing : in std_logic

30、; -鎖存器控制信號輸入din : in std_logic_vector(3 downto 0; -鎖存數(shù)據(jù)輸入dout : out std_logic_vector(3 downto 0; -鎖存數(shù)據(jù)輸出end reg4b;architecture Behavioral of reg4b isbeginprocess(clk,rst,load,qing,din -產(chǎn)生鎖存器beginif qing = '0'or rst = '0' then dout <= "0000" -當(dāng)QING或rst按下時,不顯示elsif clk'

31、;event and clk = '1' then if(load = '1' then -更新顯示頻率dout <= din ;end if;end if ;end process;end Behavioral;輸入端口:clk:時鐘信號;rst:復(fù)位信號;load:裝載信號;qing:清零信號;din:數(shù)據(jù)輸入輸出端口:dout:輸出信號控制模塊原程序:library IEEE;entity testctl isport ( rst, clk ,start: in std_logic;- 外部控制信號輸入cnt_en, rst_cnt, load :

32、out std_logic;-內(nèi)部控制信號輸出end testctl;architecture Behavioral of testctl issignal flag_en: std_logic;signal divcount : integer range 0 to 49999999;signal state : std_logic_vector(1 downto 0;beginprocess( clk ,rst,start,state -分頻與狀態(tài)轉(zhuǎn)換進程beginif rst = '0' then divcount <= 0 ;state<="00&

33、quot;flag_en <='0'elsif clk'event and clk = '1' then -上升沿觸發(fā)case (state is -選擇函數(shù)when "00" => -等待開始信號if (start = '0'then state <= "01"flag_en <='1'divcount <= 0 ;else state <= "00" end if;when "01" => -產(chǎn)生測

34、頻時能控制信號if divcount = 49999999 then -對時鐘頻率50M分頻divcount <= 0;flag_en <= '0'state <= "00"elsif divcount < 49999999 then divcount <= divcount + 1;flag_en <='1'state <= "01"end if;when others => state <= "00"end case;end if;end pro

35、cess;process ( clk, divcount,rst,flag_en -產(chǎn)生測頻復(fù)位 beginif rst = '0' then rst_cnt <= '0' ;elsif clk'event and clk = '1'thenif flag_en = '0' then rst_cnt <= '1'else rst_cnt <= '0'end if;end if;end process;process ( clk,rst, divcount,flag_en -

36、load en 鎖存使能beginif rst = '0' then load <= '0' ;elsif clk'event and clk = '1' thenif flag_en = '1' and divcount = 49999999 then load <= '1'else load <= '0'end if;end if;end process;cnt_en <= flag_en ;end Behavioral;輸入端口:rst:復(fù)位信號; clk:時鐘

37、信號;start: 開始信號輸出端口:cnt_en:計數(shù)使能 rst_cnt:計數(shù)復(fù)位 load:鎖存使能譯碼顯示模塊源程序:library IEEE;entity decl7s isport (clk ,scanclk ,rst,coutt:in std_logic;a1,a2,a3,a4,a5,a6,a7: in std_logic_vector(3 downto 0;weis: out std_logic_vector(3 downto 0;led7s : out std_logic_vector(6 downto 0;end decl7s;architecture one of dec

38、l7s issignal din :std_logic_vector(3 downto 0;signal dout :std_logic_vector(6 downto 0;signal wei : std_logic_vector(3 downto 0;-display data wei selectsignal d1,d2,d3,d4 : std_logic_vector(3 downto 0;begin led7s <= dout;weis <= wei;process(a1,a2,a3,a4,a5,a6,a7,couttbeginif(a5="0000" and a6="0000" and a7="0000"and coutt = '0'then -高低位換擋d1 <= a1; d2 <= a2; d3 <= a3; d4 <= a4;else d1 <= a5 ; d2 <= a6; d3 <= a7; d4 <= "0000" -顯示KHZend if;end process;process(scanclk,rstbegin if(rst = '0'then wei(3 downto 0

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論