文档详情

《Verilog HDL数字系统设计——原理、实例及仿真》课件第10章.pptx

发布:2025-02-20约3.12万字共10页下载文档
文本预览下载声明

第10章综合应用实例

10.1交通灯控制系统

10.2多功能数字钟

10.3乐曲播放器

10.4VGA控制器

10.1交通灯控制系统

交通灯控制系统是一个比较简单的数字系统,它是通过控制交通道路的通行和等待时间来实现交通控制的,因此控制系统的主要功能是实现红、绿灯状态控制并显示当前状态持续的时间。这里设计的一个交通控制系统具有紧急状态、测试状态和正常工作三种状态。紧急状态用于处理一些突发的状态,如戒严等,此时双向路口禁止通行;测试状态可用于检测信号灯和数码管的硬件是否正常;正常工作状态则用于双向路口的信号灯控制。

交通灯控制系统通常控制十字路口两个方向的信号灯,

两个方向中车流量比较大的道路称为主干道,其绿灯的时间较长,而另一个方向就是次干道。两个路口的工作原理是相同的,主要区别是红、绿灯的时长不同,所以可以先实现一个路口的控制模块,然后再用该模块构成一个十字路口的控制系统。

10.1.1交通灯控制系统的设计思路

这里先介绍一个路口控制模块的设计思路。该模块包括复位状态、正常工作状态、紧急状态和信号灯测试状态,

reset_n(复位信号)、emergency(紧急状态信号)和test(测试状态信号)是状态控制输入信号。

10.1.2一个路口控制模块的代码

一个路口控制模块traffic_con的各端口信号的说明如下:输入信号:

clk——1Hz时钟信号;

reset_n——复位信号,低电平有效;

prim_flag——主、次干道标志,1为主干道,0为次干道;red_time——红灯时间(秒);

green_time——绿灯时间(秒);

yellow_time——黄灯时间(秒);

emergency——紧急状态控制信号;

test——信号灯测试控制信号。

输出信号:

wait_time——当前状态的倒计时时间输出;

ryg_light[2:0]——红、黄、绿信号灯状态输出。

【代码10.1】单个路口交通灯控制模块。

主干道和次干道的初始化状态截图如图10.1和图10.2所示,

图10.1中prim_flog=1,表示该路口是主干道。因此,在复位

信号无效后,红、黄、绿灯的输出信号ryg_light立即为3b001,即绿灯亮,由于green_time=6,所以绿灯持续时间应为6秒钟,在wait_time输出分别为6、5、4、3、2、1后,ryg_

light为3b010,绿灯亮,绿灯持续2秒后,ryg_light=3b100,红灯亮,红灯持续9秒钟后,ryg_light=3b001,绿灯再次亮。

Itrafictest/primflag

+jitrafictestiwaitLtime120

+010oo

心第Nowb0ons

Cursor1)96ns

wave-default

Messages

jtrafictestick

+今jtrafic_testired_tme

田trafic_test/yellow_time2

图10.1主干道复位仿真波形

010

3000ns

001

4000ns

o

1000ns

Messages

jtrafic_test/ck

jtrafic_testjreset_n

+jtrafic_testredtime

+今jtrafic_testigreentime

+

jtrafic_testiyelow_time

jtrafic_testjemergency

jtrafictestitest

jtrafic_testjprimflag

+jtrafictest/wait_time

+ftrafic_testiryg_light

12

|0

0

0

3

o0101)000Yo0

图10.2次干道复位仿真波形

图10.2中,prim_flag=0,表示该路口是次干道。在复位

信号无效后,红、黄、绿灯的输出信号ryg_light=3b100,即红灯先亮。红灯持续9秒后依次是绿灯亮6秒、黄灯亮2秒。

图10.3所示是通行时间重新设置后的仿真波形。图中可以看出,红、绿、黄灯的通行时间分别由9秒、6秒、2秒变为12秒、8秒和4秒后,新的灯时按照新输入时间运行;当前的绿灯状态结束后,随后的黄灯时间变为4秒,红灯时间变为12秒。

wave-defaut

Messagesjtrafic_testick

jtrafic_testir

显示全部
相似文档