2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  EDA課程設(shè)計報告</b></p><p>  設(shè)計題目:交通信號控制器的VHDL設(shè)計</p><p>  班 級:09通信工程一班</p><p><b>  學(xué) 號: </b></p><p><b>  姓 名: </b>&

2、lt;/p><p><b>  指導(dǎo)老師: </b></p><p>  日 期:2012.3.9</p><p>  交通信號控制器的VHDL設(shè)計</p><p>  1、設(shè)計任務(wù)及要求:</p><p>  設(shè)計任務(wù):模擬十字路口交通信號燈的工作過程,利用實驗板上的兩組紅、黃、綠LED作為交

3、通信號燈,設(shè)計一個交通信號燈控制器。要求:</p><p>  交通燈從綠變紅時,有4秒黃燈亮的間隔時間;</p><p>  交通燈紅變綠是直接進行的,沒有間隔時間;</p><p>  主干道上的綠燈時間為40秒,支干道的綠燈時間為20秒;</p><p>  在任意時間,顯示每個狀態(tài)到該狀態(tài)結(jié)束所需的時間。</p><

4、;p><b>  支干道</b></p><p><b>  主干道</b></p><p>  圖1 路口交通管理示意圖</p><p>  表1 交通信號燈的4種狀態(tài)</p><p><b>  設(shè)計要求:</b></p><p>  采用VH

5、DL語言編寫程序,并在QUARTUSII工具平臺中進行仿真,下載到EDA實驗箱進行驗證。</p><p>  編寫設(shè)計報告,要求包括方案選擇、程序清單、調(diào)試過程、測試結(jié)果及心得體會。</p><p>  設(shè)計時間和地點:兩個星期,信息樓4樓EDA實驗室。</p><p><b>  2、參考設(shè)計方案</b></p><p&g

6、t;<b>  時間顯示數(shù)據(jù)輸出</b></p><p><b>  紅黃綠燈信號輸出</b></p><p>  圖2 交通信號燈控制器的原理框圖</p><p>  3、采用VHDL語言輸入的方式實現(xiàn)交通信號燈控制器</p><p><b>  CLK</b></p&

7、gt;<p><b>  時間顯示數(shù)據(jù)輸出</b></p><p><b>  信號燈輸出</b></p><p>  圖3 交通信號燈控制器程序原理框圖</p><p>  該程序由7個進程組成,進程P1和P2將CLK信號分頻后產(chǎn)生1秒信號,進程P3、P4、P5構(gòu)成兩個帶有預(yù)置數(shù)功能的十進制計數(shù)器,其中P4

8、產(chǎn)生允許十位計數(shù)器計數(shù)的控制信號。進程P6實現(xiàn)狀態(tài)轉(zhuǎn)換和產(chǎn)生狀態(tài)轉(zhuǎn)換的控制信號,進程P7產(chǎn)生次態(tài)信號和信號燈輸出信號,以及每一個狀態(tài)的時間值。</p><p>  原功能(40+20)實現(xiàn)的程序代碼 </p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>

9、;  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY traffic IS </p><p>  PORT (clk:in std_logic;</p><p>  led7s1:out std_logic_vector(6 downto 0)控制第一個七段數(shù)碼管;</p><p>  le

10、d7s2:out std_logic_vector(6 downto 0);控制第二個七段數(shù)碼管</p><p>  comb_out:out std_logic_vector(5 downto 0));控制交通燈的兩與滅</p><p><b>  END;</b></p><p>  ARCHITECTURE one OF traffic

11、IS</p><p>  TYPE dm IS (s0,s1,s2,s3);</p><p>  SIgnal current_state,next_state:dm;</p><p>  SIGNAL FULL : STD_LOGIC;</p><p>  SIGNAL tl :STD_LOGIC_VECTOR(6 DOWNTO 0);秒

12、表低位共7位代表十進制0到9</p><p>  SIGNAL th:STD_LOGIC_VECTOR(1 DOWNTO 0);秒表高位最高數(shù)是3 故2位即可</p><p>  SIGNAL tm :STD_LOGIC_VECTOR(6 DOWNTO 0);</p><p>  SIGNAL TIME :STD_LOGIC_VECTOR(6 DOWNTO

13、 0);內(nèi)部計時器</p><p><b>  BEGIN</b></p><p>  P_REG: PROCESS(CLK)</p><p>  VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p><b>  BEGIN</b></p>

14、;<p>  IF CLK'EVENT AND CLK='1' THEN</p><p>  IF CNT8 = "11111111" THEN 利用方波的頻率設(shè)計秒表的走時</p><p>  CNT8:="01111111";</p><p>  FULL<='1&#

15、39;;</p><p>  ELSE CNT8 := CNT8+1;</p><p>  FULL <= '0';</p><p>  END IF; END IF;</p><p>  END PROCESS P_REG;</p><p>  PROCESS(full)</p&g

16、t;<p><b>  BEGIN</b></p><p>  IF full'EVENT AND full='1' THEN</p><p>  IF TIME<"1000011" THEN 設(shè)定內(nèi)置秒表最大計時這里是40+20+4+4-1=67=1000011</p><p&

17、gt;  TIME<=TIME+1;</p><p>  ELSe TIME <="0000000"; </p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p&

18、gt;<p>  REG:process( full,current_state)</p><p><b>  BEGIN</b></p><p>  IF full='1' AND full'EVENT THEN </p><p>  current_state<=next_state;</p

19、><p><b>  END IF;</b></p><p>  END process;</p><p>  COM:process(current_state, time)</p><p><b>  begin</b></p><p>  case current_stat

20、e is 設(shè)定狀態(tài)轉(zhuǎn)換時間 共S0,S1,S2,S3,S4 5個狀態(tài)</p><p>  when s0=>comb_out<="001100";tm<=39-time;</p><p>  if time=39 then next_state<=s1;</p><p>  else next_state<=s

21、0;</p><p><b>  end if;</b></p><p>  when s1=>comb_out<="010100";tm<=43-time;</p><p>  if time=43 then next_state<=s2;</p><p>  else n

22、ext_state<=s1;</p><p><b>  end if;</b></p><p>  when s2=>comb_out<="100010";tm<=63-time;</p><p>  if time=63 then next_state<=s3;</p>&l

23、t;p>  else next_state<=s2;</p><p><b>  end if;</b></p><p>  when s3=>comb_out<="100001";tm<=67-time;</p><p>  if time=67 then next_state<=s0

24、;</p><p>  else next_state<=s3;</p><p><b>  end if;</b></p><p><b>  end case;</b></p><p>  end process;</p><p>  PROCESS(tm)<

25、/p><p><b>  BEGIN </b></p><p>  IF tm>=30 THEN th<="11";tl<=tm-30;</p><p>  ELSIF tm>=20 THEN th<="10";tl<=tm-20;</p><p>

26、  ELSIF tm>=10 THEN th<="01";tl<=tm-10;</p><p>  ELSE th<="00";tl<=tm;</p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p

27、>  process(th,tl)由秒表高低位控制七段數(shù)碼管顯示時間</p><p><b>  begin</b></p><p>  case th is</p><p>  when"00"=>led7s1<="0111111";</p><p>  whe

28、n"01"=>led7s1<="0000110";</p><p>  when"10"=>led7s1<="1011011";</p><p>  when"11"=>led7s1<="1001111";</p><

29、;p>  when others=>null;</p><p><b>  end case;</b></p><p>  case tl is </p><p>  when "0000000"=>led7s2<="0111111";</p><p>  

30、when"0000001"=>led7s2<="0000110";</p><p>  when "0000010"=>led7s2<="1011011";</p><p>  when"0000011"=>led7s2<="1001111&qu

31、ot;;</p><p>  when"0000100"=>led7s2<="1100110";</p><p>  when "0000101"=>led7s2<="1101101";</p><p>  when "0000110"=>

32、;led7s2<="1111101";</p><p>  when"0000111"=>led7s2<="0000111";</p><p>  when "0001000"=>led7s2<="1111111";</p><p>  

33、when "0001001"=>led7s2<="1101111";</p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  end process;</p><p><b>

34、  end;</b></p><p>  老師布置功能(56+36)代碼</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  E

35、NTITY traffic IS </p><p>  PORT (clk:in std_logic;</p><p>  led7s1:out std_logic_vector(6 downto 0);</p><p>  led7s2:out std_logic_vector(6 downto 0);</p><p>  comb_out

36、:out std_logic_vector(5 downto 0));</p><p><b>  END;</b></p><p>  ARCHITECTURE one OF traffic IS</p><p>  TYPE dm IS (s0,s1,s2,s3);</p><p>  SIgnal current_

37、state,next_state:dm;</p><p>  SIGNAL FULL : STD_LOGIC;</p><p>  SIGNAL tl :STD_LOGIC_VECTOR(6 DOWNTO 0);</p><p>  SIGNAL th:STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p>  SIG

38、NAL tm :STD_LOGIC_VECTOR(6 DOWNTO 0);</p><p>  SIGNAL TIME :STD_LOGIC_VECTOR(6 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  P_REG: PROCESS(CLK)</p><p>  VA

39、RIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  IF CLK'EVENT AND CLK='1' THEN</p><p>  IF CNT8 = "11111111" THEN</p>

40、<p>  CNT8:="01111111";</p><p>  FULL<='1';</p><p>  ELSE CNT8 := CNT8+1;</p><p>  FULL <= '0';</p><p>  END IF; END IF;</

41、p><p>  END PROCESS P_REG;</p><p>  PROCESS(full)</p><p><b>  BEGIN</b></p><p>  IF full'EVENT AND full='1' THEN</p><p>  IF TIME<&

42、quot;1100011" THEN </p><p>  TIME<=TIME+1;</p><p>  ELSe TIME <="0000000"; </p><p><b>  END IF;</b></p><p><b>  END IF;</b>

43、</p><p>  END PROCESS;</p><p>  REG:process( full,current_state)</p><p><b>  BEGIN</b></p><p>  IF full='1' AND full'EVENT THEN </p><

44、p>  current_state<=next_state;</p><p><b>  END IF;</b></p><p>  END process;</p><p>  COM:process(current_state, time)</p><p><b>  begin</b&g

45、t;</p><p>  case current_state is</p><p>  when s0=>comb_out<="001100";tm<=55-time;</p><p>  if time=55 then next_state<=s1;</p><p>  else next_

46、state<=s0;</p><p><b>  end if;</b></p><p>  when s1=>comb_out<="010100";tm<=59-time;</p><p>  if time=59 then next_state<=s2;</p><p&

47、gt;  else next_state<=s1;</p><p><b>  end if;</b></p><p>  when s2=>comb_out<="100010";tm<=95-time;</p><p>  if time=95 then next_state<=s3;<

48、;/p><p>  else next_state<=s2;</p><p><b>  end if;</b></p><p>  when s3=>comb_out<="100001";tm<=99-time;</p><p>  if time=99 then next_s

49、tate<=s0;</p><p>  else next_state<=s3;</p><p><b>  end if;</b></p><p><b>  end case;</b></p><p>  end process;</p><p>  PROC

50、ESS(tm)</p><p><b>  BEGIN </b></p><p>  IF tm>=50 THEN th<="101";tl<=tm-50;</p><p>  ELSIF tm>=40 THEN th<="100";tl<=tm-40;</p&g

51、t;<p>  ELSIF tm>=30 THEN th<="011";tl<=tm-30;</p><p>  ELSIF tm>=20 THEN th<="010";tl<=tm-20;</p><p>  ELSIF tm>=10 THEN th<="001";t

52、l<=tm-10;</p><p>  ELSE th<="000";tl<=tm;</p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  process(th,tl)</p><p><

53、b>  begin</b></p><p>  case th is</p><p>  when"000"=>led7s1<="0111111";</p><p>  when"001"=>led7s1<="0000110";</p>

54、;<p>  when"010"=>led7s1<="1011011";</p><p>  when"011"=>led7s1<="1001111";</p><p>  when"100"=>led7s1<="1100110&q

55、uot;;</p><p>  when"101"=>led7s1<="1101101";</p><p>  when others=>null;</p><p><b>  end case;</b></p><p>  case tl is </p&g

56、t;<p>  when "0000000"=>led7s2<="0111111";</p><p>  when"0000001"=>led7s2<="0000110";</p><p>  when "0000010"=>led7s2<=

57、"1011011";</p><p>  when"0000011"=>led7s2<="1001111";</p><p>  when"0000100"=>led7s2<="1100110";</p><p>  when "00

58、00101"=>led7s2<="1101101";</p><p>  when "0000110"=>led7s2<="1111101";</p><p>  when"0000111"=>led7s2<="0000111";</p&g

59、t;<p>  when "0001000"=>led7s2<="1111111";</p><p>  when "0001001"=>led7s2<="1101111";</p><p>  when others=>null;</p><p&

60、gt;<b>  end case;</b></p><p>  end process;</p><p><b>  end;</b></p><p><b>  仿真波形圖: </b></p><p><b>  引腳設(shè)置</b></p>

61、<p>  程序?qū)嵤┻^程及原理解析</p><p>  本程序首先通過秒脈沖發(fā)生電路將從信號發(fā)生器產(chǎn)生的CLK脈沖轉(zhuǎn)換為full信號,且full信號每秒鐘產(chǎn)生一個脈沖信號,再通過內(nèi)部計時電路產(chǎn)生tm,tl,th三個信號,其中tm位內(nèi)部計時器,tl,th分別為輸出到外部倒計時表的低高位,然后就是紅綠燈狀態(tài)轉(zhuǎn)換模塊,在程序的最開始設(shè)置一個二進制位矢響亮comb-out來控制紅綠燈的狀態(tài),再通過要求的參數(shù)設(shè)

62、計來設(shè)置各燈的亮與滅,這樣紅綠燈的基本功能就實現(xiàn)了,最后再在程序后面添加一個時間顯示電路,來控制倒計時秒表,通過tl和th的參量即可設(shè)置好七段數(shù)碼管顯示電路</p><p><b> ?。?lt;/b></p><p><b>  心得感想:</b></p><p>  這次EDA的程序設(shè)計由于放在學(xué)期的第二周,是一進學(xué)校就要著

63、手準(zhǔn)備得,但由于剛進學(xué)校各種事務(wù)導(dǎo)致對這次的課程設(shè)計的疏忽,是很不應(yīng)該的,一開始聽安排只要寫一段程序,便以為很簡單,沒有引起重視,看了題目之后便覺得有點慌神,因為上學(xué)期的EDA課程并沒有要求編寫理解這么面向應(yīng)用的程序,最多七段數(shù)碼管和計時器。便在網(wǎng)上找出了一段程序也沒有過于鉆研程序,在驗收的時候還算順利,老師只要求改幾個參數(shù),于是便看了一遍程序,感覺也不是很難,但在今天寫課程設(shè)計報告的時候變仔細(xì)的看了幾遍程序,發(fā)現(xiàn)程序的結(jié)構(gòu)其實很簡單,

64、不是所謂的什么面向?qū)ο蟮某绦蚓帉懼皇菍⑽覀兤綍r練習(xí)和實驗的的程序模塊的一個小小結(jié)合便可以設(shè)計出一個不同功能不同內(nèi)容的電路的VHDL程序 ,在程序下載運行方面也與平時做的實驗大同小異,所以總結(jié)了一下自己,發(fā)現(xiàn)自己雖然在理論上沒有太大問題,但當(dāng)實踐的時候便遇到了問題,自己在看到一個課題是先是去找程序,再去理解程序。這樣的思路并不正確,應(yīng)該要自己先思考方法,在自己對照現(xiàn)有的資料自己去完成設(shè)計,所以自己的實踐能力還是遠(yuǎn)遠(yuǎn)的不足,不管是在EDA課

溫馨提示

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

評論

0/150

提交評論