EDA 大作业
学生姓名: 吴程锴
学 号: 18029100040
班 级: 1802015
授课教师: 宗 汝
提交日期:2020 年 11 月 12 日
目录
一、 实验目的...................................................................................................................1
二、 设计任务...................................................................................................................1
三、 程序设计...................................................................................................................1
3.1
分频器
..................................................................................................................1
3.2 45 秒倒计时..........................................................................................................2
3.3
数码管译码器
......................................................................................................3
3.4 总控制器..............................................................................................................4
3.5
顶层设计
..............................................................................................................5
3.6 引脚分配..............................................................................................................6
四、 波形仿真
...................................................................................................................7
4.1 引脚说明..............................................................................................................8
4.2
无紧急状况
..........................................................................................................8
4.3 出现紧急状况......................................................................................................9
五、 分析与总结...............................................................................................................9
六、 附录
.........................................................................................................................10
1
一、实验目的
利用所学的 EDA 知识,制作一个交通控制器 。
二、设计任务
设计一个十字路口交通控制系统,其东西、南北两个方向除了有红、黄、绿灯指示
是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,
红灯的持续时间分别是
40
、
5
和
45
秒,且在绿灯的最后
5
秒让绿灯闪烁,提醒司机将
要不能通行,红灯的最后 5 秒让黄灯也亮,提醒司机准备通行。当东西或南北两路中任
一道上出现紧急情况,此时交通控制系统应可进入紧急状态,即两条道上的所有车辆皆
停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当紧急状态结束后,控制系统
恢复原来的状态,继续正常运行。
三、程序设计
3.1
分频器
输入:时钟信号,重置信号。
输出:分频时钟信号。
功能:
50MHz
分频。
由于板子的时钟频率为 50MHz,为便于观察,需要设计一个 50M 的分频器,输出
一个
1Hz
的时钟信号。
分频器其实就是计数器,只要计数器计数到某一模值时,把计数器清零,并且对输
出进行反转即可。
分频器模值、系统时钟和期望输出时钟频率关系为
/
= -1
2
系统时钟频率 期望输出时钟频率
分频器模值 。
所以,把 50MHz 时钟分频,输出 1Hz 的时钟,分频器的模值为
50000000/1
= -1=24999999
2
M
为了保证分频器正常工作,计数器寄存器所能表示的最大值必须大于分频器的模值。
这里,设置把计数器寄存器的位数设定为 32 位,计数器寄存器可表示的最大数值为
32
2 -1=4294967295>24999999
。具体代码见附录一。流程图如图 1 所示。
2
图
1
分频器
3.2 45
秒倒计时
输入:时钟信号,重置信号,紧急信号
输出:十位 8421BCD 码,个位 8421BCD 码,交换通行信号
功能:44 计数到 0,可通过紧急信号暂停计数或通过重置信号使计数清零。
一个方向的红绿灯红灯 45 秒,绿灯 40 秒,黄灯 5 秒,一直重复。我设计了一个 45
秒计时器。当紧急信号为
0
时,计时器从
45
倒计时到
0
,当紧急信号为
1
时,计时器停
止计时。倒计时过程中输出倒计时的十位和个位的 8421BCD 码。当计数器计数到 0 时,
输出一个周期高电平,代表需要交换通行方向。具体代码见附录二。流程图如图 2 所示。
3
图
2 45
秒倒计时
3.3
数码管译码器
输入:数字的
8421BCD
码,重置信号,使能信号。
输出:数码管 7 段编码。
功能:把 8421BCD 码转化为数码管编码输出。
为了实现输入 8421BCD 码,时数码管显示相应的数字,需要对 8421BCD 码进行译
码,使用
switch-case
语句,当输入一个
8421BCD
码时,输出相应的数码管的编码。输
入还有一个使能信号,当使能为 1 时,输出对应的数码管编码,当是能为 0 时,输出全
1,时数码管熄灭。具体代码见附录三。流程图如图 3 所示。