EDA課程設(shè)計計步器_第1頁
EDA課程設(shè)計計步器_第2頁
EDA課程設(shè)計計步器_第3頁
EDA課程設(shè)計計步器_第4頁
EDA課程設(shè)計計步器_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息科學(xué)與技術(shù)學(xué)院EDA技術(shù)使用教程課程設(shè)計報告題目名稱: 計步器設(shè)計 學(xué)生姓名: 盧 霞 學(xué) 號: 2012508179 專業(yè)年級: 電信2012級 2班 指導(dǎo)教師: 張銳敏老師 時 間: 2015年1月3日 目錄三、設(shè)計內(nèi)容33.1系統(tǒng)分析33.2方案設(shè)計43.3電路模塊選擇4檢測上升沿模塊5計數(shù)模塊6掃描輸出模塊7輸入輸出信號模塊9四、程序設(shè)計9五、仿真結(jié)果145.1仿真截圖145.2結(jié)果分析15六、遇到的問題15七、設(shè)計心得16八、參考文獻(xiàn)18計步器的設(shè)置一、 設(shè)計背景從我國的電子計步器市場發(fā)展來看,近幾年隨著行業(yè)需求市場的進(jìn)一步增長,電子計步器呈現(xiàn)良好的發(fā)展態(tài)勢。而隨著人民生活水平的

2、逐步提高,大家更加注重身體健康,鍛煉在日常生活中顯得尤為重要,而計步器就成為了大家比較青睞的鍛煉伙伴。此次交計步器的設(shè)計采用基于Verilog HDL語言和FPGA的方法來實現(xiàn)所要求的功能?;贔PGA的計步器設(shè)計方法具有設(shè)計的靈活性,易于修改,設(shè)計周期短等縱多優(yōu)點。隨著設(shè)計語言、電子設(shè)計自動化和FPGA期間的不斷發(fā)展,基于FPGA期間的不斷完善和發(fā)展。在不遠(yuǎn)的將來。由FPGA設(shè)計的產(chǎn)品將越來越普遍。二、 設(shè)計要求通過對設(shè)計的模塊劃分,以及各模塊功能的定義,以FPGA為核心器件,用VHDL設(shè)計手段制作、用硬件描述性語言編寫程序?qū)崿F(xiàn)設(shè)計中各個模塊的基本功能,完成其功能仿真和編譯并生成底層模塊,在

3、Quartus中完成頂層設(shè)計并編譯通過,完成設(shè)計下載并調(diào)試電路。1)系統(tǒng)時鐘1MHz;2)擁有計步、暫停、清零(復(fù)位)功能;3)輸入端每進(jìn)入一個計步脈沖(可能存在抖動),步數(shù)計數(shù)+1,計步結(jié)果以十進(jìn)制數(shù)顯示在數(shù)碼管上;4)點下暫停鍵,計數(shù)停止,并有信號控制指示燈閃爍,閃爍周期1s;再次點擊暫停鍵,繼續(xù)計數(shù),指示燈停止閃爍;5)點下清零鍵,計數(shù)歸零;6)要求能夠?qū)τ嫴矫}沖和按鍵的抖動進(jìn)行正確處理,2ms以內(nèi)的變化忽略不計;7)持續(xù)10s無計數(shù)脈沖后,自動轉(zhuǎn)入暫停狀態(tài),計數(shù)停止,并有信號控制指示燈閃爍,閃爍周期1s;再次點擊暫停鍵,繼續(xù)計數(shù),指示燈停止閃爍;三、 設(shè)計內(nèi)容3.1系統(tǒng)分析本實驗設(shè)計完

4、成一個電路來檢測目標(biāo)運動的次數(shù),并在數(shù)碼管上顯示。用傳感器檢測抖動信號,采集到的信號經(jīng)過放大器放大 ,將信號轉(zhuǎn)變成方波,編程將信號在 FPGA 方式處理,并將結(jié)果送數(shù)碼管顯示。3.2方案設(shè)計 根據(jù)設(shè)計要求和系統(tǒng)所具有功能,并參考相關(guān)的文獻(xiàn)資料經(jīng)行方案設(shè)計畫出如下所示的計步器系統(tǒng)框圖,及為設(shè)計的總體方案,框圖如下圖所示3.3電路模塊選擇本設(shè)計因為各個模塊功能簡單,故直接用內(nèi)部信號線連接起來形成一個整體,但是各模塊功能簡單介紹如下:3.3.1檢測上升沿模塊DIN為實際檢測到的抖動信號,通過和D觸發(fā)器的配合形成計數(shù)模塊的使能端信號控制計數(shù)器的計數(shù)過程。library ieee;use ieee.st

5、d_logic_1164.all;use ieee.std_logic_UNSIGNED.all;entity jibuqi isport (din : in std_logic;clk : in std_logic;reset: in std_logic;light:out std_logic_vector(7 downto 0);en_out:out std_logic_vector(7 downto 0);end jibuqi;part1:process(clk,reset)-D 觸發(fā)器beginif (reset='0') thenb1<='0'e

6、lsif (clk'event and clk='1') thenb1<=din;end if;end process ;3.3.2計數(shù)模塊當(dāng)使能信號EN為1時,通過檢測上升沿信號實現(xiàn)計數(shù),并將計數(shù)信息保存在b5,b6變量內(nèi),b5為計數(shù)個位值,b6為計數(shù)十位值。part3: process(clk,reset,b4)- 計數(shù)器模塊beginif (reset='0') thenb5<=(others=>'0') ;b6<=(others=>'0');elsif (clk'event a

7、nd clk='1') thenif (b4='1') thenif (b5<"1001")then b5<=b5+'1'elsif (b5>"1000") then b5<=(others=>'0');if (b6<"1001")then b6<=b6+'1'elsif (b6>"1000")then b6<=(others=>'0');end if;end

8、if;elsif (b4='0') thenb5<=b5;b6<=b6;end if;end if;end process;3.3.3掃描輸出模塊掃描輸出模塊主要由分頻器構(gòu)成,通過計數(shù)器構(gòu)成的分頻器控制電平翻轉(zhuǎn)控制位的選擇,以此確定輸出十位和個位。part4:process(clk,reset)- 掃描輸出模塊,控制使能輸出beginif (reset='0') thenb8<=(others=>'0');elsif (clk'event and clk='1') thenb8<=b8+

9、9;1'end if;end if;end if;if (b9='1') then en_out<="11111101"elsif (b9='0') then en_out<="11111110"end if;end process ;part5:process(b9,b5,b6)- 掃描輸出模塊,控制 LED 管beginif (b9='0') then plays<=b5;elsif (b9='1') then plays<=b6;end if;case

10、plays iswhen"0000"=>light<="11000000"when"0001"=>light<="11111001"when"0010"=>light<="10100100"when"0011"=>light<="10110000"when"0100"=>light<="10011001"when"0101&qu

11、ot;=>light<="10010010"when"0110"=>light<="10000010"when"0111"=>light<="11111000"when"1000"=>light<="10000000"when"1001"=>light<="10010000"when others=>light<="11111111&q

12、uot;end case;end process ;end Behavioral;3.3.4輸入輸出信號模塊din,clk,Reset為輸入信號,din為抖動信號,即人體運動時的計步信號,clk為時鐘脈沖信號為計數(shù)器提供時鐘脈沖,Reset為復(fù)位信號,實現(xiàn)計步器復(fù)位(清零)。En,dout(light)為輸出信號,En_out為選擇顯示十位還是個位,dout為計數(shù)值,并編碼顯示在數(shù)碼管上。四、 程序設(shè)計一個完整的VHDL語言程序通常包括實體(Entity)、結(jié)構(gòu)體、配置、包集合(Package)和庫(Library)5個部分組成。下面為此次課程設(shè)計的源代碼。library ieee;use i

13、eee.std_logic_1164.all;use ieee.std_logic_UNSIGNED.all;entity jibuqi isport (din : in std_logic;clk : in std_logic;reset: in std_logic;light:out std_logic_vector(7 downto 0);en_out:out std_logic_vector(7 downto 0);end jibuqi;architecture Behavioral of jibuqi issignal b1,b4,b9:std_logic;- 中間變量signal

14、b8:std_logic_vector(15 downto 0);- 分頻signal b5,b6:std_logic_vector(3 downto 0);- 計數(shù)輸出個位與十位signal plays:std_logic_vector(3 downto 0);- 選擇十位或個位beginpart1:process(clk,reset)-D 觸發(fā)器beginif (reset='0') thenb1<='0'elsif (clk'event and clk='1') thenb1<=din;end if;end proces

15、s ;part2: process(b1,din)- 比較器與門后輸出beginif ( b1='0' and din='1' ) then b4<='1' ;else b4<='0'end if;end process;part3: process(clk,reset,b4)- 計數(shù)器模塊beginif (reset='0') thenb5<=(others=>'0') ;b6<=(others=>'0');elsif (clk'even

16、t and clk='1') thenif (b4='1') thenif (b5<"1001")then b5<=b5+'1'elsif (b5>"1000") then b5<=(others=>'0');if (b6<"1001")then b6<=b6+'1'elsif (b6>"1000")then b6<=(others=>'0');end if;e

17、nd if;elsif (b4='0') thenb5<=b5;b6<=b6;end if;end if;end process;part4:process(clk,reset)- 掃描輸出模塊,控制使能輸出beginif (reset='0') thenb8<=(others=>'0');elsif (clk'event and clk='1') thenb8<=b8+'1'end if;end if;end if;if (b9='1') then en_ou

18、t<="11111101"elsif (b9='0') then en_out<="11111110"end if;end process ;part5:process(b9,b5,b6)- 掃描輸出模塊,控制 LED 管beginif (b9='0') then plays<=b5;elsif (b9='1') then plays<=b6;end if;case plays iswhen"0000"=>light<="11000000&q

19、uot;when"0001"=>light<="11111001"when"0010"=>light<="10100100"when"0011"=>light<="10110000"when"0100"=>light<="10011001"when"0101"=>light<="10010010"when"0110"=

20、>light<="10000010"when"0111"=>light<="11111000"when"1000"=>light<="10000000"when"1001"=>light<="10010000"when others=>light<="11111111"end case;end process ;end Behavioral;五、 仿真結(jié)果5.1仿真截圖 利用u

21、artusII軟件對本程序進(jìn)行編譯,生成了可以進(jìn)行仿真定時分析以及下載到可編程器件的相關(guān)文件。仿真結(jié)果如圖所示設(shè)置好的vwf仿真激勵波形文件圖仿真輸出波形報告5.2結(jié)果分析通過設(shè)定Clk值以及din和Reset的初值,就可以得到如上所示的仿真波形圖。由仿真波形圖可以看出波形是由din初值信號觸發(fā)而顯示出各個狀態(tài)的。Reset高電平信號輸入時,對應(yīng)en_out選定位選顯示對應(yīng)計數(shù)值。六、 遇到的問題1、 問題首先出現(xiàn)在Quartus軟件的應(yīng)用上,一開始把文件名取名為漢字名“計步器”,出現(xiàn)錯誤,后來知道,文件必須保存在英文文件夾下。2、 一開始沒有注意到程序文件保存時要保存成實體名,VHD的形式,

22、在編譯時出錯。3、 在寫程序的時候會輸錯部分關(guān)鍵字或漏掉一些小的標(biāo)點之類的,導(dǎo)致編譯不通過,需要經(jīng)過反復(fù)查找,所以,覺得在輸入程序時就應(yīng)注意細(xì)節(jié),提高一次正確率,避免一些不必要的小錯誤的發(fā)生,起到事半功倍的效果。4、 在編譯過程中一定要按照步驟,細(xì)心仔細(xì)的完成每一個選項,在這個部分很容易出錯。如果選項錯誤,那么在時序仿真是會出錯。七、 設(shè)計心得通過本次EDA課程設(shè)計,由于我們?nèi)D書館查閱了很多書籍,因此獲得了很多知識,同時也發(fā)現(xiàn)了自己的很多不足,由于課程設(shè)計的時間緊迫,有些瑕疵和漏洞還沒有進(jìn)一步完善。但是通過這幾天的學(xué)習(xí),我還是發(fā)現(xiàn)了很多知識上的漏洞,同時也看到了自己的動手能力還是比較缺乏、獨立思考的意識還不強、理論聯(lián)系實際的能力還急需提高。正是這次課程設(shè)計讓我

溫馨提示

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

評論

0/150

提交評論