EDA設(shè)計專周
熟悉Quartus||的使用方法和步驟,熟悉FPGA硬件的調(diào)試方法。
實現(xiàn)十字路口的雙向交通燈控制
2.1 系統(tǒng)功能設(shè)計要求
東西南北各設(shè)有一個紅、黃、綠指示燈;一個2位7段數(shù)碼管
東西方向:綠燈37秒-黃燈3秒-紅燈20秒。
南北方向:綠燈17秒-黃燈3秒-紅燈40秒。
當(dāng)前信號燈狀態(tài)顯示
當(dāng)前信號燈剩余時間計數(shù)和動態(tài)顯示
2.2 數(shù)碼管顯示
用兩組數(shù)碼管,以倒計時方式顯示兩個方向允許通行或禁止通行的剩余時間。
2.3 計數(shù)
能實現(xiàn)正常的倒計時顯示功能。能實現(xiàn)總體清理功能,計數(shù)器有初始狀態(tài)
開始計數(shù),對應(yīng)狀態(tài)的指示燈亮。
三、設(shè)計原理
3.1 交通燈控制器的狀態(tài)轉(zhuǎn)換
根據(jù)論文題目要求,將紅綠燈的狀態(tài)轉(zhuǎn)換列成如
3.2 電路符號
Clk為系統(tǒng)時鐘信號輸入端。r1 為東西方向紅燈信號輸出端,y1為東西方向黃燈信號輸出端,g1為東西方向綠燈信號輸出端。r2為南北方向紅燈信號輸出端,y2為南北方向黃燈信號輸出端,g2為南北方向綠燈信號輸出端。Digit1為十位數(shù)七段碼,digit2為個位數(shù)七段碼。
3.3 顯示模塊
顯示模塊由兩部分組成,一是由七段數(shù)碼管組成的倒計時顯示器,每個方向兩個七段數(shù)碼管;二是由發(fā)光二極管代替的交通燈,每個方向3個發(fā)光二極管。
四、使用軟件:Quartus
4.1 Quartus簡介
Quartus II 是Altera公司的綜合性PLD/FPGA開發(fā)軟件,原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完Quartus II可以在Windows、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運行速度快,界面成從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程。
Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計流程的各個階段使用熟悉的第三方EDA工具。此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開發(fā)平臺。
Maxplus II 作為Altera的上一代PLD設(shè)計軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設(shè)計輔助工具,集成了SOPC和HardCopy設(shè)計流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。
Altera Quartus II 作為一種可編程邏輯的設(shè)計環(huán)境, 由于其強大的設(shè)計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計者的歡迎。
5.1 準(zhǔn)備工作:創(chuàng)建Quartus II項目
菜單“File/New Project Wizard”,
逐步設(shè)置:工作目錄、項目名和實體名;是否添加設(shè)計文件;選擇器件;是否使用第三方eda工具
注意:項目名、實體名、文件名要相同!
5.2 設(shè)計輸入:采用HDL輸入方式
新建文件(菜單File/New...)選擇VHDL文件類型(VHDL File),擴展名*.vhd
輸入VHDL設(shè)計的代碼
采用文本編輯法,即采用VHDL語言描述交通控制器,代碼如下:
5.3 編譯、綜合
在Processing菜單選擇Start Compilation 項(或者紫色的編譯按鈕),則自動進行編譯,并且軟件左側(cè)出現(xiàn)Status狀態(tài)窗口,給出編譯步驟和執(zhí)行進度。
若設(shè)計無錯誤,則給出編譯報告和其他處理步驟的報告。
若有錯誤,則根據(jù)錯誤提示修改設(shè)計文件,重新編譯。
6.1 進行仿真:功能仿真
新建“激勵信號”的波形文件: (菜單File/New...)選擇波形文件類型(Wector Waveform File),擴展名*.vwf,打開波形編輯窗口
6.2 設(shè)置節(jié)點
選擇要仿真的節(jié)點:在“Name”列空白處,右鍵菜單,如上圖所示。選擇菜單“Insert Node or Bus...”,在對話框選擇“Nodes Finder”按鈕
根據(jù)過濾條件,列出節(jié)點名稱:List選擇節(jié)點OK
根據(jù)需要編輯輸入端口“激勵信號”的波形
注意:保存波形文件,默認(rèn)文件名即可。
6.3 設(shè)置End Time
七、仿真波形
7.1功能仿真
在 Processing 菜單內(nèi)選擇Simulator Tool 項,可以實現(xiàn)更多的仿真功能(功能仿真、時序仿真;指定仿真時間長度,其他可選項等)。
如果仿真沒有錯誤,則完成后自動打開仿真結(jié)果的波形窗口(仿真報告窗口)。
八、實驗總結(jié)和心得
短短一個星期的EDA課程設(shè)計很快就結(jié)束了,這次設(shè)計使我對EDA的認(rèn)識提高了一個層次,現(xiàn)在我能夠熟練的使用Quartus2,能夠用VHDL語言編寫簡單的、實用的小程序。這次EDA課程設(shè)計重點學(xué)習(xí)了交通燈程序的編寫、調(diào)試。在整個課程設(shè)計的過程中,我查閱了大量關(guān)于交通燈設(shè)計的資料。
在設(shè)計的過程還應(yīng)該多聯(lián)系下實際情況,要了解實際情況下交通信號燈的工作情況,才能更好的完成此次的課程設(shè)計。在今后的工作學(xué)習(xí)中,我們不能僅僅把目光停留在課本上,而要更多的把理論聯(lián)系到實際。
- library ieee;
- use ieee.std_logic_1164.all;
- use ieee.std_logic_unsigned.all;
- entity traffic is
- port(clk:in std_logic;
- r1,r2,y1,y2,g1,g2:out std_logic;
- cou:out integer range 0 to 37;
- digit1,digit2:out std_logic_vector(6 downto 0));
- end traffic;
- architecture behavior of traffic is
- constant timemax:integer:=37;
- signal coun:integer range 0 to timemax;
- constant timeRG:integer:=17;
- constant timeRY:integer:=3;
- constant timeGR:integer:=37;
- constant timeYR:integer:=3;
- type state is (RG,RY,GR,YR);
- signal pr_state,nx_state :state;
- signal time:integer range 0 to timemax;
- signal temp1:integer range 0 to 10;
- signal temp2:integer range 0 to 10;
- begin
- process(clk)
- variable count:integer range 0 to timemax;
- begin
- if(clk'event and clk='1')then
- count:=count+1;
- if (count=time)then
- pr_state<=nx_state;
- count:=0;
- end if;
- end if;
- coun<=count;
- cou<=coun;
- end process;
- process(pr_state)
- begin
- case pr_state is
- when RG=>
- r1<='1';r2<='0';y1<='0';y2<='0';g1<='0';g2<='1';
- nx_state<=RY;
- time <=timeRG;
- when RY=>
- r1<='1';r2<='0';y1<='0';y2<='1';g1<='0';g2<='0';
- nx_state<=GR;
- time <=timeRY;
- when GR=>
- r1<='0';r2<='1';y1<='0';y2<='0';g1<='1';g2<='0';
- nx_state<=YR;
- time <=timeGR;
- when YR=>
- r1<='0';r2<='1';y1<='1';y2<='0';g1<='0';g2<='0';
- nx_state<=RG;
- time <=timeYR;
- end case;
- end process;
- process(coun)
- begin
- temp1<=coun/10;
- temp2<=coun mod 10;
- case temp1 is
- when 0=>digit1<="1111110";
- when 1=>digit1<="0110000";
- when 2=>digit1<="1101101";
- when 3=>digit1<="1111001";
- when 4=>digit1<="0110011";
- when 5=>digit1<="1011011";
- when 6=>digit1<="1011111";
- when 7=>digit1<="1110000";
- when 8=>digit1<="1111111";
- when 9=>digit1<="1111011";
- when others=>null;
- end case;
- case temp2 is
- when 0=>digit2<="1111110";
- when 1=>digit2<="0110000";
- when 2=>digit2<="1101101";
- when 3=>digit2<="1111001";
- when 4=>digit2<="0110011";
- when 5=>digit2<="1011011";
- when 6=>digit2<="1011111";
- when 7=>digit2<="1110000";
- when 8=>digit2<="1111111";
- when 9=>digit2<="1111011";
- when others=>null;
- end case;
- end process;
- end behavior;
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
新建 Microsoft Office Word 2007 文檔.docx
(390.63 KB, 下載次數(shù): 85)
2018-4-22 21:00 上傳
點擊文件名下載附件
EDA設(shè)計-交通燈控制
下載積分: 黑幣 -5
作者: 啥都有 時間: 2018-4-22 21:06
有詳細(xì)的Quartus操作步驟
作者: zzzz55 時間: 2019-12-6 10:40
如果只有一個數(shù)碼管要怎么做
作者: 滔滔tl 時間: 2021-5-18 01:23
啥都有 發(fā)表于 2018-4-22 21:06
有詳細(xì)的Quartus操作步驟
樓主 還能看quartues的步驟嗎
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |