久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9413|回復: 4
打印 上一主題 下一主題
收起左側

Quartus EDA交通燈控制電路的設計實訓報告與Verilog源碼

[復制鏈接]
跳轉到指定樓層
樓主


全部資料51hei下載地址:
設計資料.7z (1.31 MB, 下載次數: 151)



《EDA技術及應用》實訓報告

實訓題目:交通燈控制電路的設計
1 系統設計
1.1 設計要求
1.1.1 設計任務  
設計并制作一個交通燈電路,使它能符合實際交通道路控制的要求。
1.1.2 性能指標要求
① 用EDA實訓儀上的4只八段數碼管分別顯示道路東西和南北通行和禁止的倒計時時間。
② 能設置道路東西和南北兩側通行和禁止的倒計時時間,最大設置時間為99秒,最小設置時間為1秒。
③ 交通燈用紅、綠、黃三種發光二極管(LED)顯示控制的結果。
④ 紅、綠、黃燈顯示的次序應符合實際交通道路控制的要求。
1.2 設計思路及設計框圖
1.2.1設計思路
此方案需要設計一個分頻器和兩個計時模塊一個紅綠燈模塊,分頻器模塊用于將20MHz轉換為1Hz的時鐘,兩個計時器分別進行東西紅綠燈的倒計時。燈的模塊只需要設計一個模塊,將黃燈和紅綠燈分開,定義一個8位的reg型變量來控制紅綠兩色LED燈和一個4位reg型變量黃色LED燈,黃燈實現倒計時外,加上了閃爍的功能。
此外,為此方案加入了一個暫停模塊。
1.2.2總體設計框圖
fenpin:分頻模塊;
zt:暫停模塊;
jishi,jishib:倒計時模塊;
hld:紅綠燈模塊;
2 各個模塊程序的設計
  • 分頻模塊:

即fenpin 模塊。這個模塊是把EDA實訓儀主板提供的20MHZ的主頻經兩千萬分頻后,得到電路所需的1秒脈沖。其中clk是時鐘輸入端,clk_HZ是輸出端。
  • 暫停模塊

“zt”輸入端高電平時使計數暫停(clk_0與clk斷開),低電平時使計數繼續(clk_0與clk連接)。
  • 倒計時模塊


以“jihshi”模塊為例:clk是經過分頻器輸出的1HZ時鐘信號;lod是控制交通燈模式轉換的標志位;ma[7..0]輸入的是從qa[7..0]拿到的數值;qa[7..0]是輸出端既輸出給紅綠燈模塊和黃燈模塊,又將數值顯示在數碼管上。
  • 紅綠燈模塊

clk是分頻器輸出的時鐘信號; qa,qb是計時器輸出的時間信號,用于判斷并改變lod的狀態;ma,mb是從預先定義紅黃綠LED燈的時間中拿到的數值,再輸出給計時模塊;hld是顯示輸出端,接LED的紅綠兩種燈;hd 是顯示輸出端,接LED的黃燈。其中lod是控制交通燈模式轉換的標志位,qm表示紅綠燈的四種狀態。 flag是控制黃燈的三種狀態。
3  調試過程
在設計前根據要求做一個交通燈的這個設計流程圖,注意紅綠黃三種燈的變換。對各個小模塊的程序進行編寫和調試,各個小模塊程序調試完畢之后,接著就要從整個交通燈系統的一些細節進行修改。
東西和南北方向分別亮紅燈和綠燈,同時兩組的數碼管從開始設的26秒和30秒開始倒計時,等倒計時完東西組燈先從綠燈轉到黃燈,南北組從紅燈轉綠燈,但是在這模塊的時候設置的時間沒設好,黃燈亮了以后綠燈還沒滅,經過審查問題最終被解決了
對程序編譯成功后下載到EDA試驗箱,LED開始亮,開始自動倒計時,紅黃綠燈跳變。
4  功能測試
4.1 測試儀器與設備
電腦 :一臺
EDA實驗箱 :一臺
4.2 性能指標測試
1.東西南北的紅綠燈可以通過倒計時來禁止和發亮。
2.實現在1秒到99秒內可調。
3.能在數碼管上分別顯示兩個方向的交通燈倒計時,。
4.紅黃綠燈的變化基本符合實際交通燈。
5方向紅燈倒計時30s,綠燈26s,倒計時至0s,黃燈亮倒計時3,紅綠燈轉換黃燈閃爍。
4.3 誤差分析
本題目沒有誤差分析。
5  實訓心得體會
從一開始完全沒有頭緒到畫出設計流程圖,在接下來熟悉Verilog HDL,下載Quartus9.0并熟練操作。
通過本次實訓,使我對EDA這門課有了更深的了解,課堂上所學到的知識要融會貫通,要自己親手去操作、學習,而且盡可能多的去拓展知識,去揣摩我們學到的東西。遇到難題別慌張,確定預想結果及方案,分模塊解決,問題就會變得簡單。另外一個模塊做好最好先編譯一下,成功后再做接下來的。
通過這次EDA實訓,使我對EDA更加的充滿興趣,同時對QuartusⅡ這個軟件有了進一步的了解,我學會了如何設計一個交通燈控制電路并且成功驗收。在進行實訓的的過程中,不僅提高了我的編程能力,同時還讓我對交通燈控制系統也進一步認識并加深了學習。當然實訓當中,我遇到許多問題,通過上網查找資料,詢問老師同學后使問題得到了解決。在此,非常感謝老師和同學的幫助。我認真的學習了每一條程序的作用,在驗收的時候也能基本回答出老師問的每一個問題。我深刻的明白了知識在于一點一點的積累,這一次的實訓涉及了方方面面的知識,有分頻器,有減法計數器等等模塊的設計,可以說這是對我們能力的一次大檢驗。
所以,這讓我懂得了很多知識都是要平時積累的,知識積累得多了那我們學習的時候就會有更多的依據,會有更多新的想法。所以今后一定要積累更多的知識,為以后對各個科目的深入學習做鋪墊。同時也要懂得把學到的知識運用到實際當中去。
6  參考文獻
[1] 謝自美.電子線路設計·實驗·測試(第二版).武漢:華中科技大學出版社,2000.
[2] 江國強.EDA技術與應用(第五版).北京:電子工業出版社,2017.
[3] 潘松,黃繼業,潘明.EDA技術實用教程——VerilogHDL版(第五版).北京:科學出版社,2013.
[4] 閻石.數字電子技術基礎(第五版).北京:高等教育出版社,2006.


附錄1:仿真波形圖(部分模塊)


總模塊仿真(需要去掉分頻器):


②暫停模塊:

③計時模塊:

附錄2:程序清單
  1. ①分頻模塊:
  2. module fenpin(clk,clk_HZ);
  3. input clk;
  4. output reg clk_HZ;
  5. reg[24:0] counter;
  6. initial
  7. begin
  8.               clk_HZ=0;
  9.               counter=0;
  10. end
  11. always @(posedge clk)                                                         
  12. begin
  13.               if(counter==10000000-1)
  14.               begin
  15.               counter=0;
  16.               clk_HZ=~clk_HZ;            
  17.               end
  18.               else
  19.               counter = counter + 1;
  20. end
  21. endmodule

  22. ②暫停模塊:
  23. module zt(zt,clk_0,clk);
  24. input zt,clk_0;
  25. output reg clk;
  26. always @(posedge clk_0,negedge zt)
  27. begin
  28.               if(~zt)
  29.               clk=clk_0;
  30. end
  31. endmodule
  32. ③計時模塊(a):
  33. module jishi(clk,lod,ma,qa);
  34. input clk,lod;
  35. input[7:0] ma;
  36. output reg[7:0] qa;
  37. always @(posedge clk , posedge lod)
  38. begin
  39.               if(lod)
  40.                             begin
  41.                                           qa=ma;
  42.                             end
  43.               else
  44.                             begin
  45.                                           if(qa==0)
  46.                                                         qa='h99;
  47.                                           else
  48.                                                         qa=qa-1;
  49.                                           if(qa[3:0]>'ha)
  50.                                                         qa[3:0]=9;
  51.                             end
  52. end
  53. endmodule

  54. ④計時模塊(b):
  55. module jishib(clk,lod,mb,qb);
  56. input clk,lod;
  57. input[7:0] mb;
  58. output reg[7:0] qb;
  59. always @(posedge clk or posedge lod)
  60. begin
  61.               if(lod)
  62.                             begin
  63.                                           qb=mb;
  64.                             end
  65.               else
  66.                             begin
  67.                             if(qb==0)
  68.                                           qb='h99;
  69.                             else
  70.                                           qb=qb-1;
  71.                             if(qb[3:0]>'ha)
  72.                                           qb[3:0]=9;
  73.                             end
  74. end
  75. endmodule

  76. ⑤交通燈模塊:
  77. module hld(lod,clk,ma,mb,qa,qb,hld,hd);
  78. input[7:0] qa,qb;
  79. input   clk;
  80. output reg[7:0] ma,mb;
  81. output reg[7:0] hld;
  82. output reg[3:0] hd;
  83. output reg  lod;
  84. reg[1:0] flag;
  85. reg[1:0] qm;
  86. reg[7:0] timeg,timer,timey;
  87. initial
  88. begin
  89.               timer='h30;
  90.               timeg='h26;
  91.               timey='h03;
  92.               flag=0;
  93.               qm=0;
  94.               hd='b0000;
  95. end
  96. always @(posedge clk)
  97. begin
  98.               if(qa==0||qb==0)
  99.                             lod=1;
  100.               else lod=0;
  101. end
  102. //紅綠LED燈
  103. always @(posedge lod)
  104. begin
  105.               if(qm>3)              qm=0;
  106.               if(qm==0) begin
  107.                                                         ma=timer;mb=timeg;
  108.                                                         hld='b01100110;
  109.                                                         flag=2;
  110.                                             end
  111.               else if(qm==1) begin
  112.                                                         ma=timey;mb=timey;
  113.                                                         hld='b00100010;
  114.                                                         flag=0;
  115.                                                         end
  116.               else if(qm==2) begin
  117.                                                         ma=timeg;mb=timer;
  118.                                                         hld='b10011001;
  119.                                                         flag=2;
  120.                                                         end
  121.               else if (qm==3) begin
  122.                                                         ma=timey;mb=timey;
  123.                                                         hld='b10001000;
  124.                                                         flag=1;
  125.                                                         end
  126.               qm=qm+1;
  127. end
  128. //yellow
  129. always@(posedge clk)
  130. begin
  131.               if(flag==0)
  132.               begin
  133.                             if(qa=='h03&&qb=='h03)                                                        hd='b1010;
  134.                             if(qa=='h02&&qb=='h02)                                                        hd='b0000;
  135.                             if(qa=='h01&&qb=='h01)                                                        hd='b1010;
  136.                             if(qa=='h00&&qb=='h00)                                                        hd='b0000;            
  137.               end
  138.               if(flag==1)
  139.               begin
  140.                             if(qa=='h03&&qb=='h03)                                                        hd='b0101;
  141.                             if(qa=='h02&&qb=='h02)                                                        hd='b0000;
  142.                             if(qa=='h01&&qb=='h01)                                                        hd='b0101;
  143.                             if(qa=='h00&&qb=='h00)            
  144. hd='b0000;
  145.               end
  146. end
  147. endmodule
復制代碼

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:351538 發表于 2018-6-14 01:06 | 只看該作者
樓主,請問有聯系方式嗎,我在模仿你做這個仿真作業時波形出不來不知道咋回事,求請幫忙
回復

使用道具 舉報

板凳
ID:351538 發表于 2018-6-14 01:08 | 只看該作者
你好,請問可以給一個聯系方式嗎,我是杭州電子科技大學的學生,在模仿您的電路時,仿真波形出不來,請求幫助
回復

使用道具 舉報

地板
ID:351538 發表于 2018-6-14 01:10 | 只看該作者
你好,請問可以給一個聯系方式嗎,我是杭州電子科技大學的學生,在模仿您的電路時,仿真波形出不來,請求幫助
回復

使用道具 舉報

5#
ID:329016 發表于 2018-7-30 16:41 | 只看該作者
SJC123 發表于 2018-6-14 01:06
樓主,請問有聯系方式嗎,我在模仿你做這個仿真作業時波形出不來不知道咋回事,求請幫忙

不好意思 號剛找回來 ,如果你還需要問題 或者有其他問題 就回帖吧
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产乱码久久久久久牛牛 | 精品av| 国产一区二区三区网站 | 精品久久久久久国产 | 亚洲午夜在线 | 亚洲日韩视频 | 亚洲精品一区二区三区蜜桃久 | 亚洲国产一区二区三区在线观看 | 国产精品免费av | 欧美美女一区二区 | 久久伦理中文字幕 | 欧美6一10sex性hd | 亚洲国产成人精品久久 | 国产精品成人一区二区 | 日本中文字幕一区 | 免费av播放 | 一区二区三区在线免费观看视频 | 日韩在线h | 日本久久www成人免 成人久久久久 | 日韩欧美国产成人一区二区 | 美女在线观看av | 国产成人福利在线观看 | av黄色免费在线观看 | 在线小视频 | 亚洲一区二区精品视频在线观看 | 超碰8| 亚洲69p| 成人免费在线小视频 | 欧美a区 | 天堂久| 日韩高清一区 | 最新国产福利在线 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 啪啪精品| 一区二区在线观看免费视频 | 天天综合国产 | 黄色av一区| 久久久久亚洲精品 | a免费在线 | 精品久久影院 | 精品欧美一区二区在线观看视频 |