《基于VHDL交通灯的系统》由会员分享,可在线阅读,更多相关《基于VHDL交通灯的系统(24页珍藏版)》请在金锄头文库上搜索。
1、基于VHDL交通灯的系统,1,基于VHDL交通灯的系统设计,学生:张凯 指导教师:陈茜,基于VHDL交通灯的系统,2,目录,Vhdl交通灯设计内容 Vhdl语言简介 Maxplus简介 设计思路 仿真结果 结论,基于VHDL交通灯的系统,3,VHDL交通灯设计内容,本文介绍的是基于EDA技术针对交通信号灯控制器的设计问题,提出了基于VHDL语言的交通信号灯系统的硬件实现方法。通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的VHDL程序,并且利用Max Plus对应用程序进行了仿真,并给出了相应的仿真结果。,基于VHDL交通灯的系统,4,VHDL语言简介,VHDL诞生于1982年
2、。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容。现在因为得到众多EDA公司的支持,已成为事实上的通用硬件描述语言,基于VHDL交通灯的系统,5,VHDL在电子设计中的优点,(1)全方位硬件描述从系统到电路。 (2)多种描述方式适应层次化设计。 (3)VHDL语言的数据类型丰富。 (4)VHDL的设计不依赖于特定的器件,方便了工艺的转换。 (5)VHDL是一个标准语言,它的设计描述可以被不同的EDA 工具所支持,可移植性强,易于共享和复用。,基于VHDL交通灯的系统,6,VHDL语
3、言的特点(1),(1) VHDL具有更强的行为描述能力。强大的行为描述能力避开了具体的器件结构, 是在逻辑行为上描述和设计大规模电子系统的重要保证。 (2) VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统功能的可行性,随时可对设计进行仿真模拟。 (3) VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。,基于VHDL交通灯的系统,7,VHDL语言的特点(2),(4) 对于用 VHDL 完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把 VHDL 描述设计转变成门级网表。 (5) VHDL对设计的描述具有
4、相对独立性,设计者不必管理最终设计实现的目标器件是什么,而进行独立的设计。 (6) 用 VHDL 语言编写的源程序便于文档管理,既灵活方便,又便于设计结果的交流、保存和重用 。,基于VHDL交通灯的系统,8,VHDL进行程序设计时典型的方法,(1)描述方法的合理选用 (2)描述方式的灵活运用 (3)逻辑设计的资源共享 (4)高级设计的综合技巧 (5)设计规划的科学划分 (6)“自顶而下”的设计方法,基于VHDL交通灯的系统,9,MAX+PLUSII简介,MAX+PLUSII开发工具是美国Altera公司自行设计的一种EDA软件工具,它具有原理图输入和文本输入(采用硬件描述语言)两种输入手段利用
5、该工具所配备的编辑、编译仿真、综合、芯片编程等功能,将设计图或者电路描述程序变成基本的逻辑单元写入到可编程芯片中(如FPGA,CPLD)做成ASIC芯片。,基于VHDL交通灯的系统,10,基于VHDL交通灯的系统设计,本文是基于VHDL硬件描述语言的交通灯的系统设计。该系统由4个子电路组成。其中包括: 时钟发生电路; 计数秒数选择电路; 倒计时控制电路; 红绿灯信号控制电路。,基于VHDL交通灯的系统,11,交通信号灯系统结构图,东西及南北方向信号灯,东西及南北 方向倒计时,时钟输入端,系统复位端,基于VHDL交通灯的系统,12,系统工作程序,首先时钟发生电路产生稳定的时钟信号,为三个子电路提
6、供同步工作信号。接收到时钟信号的红绿灯信号控制电路开始工作,并将产生的重新计数的输出使能控制信号发送给计数秒数选择电路和倒计时控制电路,同时还会将目前电路产生的状态信号发送给前者。接收到重新计数的信号后计数秒数选择电路就会负责产生计数器所需要的计数值,并将这一数值发送给倒计时控制电路。当计数器计时完毕,倒计时控制器就会负责产生一个脉冲信号发送给红绿灯信号控制电路进入下一个状态,之后循环这一过程 。,基于VHDL交通灯的系统,13,时钟脉冲发生电路模块,系统输入信号: clk:由外部信号发生器提供1kHZ的时钟信号; reset:系统内部自复位信号。 系统输出信号: ena_scan:将外部的时
7、钟信号进行分频处理; ena_1hz:产生每秒一个的脉冲信号; flash_1hz:产生每秒一个脉冲的时钟信号。,基于VHDL交通灯的系统,14,时钟脉冲发生电路模块仿真结果,经仿真后得到的时序图,将clk经分频处理后得到的ena_scan信号,时钟发生电路时序图,基于VHDL交通灯的系统,15,计数秒数选择电路模块,系统输入信号: clk:由外部信号发生器提供1kHZ的时钟信号; reset:系统内部自复位信号; ena_scan:接收由时钟发生电路提供的250Hz的时钟脉冲信号; recount:接收由交通灯信号控制电路产生的重新计数的使能控制信号; sign_state:接收由交通灯信号
8、控制电路产生的状态信号。 系统输出信号: load:负责产生计数器所需要的计数数值。,计数秒数选择电路模块图,基于VHDL交通灯的系统,16,计数秒数选择电路模块仿真结果,经仿真后得到的时序图,计数秒数选择电路时序图,基于VHDL交通灯的系统,17,倒计时控制电路模块,系统输入信号: clk:由外部信号发生器提供1kHz的时钟信号; reset:系统内部自复位信号; ena_1hz:接收由时钟发生电路提供的1Hz的脉冲信号; recount:重新计数的使能控制信号; load:负责接收计数器所需要的计数数值。 系统输出信号: led:负责将计数数值转换成BCD码,并利用发光二极管显示倒计时状态
9、; next_state:当计数器计时完毕后,负责产生一个脉冲信号,作为下一个状态的触发信号。,倒计时控制电路,基于VHDL交通灯的系统,18,倒计时控制电路模块仿真结果,经仿真后得到的时序图,倒计时控制电路时序图,基于VHDL交通灯的系统,19,红绿灯信号控制电路模块,系统输入信号: clk:由外部信号发生器提供1kHZ的时钟信号; reset:系统内部自复位信号; ena_scan:接收由时钟发生电路提供的250Hz的时钟脉冲信号; ena_1hz:接收由时钟发生电路提供的1Hz的脉冲信号; flash_1hz:接收由时钟发生电路提供的1Hz的脉冲时钟信号; a_m:手动、自动切换按钮(1
10、:自动、0:手动); st_butt: 红绿灯状态切换按钮(在手动操作下,每按一次按钮就变换一个状态。 next_state:接收由倒计时控制电路提供的下一个状态的触发信号。 系统输出信号: recount:产生重新计数的输出使能控制信号; sign_state:产生输出状态信号; red:负责红色信号灯的显示; green:负责绿色信号灯的显示; yellow:负责黄色信号灯的显示。,基于VHDL交通灯的系统,20,红绿灯信号控制电路模块仿真结果,经仿真后得到的时序图,红绿灯信号控制电路时序图,基于VHDL交通灯的系统,21,交通灯系统的仿真,交通灯系统的时序图,基于VHDL交通灯的系统,22,交通灯系统管脚分布图,管脚分配图,基于VHDL交通灯的系统,23,结论,在论文设计中,通过使用MAX+PLUS这个灵活易用得EDA软件工具,利用VHDL语言设计的交通灯,较成功的完成了预期的效果,实现了三种颜色交通信号灯的交替点亮,以及时间的倒计时显示 。,基于VHDL交通灯的系统,24,谢谢各位老师!,