

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> EDA課程設計報告</b></p><p> 題 目: 數字頻率計 </p><p> 姓 名: </p><p> 院 系: 電氣學院 </p><p> ?! I(yè): 電子信息工程 </p&
2、gt;<p> 指導教師: </p><p> 完成時間: 2012年 6 月5 日</p><p> 目 錄</p><p> 1 課程設計題目、內容與要求 ……………………………………</p><p> 1.1 設計內容……………………………………………………&l
3、t;/p><p> 1.2 具體要求……………………………………………………</p><p> 2 系統(tǒng)設計 …………………………………………………………</p><p> 2.1 設計思路……………………………………………………</p><p> 2.2 系統(tǒng)原理與設計說明</p><p> 3 系統(tǒng)實現 ……
4、……………………………………………………</p><p> 4 系統(tǒng)仿真 …………………………………………………………</p><p> 5硬件驗證(操作)說明…………………………………………</p><p> 6總結 ……………………………………………………………</p><p> 7 參考書目 ………………………………………
5、………………</p><p> 1 課程設計題目、內容與要求</p><p> 1.1課程設計的題目:數字頻率計設計</p><p> 1.2課程設計內容:</p><p> (1)設計一個能測量方波信號的頻率計;</p><p> ?。?)測量范圍是0-999999Hz;</p><p&g
6、t; ?。?)結果用十進制數顯示。</p><p><b> 2 系統(tǒng)設計</b></p><p><b> 2.1設計思路:</b></p><p> 2.1.1 數字頻率計是一種用十進制數字顯示被測信號頻率的數字測量儀器.它的基本功能是測量方波信號及其他各種單位時間內變化的物理量。本數字頻率計采用自頂向下的設計思
7、想,通過閘門提供的1s閘門時間對被測信號進行計數及測出的被測信號的頻率,測出的頻率再通過譯碼器譯碼后輸出給顯示器顯示。根據系統(tǒng)設計的要求,數字頻率計的電路原理框圖如下:</p><p><b> 待測輸入信號</b></p><p><b> 4MHZ時鐘</b></p><p><b> 4MHZ時鐘&l
8、t;/b></p><p> 圖1 數字頻率計電路原理框圖</p><p> 2.2 系統(tǒng)原理與設計說明</p><p> 系統(tǒng)各個模塊的功能如下:</p><p> 2.2.1標準時鐘發(fā)生電路模塊</p><p> 借用實驗板上標準時鐘發(fā)生電路,為計數閘門控制電路提供一個標準8Hz信號。</
9、p><p> 2.2.2 計數器閘門控制電路模塊</p><p> 計數器閘門控制電路就是產生三個控制信號,即計數器復位信號、4位十進制計數器允許計數信號、鎖存信號。</p><p> 2.2.3鎖存電路模塊</p><p> 鎖存電路就是為了讓LED數碼管在信號來臨之前保持計數值不變。</p><p> 2.2
10、.4計數器復位電路模塊</p><p> 計數器復位電路是讓頻率計恢復到計數初始態(tài)。</p><p> 2.2.5 LED數碼管驅動電路模塊</p><p> LED數碼管驅動電路就是為LED數碼管提供驅動電壓。</p><p><b> 3系統(tǒng)實現</b></p><p> 此部分先講
11、各個模塊再講模塊聯調的實現。</p><p> 3.1各部分模塊的源程序</p><p> ?、?模塊 FEN 見圖 1.1 ,通過對 4MHz 時鐘進行分頻以獲得 0.5 Hz 時鐘,為核心模塊 CORNA 提供 1 s 的閘門時間。library ieee; use ieee.std_logic_1164.all; entity fen is port(clk:in std_l
12、ogic; q:out std_logic); end fen; architecture fen_arc of fen is begin process(clk) variable cnt: integer range 0 to 3999999; variable x:std_logic; begin if clk'event and clk='1'then if cnt&l
13、t;3999999 then cnt:=cnt+1; else cnt:=0; x:=not x; end if; end if; q<=x; end process; end fen_arc; ⑵ 模塊 SEL見圖1.2,該模塊產生數碼管的片選信號。</p><p> library ieee; use ieee.std_logic_1164.all; use ieee.st
14、d_logic_unsigned.all; entity selx is port(clk:in std_logic; sel:inout std_logic_vector(2 downto 0)); end selx; architecture sel_arc of sexl is begin process(clk) variable cnt:std_logic_vector(2 downto 0)
15、; begin if clk'event and clk='1'then cnt:=cnt+1; end if; sel<=cnt; end process; end sel_arc; ⑶ 核心模塊 CORNA見圖1.3,該模塊是整個程序的核心,它能在 1 s 的閘門時間里完成對被測信號頻率計數的功能,并通過選擇輸出數據實現自動換檔的功能。</p><p> l
16、ibrary ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity corna is port(clr,sig,door:in std_logic; alm:out std_logic; q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0)); end corna;
17、 architecture corn_arc of corna is begin process(door,sig) variable c0,c1,c2,c3,c4,c5,c6:std_logic_vector(3 downto 0); variable x:std_logic; begin if sig'event and sig='1'then if door='1'then
18、if c0<"1001"then c0:=c0+1; else c0:="0000"; if c1<"1001"then c1:=c1+1; else </p><p> library ieee; use ieee.std_logic_1164.all; entity lock is port(l:in std_lo
19、gic; a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0); q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0)); end lock; architecture lock_arc of lock is begin process(l) variable t4,t3,t2,t1,t0:std_logic_vector(3 downto
20、0); begin if l'event and l='0'then t4:=a4; t3:=a3; t2:=a2; t1:=a1; t0:=a0; end if; q4<=t4; q3<=t3; q2<=t2; q1<=t1; q0<=t0; end process; end lock_arc; ⑸ 模塊 CH見圖1.5,該模塊對應于數碼管片選信號,
21、將相應通道的數據輸出</p><p> library ieee; use ieee.std_logic_1164.all; entity ch is port(sel:in std_logic_vector(2 downto 0); a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 d
22、ownto 0)); end ch; architecture ch_arc of ch is begin process(sel) begin case sel is when"000"=>q<=a0; when"001"=>q<=a1; when"010"=>q<=a2; when"011&q
23、uot;=>q<=a3; when"111"=>q<=dang; when others=>q<="1111"; end case; end process; end ch_arc; [6]模塊 DISP見圖1.6,該模塊為4線—七段譯碼器。 </p><p> library ieee; use ieee.std_log
24、ic_1164.all; entity disp is port(d:in std_logic_vector(3 downto 0); q:out std_logic_vector(6 downto 0)); end disp; architecture disp_arc of disp is begin process(d) begin case d is when "00
25、00"=>q<="0111111"; when "0001"=>q<="0000110"; when "0010"=>q<="1011011"; when "0011"=>q<="1001111"; when "0100&q
26、uot;=>q<="1100110"; when "0101"=>q<="1101101"; when "0110"=>q<="1111101"; when "0111"=>q<="0100111"; when "1000"
27、=>q<="1111111"; when "1001"=>q<="110</p><p> 3.17 整個系統(tǒng)的頂層設計模塊</p><p> 該部分講述用元件例化的方法來實現模塊聯調</p><p> LIBRARY IEEE;</p><p> USE I
28、EEE.STD_LOGIC_1164.ALL;</p><p> ENTITY hql IS</p><p> PORT(clr,sig,clk:IN STD_LOGIC;</p><p> alm:OUT STD_LOGIC;</p><p> q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);</p>
29、;<p> sel:INOUT STD_LOGIC_VECTOR(2 DOWNTO 0));</p><p><b> END hql;</b></p><p> ARCHITECTURE sd OF hql IS</p><p> COMPONENT fen</p><p> port(clk:
30、in std_logic;</p><p> q:out std_logic);</p><p> end COMPONENT;</p><p> COMPONENT selx</p><p> port(clk:in std_logic;</p><p> sel:inout std_logic_vecto
31、r(2 downto 0));</p><p> end COMPONENT;</p><p> COMPONENT corna</p><p> port(clr,sig,door:in std_logic;</p><p> alm:out std_logic;</p><p> q3,q2,q1,q0,
32、dang:out std_logic_vector(3 downto 0));</p><p> end COMPONENT;</p><p> COMPONENT lock</p><p> port(l:in std_logic;</p><p> a4,a3,a2,a1,a0:in std_logic_vector(3 down
33、to 0);</p><p> q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0)); </p><p> end COMPONENT;</p><p> COMPONENT ch</p><p> port(sel:in std_logic_vector(2 downto 0); <
34、/p><p> a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0); </p><p> q:out std_logic_vector(3 downto 0));</p><p> end COMPONENT;</p><p> COMPONENT disp</p><p&
35、gt; port(d:in std_logic_vector(3 downto 0); </p><p> q:out std_logic_vector(6 downto 0)); </p><p> end COMPONENT;</p><p> SIGNAL qq:STD_LOGIC;</p><p> SIGNAL qq3,
36、qq2,qq1,qq0,qqdang:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL tt4,tt3,tt2,tt1,tt0:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL ww:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b>
37、 BEGIN</b></p><p> u1:fen PORT MAP(clk=>clk,q=>qq);</p><p> u2:selx PORT MAP(clk=>clk,sel=>sel);</p><p> u3:corna PORT MAP(clr=>clr,sig=>sig,door=>qq,a
38、lm=>alm,q3=>qq3,q2=>qq2,q1=>qq1,q0=>qq0,dang=>qqdang);</p><p> u4:lock PORT MAP(l=>qq,a4=>qq3,a3=>qq3,a2=>qq2,a1=>qq1,a0=>qqdang,q4=>tt4,q3=>tt3,q2=>tt2,q1=>t
39、t1,q0=>tt0);</p><p> u5:ch PORT MAP(sel=>sel,a3=>tt4,a2=>tt3,a1=>tt2,a0=>tt1,dang=>tt0,q=>ww);</p><p> u6:disp PORT MAP(d=>ww,q=>q);</p><p><b>
40、 END sd;</b></p><p> 本部分講述的是用圖形的方法來實現模塊聯調,在Mux plusII中現將編譯好的各模塊生成為圖形(File→creat Default Symbol),再打開新建一個圖形編輯器(File→New→Graphic Editor file)進行圖形拼湊編譯就可以了,最后的圖形如下圖:</p><p><b> 4 系統(tǒng)仿真&
41、lt;/b></p><p> 整個系統(tǒng) 的仿真波形如下:</p><p> 測試信號是頻率為5kHz脈沖時的仿真波形圖</p><p> 第一次仿真中的換檔情況</p><p> 測試信號是頻率為25kHz脈沖時的仿真波形圖</p><p> 測試信號是頻率為250kHz脈沖時的仿真波形</p&
42、gt;<p> 測試信號是周期為6ms脈沖時的仿真波形圖</p><p><b> 5硬件驗證說明</b></p><p> 將下載好程序的主芯片根據事先定義好的管腳連好線,clk端口用實驗箱的輸出為4MHz的標準時基信號,sig端口接入被測的信號,clr端口連接一個電平開關,將電平開關-置高電平,輸出端接好LED顯示器就可以觀察被測信號的頻率了。
43、</p><p><b> 6 總結</b></p><p> 這次課程設計的主要任務是設計一個數字頻率計,雖然老師為我們提供了一些相關的信息,也給了我們一個實驗設計的輪廓,但在實際設計過程中還是遇到了不少的問題。畫流程圖、編寫程序、編譯以及仿真等等,當有不清楚的時候就查一些相關的資料并向別的同學請教,然后再編再改,直到成功為止。通過自己的努力和同學的幫助完成了這
44、次設計,但我覺得過程更重要。通過這次的課程設計,讓我明白了“三人行,必有我?guī)熝伞保屛叶昧?,在困難和未知面前,只要我們勇敢地去嘗試,總結經驗,汲取教訓,努力做好每一點,那么我們就會有所收獲。</p><p><b> 7參考書目</b></p><p> [1]《PLD與數字系統(tǒng)設計》李輝 西安電子科技大學出版社 2005</p><p&g
45、t; [2]《集成電路設計VHDL教程》趙俊超 等著 北京:希望電子出版社2002 </p><p> [3]《VHDL數字系統(tǒng)設計與高層次綜合》林敏 方穎立著北京:電子工業(yè)出版社 2002</p><p> [4]《VHDL程序設計》曾繁泰 陳美金著北京: 清華大學出版社 2001</p><p> [5]《VHDL 實用教程》潘松 王國棟著 成都:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論