找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8848|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

Quartus EDA交通燈控制系統(tǒng)的FPGA調(diào)試與設(shè)計(jì)報告

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:314026 發(fā)表于 2018-4-22 21:03 | 只看該作者 回帖獎勵 |正序?yàn)g覽 |閱讀模式
前言
從最早的手牽皮帶到20世紀(jì)50年代的電氣控制,從采用計(jì)算機(jī)控制到現(xiàn)代化的電子定時監(jiān)控,交通信號燈在科學(xué)化、自動化上不斷地更新、發(fā)展和完善。
交通指揮燈是非裔美國人加萊特?摩根在1923年發(fā)明的。此前,鐵路交通已經(jīng)使用自動轉(zhuǎn)換的燈光信號有一段時間了。但是由于火車是按固定的時刻表以單列方式運(yùn)行的,而且火車要停下來不是很容易,因此鐵路上使用的信號只有一種命令:通行。公路交通的紅綠燈則不一樣,它的職責(zé)在很大程度上是要告訴汽車司機(jī)把車輛停下來。新式的紅綠燈能將闖紅燈的人拍照下來。犯事的司機(jī)不久就會收到罰款單。有的紅綠燈還具備監(jiān)測車輛行駛速度的功能。
目前城市交通控制研究的新發(fā)展主要體現(xiàn)在城市交通網(wǎng)絡(luò)的各個方面:
   區(qū)域交通信號燈和城市快速公路匝道口的新的控制方法上;實(shí)現(xiàn)區(qū)域和快速公路的集成控制;采用動態(tài)路由導(dǎo)航與交通網(wǎng)絡(luò)控制結(jié)合:以實(shí)現(xiàn)先進(jìn)車輛控制系統(tǒng)AvcS為主的智能交通系統(tǒng)(ITS);以實(shí)現(xiàn)先進(jìn)交通管理系統(tǒng)ATMS和先進(jìn)駕駛員信息系統(tǒng)ATIS為主的城市多智能體交通控制系統(tǒng);以及一些輔助的交通策略如道路自動計(jì)費(fèi)、公共交通優(yōu)先等。
   可以說,在近百年的發(fā)展中,道路交通信號控制系統(tǒng)經(jīng)歷了無感應(yīng)控制到有感應(yīng)控制、手動控制到自動控制再到智能控制、單點(diǎn)控制(點(diǎn)控)到干線控制(線控)再到區(qū)域控制和網(wǎng)絡(luò)控制(面控)的過程。
目錄

前言              1

一、實(shí)驗(yàn)?zāi)康?/strong>              3

二、題目:交通燈控制器              3

2.1 系統(tǒng)功能設(shè)計(jì)要求              3

2.2  數(shù)碼管顯示              3

2.3  計(jì)數(shù)              3

三、設(shè)計(jì)原理              3

3.1 交通燈控制器的狀態(tài)轉(zhuǎn)換              4

3.2電路符號              4

3.3 顯示模塊              4

四、使用軟件Quartus              4

4.1 Quartus簡介              5

五、設(shè)計(jì)方法              5

5.1 準(zhǔn)備工作              5

5.2  設(shè)計(jì)輸入              6

5.3  編譯、綜合              9

六、仿真準(zhǔn)備              10

6.1 進(jìn)行仿真               10

6.2設(shè)置節(jié)點(diǎn)               10

6.3 設(shè)置End Time               10

七、仿真波形              11

7.1 功能仿真               11

、實(shí)驗(yàn)總結(jié)和心得              12


EDA設(shè)計(jì)專周
  • 實(shí)習(xí)目的
熟悉Quartus||的使用方法和步驟,熟悉FPGA硬件的調(diào)試方法。
  • 題目:交通燈控制器
實(shí)現(xiàn)十字路口的雙向交通燈控制
2.1  系統(tǒng)功能設(shè)計(jì)要求
東西南北各設(shè)有一個紅、黃、綠指示燈;一個2位7段數(shù)碼管
東西方向:綠燈37秒-黃燈3秒-紅燈20秒。
南北方向:綠燈17秒-黃燈3秒-紅燈40秒。
當(dāng)前信號燈狀態(tài)顯示
當(dāng)前信號燈剩余時間計(jì)數(shù)和動態(tài)顯示
2.2  數(shù)碼管顯示
用兩組數(shù)碼管,以倒計(jì)時方式顯示兩個方向允許通行或禁止通行的剩余時間。
2.3 計(jì)數(shù)
能實(shí)現(xiàn)正常的倒計(jì)時顯示功能。能實(shí)現(xiàn)總體清理功能,計(jì)數(shù)器有初始狀態(tài)
開始計(jì)數(shù),對應(yīng)狀態(tài)的指示燈亮。
三、設(shè)計(jì)原理
3.1 交通燈控制器的狀態(tài)轉(zhuǎn)換
根據(jù)論文題目要求,將紅綠燈的狀態(tài)轉(zhuǎn)換列成如
工作狀態(tài)
南北方向
東西方向
S0
綠燈亮(17s)
紅燈亮(20s)
S1
黃燈亮(3s)
紅燈亮(20s)
S2
紅燈亮(40s)
綠燈亮(37s)
S3
紅燈亮(40s)
黃燈亮(3s)

3.2 電路符號
Clk為系統(tǒng)時鐘信號輸入端。r1 為東西方向紅燈信號輸出端,y1為東西方向黃燈信號輸出端,g1為東西方向綠燈信號輸出端。r2為南北方向紅燈信號輸出端,y2為南北方向黃燈信號輸出端,g2為南北方向綠燈信號輸出端。Digit1為十位數(shù)七段碼,digit2為個位數(shù)七段碼。
3.3 顯示模塊
     顯示模塊由兩部分組成,一是由七段數(shù)碼管組成的倒計(jì)時顯示器,每個方向兩個七段數(shù)碼管;二是由發(fā)光二極管代替的交通燈,每個方向3個發(fā)光二極管。
四、使用軟件:Quartus
4.1 Quartus簡介
Quartus II 是Altera公司的綜合性PLD/FPGA開發(fā)軟件,原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完Quartus II可以在Windows、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。
Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個階段使用熟悉的第三方EDA工具。此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺。
Maxplus II 作為Altera的上一代PLD設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設(shè)計(jì)輔助工具,集成了SOPC和HardCopy設(shè)計(jì)流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。
Altera Quartus II 作為一種可編程邏輯的設(shè)計(jì)環(huán)境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。
  • 設(shè)計(jì)方法
5.1   準(zhǔn)備工作:創(chuàng)建Quartus II項(xiàng)目
菜單“File/New Project Wizard”,
逐步設(shè)置:工作目錄、項(xiàng)目名和實(shí)體名;是否添加設(shè)計(jì)文件;選擇器件;是否使用第三方eda工具
注意:項(xiàng)目名、實(shí)體名、文件名要相同!
5.2   設(shè)計(jì)輸入:采用HDL輸入方式
新建文件(菜單File/New...)選擇VHDL文件類型(VHDL  File),擴(kuò)展名*.vhd
輸入VHDL設(shè)計(jì)的代碼
采用文本編輯法,即采用VHDL語言描述交通控制器,代碼如下:

5.3 編譯、綜合
在Processing菜單選擇Start Compilation 項(xiàng)(或者紫色的編譯按鈕),則自動進(jìn)行編譯,并且軟件左側(cè)出現(xiàn)Status狀態(tài)窗口,給出編譯步驟和執(zhí)行進(jìn)度。
若設(shè)計(jì)無錯誤,則給出編譯報告和其他處理步驟的報告。
若有錯誤,則根據(jù)錯誤提示修改設(shè)計(jì)文件,重新編譯。
  • 仿真準(zhǔn)備
6.1 進(jìn)行仿真:功能仿真
新建“激勵信號”的波形文件: (菜單File/New...)選擇波形文件類型(Wector Waveform File),擴(kuò)展名*.vwf,打開波形編輯窗口
6.2  設(shè)置節(jié)點(diǎn)
選擇要仿真的節(jié)點(diǎn):在“Name”列空白處,右鍵菜單,如上圖所示。選擇菜單“Insert Node or Bus...”,在對話框選擇“Nodes Finder”按鈕
根據(jù)過濾條件,列出節(jié)點(diǎn)名稱:List選擇節(jié)點(diǎn)OK
根據(jù)需要編輯輸入端口“激勵信號”的波形
注意:保存波形文件,默認(rèn)文件名即可。


6.3  設(shè)置End Time

、仿真波形
7.1功能仿真
在 Processing 菜單內(nèi)選擇Simulator Tool 項(xiàng),可以實(shí)現(xiàn)更多的仿真功能(功能仿真、時序仿真;指定仿真時間長度,其他可選項(xiàng)等)。
如果仿真沒有錯誤,則完成后自動打開仿真結(jié)果的波形窗口(仿真報告窗口)。


八、實(shí)驗(yàn)總結(jié)和心得
短短一個星期的EDA課程設(shè)計(jì)很快就結(jié)束了,這次設(shè)計(jì)使我對EDA的認(rèn)識提高了一個層次,現(xiàn)在我能夠熟練的使用Quartus2,能夠用VHDL語言編寫簡單的、實(shí)用的小程序。這次EDA課程設(shè)計(jì)重點(diǎn)學(xué)習(xí)了交通燈程序的編寫、調(diào)試。在整個課程設(shè)計(jì)的過程中,我查閱了大量關(guān)于交通燈設(shè)計(jì)的資料。
在設(shè)計(jì)的過程還應(yīng)該多聯(lián)系下實(shí)際情況,要了解實(shí)際情況下交通信號燈的工作情況,才能更好的完成此次的課程設(shè)計(jì)。在今后的工作學(xué)習(xí)中,我們不能僅僅把目光停留在課本上,而要更多的把理論聯(lián)系到實(shí)際。


  1. library ieee;

  2. use ieee.std_logic_1164.all;

  3. use ieee.std_logic_unsigned.all;

  4. entity traffic is

  5. port(clk:in std_logic;

  6.       r1,r2,y1,y2,g1,g2:out std_logic;

  7.       cou:out integer range 0 to 37;

  8.       digit1,digit2:out std_logic_vector(6 downto 0));

  9. end traffic;

  10. architecture behavior of traffic is

  11. constant timemax:integer:=37;

  12. signal coun:integer range 0 to timemax;

  13. constant timeRG:integer:=17;

  14. constant timeRY:integer:=3;

  15. constant timeGR:integer:=37;

  16. constant timeYR:integer:=3;

  17. type state is (RG,RY,GR,YR);

  18. signal pr_state,nx_state :state;

  19. signal time:integer range 0 to timemax;

  20. signal temp1:integer range 0 to 10;

  21. signal temp2:integer range 0 to 10;

  22. begin

  23.   process(clk)

  24.   variable count:integer range 0 to timemax;

  25.   begin

  26.   if(clk'event and clk='1')then

  27.   count:=count+1;

  28.   if (count=time)then

  29.   pr_state<=nx_state;

  30.   count:=0;

  31.   end if;

  32. end if;

  33. coun<=count;

  34. cou<=coun;

  35. end process;

  36. process(pr_state)

  37. begin

  38. case pr_state is

  39. when RG=>

  40. r1<='1';r2<='0';y1<='0';y2<='0';g1<='0';g2<='1';

  41. nx_state<=RY;

  42. time <=timeRG;

  43. when RY=>

  44. r1<='1';r2<='0';y1<='0';y2<='1';g1<='0';g2<='0';

  45. nx_state<=GR;

  46. time <=timeRY;

  47.   when GR=>

  48. r1<='0';r2<='1';y1<='0';y2<='0';g1<='1';g2<='0';

  49. nx_state<=YR;

  50. time <=timeGR;

  51. when YR=>

  52. r1<='0';r2<='1';y1<='1';y2<='0';g1<='0';g2<='0';

  53. nx_state<=RG;

  54. time <=timeYR;

  55. end case;

  56. end process;

  57. process(coun)

  58. begin

  59. temp1<=coun/10;

  60. temp2<=coun mod 10;

  61. case temp1 is

  62. when 0=>digit1<="1111110";

  63. when 1=>digit1<="0110000";

  64. when 2=>digit1<="1101101";

  65. when 3=>digit1<="1111001";

  66. when 4=>digit1<="0110011";

  67. when 5=>digit1<="1011011";

  68. when 6=>digit1<="1011111";

  69. when 7=>digit1<="1110000";

  70. when 8=>digit1<="1111111";

  71. when 9=>digit1<="1111011";

  72. when others=>null;

  73. end case;

  74. case temp2 is

  75. when 0=>digit2<="1111110";

  76. when 1=>digit2<="0110000";

  77. when 2=>digit2<="1101101";

  78. when 3=>digit2<="1111001";

  79. when 4=>digit2<="0110011";

  80. when 5=>digit2<="1011011";

  81. when 6=>digit2<="1011111";

  82. when 7=>digit2<="1110000";

  83. when 8=>digit2<="1111111";

  84. when 9=>digit2<="1111011";

  85. when others=>null;

  86. end case;

  87. end process;

  88. end behavior;
復(fù)制代碼


完整的Word格式文檔51黑下載地址:
新建 Microsoft Office Word 2007 文檔.docx (390.63 KB, 下載次數(shù): 85)


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

使用道具 舉報

地板
ID:888508 發(fā)表于 2021-5-18 01:23 來自手機(jī) | 只看該作者
啥都有 發(fā)表于 2018-4-22 21:06
有詳細(xì)的Quartus操作步驟

樓主 還能看quartues的步驟嗎
回復(fù)

使用道具 舉報

板凳
ID:657257 發(fā)表于 2019-12-6 10:40 | 只看該作者
啥都有 發(fā)表于 2018-4-22 21:06
有詳細(xì)的Quartus操作步驟

如果只有一個數(shù)碼管要怎么做
回復(fù)

使用道具 舉報

沙發(fā)
ID:314026 發(fā)表于 2018-4-22 21:06 | 只看該作者
有詳細(xì)的Quartus操作步驟
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表