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

下載本文檔

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

文檔簡介

1、等級:課 程 設(shè) 計課程名稱嵌入式系統(tǒng)課程設(shè)計課題名稱基于CPLD的簡易數(shù)字頻率計專 業(yè)電子信息工程班 級電信1303學 號 xxxxxxxxxxxxxxxxxxxx姓 名XX指導(dǎo)老師陳愛萍2016年12月20日目錄一總體設(shè)計21.設(shè)計總體思路22.基本原理23.總體框圖2二各個單元模塊設(shè)計31.分頻器模塊32.計數(shù)器模塊43.鎖存器模塊64.編碼器模塊85.片選模塊96.顯示模塊107.片選信號模塊11四.總體電路圖14五.設(shè)計調(diào)試141.軟件調(diào)試與硬件調(diào)試141.1軟件調(diào)試141.2硬件調(diào)試15六. 總結(jié)與體會16七.參考文獻16電氣信息學院課程設(shè)計任務(wù)書課題名稱基于CPLD的簡易數(shù)字頻率

2、計姓 名xx專業(yè)電子信息工程班級xxxx 學號xx 指導(dǎo)老師陳愛萍課程設(shè)計時間2016年12月18日-2016年12月30日(17、18周)教研室意見意見:同意 審核人:劉望軍一、任務(wù)及要求CPLD為復(fù)雜可編程邏輯器件,通過EDA技術(shù)對其進行編程,設(shè)計數(shù)字頻率計,并最終完成電路的編程調(diào)試。具體要求如下:數(shù)字頻率計是一種用數(shù)字顯示的頻率測量儀表,它不僅可以測量正弦信號、方波信號的頻率,還可以測量如機械振動次數(shù)、物體轉(zhuǎn)動次數(shù)、單位時間里經(jīng)過傳送帶的產(chǎn)品數(shù)量等多種物理量。技術(shù)指標:()、頻率測量范圍:1/109999Hz。()、輸入被測信號幅度Vi<100mV。()、測量1s和10s時間內(nèi)的脈

3、沖數(shù)。()、顯示時間分“手動”和“自動”兩檔。二、進度安排第一周:周一:集中布置課程設(shè)計相關(guān)事宜。周二周三:子模塊程序設(shè)計,頂層電路程序設(shè)計。周四周日:子模塊,頂層電路仿真。第二周:周一周三:編程下載,系統(tǒng)調(diào)試。周四周五:設(shè)計報告撰寫。周五進行答辯和設(shè)計結(jié)果檢查。一總體設(shè)計1.設(shè)計總體思路采用現(xiàn)場可編程門陣列(FPGA)為控制核心,利用VHDL語言編程,下載燒制實現(xiàn)。將所有器件集成在一塊芯片上,體積大大減小的同時還提高了穩(wěn)定性,可實現(xiàn)大規(guī)模和超大規(guī)模的集成電路,測頻測量精度高,測量頻率范圍大,而且編程靈活、調(diào)試方便.2.基本原理頻率計的基本原理是用高頻信號基準時鐘,對比測量其他信號的頻率。通常

4、情況下計算每秒內(nèi)待測信號的脈沖個數(shù),即閘門時間為1 s。閘門時間可以根據(jù)需要取值,大于或小于1 s都可以。閘門時間越長,得到的頻率值就越準確。閘門時間越短,測得的頻率值刷新就越快。一般取1 s作為閘門時間。數(shù)字頻率計的關(guān)鍵組成部分包括分頻器,計數(shù)器、鎖存器、片選電路,譯碼驅(qū)動電路和顯示電路.3.總體框圖 圖1-3-1 數(shù)字頻率計總體框圖二各個單元模塊設(shè)計1.分頻器模塊本次實驗主要采用的是計數(shù)器構(gòu)成分頻電路,對1KHz的時鐘脈沖進行分頻。這里使用的是10分頻,一個輸出給計數(shù)器,一個給鎖存器。源程序:library ieee; use ieee.std_logic_1164.all; entity

5、 fen_ck22 is port(clk:in std_logic; q:out std_logic); end; architecture fen_arc of fen_ck22 is begin process(clk) variable cnt:integer range 0 to 9; variable x:std_logic; begin if clk'event and clk='1' then if cnt<9 then cnt:=cnt+1; else cnt:=0; x:=not x; end if; end if; q<=x; end

6、process; end fen_arc; 電路模塊如圖所示:圖2-1-1分頻模塊仿真波形如圖:圖2-1-2 分頻模塊仿真波形2.計數(shù)器模塊這個模塊主要是記錄待測信號經(jīng)過了多少的波峰,將其轉(zhuǎn)換成數(shù)量。然后給鎖存器鎖存。源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity count_ck22 isport(clr,sig,door:in std_logic; alm:out std_logic; q3,q2,q1,q0,dang:out std_logic_vector(3 do

7、wnto 0);end;architecture count22_arc of count_ck22 isbeginprocess(door,sig)variable c3,c2,c1,c0:std_logic_vector(3 downto 0);variable x:std_logic;begin if sig'event and sig='1' then if clr='0' then alm<='0' c3:="0000" c2:="0000" c1:="0000"

8、 c0:="0000" elsif door='0' then c3:="0000" c2:="0000" c1:="0000" c0:="0000" elsif door='1' then if c0<"1001" thenc0:=c0+1; else c0:="0000" if c1<"1001" then c1:=c1+1; else c1:="0000" if c2

9、<"1001" then c2:=c2+1; else c2:="0000" if c3<"1001" then c3:=c3+1; else c3:="0000" alm<='1' end if; end if; end if; end if; end if; if c3/="0000" then q3<=c3; q2<=c2; q1<=c1; q0<=c0; dang<="0100" elsif c2/=&q

10、uot;0000" then q3<="0000" q2<=c2; q1<=c1; q0<=c0; dang<="0011" elsif c1/="0000" then q3<="0000" q2<="0000" q1<=c1; q0<=c0; dang<="0010" else q3<="0000" q2<="0000" q1<="000

11、0" q0<=c0; dang<="0001"end if;end if;end process;end count22_arc;模塊如圖所示:圖2-2-1計數(shù)器模塊仿真波形如圖:圖2-1-2計數(shù)器模塊仿真波形3.鎖存器模塊此模塊主要是鎖存來自于計數(shù)器的數(shù)據(jù)然后傳送給編碼器。library ieee;use ieee.std_logic_1164.all;entity lock_ck22 isport(l:in std_logic; a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0); q4,q3,q2,q1,

12、q0:out std_logic_vector(3 downto 0);end;architecture lock22_arc of lock_ck22 isbegin process(l) variable t4,t3,t2,t1,t0:std_logic_vector(3 downto 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

13、process;end lock22_arc;模塊如圖所示:圖2-3-1鎖存器模塊仿真波形圖如下:圖2-3-2鎖存器模塊仿真波形4.編碼器模塊 從前面的鎖存器模塊接受由計數(shù)器記錄的數(shù)據(jù)并且編碼,并且接受片選模塊來的信號,根據(jù)來自片選模塊的信號選擇鎖存器中的數(shù)據(jù)編碼,然后給后面的顯示譯碼器。library ieee;use ieee.std_logic_1164.all;entity bm_ck22 isport(sel:in std_logic_vector(2 downto 0);a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0);q:out s

14、td_logic_vector(3 downto 0);end;architecture bm_ck22_arc of bm_ck22 isbeginprocess(sel)begincase sel iswhen "000"=>q<=a0;when "001"=>q<=a1;when "010"=>q<=a2;when "011"=>q<=a3;when "111"=>q<=dang;when others=>q<=&qu

15、ot;1111"end case;end process;end ;電路圖如圖所示:圖2-4-1編碼器模塊仿真波形圖如下:圖2-4-2編碼器模塊仿真波形5.片選模塊通過時鐘信號clk產(chǎn)生片選信號,此信號主要是給后面的模塊選擇數(shù)碼管的位置,輸出顯示信號。源程序:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ph_ck22 is port(clk:in std_logic; q:out std_logic_vector(2 downto 0);end;architectur

16、e ph_ck22_arc of ph_ck22 is begin process(clk) variable cnt:std_logic_vector(2 downto 0); begin if clk'event and clk='1' then cnt:=cnt+1; end if; q<=cnt;end process;end;電路圖如圖所示:圖2-5-1片選模塊仿真波形如圖:圖2-5-2片選模塊仿真波形6.顯示模塊此模塊主要是接受上個模塊的編碼信號,然后通過顯示譯碼給數(shù)碼管。源程序:library ieee;use ieee.std_logic_1164

17、.all; entity display_ck22 isport(d:in std_logic_vector(3 downto 0);q:out std_logic_vector(6 downto 0);end;architecture display_ck22_arc of display_ck22 isbeginprocess(d)begincase d iswhen "0000"=>q<="0111111"when "0001"=>q<="0000110"when "0010

18、"=>q<="1011011"when "0011"=>q<="1001111"when "0100"=>q<="1100110"when "0101"=>q<="1101101"when "0110"=>q<="1111101"when "0111"=>q<="0100101"when &quo

19、t;1000"=>q<="1111111"when "1001"=>q<="1101111"when others=>q<="0000000"end case;end process;end;電路圖如圖所示:圖2-6-1顯示模塊仿真波形如圖:圖2-6-2顯示模塊仿真波形7.片選信號模塊片選信號模塊的作用就是接受片選模塊信號,選擇數(shù)碼管。源程序:library ieee;use ieee.std_logic_1164.all;entity phs_ck22 isport(

20、d:in std_logic_vector(2 downto 0);q:out std_logic_vector(7 downto 0);end;architecture phs_ck22_arc of phs_ck22 isbeginprocess(d)begincase d iswhen "000"=>q<="00000001"when "001"=>q<="00000010"when "010"=>q<="00000100"when

21、"011"=>q<="00001000"when "100"=>q<="00010000"when "101"=>q<="00100000"when "110"=>q<="01000000"when "111"=>q<="10000000"when others=>q<="00000000"end case

22、;end process;end;電路圖如圖所示:圖2-7-1片選信號模塊仿真波形圖:圖2-7-2片選信號模塊仿真波形三、頂層文件設(shè)計用元件例化語句寫一個頂層文件library ieee;use ieee.std_logic_1164.all;entity ck22 is port(sig,clr,clk,door:in std_logic; alm:out std_logic; q:out std_logic_vector(6 downto 0); se:out std_logic_vector(7 downto 0);end ck22;architecture art of ck22 is

23、component count_ck22 port(clr,sig,door:in std_logic; alm:out std_logic; q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0);end component;component fen_ck22 port(clk:in std_logic; q:out std_logic);end component;component lock_ck22 port(l:in std_logic; a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0); q4

24、,q3,q2,q1,q0:out std_logic_vector(3 downto 0);end component;component ph_ck22 port(clk:in std_logic; q:out std_logic_vector(2 downto 0);end component;component bm_ck22 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 downto 0);end co

25、mponent;component display_ck22 port(d:in std_logic_vector(3 downto 0); q:out std_logic_vector(6 downto 0);end component;component phs_ck22 port(d:in std_logic_vector(2 downto 0); q:out std_logic_vector(7 downto 0);end component;signal t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t12:std_logic_vector(3 downto 0);s

26、ignal t11:std_logic;signal t20:std_logic_vector(2 downto 0);beginu1:count_ck22 port map (clr=>clr,sig=>sig,door=>door,alm=>alm,q3=>t1,q2=>t2,q1=>t3,q0=>t4,dang=>t5);u2: fen_ck22 port map (clk=>clk,q=>t11);u3:lock_ck22 port map (l=>t11,a4=>t1,a3=>t2,a2=>t3

27、,a1=>t4,a0=>t5,q4=>t6,q3=>t7,q2=>t8,q1=>t9,q0=>t10);u4: ph_ck22 port map (clk=>clk,q=>t20);u5: bm_ck22 port map (sel=>t20,a3=>t6,a2=>t7,a1=>t8,a0=>t9,dang=>t10,q=>t12);u6: display_ck22 port map (d=>t12,q=>q);u7: phs_ck22 port map (d=>t20,q=>se);end architecture art;通過元件例化語句生成的元件圖3-1總體仿真波形圖:圖3-2總體仿真波形圖四.總體電路圖圖4-1總體電路圖五.設(shè)計調(diào)試 1.軟件調(diào)試與硬件調(diào)試 1.1軟件調(diào)試 仿真時,打開軟件Quartus II,建立工程文件,然后新建7個VHDL文件。保存后,編譯,無誤后及可以仿真了。 仿真時最好每個模塊單獨分開仿真,這樣不容易出錯??梢杂媚J的end time。對時鐘頻率clk不宜過小,最好不要小于1ns否則可能出錯,導(dǎo)致無仿真圖。 1.2硬件調(diào)試1、連接線路:選擇主菜單“Assignments”中的“

溫馨提示

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

評論

0/150

提交評論