EDA交通灯控制器+函数信号发生器+乐曲演奏电路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA课程设计
题目一:交通灯控制器VHDL的设计
题目二:智能函数发生器
题目三:乐曲硬件演奏电路的VHDL设计
专业:通信工程
班级:通信084班
一、设计题目:交通灯控制器VHDL的设计
二、设计目标
1、设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
2、红、绿、黄发光二极管作信号灯,。
3、主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。
4、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。
5、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。
三、设计原理
主系统由三个模块组成,jtd.vhd为顶层文件,其内部包含三个功能模块模块:信号灯主控模块(moore.vhd)、减法计数器模块(jishu.vhd)、译码器模块(led7s.vhd)。
1、选择1HZ时钟脉冲作为系统时钟。
2、45秒、25秒、5秒定时信号用倒计时,计时起始信号由主控电路给出,每当计满所需时间,即向主控电路输出“时间到”信号,转换信号灯状态,由主控电路启、闭三色信号灯
显示结果:十字路口的交通灯控制信号由主控电路给出,能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态。用两组红、黄、绿三种颜色的灯分别作为东西、南北两个方向的红、黄、绿灯,变化规律为:东西绿灯亮,南北红灯亮→东西黄灯亮,南北红灯亮→东西红灯亮、南北绿灯亮→东西红灯亮,南北黄灯亮→东西绿灯亮,南北红灯亮….,这样依次循环。
东西方向是主干道车道,南北方向是支干道车道,要求两条交叉道路上的车辆交替运行,主干道每次通行时间都设为45秒,支干道每次通行时间都设为25秒。
在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。要求交通灯控制器有复位功能,在复位信号使能的情况下能够实现交通灯的自动复位,并且要求所有交通灯的状态变化,包括复位信号引起的均发生时钟脉冲的上升沿处。
clk jishu:u2:c1
rst
c_st.s2dinh0[2]green_east1
green_north1
ld0red_east1red_north1y ellow_east1y ellow_north1
clk
moore:u1:c_st.s2moore:u1:dinh0[2]moore:u1:ld0
c1qa[0..3]qb[0..3]
jishu:u2:qb[0..3]
Mux 0~0Mux 1~0Mux 2~0
Mux 3~0Mux 4~0Mux 5~0Mux 6~0
jishu:u2:qa[0..3]
Mux 0~0Mux 1~0Mux 2~0Mux 3~0Mux 4~0Mux 5~0Mux 6~0
jishu:u2
led7s:u3
clk
green_east green_north red_east red_north rst
yellow_east yellow_north
one_east[0..6]
one_north[0..6]
ten_east[0..6]
ten_north[0..6]
led7s:u4
moore:u1
四、设计内容
1.信号灯主控模块moore.vhd
设计一个Morre 型状态机,是一个4状态的状态机,输出ld0控制减法计数器,在减法计数器减计数到6或1时,计数器输出1,将计数器的输出输入到Moore 型状态机c0中来实现状态机的输入控制,再通过状态机的输出来控制计数器的计数值。即原理相同于S0为东西方向的绿灯控制及南北方向的红灯控制,计数时间为45秒;S1为东西方向黄灯控制及南北方向的红灯控制,计数时间为5秒;S2为南北方向的绿灯控制及东西方向的红灯控制,计数时间为25秒;S3为南北方向的黄灯及东西方向的红灯控制,计数时间为5秒。状态图如下:
clk0
rst0
c0
ld0
red_east1
green_east1
y ellow_east1
red_north1
green_north1
y ellow_north1
dinl0[3..0]
dinh0[3..0]
moore
inst
2.减法计数器的设计jishu.vhd
减法计数器设计,用dinh1和dinl1来设置所需要的计数数值,ld1为初始化计数数值,当减法计数器减到设置的6或1时,C1输出为1,其他时间均为0。Qh1和ql1为计数器的计数输出。
clk1
ld1
dinl1[3..0]
dinh1[3..0]
ql1[3..0]
qh1[3..0]
c1
jishu
inst1
3.译码器的设计led7s.vhd
译码器是一个简单的LED的显示的译码,为4—7译码器。
a[3..0]led7s[6..0]
led7s
inst2
五、仿真结果
clk0:1Hz时钟输入
rst0:复位端
c0:状态机输入控制信号
ld0输出计数控制信号
dinh0,dinl0:输出高低位计数值
red_east1等:红黄绿灯控制信号
clk1:1Hz时钟输入
ld1:计数控制信号
dinh1,dinl1:输入高低位计数值
qh1,ql1:输出高低位计数值
c1:输出状态机控制信号
a:译码输入信号
led7s:译码输出信号