版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> EDA《數(shù)字頻率計(jì)》</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 專 業(yè): 電子信息工程 </p><p> 班 級(jí): 08電信 </p><p> 姓 名:
2、 </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p> 年 月 日</p><p><b> 一 課程設(shè)計(jì)目的</b></p><p>
3、1)課程設(shè)計(jì)題:數(shù)字頻率計(jì)</p><p><b> 2)任務(wù)及要求</b></p><p> 1、設(shè)計(jì)一個(gè)能測(cè)量方波信號(hào)的頻率的頻率計(jì)。</p><p> 2、測(cè)量的頻率范圍是0999999Hz。</p><p> 3、結(jié)果用十進(jìn)制數(shù)顯示。</p><p> 4、按要求寫好設(shè)計(jì)報(bào)告(設(shè)
4、計(jì)報(bào)告內(nèi)容包括:引言,方案設(shè)計(jì)與論證,總體設(shè)計(jì),各模塊設(shè)計(jì),調(diào)試與數(shù)據(jù)分析,總結(jié))。</p><p><b> 3)教學(xué)提示</b></p><p> 1、脈沖信號(hào)的頻率就是在單位時(shí)間內(nèi)所產(chǎn)生的脈沖個(gè)數(shù),其表達(dá)式為,f為被測(cè)信號(hào)的頻率,N為計(jì)數(shù)器所累計(jì)的脈沖個(gè)數(shù),T為產(chǎn)生N個(gè)脈沖所需的時(shí)間。所以,在1秒時(shí)間內(nèi)計(jì)數(shù)器所記錄的結(jié)果,就是被測(cè)信號(hào)的頻率。</p&g
5、t;<p> 2、被測(cè)頻率信號(hào)取自實(shí)驗(yàn)箱晶體振蕩器輸出信號(hào),加到主控門的輸入端。</p><p> 3、再取晶體振蕩器的另一標(biāo)準(zhǔn)頻率信號(hào),經(jīng)分頻后產(chǎn)生各種時(shí)基脈沖:1ms,10ms,0.1s,1s等,時(shí)基信號(hào)的選擇可以控制,即量程可以改變。</p><p> 4、時(shí)基信號(hào)經(jīng)控制電路產(chǎn)生閘門信號(hào)至主控門,只有在閘門信號(hào)采樣期間內(nèi)(時(shí)基信號(hào)的一個(gè)周期),輸入信號(hào)才通過主控門
6、。</p><p> 5f=N/T,改變時(shí)基信號(hào)的周期T,即可得到不同的測(cè)頻范圍。</p><p> 當(dāng)主控門關(guān)閉時(shí),計(jì)數(shù)器停止計(jì)數(shù),顯示器顯示記錄結(jié)果,此時(shí)控制電路輸出一個(gè)置零信號(hào),將計(jì)數(shù)器和所有觸發(fā)器復(fù)位,為新的一次采樣做好準(zhǔn)備。</p><p> 改變量程時(shí),小數(shù)點(diǎn)能自動(dòng)移位。</p><p><b> 4)設(shè)計(jì)報(bào)告要
7、求</b></p><p> 1、說明設(shè)計(jì)作品的功能、特點(diǎn)、應(yīng)用范圍;</p><p> 2、方案對(duì)比,確定方案。</p><p> 3、電路工作原理、操作方法;</p><p> 4、編程方法、程序框圖及關(guān)鍵程序清單。</p><p><b> 5、課程設(shè)計(jì)總結(jié)。</b>&
8、lt;/p><p> 數(shù)字頻率計(jì)是計(jì)算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測(cè)量?jī)x器。它是一種用十進(jìn)制數(shù)字,顯示被測(cè)信號(hào)頻率的數(shù)字測(cè)量?jī)x器。它的基本功能是測(cè)量正弦信號(hào),方波信號(hào)以及其他各種單位時(shí)間內(nèi)變化的物理量。在進(jìn)行模擬、數(shù)字電路的設(shè)計(jì)、安裝、調(diào)試過程中,由于其使用十進(jìn)制數(shù)顯示,測(cè)量迅速,精度高,顯示直觀,所以經(jīng)常要用到數(shù)字頻率計(jì)。</p><p> 二、設(shè)計(jì)方案論證、結(jié)果以及分
9、析</p><p><b> 1 原理圖</b></p><p> 編譯成功后其波形圖如下:</p><p><b> 2、信號(hào)發(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)生時(shí)基脈沖1s</p><p> when "01" => t <= 599999; --產(chǎn)生時(shí)基脈沖100ms</p><p> when "10" => t <= 59999; --產(chǎn)生時(shí)基脈沖10ms</p><p&
14、gt; when "11" => t <= 5999; --產(chǎn)生時(shí)基脈沖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、 測(cè)頻</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、 計(jì)數(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是計(jì)數(shù)器的進(jìn)位輸出;Q[3..0]是計(jì)數(shù)器的狀態(tài)輸出;CLK是時(shí)鐘輸入端;RST是復(fù)位控制端;當(dāng)RST=1時(shí),Q[3..0]=0,EN是使
33、能控制輸入端,當(dāng)EN=1時(shí),計(jì)數(shù)器計(jì)數(shù),當(dāng)EN=0時(shí),計(jì)數(shù)器保持狀態(tài)不變。編譯成功后,其仿真波形如下:</p><p> 在項(xiàng)目編譯仿真成功后,將設(shè)計(jì)的十進(jìn)制計(jì)數(shù)器電路設(shè)置成可調(diào)用的元件jishu.sym用于以下的頂層設(shè)計(jì)。</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是鎖存信號(hào),上升沿觸發(fā);din[3..0]是寄存器輸入;dout[3..0]是寄存器輸出。編譯成功后生成元件圖如下圖,以便頂層模塊的調(diào)用。</p><p
38、><b> 4位寄存器</b></p><p> 寄存器是在計(jì)數(shù)結(jié)束后,利用觸發(fā)器的上升沿吧最新的頻率測(cè)量值保存起來,這樣在計(jì)數(shù)的過程中可不必一直看數(shù)碼顯示器,顯示器將最終的頻率讀數(shù)定期進(jìn)行更新,其輸出作為動(dòng)態(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是鎖存信號(hào),上升沿觸發(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、 動(dòng)態(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è)計(jì)</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è)計(jì)體會(huì)</b></p><p> 通過對(duì)EDA技術(shù)這門課程的學(xué)習(xí),心得體會(huì)甚多。雖然一開始覺得什么都不懂,但是通過一次次的實(shí)驗(yàn),我們真的學(xué)到了不少的東西。往往書本上的知識(shí)在實(shí)際使用或?qū)嶒?yàn)時(shí)都應(yīng)該加以修改,使之更適合實(shí)際應(yīng)用,也更簡(jiǎn)潔。這次EDA課程設(shè)計(jì),使我更加的了解了EDA,VHDL語言和外部設(shè)備的接線。也讓我更加了解了EDA設(shè)計(jì)的流程和原理。</p&g
75、t;<p> 通過本次設(shè)計(jì),讓我很好的鍛煉了理論聯(lián)系實(shí)際,與具體項(xiàng)目、課題相結(jié)合開發(fā)、設(shè)計(jì)產(chǎn)品的能力。既讓我們懂得了怎樣把理論應(yīng)用于實(shí)際,又讓我們懂得了在實(shí)踐中遇到的問題怎樣用理論去解決。</p><p> 在本次設(shè)計(jì)中,我們還需要一些上課時(shí)沒有牢固的知識(shí),于是圖書館和INTERNET成了我們很好的助手。在查閱資料的過程中,我們要判斷優(yōu)劣、取舍相關(guān)知識(shí),不知不覺中我們查閱資料的能力也得到了很好的
76、鍛煉。我們學(xué)習(xí)的知識(shí)是有限的,在以后的工作中我們肯定會(huì)遇到許多未知的領(lǐng)域,這方面的能力便會(huì)使我們受益非淺。</p><p> 在設(shè)計(jì)過程中,總是遇到這樣或那樣的問題。有時(shí)發(fā)現(xiàn)一個(gè)問題的時(shí)候,需要做大量的工作,花大量的時(shí)間才能解決。自然而然,我的耐心便在其中建立起來了。為以后的工作積累了經(jīng)驗(yàn),增強(qiáng)了信心。</p><p> 我認(rèn)為,不僅僅是此次考查設(shè)計(jì),在整個(gè)這學(xué)期的實(shí)驗(yàn)中,不僅培養(yǎng)了獨(dú)
77、立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實(shí)驗(yàn)課上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后罪實(shí)用的,真的是受益匪淺。我已從中真正體會(huì)到了,做設(shè)計(jì)不是為順利完成而做,而是為了學(xué)會(huì)遇到問題懂得去解決而做。雖然實(shí)踐問題會(huì)遇到很多,每一次實(shí)驗(yàn)其實(shí)真的可以讓人學(xué)到很多知識(shí)。只有自己懂得去總結(jié),才能從中體會(huì)到收獲。</p><p><b> 四.參考文獻(xiàn):</b></p&
78、gt;<p> [1] 潘松VHDL實(shí)用教程[M] 成都電子科技大學(xué)出版社,2000 </p><p> [2] 盧毅,賴杰VHDL與數(shù)字電路設(shè)計(jì)[M] 北京科學(xué)出版社,2001 [3] 徐志軍大規(guī)??删幊踢壿嬈骷捌鋺?yīng)用[M] 成都電子科技大學(xué)出版社, 2004.2 &l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)--數(shù)字頻率計(jì)
- eda課程設(shè)計(jì)---數(shù)字頻率計(jì)
- 課程設(shè)計(jì)---eda數(shù)字頻率計(jì)
- eda課程設(shè)計(jì)---數(shù)字頻率計(jì)
- eda課程設(shè)計(jì)---數(shù)字頻率計(jì)
- eda課程設(shè)計(jì)---數(shù)字頻率計(jì)
- eda課程設(shè)計(jì)數(shù)字頻率計(jì)
- eda技術(shù)課程設(shè)計(jì) ---eda數(shù)字頻率計(jì)
- eda課程設(shè)計(jì)-數(shù)字頻率計(jì)的設(shè)計(jì)
- eda技術(shù)課程設(shè)計(jì)----數(shù)字頻率計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 課程設(shè)計(jì)——數(shù)字頻率計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)-數(shù)字頻率計(jì)
- 課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論