EDA实验报告
- 格式:wps
- 大小:231.00 KB
- 文档页数:13
EDA实验报告(交通灯)一、实验目的1、学习与日常生活相关且较复杂数字系统设计;2、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法;3、通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制二、主要仪器设备1、微机1台2、QuartusII集成开发软件1套3、EDA实验装置1套三、设计目标设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,四、设计过程1.总体电路原理图2.分频器设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FP50M ISPORT(CLK1:IN STD_LOGIC;--IN CLK CLK2:OUT STD_LOGIC--OUT CLK );END ENTITY;ARCHITECTURE TWO OF FP50M IS BEGINPROCESS(CLK1)VARIABLE TEMP :INTEGER RANGE0TO24999999;VARIABLE CLKTP :STD_LOGIC;BEGINIF CLK1'EVENT AND CLK1='1' THENIF TEMP=24999999THENCLKTP:=NOT CLKTP;TEMP:=0;ELSE TEMP:=TEMP+1;END IF;END IF;CLK2<=CLKTP;END PROCESS;END TWO;分频器设计如上,每当TEMP为24999999时,电平翻转,实现将50MHz的信号分为1Hz信号;在时序仿真的时候,选择修改参数,实现10分频,波形图如下:3.交通灯设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY light ISPORT(CLK,EN:IN STD_LOGIC;REDX,YELLOWX,GREENX:OUT STD_LOGIC;--X light 东西红黄绿三色灯REDY,YELLOWY,GREENY:OUT STD_LOGIC;--Y light 南北红黄绿三色灯XGW,XSW,YGW,YSW:OUT STD_LOGIC_VECTOR(6DOWNTO0)–数码管控制);END light;ARCHITECTURE ONE OF light ISBEGINPROCESS(CLK,EN)VARIABLE XG,XS,YG,YS:INTEGER RANGE0TO9;--ge wei shi weiVARIABLE COUNT,TEMPX,TEMPY:INTEGER RANGE0TO 150;BEGINIF(EN='1')THEN--Enable紧急制动REDX <= '1';GREENX <= '0'; YELLOWX <= '0';REDY <= '1';GREENY <= '0'; YELLOWY <= '0';ELSIF(CLK'EVENT AND CLK = '1')THENCOUNT:=COUNT+1;IF(COUNT=150)THEN--150sCOUNT:=0;END IF;IF(COUNT<75)THEN--X direction REDX<='1';YELLOWX<='0';GREENX<='0';TEMPX:=75-COUNT;--REDELSIF(COUNT >74AND COUNT <80)THENYELLOWX<='1';REDX<='0';GREENX<='0';TEMPX:=80-COUNT;--YELLLOWELSEGREENX<='1';YELLOWX<='0';REDX<='0';TEMPX:=150-COUNT;--GREENEND IF;IF(COUNT<70)THEN--Y DIRECTION GREENY<='1';REDY<='0';YELLOWY<='0';TEMPY:=70-COUNT;--GREENELSIF(COUNT>69AND COUNT<75)THENYELLOWY<='1';REDY<='0';GREENY<='0';TEMPY:=75-COUNT;--YELLOWELSEREDY<='1';YELLOWY<='0';GREENY<='0';TEMPY:=150-COUNT;--REDEND IF;END IF;IF(EN='1' AND CLK = '1')THEN XGW <="1111111";XSW <="1111111";YGW <="1111111";YSW <="1111111";ELSEXG:=TEMPX MOD10;YG:=TEMPY MOD10;XS:=TEMPX /10;YS:=TEMPY /10;CASE XG ISWHEN0=> XGW <=not"0111111";WHEN1=> XGW <=not"0000110";WHEN2=> XGW <=not"1011011";WHEN3=> XGW <=not"1001111";WHEN4=> XGW <=not"1100110";WHEN5=> XGW <=not"1101101";WHEN7=> XGW <=not"0000111"; WHEN8=> XGW <=not"1111111"; WHEN9=> XGW <=not"1101111"; WHEN OTHERS=>NULL;END CASE;CASE XS ISWHEN0=> XSW <=not"0111111"; WHEN1=> XSW <=not"0000110"; WHEN2=> XSW <=not"1011011"; WHEN3=> XSW <=not"1001111"; WHEN4=> XSW <=not"1100110"; WHEN5=> XSW <=not"1101101"; WHEN6=> XSW <=not"1111101"; WHEN7=> XSW <=not"0000111"; WHEN8=> XSW <=not"1111111"; WHEN9=> XSW <=not"1101111"; WHEN OTHERS=>NULL;END CASE;CASE YG ISWHEN0=> YGW <=not"0111111"; WHEN1=> YGW <=not"0000110";WHEN3=> YGW <=not"1001111"; WHEN4=> YGW <=not"1100110"; WHEN5=> YGW <=not"1101101"; WHEN6=> YGW <=not"1111101"; WHEN7=> YGW <=not"0000111"; WHEN8=> YGW <=not"1111111"; WHEN9=> YGW <=not"1101111"; WHEN OTHERS=>NULL;END CASE;CASE YS ISWHEN0=> YSW <=not"0111111"; WHEN1=> YSW <=not"0000110"; WHEN2=> YSW <=not"1011011"; WHEN3=> YSW <=not"1001111"; WHEN4=> YSW <=not"1100110"; WHEN5=> YSW <=not"1101101"; WHEN6=> YSW <=not"1111101"; WHEN7=> YSW <=not"0000111"; WHEN8=> YSW <=not"1111111"; WHEN9=> YSW <=not"1101111"; WHEN OTHERS=>NULL;END CASE;END IF;END PROCESS;END;4.原理分析:i.紧急制动:EN端为紧急制动端,当遇到紧急交通事故EN设为高电平,东西南北方向的红灯全亮;且在时钟为高电平时,数码管全灭;低电平时正常显示,以此实现闪烁的电路;此时倒计时数字停止ii.设置COUNT变量计数,TEMPX,TEMPY记录倒计时数字例如东西方向,当COUNT<75,红灯亮,黄绿灯灭,倒计时数字为75-TEMPX;COUNT从0循环至149,完成一个周期的交通灯控制;iii.XGW,XSW,YGW,YSW信号分别送入4个数码管,分别控制东西、南北的数码管;而XGW,XSW,YGW,YSW由TEMPX\TEMPY以”MOD” ”\”运算得到;5.当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。