EDA课设交通灯注释程序

合集下载

EDA课程设计报告交通灯控制系统

EDA课程设计报告交通灯控制系统

一、课程设计目的和要求目的:掌握基于FPGA 的复杂数字系统的设计和验证方法。

提高学生复杂数字系统的设计能力。

要求:使用实验箱为W48-PK2SOPC 试验开发系统,核心器件为Alatera 公司的EP1C6Q240C8芯片,开发软件为Quartus4.0.本实验环节要求学生以FPGA 器件为目标器件,设计典型的数字系统,如:A/D 、D/A 接口;电子密码锁,交通灯控制系统,数字表等复杂硬件电路,完成设计综合、仿真和硬件测试,并写实验报告。

二、设计方案工作原理:本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。

设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续40S 后,主干道和支干道上的黄灯都亮启,持续5S 后,主干道上红灯亮启,支干道上绿灯亮启持续40S ,之后主干道和支干道上的黄灯都亮启5s ,一个循环完成。

用LED 灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。

实现方法:本次采用文本编辑法,即利用Verilog HDL 语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。

设计中用两组红黄绿LED 模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。

状状状状状状状状状状状状00状状10状状11状状01状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状状001100010010001010100010图2.交通灯控制状态转化说明:该状态图为交通灯在正常情况下的状态转化图,进入控制后,状态00时主干道绿灯及支干道红灯亮起,进入状态01后两路黄灯亮起,状态11时主干道红灯及支干道绿灯亮起。

进入10状态两路黄灯亮起。

结束一个循环,从00状态重新开始循环。

EDA课程设计报告 交通灯控制器

EDA课程设计报告 交通灯控制器

---------------------考试---------------------------学资学习网---------------------押题------------------------------.EDA课程设计报告交通灯控制器.一、设计任务要求1、控制器按东西、南北两个方向控制两组交通灯(红、绿、黄)2、两组灯亮的顺序满足交通安全的规则要求.3、东西向绿灯每次亮30S,接着黄灯亮2S,红灯亮20S;南北向绿灯每次亮28S,接着黄灯亮2S,红灯亮30S.4、有两组数码管给出灯亮的时间倒计时显示。

二、设计思路及总体结构框图设计思路:1.硬件:由设计任务要求可知,总体输入电路有:(1)在开始计时之前的等待状态,复位键reset接低电位,接通电源后,首先要将它接高电位,表示计时开始。

(2)当按一下(on_off)键,表示紧急情况发生,两个方向均为红灯亮,计时停止,当再次按下(on_off)键时,控制器恢复原来状态,正常工作。

输出电路:(1)由于东西和南北方向都要显示时间,因此需要4个数码管,这样在设计中就需要四条输出线choose4,用来选通指定一个LED七段显示数码管。

(2)显示器的每一位都采用LED七段显示数码管进行显示,每一个LED七段显示数码管都要有七条输出线控制,一共使用4个七段数码管,故输出电路使用四个七位输出信号:showtime1,showtime2,showtime3,showtime4。

(3)东西和南北方向都有交通灯亮的情况,故输出电路中要有两个状态控制信号state1,state2分别控制东西和南北的灯,每个方向上有4个灯(增加了左、右转弯显示控制功能),所以state1,state2的类型应该是4位数组型的。

外部电路图如下:东西方向 clk 4/ State1交通灯 stasreset State2南北方向 on_off 4/ 交通灯7/ Showtime17/ Showtime27/ Showtime37/ Showtime4Choose44/- 2 -2.软件:(1)在VHDL设计描述中,采用自顶向下的设计思路,该思路,首先要描述顶层的接口,上面的描述已经规定了交通灯控制的输入输出信号:输入信号:复位开关信号reset;紧急情况控制信号on_off;外部时钟信号clk。

毕业设计-EDA技术交通灯控制器(课程设计)

毕业设计-EDA技术交通灯控制器(课程设计)

课程设计报告课程设计:交通灯控制器一:实验目的:实现高速公路与乡间小路的交叉路口红绿灯的控制二:功能要求:1.只有在小路上发现汽车时,高速公路上的交通灯才可能变为红灯。

2.当汽车行驶在小路上时、小路的交通灯保持为绿灯,但不能超过给定的延迟时间.〔注;这段时间定义为20S时间)。

3.高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持高速公路绿灯(注:这段时间定义为60S)。

三:设计思路:五:VHDL源程序:LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TrafficLight ISPORT (Clk : IN STD_LOGIC;S,Reset : IN STD_LOGIC;mg,my,mr,cg,cy,cr : OUT STD_LOGIC );END TrafficLight ;ARCHITECTURE rtl OF TrafficLight ISTYPE TrafficState IS (mgcr, mycr, mrcg, mrcy);SIGNAL current_state,next_state : TrafficState ;SIGNAL Count : STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL Clrn : STD_LOGIC ;BEGINCounter : PROCESS(clk)BEGINIF Reset = '1' OR (Clrn = '1' AND NOT(Count = "000000")) THEN Count <= "000000";ELSIF clk'EVENT AND clk = '1' THENIF NOT(s='0' AND current_state = mgcr) THEN Count <= Count + 1;END IF;END IF;END PROCESS Counter;StateTransition : PROCESS(clk,Count, current_state)BEGINIF Reset = '1' THEN next_state <= mgcr;Clrn <= '0';ELSIF clk'EVENT AND clk = '1' THENCASE current_state ISWHEN mgcr => mr<='0';mg<='1';my<='0';cr<='1';cg<='0';cy<='0';IF Count >= "111011" AND S = '1' THEN next_state <= mycr;Clrn <= '1';ELSE Clrn <= '0';END IF;WHEN mycr => mr<='0';mg<='0';my<='1';cr<='1';cg<='0';cy<='0';IF Count >= "000100" THEN next_state <= mrcg;Clrn <= '1';ELSE Clrn <= '0';END IF;WHEN mrcg => mr<='1';mg<='0';my<='0';cr<='0';cg<='1';cy<='0';IF Count >= "010011" OR S = '0' THEN next_state <= mrcy;Clrn <= '1';ELSE Clrn <= '0';END IF;WHEN mrcy => mr<='1';mg<='0';my<='0';cr<='0';cg<='0';cy<='1';IF Count >= "000100" THEN next_state <= mgcr;Clrn <= '1';ELSE Clrn <= '0';END IF;WHEN OTHERS => NULL;END CASE;END IF;END PROCESS StateTransition;PROCESS(clk)BEGINIF clk'EVENT AND clk='1' THENcurrent_state <= next_state;END IF;END PROCESS;END rtl;仿真图如下:六:实验心得:通过本次课程设计,使用进一步熟悉了MAX-PLUSLL这种EDA软件工具。

EDA课程设计(交通灯控制器)

EDA课程设计(交通灯控制器)

课程设计年月日大课程设计任务书课程EDA技术课程设计题目交通灯控制器专业姓名学号主要内容、基本要求、主要参考资料等主要内容:设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。

基本要求:1、红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号,实验电路用逻辑开关代替。

2、主干道处于常允许通行的状态,支干道有车来时才允许通行。

主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。

3、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路,选择1HZ时钟脉冲作为系统时钟。

4、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。

主要参考资料:[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.[2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006.[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限2010.3.12指导教师专业负责人2010年3月8日一、总体设计思想1.基本原理计数模块、置数模块、主控制器模块和译码器模块。

置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。

其中,核心部分是主控2.设计框图图一.交通灯控制系统的原理框图图二.交通灯控制器的流程图脉冲发生器 控制器 译码器甲车信号灯乙车信号灯定时器1.设计思路:在某一十字路口交叉地带,可设计东西走向的道路为甲车道,南北走向的道路为乙车道。

甲乙车道的交通灯需按交通法则来依次交替运行。

则可设计一个状态循环的逻辑电路。

2.分析系统的逻辑功能:交通灯控制系统的原理框图如图一所示。

eda交通灯控制器课程设计

eda交通灯控制器课程设计

eda交通灯控制器课程设计课程设计:EDA交通灯控制器1. 课程背景和目标:EDA交通灯控制器是使用EDA(电子设计自动化)工具进行交通灯控制系统设计的课程。

学习该课程的目标是使学生能够熟练运用EDA工具进行交通灯控制系统设计,并能够理解交通灯控制系统的原理和设计方法。

2. 课程内容和安排:(1) 交通灯控制系统原理介绍:介绍交通灯控制系统的基本原理,包括信号机、信号控制方法和交通流量检测等。

(2) EDA工具介绍:介绍常用的EDA工具,如Verilog、VHDL等,并讲解其基本使用方法。

(3) 交通灯控制器设计流程:介绍交通灯控制器的设计流程,包括需求分析、功能设计、模块设计和系统集成等。

(4) 交通灯控制器设计实践:学生通过实践项目,使用EDA工具设计交通灯控制器。

项目涵盖设计、仿真、验证和生成等环节,学生需要独立完成设计并提交设计报告。

3. 课程教学方法:(1) 理论讲解:通过课堂讲解,介绍交通灯控制系统的原理和设计方法,以及EDA工具的使用方法。

(2) 实践项目:学生通过实践项目,运用所学知识设计交通灯控制器,并进行仿真、验证和生成等环节。

(3) 讨论和案例分析:通过课堂讨论和案例分析,加深学生对交通灯控制系统的理解和应用能力。

(4) 指导和批评:教师对学生的设计进行指导和批评,帮助学生不断提高设计能力。

4. 评估方式:(1) 实践项目报告:学生独立完成实践项目,并提交设计报告,包括设计过程、仿真结果和验证结果等。

(2) 课堂测试:通过课堂测试检验学生对交通灯控制系统原理和EDA工具的理解程度。

(3) 课堂表现:评估学生的课堂出勤情况、学习态度和参与度等。

5. 参考教材:(1) 《交通信号控制原理与技术》高新泽(2) 《EDA与数字电路设计》陈骏等(3) 《数字电路与系统设计》刘敏衡等(4) 《系统设计自动化技术与EDA工具应用》杨学庆等以上是对EDA交通灯控制器课程设计的简要介绍。

课程内容涵盖了交通灯控制系统的原理和设计方法,以及EDA工具的使用方法。

EDA课程设计-矩阵键盘-交通灯

EDA课程设计-矩阵键盘-交通灯

1 矩阵键盘扫描要求:设计矩阵式键盘接口,并在一个数码管上面显示按下的数字,从0到9以及小数点。

判断键盘中有无按键按下是通过行线送入扫描线好然后从列线读取状态得到的。

其方法是依次给行线送低电平,检查列线的输入。

如果列线全是高电平,则代表低电平信号所在的行中无按键按下;如果列线有输入为低电平,则代表低电平信号所在的行和出现低电平的列的交点处有按键按下。

整个设计程序包括三个模块:时钟分频、键盘扫描和键译码转换。

时钟分频:由于使用的外部时钟频率为50MHz,这个频率对扫描来说太高,所以这里需要一个分频器来分得适合键盘扫描使用的频率。

键盘扫描:由键盘的工作原理可知,要正确地完成按键输入工作必须有按键扫描电路产生KEYI信号,同时必须有按键译码电路从KEYI中和KEYOUT中读出按键的键值。

键盘扫描电路是用于产生KEYI3~ KEYI0 信号,其变化顺序是1110→1101→1011→0111→1110…周而复始地扫描。

其停留时间大慨在10ms。

键盘译码:键盘译码电路是从keyI3~keyI0和keyout3~keyout0信号中译码出按键值的电路。

将此按键值显示在数码管上。

FPGA_CLK 系统的主时钟MASTER_RESET_n 主复位Button[0]-[15] 拨码开关/白色按钮通过跳线Jxx选择Seven_seg[0]-[7] 数码管的显示Seven_seg[8]-[15] 数码管的选择LED_DOWN[0]-[7] 8个ledKeyboard_Down[0]-[8] 键盘输入/AD输入,通过JP8选择低位表示行。

原理图中Keyboard_Down[0]-[4]对应KEYI[0-4]Keyboard_Down[5]-[8]对应KEYO[0-3]此例中Keyboard_Down[1]-[4]对应KEYI[0-3]Keyboard_Down[5]-[8]对应KEYO[0-3]2、交通灯的控制课程设计原理:在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序的通行。

FPGA(EDA)课程设计——交通灯(附源代码)

FPGA(EDA)课程设计——交通灯(附源代码)

技术规范功能描述:实现一个由一条主干道和一条支干道的汇合点形成的十字路口的交通灯控制器,具体功能:(1) 主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。

(2) 主干道处于长允许通行状态,而支干道有车来时才允许通行。

当主干道允许通行亮绿灯时,支干道亮红灯。

而支干道允许通行亮绿灯时,主干道亮红灯。

(3) 当主干道、支干道均有车时,两者交替允许通行,主干道每次通行45 秒,支干道每次通行25 秒,在每次由绿灯向红灯转换的过程中,要亮5 秒的黄灯作为过渡,并进行减计时显示。

AB45秒倒计时绿灯亮50秒倒计时红灯亮30秒? 红灯亮25秒绿灯亮5秒黄5秒黄图一:交通灯闪烁时序图<!--[if !vml]--><!--[endif]--> <!--[if !vml]--><!--[endif]-->每个周期结束时都要进行支干道是否有车的检测,若有车则进行下一个周期,若没有,则主干道亮绿灯,支干道亮红灯,直到检测到支干道有车。

系统总体框图:根据设计要求和系统所具有的功能,并参考相关的文献资料,经行方案设计,可以画出如下图所示的交通信号灯控制器的系统框图。

数码管位码数码管段码LED灯clkcarrst时钟分频模块交通灯控制及计时模块扫描显示译码模<!--[endif]-->图二:系统总体框图总体设计方案交通灯<!--[if !supportLists]-->一、<!--[endif]-->系统详细框图在系统总体框图的基础上进一步详细设计,得到如下系统详细框图数码管位码数码管段码LED灯clkcarrst时钟分频模块交通灯控制及计时模块扫描显示译码模块clk_odd<!--[if !vml]--><!--[endif]-->。

图三:系统详细框图注:系统总体I/O管脚描述请查看技术规范。

<!--[if !supportLists]-->二、<!--[endif]-->具体模块设计1.时钟分频模块系统的动态扫描需要10KHZ的脉冲,而系统时钟计时模块需要1 HZ的脉冲。

EDA交通灯课程设计

EDA交通灯课程设计

EDA 交通灯课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握交通灯系统的原理与设计流程。

2. 学生能够运用所学知识,设计并实现一个具备基本功能的交通灯控制系统。

3. 学生了解交通灯控制系统在实际应用中的重要性,理解不同颜色灯亮灭的时间间隔及其意义。

技能目标:1. 学生能够运用EDA软件进行电路设计,完成交通灯控制系统的原理图与PCB布线图绘制。

2. 学生能够通过编程实现对交通灯控制系统的仿真与调试,解决简单问题。

3. 学生能够运用团队协作、沟通技巧,共同完成课程设计任务,提高实践操作能力。

情感态度价值观目标:1. 学生培养对电子设计自动化技术的兴趣,激发创新意识和探索精神。

2. 学生通过实践操作,培养动手能力、问题解决能力和自主学习能力。

3. 学生认识到遵守交通规则的重要性,增强社会责任感和安全意识。

课程性质:本课程设计为实践性课程,注重培养学生的动手能力和团队协作能力。

学生特点:初三学生,具有一定电子基础知识,好奇心强,喜欢动手实践。

教学要求:结合学生特点,课程设计应注重理论与实践相结合,鼓励学生自主探究和团队协作,提高学生的综合能力。

通过分解课程目标为具体学习成果,使学生在完成课程设计的过程中达到预期目标。

二、教学内容1. 电子设计自动化(EDA)基本原理介绍:包括EDA的概念、发展历程、应用领域。

2. 交通灯控制系统原理:讲解交通灯的工作原理、控制逻辑、信号灯颜色时间设置。

3. EDA软件操作:学习并掌握EDA软件的使用,如原理图绘制、PCB布线图设计。

4. 交通灯控制系统设计:根据实际需求,设计具备基本功能的交通灯控制系统。

- 知识点:数字电路、逻辑门、时序逻辑、微控制器应用。

- 教材章节:第四章 电子设计自动化,第三节 数字电路设计。

5. 编程与仿真:学习编程实现对交通灯控制系统的仿真与调试。

- 知识点:基础编程知识、仿真软件使用。

- 教材章节:第五章 嵌入式系统设计,第一节 嵌入式编程基础。

eda交通控制灯课程设计

eda交通控制灯课程设计

eda 交通控制灯课程设计一、课程目标知识目标:1. 学生能够理解并掌握交通控制灯(红绿灯)的基本原理和工作机制。

2. 学生能够描述EDA(电子设计自动化)工具在交通控制灯设计中的应用。

3. 学生能够解释交通控制灯系统中涉及的基础电子元件及其功能。

技能目标:1. 学生能够运用EDA软件完成交通控制灯电路图的绘制。

2. 学生能够通过编程实现对交通控制灯系统的简单控制逻辑。

3. 学生能够运用团队协作和问题解决技能,设计和优化交通控制灯系统。

情感态度价值观目标:1. 培养学生对电子工程领域的兴趣,激发创新意识和探索精神。

2. 增强学生的环保意识和交通安全意识,认识到交通控制灯在现代社会中的重要性。

3. 培养学生的团队协作意识,学会尊重他人意见,共同解决问题。

课程性质:本课程结合了电子技术与实际应用,注重理论与实践相结合,以项目为导向,提升学生的综合技能。

学生特点:假设学生为初中年级,具有一定的电子元件知识基础,对新技术的学习充满好奇,具备基本的计算机操作能力。

教学要求:课程需注重实践性,通过互动式教学和团队协作,使学生在动手实践中理解和掌握知识,提高问题解决能力。

同时,强调安全意识和责任感,培养符合社会主义核心价值观的技能人才。

二、教学内容1. 交通控制灯基础知识:- 红绿灯工作原理介绍- 交通控制灯系统的组成与功能- 交通控制灯在交通安全中的作用2. EDA工具的应用:- EDA软件的认识与基本操作- 交通控制灯电路图的绘制方法- 电路仿真与调试技巧3. 交通控制灯电路设计与制作:- 基本电子元件的选择与应用- 交通控制灯控制逻辑的编写与实现- 电路板设计与焊接技巧4. 项目实践与优化:- 团队协作设计与制作交通控制灯系统- 控制逻辑优化与功能拓展- 作品展示与评价教学内容安排与进度:第一课时:交通控制灯基础知识学习第二课时:EDA软件的认识与基本操作第三课时:交通控制灯电路图绘制与仿真第四课时:电路设计与制作第五课时:项目实践与优化第六课时:作品展示与评价教材章节关联:教学内容与教材中“电子技术应用”章节相关,涉及电子元件、电路设计、EDA工具应用等方面的知识。

基于EDA的交通灯控制器课程设计

基于EDA的交通灯控制器课程设计

基于EDA的交通灯控制设计一、设计背景和设计方案1)设计背景设计一个由一条支干道和一条主干道的汇合点形成的十字交叉路口的交通灯控制器,主要要求如下:1.主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。

2.主干道处于常允许状态,两支干道有车来才允许通行。

3.当主、支干道有车时,两者交替通行,主干道每次放行45s,支干道每次放行25s,在每次由亮绿灯变成亮红灯转换过程中,要亮5s黄灯作为过渡,并进行减计时显示。

2)设计方案2.1背景分析(一)、交通灯的功能是实现一个交叉口的通车控制,交通灯显示有以下4种状态:1.主干道绿灯,支干道红灯;2.主干道绿灯,支干道黄灯;3.主干道红灯,支干道绿灯;4.主干道黄灯,支干道绿灯。

(二)、支干道没车时,主干道一直亮绿灯;主干道没车时,主干道和支干道交替亮绿灯;主干道和支干道都有车时同样交替亮红绿灯。

在红绿灯交替时亮5s黄灯。

2.2方案及思路(一)分模块设计1、红、绿、黄灯控制模块,模块名JTDKZ;2、倒计时传输、控制模块XSKZ;3、倒计时45s——CNT45s;4、倒计时25s——CNT25s;5、倒计时5s——CNT05s。

6、输入、输出。

(二)模块设计思路1、JTDKZ——根据交通灯显示有4种状态,可以采用CASE语句设置选择4种状态。

设置3个输入:CLK(时钟脉冲)、SB(支干道传感器)、SM(主干道传感器)。

2、XSKZ——根据需要交通灯显示的不同数倒计时据设置4个输入使能信号:EN45(45s 倒计时使能信号)、EN25(25s倒计时使能信号)、EN05(5s倒计时使能信号);再设置5个倒计时计数数据输入信号将此时倒计时数据输出:AIN45M、AIN45B、AIN25M、AIN25B、AIN05;2个输出信号使数码管显示正在倒计时的时间。

3、CNT45S——根据倒计时计数的要求设置3个输入信号:CLK(计数脉冲)、EN45(计数使能)、SB(支干道传感器信号);2个输出DOUT45M、DOUT45B,分别用于主、支干道显示。

EDA课程设计(交通灯控制器)

EDA课程设计(交通灯控制器)
EDA课程设计(交通灯控制器)
«KEDA技*锦程祓针
<8丈通爭投制希
ft t
专"铁
修生就名
豊认号
北导農轉交通灯控制器专业姓学号主要内容、基本要求、主要参考资料等 主要内容:
设计一个交通信号灯控制器,由一条主干道和一条
支干道汇合成十字路口,在每个入口处设置红、绿、黄 三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯 亮则给行驶中的车辆有时间停在禁行线外。
ST:表示定时器到了规定的时间后,由控制器发出状态转换信号。由它控 制定时器开始下个工作状态的定时。
(1)图甲车道绿灯亮,乙车道红灯亮。表示甲车道上的车辆允许通行,乙 车道禁止通行。绿灯亮足规定的时间隔TL时,控制器发出状态信号ST,转到 下一工作状态。
(2)甲车道黄灯亮,乙车道红灯亮。表示甲车道上未过停车线的车辆停止 通行,已过停车线的车辆继续通行,乙车道禁止通行。黄灯亮足规定时间间隔TY时,控制器发出状态转换信号ST,转到下一工作状态。
基本要求:
1、红、绿、黄发光二极管作信号灯,用传感器或逻 辑开关作检测车辆是否到来的信号,实验电路用逻辑开 关代替。
2、主干道处于常允许通行的状态,支干道有车来时 才允许通行。主干道亮绿灯时,支干道亮红灯;支干道 亮绿灯时,主干道亮红灯。
3、主、支干道均有车时,两者交替允许通行,主干 道每次放行45秒,支干道每次放行25秒,设立45秒、25
交通灯以上4种工作状态的转换是由控制器进行控制的。设控制器的四种 状态编码为00、01、11、10,并分别用SO、S1、S3、S2表示,则控制器的工 作状态及功能如图二所示,控制器应送出甲、乙车道红、黄、绿灯的控制信号。 为简便起见,把灯的代号和灯的驱动信号合二为一,并作如下规定:

基于EDA的交通灯课程设计资料

基于EDA的交通灯课程设计资料

于EDA的简易交通灯控制原理及程序代码简易交通灯项目是近年来课程设计的热门课题,也是困扰诸多电子信息及通信工程专业同学们的难点。

通常指导教师不会提供方案电路原理图,也不会告诉同学们该如何如何去做。

如今网上有很多相关电路图,用各种74系列芯片以及LED和七段数码管组成的,电路结构复杂,纠错性差,极可能连接之后无法得到理想的结果。

随着EDA技术的发展,复杂的门电路可以利用VHDL语言描述并实现。

今天我们来一起分析并设计相应的程序代码。

1,课题要求:设计一交通灯控制电路,要求有四个状态:A,主干路绿灯30秒,支路红灯30秒,主干路通车,支路等待;B,主干路黄灯闪烁5秒,支路红灯5秒,两路同时等待;C,主干路红灯20秒,支路绿灯20秒,支路通车,主干路等待。

D,主干路红灯5秒,支路黄灯闪烁5秒,同时等待。

最后这四个状态形成一个大循环,周而复始。

2,建模分析。

输入:1S的计时脉冲。

输出:主干路和支路的红绿黄灯的状态,数码管计数显示。

(输出8位BCD 码,高四位为十位,第四位为各位)整个过程为一个大循环,共30+5+20+5=60秒,即0~59S,共60个状态。

3,代码原理:我们引用两个进程,一个计数,一个由计数相应的执行对应的状态输4,代码:建立JTD.VHD输入如下代码注意:CLK锁定在PIN93管脚,为脉冲输入。

LAMP 向量共有6位,对应的LED如下例如 LAMP <="0 1 0 1 0 0";主红主绿主黄支红支绿支黄CODE向量共8位,为两组BCD码,应由CD4511芯片解码后驱动七段数码管。

例如 CODE<="00100101"表示的是 2 5代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED;ENTITY JTD ISPORT( CLK : IN STD_LOGIC;LAMP : OUT STD_LOGIC_VECTOR(5 DOWNTO 0 );CODE : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END;ARCHITECTURE one OF JTD ISSIGNAL ST : INTEGER RANGE 0 TO 60;BEGINP_A:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' THEN IF ST<60 THEN ST<=ST+1; ELSE ST <='0' ;END IF;END IF;END PROCESS;P_B : PROCESS(ST)BEGINCASE ST ISWHEN 0 =>LAMP<="010100";CODE<="00000000";WHEN 1 =>LAMP<="010100";CODE<="00000001";WHEN 2 =>LAMP<="010100";CODE<="00000010";WHEN 3 =>LAMP<="010100";CODE<="00000011";WHEN 4 =>LAMP<="010100";CODE<="00000100";WHEN 5 =>LAMP<="010100";CODE<="00000101";WHEN 6 =>LAMP<="010100";CODE<="00000110";WHEN 7 =>LAMP<="010100";CODE<="00000111";WHEN 8=>LAMP<="010100";CODE<="00001000";WHEN 9=>LAMP<="010100";CODE<="00001001";WHEN 10 =>LAMP<="010100";CODE<="00010000";WHEN 11 =>LAMP<="010100";CODE<="00010001";WHEN 12 =>LAMP<="010100";CODE<="00010010";WHEN 13 =>LAMP<="010100";CODE<="00010011";WHEN 14 =>LAMP<="010100";CODE<="00010100";WHEN 15 =>LAMP<="010100";CODE<="00010101";WHEN 17 =>LAMP<="010100";CODE<="00010111"; WHEN 18 =>LAMP<="010100";CODE<="00011000"; WHEN 19 =>LAMP<="010100";CODE<="00011001"; WHEN 20 =>LAMP<="010100";CODE<="00100000"; WHEN 21 =>LAMP<="010100";CODE<="00100001"; WHEN 22 =>LAMP<="010100";CODE<="00100010"; WHEN 23 =>LAMP<="010100";CODE<="00100011"; WHEN 24 =>LAMP<="010100";CODE<="00100100"; WHEN 25 =>LAMP<="010100";CODE<="00100101"; WHEN 26 =>LAMP<="010100";CODE<="00100110"; WHEN 27 =>LAMP<="010100";CODE<="00100111"; WHEN 28 =>LAMP<="010100";CODE<="00101000"; WHEN 29 =>LAMP<="010100";CODE<="00101001"; WHEN 30 =>LAMP<="001100";CODE<="00000000"; WHEN 31 =>LAMP<="001100";CODE<="00000001"; WHEN 32 =>LAMP<="001100";CODE<="00000010"; WHEN 33 =>LAMP<="001100";CODE<="00000011"; WHEN 34 =>LAMP<="001100";CODE<="00000100"; WHEN 35 =>LAMP<="100010";CODE<="00000000"; WHEN 36 =>LAMP<="100010";CODE<="00000001"; WHEN 37 =>LAMP<="100010";CODE<="00000010"; WHEN 38 =>LAMP<="100010";CODE<="00000011"; WHEN 39 =>LAMP<="100010";CODE<="00000100"; WHEN 40 =>LAMP<="100010";CODE<="00000101"; WHEN 41 =>LAMP<="100010";CODE<="00000110"; WHEN 42 =>LAMP<="100010";CODE<="00000111"; WHEN 43 =>LAMP<="100010";CODE<="00001000"; WHEN 44 =>LAMP<="100010";CODE<="00001001"; WHEN 45 =>LAMP<="100010";CODE<="00010000"; WHEN 46 =>LAMP<="100010";CODE<="00010001"; WHEN 47 =>LAMP<="100010";CODE<="00010010"; WHEN 48 =>LAMP<="100010";CODE<="00010011"; WHEN 49 =>LAMP<="100010";CODE<="00010100"; WHEN 50 =>LAMP<="100010";CODE<="00010101"; WHEN 51 =>LAMP<="100010";CODE<="00010110";WHEN 53 =>LAMP<="100010";CODE<="00011000"; WHEN 54 =>LAMP<="100010";CODE<="00011001"; WHEN 55 =>LAMP<="100001";CODE<="00000000"; WHEN 56 =>LAMP<="100001";CODE<="00000001"; WHEN 57 =>LAMP<="100001";CODE<="00000010"; WHEN 58 =>LAMP<="100001";CODE<="00000011"; WHEN 59 =>LAMP<="100001";CODE<="00000100"; WHEN OTHERS=>NULL;END CASE;END PROCESS;END one;。

交通灯设计(EDA课程设计)

交通灯设计(EDA课程设计)

EDA课程设计报告题目:基于FPGA的十字路口交通灯控制器专业:电子信息工程班级:一班姓名:学号:报告日期:2014/1/5目录EDA课程设计报告 (1)目录 (2)系统设计要求 (3)1.系统设计方案 (3)系统设计思路 (3)系统设计方案分析 (4)2.交通控制灯各模块电路设计 (5)2.1 控制模块controller (5)2.2 时钟分频模块frequency10Hz和frequency (10)2.3 分位电路模块fenwei (12)2.4 带闪烁功能的七段数码驱动显示模块display (13)3.交通控制灯顶层电路设计 (15)3.1 原理说明 (15)3.2 端口设计说明 (16)3.3 Quartus ii 仿真与结果分析 (17)4.仿真结果分析 (19)5.心得体会 (19)系统设计要求(1)在十字路口的两个方向上各设一组红、绿、黄灯,显示顺序为其中一个方向是(东西方向)是绿灯、黄灯、红灯;另一方向(南北方向)是红灯、绿灯、黄灯。

(2)设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间。

其中绿灯、黄灯、红灯的持续时间分别是20s、5s和25s。

(3)当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯,倒计时停止,且显示数字在闪烁。

当特殊运行状态结束时,控制器恢复原来状态,继续正常运行。

1.系统设计方案系统设计思路(1)本系统设计中均采用混合设计的方法,将整体方案划分成若干个模块进行设计。

采用VHDL硬件描述语言和原理图描述相结合的方式,对多种应用电路进行设计,其中底层电路(即模块电路)采用VHDL硬件描述语言方式实现,顶层电路采用原理图描述方式实现。

(2)系统设计流程图1 系统设计流程系统设计方案分析根据任务要求,计数器的值和交通灯亮灭关系如图1所示。

显然,此任务设计的核心是一个技术范围为0~50s 的计数器和一个根据计数值作出规定反应的控制器。

eda课程设计交通灯

eda课程设计交通灯

EDA课程设计报告交通控制器姓名:小组成员:专业:电子信息工程指导老师:龙翔设计日期:年月日一、设计功能:实现高速公路与乡间小路的交叉路口红绿灯的控制二、具体功能要求:1、只有在小路上发现汽车时,高速公路上的交通灯才可能变成红灯。

2、当汽车行驶在小路上时,小路的交通灯保持为绿灯,但不能超过给定的延迟时间。

(注:这段时间定义为20秒时间)3、高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定时间内保持高速公路绿灯。

(注:这段时间定义为60秒时间)4、原理框图如下:A B C D高速交通灯绿(60秒)黄(5秒)红(20秒)红(5秒)小道交通灯红红绿黄三、参考设计方案:图2 交通信号灯控制器的原理框图采用VHDL语言输入的方式实现交通信号灯控制器图3 交通信号灯控制器程序原理框图该程序由7个进程组成,进程P1和P2将CLK信号分频后产生1秒信号,进程P3、P4、P5构成两个带有预置数功能的十进制计数器,其中P4产生允许十位计数器计数的控制信号。

进程P6实现状态转换和产生状态转换的控制信号,进程P7产生次态信号和信号灯输出信号,以及每一个状态的时间值。

计数器驱动脉冲如图所示:四、编写相应源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED. ALL;ENTITY CONTRALZ ISPORT(CLK:IN STD_LOGIC;RA,GA,YA:OUT STD_LOGIC;TIMEAH,TIMEAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END CONTRALZ;ARCHITECTURE BHV OF CONTRALZ ISTYPE RG IS (GREEN,RED,YELLOW2);BEGINPROCESS(CLK)VARIABLE A:STD_LOGIC;VARIABLE TH,TL:STD_LOGIC_VECTOR(3 DOWNTO 0);VARIABLE STATE:RG;BEGINIF CLK'EVENT AND CLK='1'THEN CASE STATE ISWHEN GREEN=>IF A='0'TL:="1001";A:='1';GA<='1';RA<='0';YA<='0';ELSE IFNOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSETH:="0000";TL:="0000";A:='0';STATE:=RED;END IF;END IF;WHEN RED=>IF A='0'THEN TH:="0001";TL:="1001";A:='1';RA<='1';YA<='0';GA<='0';ELSE IFNOT(TH="0000"AND TL="0001") THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSETL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';RA<='0';GA<='0';STATE:=YELLOW2;END IF;END IF;WHEN YELLOW2=>IF A='0'TL:="0101";A:='1';YA<='1';GA<='0';RA<='0';ELSE IF NOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="0101";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";GA<='0';RA<='0';YA<='0';A:='0';STATE:=RED;END IF;END IF;END CASE;END IF; TIMEAH<=TH;TIMEAL<=TL;END PROCESS;END BHV;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTRALX ISPORT(CLK:IN STD_LOGIC;RB,GB,YB,CHU:OUT STD_LOGIC;TIMEAH,TIMEAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END CONTRALX;ARCHITECTURE BHV OF CONTRALX ISTYPE RGY IS(RED,YELLOW1,GREEN,YELLOW2);BEGIN PROCESS(CLK)VARIABLE A:STD_LOGIC;VARIABLE TH,TL:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE STATE:RGY;BEGIN IF CLK'EVENT AND CLK='1'THEN CASE STATE ISWHEN YELLOW1=>IF A='0'THEN TH:="0000";TL:="0100";A:='1';YB<='1';GB<='0';RB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001") THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';STATE:=GREEN;END IF;END IF;WHEN GREEN=>IF A='0'THEN TH:="0001";TL:="1001";A:='1';GB<='1';RB<='0';YB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001") THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';STATE:=YELLOW2;END IF;END IF;WHEN RED=>IF A='0'THEN TH:="0101";TL:="0100";A:='1';RB<='1';YB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';STATE:=YELLOW1;END IF;END IF;WHEN YELLOW2=>IF A='0'THEN TH:="0000";TL:="0100";A:='1';YB<='1';GB<='0';RB<='0';CHU<='1';ELSE IF NOT(TH="0000"AND TL="0001")THEN IF TL="0000"THEN TL:="1001";TH:=TH-1;ELSE TL:=TL-1;END IF;ELSE TH:="0000";TL:="0000";A:='0';CHU<='0';STATE:=RED;END IF;END IF;END CASE;END IF;TIMEAH<=TH;TIMEAL<=TL;END PROCESS;END BHV;五、对源程序进行编译及仿真1、对程序进行编译,结果如下图:2、用waveform对程序进行波形仿真,结果如下图:六、设计思路在听完课程设计指导课前,我们对交通灯的程序设计思路基本上可以称得上是一片茫然,在听完课后虽然有个大致的思路,但还是不知道具体要怎么实施,于是我们开始去图书馆寻找参考书。

EDA交通灯程序

EDA交通灯程序

EDA交通灯程序编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(EDA交通灯程序)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为EDA交通灯程序的全部内容。

交通灯控制器一实验目的1.了解交通灯的亮灭规律。

2.了解交通灯控制器的工作原理.3.熟悉VHDL语言编程,了解实际设计中的优化方案。

二硬件需求1.EDA/SOPC实验箱一台。

三实验原理交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车子如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。

要完成本实验,首先必须了解交通路灯的亮灭规律。

本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。

依人们的交通常规,“红灯停,绿灯行,黄灯提醒"。

其交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,重复上述过程。

在实验中使用8个七段码管中的任意两个数码管显示时间。

东西路和南北路的通车时间均设定为20s.数码管的时间总是显示为19、18、17……2、1、0、19、18……。

在显示时间小于3秒的时候,通车方向的黄灯闪烁。

四实验内容本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意两个来显示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

--交通灯程序注释-- 一、交通灯的功能是实现一个交叉口的通车控制,交通灯显示有以下4种状态:--主干道绿灯,支干道红灯;--主干道绿灯,支干道黄灯;--主干道红灯,支干道绿灯;--主干道黄灯,支干道绿灯。

--支干道没车时,主干道一直亮绿灯;主干道没车时,主干道和支干道交替亮绿灯;主干道和支干道都有车时同样交替亮红绿灯。

在红绿灯交替时亮5s黄灯。

--cnt04s.vhd(4秒倒计时模块)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt04s is--定义实体名port(clk,en04m,en04b:in std_logic; --(端口说明,输入类型)dout4:out std_logic_vector(7 downto 0)); --(端口说明,输入类型)end entity cnt04s;architecture art of cnt04s is--结构体定义signal cnt2b:std_logic_vector(1 downto 0);--定义信号beginprocess(clk,en04m,en04b) is--(EN代表允许计数信号)beginif(clk'event and clk='1') thenif en04m='1' then cnt2b<=cnt2b+1;--当有始终信号前提下,EN为1,开始计数elsif en04b='1' then cnt2b<=cnt2b+1;--当有始终信号前提下,EN为1,开始计数elsif en04b='0' then cnt2b<=cnt2b-cnt2b-1;--不计数,保持不变end if;end if;end process;--结束进程process(cnt2b)isbegincase cnt2b iswhen"00"=>dout4<="00000100";--计数器计数对应在数码管上的显示数字4when"01"=>dout4<="00000011";--计数器计数对应在数码管上的显示数字3when"10"=>dout4<="00000010";--计数器计数对应在数码管上的显示数字2when"11"=>dout4<="00000001";--计数器计数对应在数码管上的显示数字1when others=>dout4<="00000000";--计数器计数对应在数码管上的显示数字0end case;end process;end architecture art;--结束结构体--cnt20s.vhd(20s倒计时模块)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt20s isport(sb,sm,clk,en20:in std_logic;dout20m,dout20b:out std_logic_vector(7 downto 0));end entity cnt20s;architecture art of cnt20s issignal cnt5b:std_logic_vector(4 downto 0);beginprocess(sb,sm,clk,en20,cnt5b)isbeginif(sb='0'or sm='0')then cnt5b<=cnt5b-cnt5b-1;elsif(clk'event and clk='1')thenif en20='1' then cnt5b<=cnt5b+1;elsif en20='0' then cnt5b<=cnt5b-cnt5b-1;end if;end if;end process;process(cnt5b)isbegincase cnt5b is--数码管显示电路程序when"00000"=>dout20m<="00100000";dout20b<="00100100";when"00001"=>dout20m<="00011001";dout20b<="00100011";when"00010"=>dout20m<="00011000";dout20b<="00100010";when"00011"=>dout20m<="00010111";dout20b<="00100001";when"00100"=>dout20m<="00010110";dout20b<="00100000";when"00101"=>dout20m<="00010101";dout20b<="00011001";when"00110"=>dout20m<="00010100";dout20b<="00011000";when"00111"=>dout20m<="00010011";dout20b<="00010111";when"01000"=>dout20m<="00010010";dout20b<="00010110";when"01001"=>dout20m<="00010001";dout20b<="00010101";when"01010"=>dout20m<="00010000";dout20b<="00010100";when"01100"=>dout20m<="00001000";dout20b<="00010010";when"01101"=>dout20m<="00000111";dout20b<="00010001";when"01110"=>dout20m<="00000110";dout20b<="00010000";when"01111"=>dout20m<="00000101";dout20b<="00001001";when"10000"=>dout20m<="00000100";dout20b<="00001000";when"10001"=>dout20m<="00000011";dout20b<="00000111";when"10010"=>dout20m<="00000010";dout20b<="00000110";when"10011"=>dout20m<="00000001";dout20b<="00000101";when others=>dout20m<="00000000";dout20b<="00000000";end case;end process;end architecture art;--cnt40s.vhd(40秒倒计时模块)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt40s is--(定义实体,实体名为cn40s,40秒计数器)port(sb,clk,en40:in std_logic;--(端口说明,输入类型)dout40m,dout40b:out std_logic_vector(7 downto 0));--(端口说明,输出类型) end entity cnt40s;--(实体说明结束)architecture art of cnt40s is--(实体的结构体名称以及所属关系)signal cnt6b:std_logic_vector(5 downto 0);--(6个数对应以下信号) --义信号)beginprocess(sb,clk,en40,cnt6b)isbeginif sb='0'then cnt6b<=cnt6b-cnt6b-1;elsif(clk'event and clk='1')thenif en40='1'then cnt6b<=cnt6b+1;elsif en40='0'then cnt6b<=cnt6b-cnt6b-1;end if;end if;end process;process(cnt6b)isbegincase cnt6b is--数码管显示电路程序when"000000"=>dout40m<="01000000";dout40b<="01000100";--(44)when"000001"=>dout40m<="00111001";dout40b<="01000011";when"000010"=>dout40m<="00111000";dout40b<="01000010";when"000011"=>dout40m<="00110111";dout40b<="01000001";when"000101"=>dout40m<="00110101";dout40b<="00111001";when"000110"=>dout40m<="00110100";dout40b<="00111000";when"000111"=>dout40m<="00110011";dout40b<="00110111";when"001000"=>dout40m<="00110010";dout40b<="00110110";when"001001"=>dout40m<="00110001";dout40b<="00110101";when"001010"=>dout40m<="00110000";dout40b<="00110100";when"001011"=>dout40m<="00101001";dout40b<="00110011";when"001100"=>dout40m<="00101000";dout40b<="00110010";when"001101"=>dout40m<="00100111";dout40b<="00110001";when"001110"=>dout40m<="00100110";dout40b<="00110000";when"001111"=>dout40m<="00100101";dout40b<="00101001";when"010000"=>dout40m<="00100100";dout40b<="00101000";when"010001"=>dout40m<="00100011";dout40b<="00100111";when"010010"=>dout40m<="00100010";dout40b<="00100110";when"010011"=>dout40m<="00100001";dout40b<="00100101";when"010100"=>dout40m<="00100000";dout40b<="00100100";when"010101"=>dout40m<="00011001";dout40b<="00100011";when"010110"=>dout40m<="00011000";dout40b<="00100010";when"010111"=>dout40m<="00010111";dout40b<="00100001";when"011000"=>dout40m<="00010110";dout40b<="00100000";when"011001"=>dout40m<="00010101";dout40b<="00011001";when"011010"=>dout40m<="00010100";dout40b<="00011000";when"011011"=>dout40m<="00010011";dout40b<="00010111";when"011100"=>dout40m<="00010010";dout40b<="00010110";when"011101"=>dout40m<="00010001";dout40b<="00010101";when"011110"=>dout40m<="00010000";dout40b<="00010100";when"011111"=>dout40m<="00001001";dout40b<="00010011";when"100000"=>dout40m<="00001000";dout40b<="00010010";when"100001"=>dout40m<="00000111";dout40b<="00010001";when"100010"=>dout40m<="00000110";dout40b<="00010000";when"100011"=>dout40m<="00000101";dout40b<="00001001";when"100100"=>dout40m<="00000100";dout40b<="00001000";when"100101"=>dout40m<="00000011";dout40b<="00000111";when"100110"=>dout40m<="00000010";dout40b<="00000110";when"100111"=>dout40m<="00000001";dout40b<="00000101";when others=>dout40m<="00000000";dout40b<="00000000";end case;end process;end architecture art;--cskz.vhd(传输控制模块)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cskz isport(ina:in std_logic;outa:out std_logic);end entity cskz;architecture art of cskz isbeginprocess(ina) isbeginif ina='1'then outa<='1';else outa<='0';end if;end process;end architecture art;--jtdkz.vhd--交通灯控制模块library ieee;use ieee.std_logic_1164.all;entity jtdkz isport(clk,sm,sb:in std_logic;--sb代表支干道传感器,sm代表主干道传感器mr,my0,mg0,br,by0,bg0:out std_logic);end entity jtdkz;architecture art of jtdkz istype state_type is(A,B,C,D);--交通灯显示的4种状态A,B,C,D--.主干道绿灯亮,支干道红灯亮;1--主干道绿灯亮,支干道黄灯亮;2--主干道红灯亮,支干道绿灯亮;3--主干道黄灯亮,支干道绿灯亮。

相关文档
最新文档