交通灯的实现FPGA实验报告Spartan精要.docxVIP

交通灯的实现FPGA实验报告Spartan精要.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FPGA课程设计 交通信号灯控制器 学院名称专业名称学生姓名学号指导教师二〇一四年十二月 交通信号灯控制器 一、设计要求 位于十字路口的交通灯,在A方向和B方向各有红、黄、绿三盏灯,按所列顺序进行循环,交通灯循环顺序见表1所示。其中1表示灯亮,0表示灯灭。 表1交通灯循环顺序 东西方向南北方向红灯黄灯绿灯红灯黄灯绿灯100001100010010010010100001100010100010010100010(1)对持续时间的要求如下: 东西方向绿灯亮,南北方向红灯亮,时间10秒 东西方向或南北方向黄灯亮,时间持续2秒。 东西方向红灯亮,南北方向绿灯亮,时间持续10秒。 (2)如果实现发生紧急事件,如救护车、警车、抢险车通过,可以手动控制四个方向的红灯全亮。 画出交通灯的状态转移图。要求用状态机输入方法实现交通灯的状态转移。时间控制可以用HDL语言设计实现。 二、原理说明 采用计数器产生交通灯状态跳转的信号,同时输出当前倒计时给数码管显示模块控制数码管显示倒计时。 根据交通灯循环顺序表可以得到如表2的循环状态表,遇到紧急状况的时候进入状态零,这时候东西方向和南北方向都是红灯禁止通行,紧急状态结束后条件满足的情况下状态依次往后跳转。 表2 交通灯循环状态表 状态东西方向南北方向时间0 红灯亮红灯亮1绿灯亮红灯亮10s2黄灯亮红灯亮2s3红灯亮绿灯亮10s4红灯亮黄灯亮2s 根据表2交通灯循环状态表可以画出交通灯循环的状态转移图,状态图如下: s1=0 s2=4b0001 s1=0 s2=4b1000 St1 s1=0 s1=1 s1=1 s1=1 St2 St4 St0 s1=1 s1=0 s2=4b0010 s1=0 s2=4b0100 St3 图1 交通灯状态图 三、总体设计和仿真 3.1总体结构 交通信号控制器包括分频模块、计数模块、时间控制模块、数码管显示模块和主控制模块。分频模块将50MHz的时钟分频到1Hz,计数模块以秒为单位记时,当计数器计数到一定的时间后,主控电路改变输出状态,数码管显示模块显示时间倒计时。 图2 交通灯控制原理图 3.2各个分模块的设计 分频模块 分频模块(clk_1Hz)的功能是将50MHz的时钟频率分频到1Hz,输出给计时模块。分频模块的Verilog程序见附录。 计数器模块 计数器模块(counter)的功能是对分频模块产生的1Hz频率进行计数得到10s钟和2s的倒计时,并且将倒计时数值输出给数码管显示模块(led_out)。经过第一个10s的时候输出s2为1000,在经过一个2s的时候s2输出为0100,再经过10s之后s2为0010,然后再计时2s后s2输出为0001,如此不断的经过计数后循环的让s2变化,用于控制状态的跳转。计数器模块的Verilog程序见附录。 仿真结果: 局部放大 S2=0100 S2=1000 图3 计数器仿真结果 数码管显示模块(led_out) 数码管显示模块的功能是将当前倒计时的数值输出显示,控制数码管显示。数码管显示模块的Verilog程序见附录。 时间控制模块(time_control) 时间控制模块的功能是控制选择不同的计算器,不同的计数器对应于不同的时间间隔,这里控制的是10-2s的计数器和15-5s的技术器。时间控制模块的Verilog程序见附录。 主控制模块(traffic_control) 主控制模块的功能是控制红黄绿灯的显示,当计数器计时完成状态就跳转到下一个状态。 利用状态图输入法生成程序,在工程下面建立状态图输入工程,然后绘制状态图,绘制好的状态图编译保存生成Verilog程序 图4 状态图输入法 将生成的Verilog程序添加到工程里面,用modelsim进行仿真,并绘制其状态图,以检验生成的程序是否正确。 图5 Modelsim仿真绘制的状态图 局部放大 r1y2 y1r2 r1g2 r1g2 g1r2 图6 主控电路仿真结果 这里r1g2表示南北方向红灯亮东西方向绿灯亮,r1y2、g1r2、y1r2、r1g2同理。 3.3工程总体结构 设计完成后工程的总的结构如下: 图7 工程结构 图8 总的电路图结构 3.4结构优化 当前设计的资源利用情况如下图所示: 图9 优化前资源利用情况 状态编码可以采用顺序编码和独热编码,顺序编码电路简单触发器资源使用少,但是状态译码复杂,系统速度较慢;独热编码电路较复杂,但简化了译码逻辑,系统较快,可用于高速状态机设计。 设计中有一个分频可以简化,不需分频直接使用系

您可能关注的文档

文档评论(0)

糖糖 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档