eda課程設計報告--籃球競賽30秒倒計時器_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  EDA 課程設計報告</p><p>  學 院 信息工程學院 </p><p>  專業(yè)班級 電子信息工程2班 </p><p>  學 號 </p><p>  學生姓名 </p><p>  指

2、導教師 </p><p>  完成日期 2017年9月28日 </p><p>  課 程 設 計 任 務 書</p><p><b>  目 錄</b></p><p><b>  1.系統(tǒng)設計5</b></p><p&

3、gt;  1.1 系統(tǒng)方案設計5</p><p>  1.2 系統(tǒng)RTL圖設計6</p><p>  1.3 代碼編寫與調試7</p><p>  2. 系統(tǒng)仿真與測試8</p><p>  2.1 系統(tǒng)時序仿真與分析8</p><p>  2.2硬件下載與測試9</p><p> 

4、 3. 收獲與體會10</p><p>  4. 參考文獻11</p><p><b>  5. 附錄12</b></p><p><b>  附錄1:代碼12</b></p><p>  附錄2:硬件測試結果圖14</p><p>  附錄3:問題回答記錄表16

5、</p><p>  籃球競賽30秒倒計時器</p><p><b>  摘 要:</b></p><p>  計時器在人類生活中有著非常重要而廣泛的應用,古時候人們就開始用沙漏和水漏做定時工具,隨著科技和社會的發(fā)展,人們開始用全新的方法來改造計時器以達到準確計時的目的。 籃球競賽計時器就是一種典型的計時器的應用。在籃球比賽中規(guī)定球友

6、持球的時間不能超過30秒,否則就是犯規(guī)。本課程設計的“籃球競賽30秒計時器”,可用于籃球比賽中,用于對球員持球時間進行30秒限制,一旦球員持球的時間超過了30秒,它將自動報警從而判定刺球員的犯規(guī)。 本文設計用的是實現以中小規(guī)模集成電路設計計時器的方法,它是一種典型的數字電路,其中包括了組合邏輯電路和時序電路。它是由秒脈沖產生電路、計數電路、譯碼顯示電路、控制電路及報警電路組成。通過QUARTUS II設計并進行仿真,同時在試驗箱

7、上連接制作了硬件實現電路。</p><p><b>  關鍵詞:</b></p><p><b>  30秒計時器;</b></p><p><b>  1.系統(tǒng)設計</b></p><p>  1.1 系統(tǒng)方案設計</p><p>  圖1-1 30

8、秒計時器系統(tǒng)原理框圖</p><p>  該系統(tǒng)包括秒脈沖發(fā)生器、計數器、譯碼顯示電路、輔助時序控制電路(簡稱控制電路)和報警電路等5個部分構成。其中,計數器和控制電路是系統(tǒng)的主要部分。計數器完成30s計時功能,而控制電路具有直接控制計數器的啟動計數、暫停/連續(xù)計數、譯碼顯示電路的顯示和滅燈功能。為了滿足系統(tǒng)的設計要求,在設計控制電路時,應正確處理各個信號之間的時序關系。在操作直接清零開關時,要求計數器清零,數碼

9、顯示器滅燈。當啟動開關閉合時,控制電路應封鎖時鐘信號CP,同時計數器完成置數功能,譯碼顯示電路顯示30s字樣;當啟動開關斷開時,計數器開始計數;當暫停/連續(xù)開關撥在暫停位置上時,計數器停止計數,處于保持狀態(tài);當暫停/連續(xù)開關撥在連續(xù)時,計數器繼續(xù)遞減計數。另外,外部操作開關都應采取去抖動措施,以防止機械抖動造成電路工作不穩(wěn)定。</p><p>  在經濟方面,因為結構簡單,便于減少CPU的占用時間,減少能耗,從而

10、降低用電成本,同時能節(jié)省操作人員的操作時間,提高了效率,也避免了勞動力的浪費。 </p><p>  1.2 系統(tǒng)RTL圖設計</p><p><b>  圖 1-2</b></p><p><b>   </b></p><p><b>  表1-1 引腳適配</b><

11、;/p><p>  1.3 代碼編寫與調試</p><p>  在設計初,由于實驗箱有時鐘輸出,因此編程時沒有考慮對時鐘的編寫,重點放在了對控制電路的實現,控制電路是這次課程設計的核心,要充分理解題目的要求,搞清楚各個功能的嵌套及與時鐘的關系。最后是譯碼顯示電路,其目的就是將計數的結果完整的顯示在數碼管上,代碼可以參考課本,屬于比較簡單的內容。</p><p>  將所

12、有程序編寫完畢后,進行編譯調試,由于混淆了功能的嵌套關系,雖然編譯可以通過,但是從波形仿真不能得到有效的邏輯關系。從新調整過后,基本實現了其功能。</p><p>  為了使系統(tǒng)功能更完整,在最終編程階段加入了秒脈沖發(fā)生器的代碼,經過簡單的調整后,可以完美的實現系統(tǒng)功能。 </p><p>  2. 系統(tǒng)仿真與測試</p><p> 

13、 2.1 系統(tǒng)時序仿真與分析</p><p>  時序仿真前首先要對代碼進行編譯運行,沒有錯誤之后才可以建立vector waveform file文件,建立文件之后加入引腳,設置合適的終止時間(在此次設計中我設置的終止時間為3.5ms),設置各個輸入引腳的波形并仿真即可得到對應的仿真波形圖。</p><p><b>  圖 1-2</b></p>&l

14、t;p>  如圖,clk為高頻時鐘輸入信號,由于頻率過高所以在波形圖上顯示的為黑線,但可以通過編寫的分頻計程序將其分頻;clk_out為系統(tǒng)內部的時鐘總線,其相對于clk顯得頻率就小了很多,其為實現各個控制功能提供時序;CLR為清零控制端,與時鐘信號無關,因此為異步清零,當期為‘1’時,可以看到計數器被清零;PLD為置數端,上升沿觸發(fā),因此為同步置數,當其為高電平時,計數器顯示‘30’;ENB為使能端,高電平有效,當其為‘1’時,

15、系統(tǒng)開始工作;WARN為警示輸出端,當計數滿了之后,輸出高電平;S0和S1為計數輸出,為四位向量,通過譯碼可以轉換為數字在數碼管上顯示,在波形圖上也可以看到從‘30’到‘00’的倒計時的過程。</p><p>  在第一次仿真時,由于沒有注意clk_out的電平持續(xù)時間,在設置PLD的高電平時間過小,完全嵌套在clk_out的高電平中,無法實現有效觸發(fā)。第二次仿真時更正了PLD的持續(xù)時間,得到了如圖正確的波形仿真

16、。</p><p>  2.2硬件下載與測試</p><p><b>  硬件下載:</b></p><p>  將編程電纜插入計算機的并行接口上同時將編程電纜的另一端接在試驗箱上。</p><p>  按照引腳編號鏈接線路。 </p><p>  將程序下載進試驗箱。</p>&

17、lt;p><b>  下載完成。</b></p><p><b>  硬件測試:</b></p><p>  將清零端置高電平,觀察數碼管顯示狀態(tài)。若顯示正常,則將清零端置低電平。</p><p>  將置數端置高電平,觀察數碼管顯示狀態(tài)。若顯示正常,則將置數端置低電平。</p><p> 

18、 打開使能端,觀察其是否正常計數,若計數正常,關閉使能端,觀察其是否可以暫停計數。</p><p>  待計數完畢后,觀察警示led是否正常發(fā)光。</p><p><b>  測試完畢。</b></p><p><b>  3. 收獲與體會</b></p><p>  本次課程設計是將模擬電子技術基

19、礎和數字電子技術基礎以及電工電子技術的內容相結合,在此次設計的過程中發(fā)現了自己對理論知識認識的不足還有在動手操作方面還欠缺鍛煉,因此我在此次課程設計的時候加深對老師所教的內容進一步復習,并且在上機練習的時候我就更加加強了對實踐的重視。通過這次課程設計我還知道了在學習這條道路上我們不斷要加強學習,還要有堅持不懈的學習精神。要將理論知識與實踐相結合,要用理論指導實踐,用實踐來驗證理論,讓我們學于所用。 </p><p&

20、gt;  此外,這次課程設計讓我對學習的態(tài)度有了進一步的改變,事在人為,想做好一件事就要踏踏實實,兢兢業(yè)業(yè),心無旁騖。唯有這般,才能事半功倍,學有所成。</p><p>  最后,還要感謝吳亞聯老師的悉心指導,指導我順利完成課設。</p><p><b>  4. 參考文獻</b></p><p>  [1] 潘松,黃繼業(yè).EDA技術實用教程

21、[ M ].北京:科學出版社, 2002. </p><p>  [2] 楊君,王景存.基于VerilogHDL的流水線的設計方法及應用[J].武漢科技大學學報(自然科學版) ,2002,25(4): 394—396. </p><p>  [3] 郝國法,黃睿,郝琳,等.FPGA在設計中的應用[J]

22、.武漢科技大學學報(自然科學版),2001,24(2):178—180. </p><p>  [4] 王景存,李炳生,郝國法,等.用FPGA實現數字邏輯分析儀設計[J].武漢科技大學學報(自然科學版),2001,24(1):298—300. </p><p>  [5] 胡華春,石玉.數字鎖相環(huán)原理與應用[M].上海科學技術出版社,1990.<

23、;/p><p><b>  5. 附錄</b></p><p><b>  附錄1:代碼</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC

24、_UNSIGNED.ALL;</p><p>  ENTITY bsk30 IS</p><p><b>  PORT</b></p><p>  (clk,CLR: INSTD_LOGIC;</p><p>  PLD,ENB : INSTD_LOGIC; -------PLD表示復位信號&

25、lt;/p><p>  WARN: OUT STD_LOGIC;</p><p>  clk_out : out std_logic ;</p><p>  S1,S0 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));------------譯碼輸出,S1為十位S0為個位</p><p>  END bsk30;&

26、lt;/p><p>  --------------------------------------------------------------------------------------------</p><p>  ARCHITECTURE A OF bsk30 IS</p><p>  signal cnt : std_logic_vector(3 do

27、wnto 0);</p><p>  signal clk1: STD_LOGIC; </p><p><b>  BEGIN</b></p><p>  PRO1: process(clk) </p><p><b>  begin</b></p><p>  if clk

28、'EVENT AND clk='1' THEN</p><p>  if cnt = "1111" then</p><p>  cnt <= "0000";</p><p>  clk1 <= not clk1;</p><p><b>  else &l

29、t;/b></p><p>  cnt <= cnt + "1";</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  clk_out <= clk1;</p><p&g

30、t;  end process;</p><p>  PRO2:PROCESS (clk1,CLR,ENB)</p><p>  VARIABLE TMPA: STD_LOGIC_VECTOR (3 DOWNTO 0);</p><p>  VARIABLE TMPB: STD_LOGIC_VECTOR (3 DOWNTO 0);</p><p

31、>  VARIABLE TMPWARN: STD_LOGIC;</p><p><b>  BEGIN</b></p><p>  IF CLR='1' THEN TMPA:="0000";TMPB:="0000";TMPWARN:='0';</p><p>  EL

32、SIF clk1'EVENT AND clk1 ='1' THEN</p><p>  IF PLD='1' THEN</p><p>  TMPB:="0011";TMPA:="0000";TMPWARN:='0';-------------------------------賦初值</

33、p><p>  ELSIF ENB='1' THEN</p><p>  IF TMPA="0000" THEN </p><p>  IF TMPB/="0000" THEN</p><p>  TMPA:="1001";</p><p&g

34、t;  TMPB:=TMPB-1;</p><p><b>  ELSE</b></p><p>  TMPWARN:='1';</p><p><b>  END IF;</b></p><p>  ELSE TMPA:=TMPA-1;</p><p>&l

35、t;b>  END IF;</b></p><p><b>  END IF; </b></p><p><b>  END IF;</b></p><p>  S0<=TMPA;S1<=TMPB;WARN<=TMPWARN;</p><p>  END PROC

36、ESS; -----------------------------------------PROT2顯示部分</p><p>  PROCESS(S1)</p><p><b>  BEGIN</b></p><p>  CASE S1 IS -------------------------------

37、-------十位顯示部分</p><p>  WHEN "0000" => S1 <="0111111";--顯示0</p><p>  WHEN "0001" => S1 <="0000110";--顯示1</p><p>  WHEN "0010&

38、quot; => S1 <="1011011";--顯示2</p><p>  WHEN "0011" => S1 <="1001111";--顯示3</p><p>  WHEN "0100" => S1<="1100110";--顯示4</p&g

39、t;<p>  WHEN "0101" => S1 <="1101101";--顯示5</p><p>  WHEN "0110" => S1 <="1111101";--顯示6</p><p>  WHEN "0111" => S1 <=&

40、quot;0000111";--顯示7</p><p>  WHEN "1000" => S1 <="1111111";--顯示8</p><p>  WHEN "1001" => S1 <="1101111";--顯示9</p><p>  WHEN

41、OTHERS =>S1<="0000000";</p><p>  END CASE ;</p><p>  END PROCESS; </p><p>  PROCESS(S0)</p><p><b>  BEGIN</b></p><p>  CASE S0

42、 IS --------------------------個位顯示部分</p><p>  WHEN "0000" => S0 <="0111111";--顯示0</p><p>  WHEN "0001" => S0 <="0000110";-

43、-顯示1</p><p>  WHEN "0010" => S0 <="1011011";--顯示2</p><p>  WHEN "0011" => S0 <="1001111";--顯示3</p><p>  WHEN "0100" =&g

44、t; S0<="1100110";--顯示4</p><p>  WHEN "0101" => S0 <="1101101";--顯示5</p><p>  WHEN "0110" => S0 <="1111101";--顯示6</p><p

45、>  WHEN "0111" => S0 <="0000111";--顯示7</p><p>  WHEN "1000" => S0 <="1111111";--顯示8</p><p>  WHEN "1001" => S0 <="1101

46、111";--顯示9</p><p>  WHEN OTHERS =>S0<="0000000";</p><p>  END CASE ;</p><p>  END PROCESS;</p><p><b>  END A; </b></p><p>

47、  附錄2:硬件測試結果圖</p><p>  附圖1 清零工作狀態(tài)</p><p>  附圖2 置數工作狀態(tài)</p><p>  附圖3 正常倒計時狀態(tài)</p><p>  附圖4 倒計時結束警示狀態(tài)</p><p>  附錄3:問題回答記錄表</p><p>  學號: xx 姓名:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論