版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> EDA《數(shù)字頻率計》</p><p><b> 課程設(shè)計報告</b></p><p> 專 業(yè): 電子信息工程 </p><p> 班 級: 08電信 </p><p> 姓 名:
2、 </p><p> 學(xué) 號: </p><p> 指導(dǎo)教師: </p><p> 年 月 日</p><p><b> 一 課程設(shè)計目的</b></p><p>
3、1)課程設(shè)計題:數(shù)字頻率計</p><p><b> 2)任務(wù)及要求</b></p><p> 1、設(shè)計一個能測量方波信號的頻率的頻率計。</p><p> 2、測量的頻率范圍是0999999Hz。</p><p> 3、結(jié)果用十進制數(shù)顯示。</p><p> 4、按要求寫好設(shè)計報告(設(shè)
4、計報告內(nèi)容包括:引言,方案設(shè)計與論證,總體設(shè)計,各模塊設(shè)計,調(diào)試與數(shù)據(jù)分析,總結(jié))。</p><p><b> 3)教學(xué)提示</b></p><p> 1、脈沖信號的頻率就是在單位時間內(nèi)所產(chǎn)生的脈沖個數(shù),其表達式為,f為被測信號的頻率,N為計數(shù)器所累計的脈沖個數(shù),T為產(chǎn)生N個脈沖所需的時間。所以,在1秒時間內(nèi)計數(shù)器所記錄的結(jié)果,就是被測信號的頻率。</p&g
5、t;<p> 2、被測頻率信號取自實驗箱晶體振蕩器輸出信號,加到主控門的輸入端。</p><p> 3、再取晶體振蕩器的另一標準頻率信號,經(jīng)分頻后產(chǎn)生各種時基脈沖:1ms,10ms,0.1s,1s等,時基信號的選擇可以控制,即量程可以改變。</p><p> 4、時基信號經(jīng)控制電路產(chǎn)生閘門信號至主控門,只有在閘門信號采樣期間內(nèi)(時基信號的一個周期),輸入信號才通過主控門
6、。</p><p> 5f=N/T,改變時基信號的周期T,即可得到不同的測頻范圍。</p><p> 當主控門關(guān)閉時,計數(shù)器停止計數(shù),顯示器顯示記錄結(jié)果,此時控制電路輸出一個置零信號,將計數(shù)器和所有觸發(fā)器復(fù)位,為新的一次采樣做好準備。</p><p> 改變量程時,小數(shù)點能自動移位。</p><p><b> 4)設(shè)計報告要
7、求</b></p><p> 1、說明設(shè)計作品的功能、特點、應(yīng)用范圍;</p><p> 2、方案對比,確定方案。</p><p> 3、電路工作原理、操作方法;</p><p> 4、編程方法、程序框圖及關(guān)鍵程序清單。</p><p><b> 5、課程設(shè)計總結(jié)。</b>&
8、lt;/p><p> 數(shù)字頻率計是計算機、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。它是一種用十進制數(shù)字,顯示被測信號頻率的數(shù)字測量儀器。它的基本功能是測量正弦信號,方波信號以及其他各種單位時間內(nèi)變化的物理量。在進行模擬、數(shù)字電路的設(shè)計、安裝、調(diào)試過程中,由于其使用十進制數(shù)顯示,測量迅速,精度高,顯示直觀,所以經(jīng)常要用到數(shù)字頻率計。</p><p> 二、設(shè)計方案論證、結(jié)果以及分
9、析</p><p><b> 1 原理圖</b></p><p> 編譯成功后其波形圖如下:</p><p><b> 2、信號發(fā)生器</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all
10、;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity sele is</p><p> port(clk: in std_logic;</p><p> jian: in std_logic_vector(1 downto 0);</p><p>
11、; oclk: out std_logic);</p><p><b> end;</b></p><p> architecture s_1 of sele is</p><p> signal full : std_logic;</p><p> signal t :integer range 0 to 5
12、999999;</p><p><b> begin</b></p><p> P1:process(jian,t)</p><p><b> begin</b></p><p> case jian is</p><p> when "00"
13、=> t <= 5999999; --產(chǎn)生時基脈沖1s</p><p> when "01" => t <= 599999; --產(chǎn)生時基脈沖100ms</p><p> when "10" => t <= 59999; --產(chǎn)生時基脈沖10ms</p><p&
14、gt; when "11" => t <= 5999; --產(chǎn)生時基脈沖1ms</p><p> when others => null;</p><p><b> end case;</b></p><p> end process P1;</p><p>
15、 P2: process(clk,t)</p><p> variable s : integer range 0 to 5999999;</p><p><b> begin</b></p><p> if (clk'event and clk = '1') then</p><p>
16、if s < t then</p><p> s := s +1;</p><p> else s := 0 ;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> if s = t then
17、full <= '1';</p><p> else full <= '0';</p><p><b> end if;</b></p><p> end process P2;</p><p> P3: process(full)</p><p&g
18、t; variable c : std_logic;</p><p><b> begin</b></p><p> if full'event and full = '1' then </p><p> c := not c;</p><p> if c = '1' t
19、hen </p><p> oclk <= '1';</p><p> else oclk <='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p>
20、 end process P3;</p><p><b> end;</b></p><p><b> 其仿真波形為:</b></p><p><b> 3、 測頻</b></p><p> library ieee;</p><p> us
21、e ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity cp is</p><p> port(clkk: in std_logic;</p><p> en,rst,load: out std_logic);</p
22、><p><b> end;</b></p><p> architecture cp_1 of cp is </p><p> signal div2: std_logic;</p><p><b> begin</b></p><p> process(clkk)&
23、lt;/p><p><b> begin</b></p><p> if(clkk'event and clkk='1') then </p><p> div2 <= not div2;</p><p><b> end if;</b></p>&
24、lt;p> end process;</p><p> process(clkk,div2)</p><p><b> begin </b></p><p> if (clkk='0' and div2='0') then </p><p> rst <='
25、1';</p><p> else rst <='0';</p><p><b> end if;</b></p><p> end process;</p><p> load <= not div2;</p><p> en <= div2;
26、</p><p><b> end;</b></p><p><b> 其仿真波形為:</b></p><p><b> 4、 計數(shù)器</b></p><p> library ieee;</p><p> use ieee.std_logi
27、c_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity jishu is</p><p> port(rst,en,clk: in std_logic;</p><p> Q: out std_logic_vector(3 downto 0);<
28、/p><p> cout: out std_logic);</p><p><b> end;</b></p><p> architecture cnt of jishu is </p><p> signal cnt: std_logic_vector(3 downto 0);</p><p&
29、gt;<b> begin</b></p><p> process(rst,en,clk)</p><p><b> begin</b></p><p> if rst='1' then cnt <= "0000";</p><p> els
30、if(clk'event and clk='1') and en = '1' then</p><p> if cnt = "1001" then</p><p> cnt <= "0000"; cout <= '1';</p><p><b&g
31、t; else </b></p><p> cnt <= cnt + 1;</p><p> cout <= '0';</p><p><b> end if;</b></p><p><b> end if;</b></p><
32、p> end process;</p><p><b> Q <= cnt;</b></p><p><b> end;</b></p><p> 在源程序中COUT是計數(shù)器的進位輸出;Q[3..0]是計數(shù)器的狀態(tài)輸出;CLK是時鐘輸入端;RST是復(fù)位控制端;當RST=1時,Q[3..0]=0,EN是使
33、能控制輸入端,當EN=1時,計數(shù)器計數(shù),當EN=0時,計數(shù)器保持狀態(tài)不變。編譯成功后,其仿真波形如下:</p><p> 在項目編譯仿真成功后,將設(shè)計的十進制計數(shù)器電路設(shè)置成可調(diào)用的元件jishu.sym用于以下的頂層設(shè)計。</p><p> 5、 16位寄存器</p><p> library ieee;</p><p> use
34、 ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity suocun is</p><p> port(load: in std_logic;</p><p> din : in std_logic_vector(15 do
35、wnto 0);</p><p> dout: out std_logic_vector(15 downto 0));</p><p><b> end;</b></p><p> architecture suo of suocun is </p><p><b> begin</b>&l
36、t;/p><p> process(load,din)</p><p><b> begin</b></p><p> if (load'event and load='1') then </p><p> dout <= din;</p><p><b&g
37、t; end if;</b></p><p> end process;</p><p><b> end;</b></p><p> 在源程序中l(wèi)oad是鎖存信號,上升沿觸發(fā);din[3..0]是寄存器輸入;dout[3..0]是寄存器輸出。編譯成功后生成元件圖如下圖,以便頂層模塊的調(diào)用。</p><p
38、><b> 4位寄存器</b></p><p> 寄存器是在計數(shù)結(jié)束后,利用觸發(fā)器的上升沿吧最新的頻率測量值保存起來,這樣在計數(shù)的過程中可不必一直看數(shù)碼顯示器,顯示器將最終的頻率讀數(shù)定期進行更新,其輸出作為動態(tài)掃描電路的輸入。</p><p> library ieee;</p><p> use ieee.std_logic_1
39、164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity suo is</p><p> port(load: in std_logic;</p><p> din : in std_logic_vector(3 downto 0);</p>&
40、lt;p> dout: out std_logic_vector(3 downto 0));</p><p><b> end;</b></p><p> architecture suo_1 of suo is </p><p><b> begin</b></p><p> pr
41、ocess(load,din)</p><p><b> begin</b></p><p> if (load'event and load='1') then </p><p> dout <= din;</p><p><b> end if;</b>&l
42、t;/p><p> end process;</p><p><b> end;</b></p><p> 在源程序中l(wèi)oad是鎖存信號,上升沿觸發(fā);din[3..0]是寄存器輸入;dout[3..0]是寄存器輸出。編譯成功后生成元件圖如下圖,以便頂層模塊的調(diào)用。</p><p><b> 6、 譯碼器&
43、lt;/b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity leds is</p><p> port(clk:
44、 in std_logic;</p><p> Din: in std_logic_vector(15 downto 0);</p><p> sg: out std_logic_vector(6 downto 0);</p><p> bt: out std_logic_vector(1 downto 0));</p><p><
45、;b> end;</b></p><p> architecture led_1 of leds is</p><p> signal cnt8: std_logic_vector(1 downto 0);</p><p> signal q: std_logic_vector(3 downto 0); </p><p&
46、gt;<b> begin</b></p><p> P1:process(cnt8,Din,q)</p><p><b> begin</b></p><p> case cnt8 is</p><p> when "00" => bt <= "
47、00";q <= Din(3 downto 0);</p><p> when "01" => bt <= "01";q <= Din(7 downto 4);</p><p> when "10" => bt <= "10";q <= Din(11 do
48、wnto 8);</p><p> when "11" => bt <= "11";q <= Din(15 downto 12);</p><p> when others => null;</p><p><b> end case;</b></p><
49、p><b> case q is</b></p><p> when "0000" => sg <= "0111111";</p><p> when "0001" => sg <= "0000110";</p><p> wh
50、en "0010" => sg <= "1011011";</p><p> when "0011" => sg <= "1001111";</p><p> when "0100" => sg <= "1100110";</
51、p><p> when "0101" => sg <= "1101101";</p><p> when "0110" => sg <= "1111101";</p><p> when "0111" => sg <= "
52、;0000111";</p><p> when "1000" => sg <= "1111111";</p><p> when "1001" => sg <= "1101111";</p><p> when others => null
53、;</p><p><b> end case;</b></p><p> end process P1;</p><p> P2:process(clk)</p><p><b> begin</b></p><p> if(clk'event and c
54、lk='1') then </p><p> cnt8 <= cnt8 +1;</p><p><b> end if;</b></p><p> end process P2;</p><p><b> end;</b></p><p>
55、編譯成功后,其波形圖為:</p><p><b> 7、 譯碼</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p&
56、gt; entity divid is</p><p> port(clk50: in std_logic;</p><p> qlkhz: out std_logic);</p><p><b> end;</b></p><p> architecture div of divid is</p>
57、<p><b> begin</b></p><p> K1:process(clk50)</p><p> variable cout: integer:=0;</p><p><b> begin</b></p><p> if(clk50'event and c
58、lk50='1') then </p><p> cout := cout + 1;</p><p> if cout <= 24999 then qlkhz <= '1';</p><p> elsif cout <= 49999 then qlkhz <= '1';</p&g
59、t;<p> else cout :=0;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> end;</b></p>
60、<p> 編譯成功后,其波形圖為:</p><p> 8、 動態(tài)掃描電路</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p>
61、 entity dongtai is</p><p> port(q200hz: in std_logic;</p><p> bt: in std_logic_vector(1 downto 0);</p><p> sg: in std_logic_vector(6 downto 0);</p><p> led0,led1,le
62、d2,led3: out std_logic_vector(6 downto 0));</p><p><b> end;</b></p><p> architecture behav of dongtai is</p><p><b> begin</b></p><p> proces
63、s(q200hz)</p><p><b> begin</b></p><p> if(q200hz'event and q200hz='1') then </p><p> case bt is</p><p> when "00" => led0 <
64、= sg(6 downto 0);</p><p> when "01" => led1 <= sg(6 downto 0);</p><p> when "10" => led2 <= sg(6 downto 0);</p><p> when "11" => led3
65、 <= sg(6 downto 0);</p><p> when others => null;</p><p><b> end case;</b></p><p><b> end if;</b></p><p> end process;</p><p
66、><b> end;</b></p><p><b> 仿真波形如下:</b></p><p> 編譯成功后生成元件圖如下圖,以便頂層模塊的調(diào)用。</p><p><b> 9、 分頻設(shè)計</b></p><p> library ieee;</p>
67、;<p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_signed.all;</p><p> entity fp is</p><p> port( clk : in std_logic;</p><p> oclk: out std_logic
68、);</p><p><b> end;</b></p><p> architecture fp_1 of fp is</p><p> signal full : std_logic;</p><p><b> begin</b></p><p> P1: pr
69、ocess(clk)</p><p> variable s : integer range 0 to 99;</p><p><b> begin</b></p><p> if (clk'event and clk = '1') then</p><p> if s < 99 t
70、hen</p><p> s := s +1;</p><p> elsif s > 99 then s := 0;</p><p> elsif s = 99 then full <= '1';</p><p><b> end if;</b></p><p>
71、;<b> end if;</b></p><p> end process P1;</p><p> P2: process(full)</p><p> variable c : std_logic;</p><p><b> begin</b></p><p>
72、; if full = '1' then </p><p> c := not c;</p><p> if c = '1' then </p><p> oclk <= '1';</p><p> else oclk <='0';</p>&
73、lt;p><b> end if;</b></p><p><b> end if;</b></p><p> end process P2;</p><p><b> end;</b></p><p> 編譯成功后,其波形圖為:</p><
74、p><b> 三.設(shè)計體會</b></p><p> 通過對EDA技術(shù)這門課程的學(xué)習(xí),心得體會甚多。雖然一開始覺得什么都不懂,但是通過一次次的實驗,我們真的學(xué)到了不少的東西。往往書本上的知識在實際使用或?qū)嶒灂r都應(yīng)該加以修改,使之更適合實際應(yīng)用,也更簡潔。這次EDA課程設(shè)計,使我更加的了解了EDA,VHDL語言和外部設(shè)備的接線。也讓我更加了解了EDA設(shè)計的流程和原理。</p&g
75、t;<p> 通過本次設(shè)計,讓我很好的鍛煉了理論聯(lián)系實際,與具體項目、課題相結(jié)合開發(fā)、設(shè)計產(chǎn)品的能力。既讓我們懂得了怎樣把理論應(yīng)用于實際,又讓我們懂得了在實踐中遇到的問題怎樣用理論去解決。</p><p> 在本次設(shè)計中,我們還需要一些上課時沒有牢固的知識,于是圖書館和INTERNET成了我們很好的助手。在查閱資料的過程中,我們要判斷優(yōu)劣、取舍相關(guān)知識,不知不覺中我們查閱資料的能力也得到了很好的
76、鍛煉。我們學(xué)習(xí)的知識是有限的,在以后的工作中我們肯定會遇到許多未知的領(lǐng)域,這方面的能力便會使我們受益非淺。</p><p> 在設(shè)計過程中,總是遇到這樣或那樣的問題。有時發(fā)現(xiàn)一個問題的時候,需要做大量的工作,花大量的時間才能解決。自然而然,我的耐心便在其中建立起來了。為以后的工作積累了經(jīng)驗,增強了信心。</p><p> 我認為,不僅僅是此次考查設(shè)計,在整個這學(xué)期的實驗中,不僅培養(yǎng)了獨
77、立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實驗課上,我們學(xué)會了很多學(xué)習(xí)的方法。而這是日后罪實用的,真的是受益匪淺。我已從中真正體會到了,做設(shè)計不是為順利完成而做,而是為了學(xué)會遇到問題懂得去解決而做。雖然實踐問題會遇到很多,每一次實驗其實真的可以讓人學(xué)到很多知識。只有自己懂得去總結(jié),才能從中體會到收獲。</p><p><b> 四.參考文獻:</b></p&
78、gt;<p> [1] 潘松VHDL實用教程[M] 成都電子科技大學(xué)出版社,2000 </p><p> [2] 盧毅,賴杰VHDL與數(shù)字電路設(shè)計[M] 北京科學(xué)出版社,2001 [3] 徐志軍大規(guī)模可編程邏輯器件及其應(yīng)用[M] 成都電子科技大學(xué)出版社, 2004.2 &l
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計--數(shù)字頻率計
- eda課程設(shè)計---數(shù)字頻率計
- 課程設(shè)計---eda數(shù)字頻率計
- eda課程設(shè)計---數(shù)字頻率計
- eda課程設(shè)計---數(shù)字頻率計
- eda課程設(shè)計---數(shù)字頻率計
- eda課程設(shè)計數(shù)字頻率計
- eda技術(shù)課程設(shè)計 ---eda數(shù)字頻率計
- eda課程設(shè)計-數(shù)字頻率計的設(shè)計
- eda技術(shù)課程設(shè)計----數(shù)字頻率計
- 數(shù)字頻率計課程設(shè)計
- 數(shù)字頻率計課程設(shè)計
- 課程設(shè)計--數(shù)字頻率計
- 課程設(shè)計——數(shù)字頻率計
- 數(shù)字頻率計課程設(shè)計
- 課程設(shè)計-數(shù)字頻率計
- 課程設(shè)計--數(shù)字頻率計
- 課程設(shè)計--數(shù)字頻率計
- 數(shù)字頻率計課程設(shè)計
- 數(shù)字頻率計課程設(shè)計
評論
0/150
提交評論