EDA课程设计十字路口红绿灯模拟

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

课题名称:简易十字路口车流量模拟及红绿灯控制学生姓名:

班级:

学号:

指导教师:

项目功能:

1、自动模拟简易十字路口(只两个方向通行)的车流状况

2、根据当前的车流状况确定红绿灯的时常(可变)以最快的疏散

交通

3、增添交通管制功能:所有路口禁行,指示灯闪烁

4、通过数码管将每个路口的停车数量和交通灯的时常倒计时

显示出来;交通灯通过指示灯显示

5、特点:自动模拟一简易十字路口的交通状况,程序运行后即不

需再进行其他的控制,可以从数码管上看到当前的交通状况项目原理框图

1、本项目主要分为3个模块:十字路口停车数的统计、交通灯时

长及功能控制、数码管显示

2、原理框图控

停车数统计模块Car-wave

交通灯时长和功能

控制模块

lamp

数码管显示模块

SMG 1

十字路口的停车数

交通灯时长

控制信号

控制信号

各子模块的设计及验证

停车数统计模块Car-wave :

顶层图

其中Car-counter 模块由模4计数器和加法器counter100实现

模4计数器有元件定制方式实现(略) Counter100由VHDL 代码编写,其代码如下

library ieee; use ieee.std_l ogic_1164.all; use ieee.std_l ogic_unsigned.all;

entity counter100 is

port(clk:in std_l ogic; --时钟信号

sel:in std_l ogic_vector(1 d ownto 0); --加法/减法功能选择信号 dataIn:in std_l ogic_vector(1 d ownto 0); --加法/减法器输入 num11,num12:out std_l ogic_vector(3 d ownto 0));--计数器结果 end counter100;

architecture bhv of counter100 is

signal dn11,dn12:std_l ogic_vector(3 d ownto 0); signal din:std_l ogic_vector(3 d ownto 0);

begin

process(clk,dataIn)

begin

din<="00"&dataIn;

if rising_edge(clk) then

if sel="00" then --00时做加法

if(dn11<10-din) then dn11<=dn11+din; --判断是否有进位

elsif(dn11>10-din) then dn11<=dn11+din-10;dn12<=dn12+1;

end if;

elsif sel="01" then --01时做减法

i f((dn11+din<4)and dn12>0) then dn11<=dn11+6+din;dn12<=dn12-1;--判断是

否要借位

elsif(dn11>4) then dn11<=dn11-4+din;

else dn11<="0000";

end if;

end if;

end if;

num11<=dn11;

num12<=dn12;

end process;

end bhv;

Counter100说明:由sel信号决定执行加法还是减法功能,sel为00

时执行加法功能,sel为01时执行减法功能;sel信号由lamp(交通

灯)模块生成;该加法/减法器的输入为lpm_counter4的计数值

功能验证

1、波形仿真:Grid Size:100ns,End Time:10.0us

library ieee;

use ieee.std_l ogic_1164.all; use ieee.std_l ogic_unsigned.all;

entity lamp is

port( clk,enemy,en :in std_l ogic;-- enemy 是交通管制信号,en 使能信号

daIn11,daIn12:in std_logic_vector(3 d ownto 0);--南北路口的等待车辆数

daIn21,daIn22:in std_Logic_vector(3 d ownto 0);--东西路口的等待车辆数 flash :out std_l ogic; --交通管制信号

信号说明:clk1: Counter100的时钟信号 COUNT EVERY:100.0 ns

clk2:模4的时钟信号 COUNT EVERY:15.0 ns raod1,road2:两个路口的等待车辆数目 sel1,sel2 : Counter100功能选择信号 2、 下载验证:添加数码管显示电路后的下载验证

管脚分配 信号

管脚

clk1(Counter100的时钟信号) P122 clk2(

模4和七段译码器时钟) P128

sel1[1..0],sel2[1..0] P86,P87,P92,Mp95 eq0,eq1,eq3,eq4 (数码管片选信号) P96,P97,P99,P100

qa..qg(数码管段选信号)

P51,P49,P48,P47,P46,P44,P43 仿真结论:两个路口的车辆能正确的增加和减少,该模块设计正确

交通灯时长和功能控制模块lamp

该模块的主要功能是:根据输入的路口等待车辆数自动调整红绿灯时长;产生时长倒计时;自动的进行两个路口红-黄-绿灯之间的转换 该模块通过VHDL 语言设计实现,其代码如下

相关文档
最新文档