




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.harbin institute of technologyverilog实验报告(2)实验内容: 交通信号灯控制器 班 级: 姓 名: 学 号: 哈尔滨工业大学2015年6月精品.一、 功能描述本设计利用verilog hdl 语言,对一个十字路口的交通信号灯进行控制,可控制4个路口的红、黄、绿、左转四盏信号灯,让其按特定的规律进行变化。并通过modelsim软件对系统进行了仿真。仿真结果表明系统可自动实现十字路口红绿灯及左转弯信号灯的控制。实现设计目标如下:(1)设计一个十字路口的交通灯控制电路,每条路配有红、黄、绿、左转四盏交通信号灯。通过控制器对四个路口的四组交通灯的状态实现自动循环
2、控制;(2)实现两主干道车辆交替运行,每次通行直行时间为30 秒;左转时间为10秒,右转不受信号灯控制。(3)黄灯作为绿灯转为左转灯,左转灯转为红灯的过渡信号灯,过渡时间为5s。(4)系统设有总复位开关,可在任意时间对系统进行复位。二、设计方案1.设计思路我们对图1所示的十字路口进行设计,路口a和路口c的车辆同时行驶,路口b和路口d的车辆同时行驶,所以虽然要控制4组信号灯,但其实它们可以俩俩合并,这样大大简化了设计。由于我们采用自动控制方式,两个方向的灯按照顺序依次交替循环显示,每种灯亮的时间结合实际生活合理设定。系统设有复位开关,可在任意时间内对系统进行复位。精品.图1 十字路口示意图由以上
3、分析可知,该系统可视为一个状态机,而且共有8种状态,如表1所示。表1 交通灯状态示意表由上表我们还可以得到状态转换图,如图2所示:s7s0000003s11s6s25s5s36s47精品.图2 状态转移示意图该状态机共有两个输入信号rstn和clk,rstn为复位信号,当该信号为低电平时,状态机处于s0,且状态不发生改变。当rstn为高电平时,这8个状态依次按时间顺序发生变化,每个状态保持多长时间由clk信号控制。三、 关键代码1.我们通过宏定义来设置每个状态保持的时间,这样既增强了代码的可读性,又方便以后的更改。由于此实验不做硬件设计,只是通过仿真来验证,所以为了方便看波形,我们用一个时钟周
4、期代表5s,具体代码如下:define g2ydelay 6/绿灯亮转到红灯亮的延迟,用一个时钟周期代替5s, /则此延迟为30s,这样做是为了仿真时容易看波形define y2ldelay 1/黄灯亮转到左转灯亮的延迟时间为5sdefine l2ydelay 2/左转灯亮转到黄灯亮的延迟时间为10sdefine y2rdelay 1/黄灯亮转到红灯亮的延迟时间为5s2. 我们用一个16位的reg类型的向量light来代表16盏交通信号灯,light15:12代表a路口,light11:8代表b路口,light7:4代表c路口,light3:0代表d路口,高位到低位依次表示左转灯,红灯,绿灯,
5、黄灯 且每一位用1代表亮,0代表灭。3. 用state表示当前状态,用next_state代表下一个状态,当rstn被拉低时,让系统处于s0状态,否则在时钟上升沿到来时将next_state赋给state。代码如下:always (posedge clk) if(!rstn)begin state=s0; next_state=s0; end else state=next_state;/状态改变精品.4. 当系统处于某种状态时必须有确定的输出,通过运用case语句代码可读性更强,而且简介。代码如下:always (state) begin case(state) s0:light=16b00
6、10_0100_0010_0100; s1:light=16b0001_0100_0001_0100; s2:light=16b1000_0100_1000_0100; s3:light=16b0001_0100_0001_0100; s4:light=16b0100_0010_0100_0010; s5:light=16b0100_0001_0100_0001; s6:light=16b0100_1000_0100_1000; s7:light=16b0100_0001_0100_0001; endcase end5.控制状态何时发生改变是关键,通过repeat语句来实现延时,而且只有当rs
7、tn为高电平是,状态才可以发生改变,代码如下:always (state or rstn) begin if(rstn)begin case(state) s0:begin repeat(g2ydelay-1) (posedge clk); next_state=s1; end s1:begin repeat(y2ldelay-1) (posedge clk); next_state=s2; end s2:begin精品. repeat(l2ydelay-1) (posedge clk); next_state=s3; end s3:begin repeat(y2rdelay-1) (pose
8、dge clk); next_state=s4; end s4:begin repeat(g2ydelay-1) (posedge clk); next_state=s5; end s5:begin repeat(y2ldelay-1) (posedge clk); next_state=s6; end s6:begin repeat(l2ydelay-1) (posedge clk); next_state=s7; end s7:begin repeat(y2rdelay-1) (posedge clk); next_state=s0; end endcase end end四、 仿真与验证
9、1. 首先写一个test bench,由于输入信号少,而且状态是通过延时状态自动发生改变的,所以比较简单。详细代码见附录2。精品.2. 通过modelsim进行仿真,仿真时间设为500ns,波形图如图3,从图中我们可以看到该系统基本实现了功能。图3 仿真波形图3. 放大局部,我们更细致地观察,可以确保它的正确性,如图5。图4 局部放大图五、 结论通过对交通信号控制器进行功能仿真,本设计达到了预定设计的目的,实现了利用verilog语言设计自动控制十字路口交通灯这样一个简单的数字系统,各交通灯设计任务要求正常运行。不过这是在理想状态下进行的仿真,如果考虑到实际门延时,该系统是否可靠,有待于进一步
10、验证。附录1交通信号灯的verilog代码:define g2ydelay 6/绿灯亮转到红灯亮的延迟,用一个时钟周期代替5s, /则此延迟为30s,这样做是为了仿真时容易看波形define y2ldelay 1/黄灯亮转到左转灯亮的延迟时间为5sdefine l2ydelay 2/左转灯亮转到黄灯亮的延迟时间为10sdefine y2rdelay 1/黄灯亮转到红灯亮的延迟时间为5s精品.module sign_control(light,rstn,clk); output15:0 light; input rstn,clk; reg15:0 light;/light15:12代表a路口 /
11、light11:8代表b路口 /light7:4代表c路口 /light3:0代表d路口 /高位到低位依次表示左转灯,红灯,绿灯,黄灯 且每一位用1/代表亮,0代表灭 /状态定义 parameter s0=3d0, s1=3d1, s2=3d2, s3=3d3, s4=3d4, s5=3d5, s6=3d6, s7=3d7; /内部状态变量 reg2:0 state; reg2:0 next_state; /状态只能在时钟的上升沿改变always (posedge clk) if(!rstn)begin state=s0; next_state=s0; end else state=next_
12、state;/状态改变精品. always (state) begin case(state) s0:light=16b0010_0100_0010_0100; s1:light=16b0001_0100_0001_0100; s2:light=16b1000_0100_1000_0100; s3:light=16b0001_0100_0001_0100; s4:light=16b0100_0010_0100_0010; s5:light=16b0100_0001_0100_0001; s6:light=16b0100_1000_0100_1000; s7:light=16b0100_0001
13、_0100_0001; endcase end always (state) begin case(state) s0:begin repeat(g2ydelay-1) (posedge clk); next_state=s1; end s1:begin repeat(y2ldelay-1) (posedge clk); next_state=s2; end s2:begin repeat(l2ydelay-1) (posedge clk); next_state=s3; end精品. s3:begin repeat(y2rdelay-1) (posedge clk); next_state=
14、s4; end s4:begin repeat(g2ydelay-1) (posedge clk); next_state=s5; end s5:begin repeat(y2ldelay-1) (posedge clk); next_state=s6; end s6:begin repeat(l2ydelay-1) (posedge clk); next_state=s7; end s7:begin repeat(y2rdelay-1) (posedge clk); next_state=s0; end endcase end endmodule附录2激励块代码如下:timescale 1ns/100psmodule
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国自来水行业市场发展深度分析及前景趋势与投资研究报告
- 2025-2030中国自动物料搬运行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国自动售烟机行业市场发展趋势与前景展望战略研究报告
- 2025年蒸馏装置项目可行性研究报告
- 2025-2030中国腐蚀性灌装机行业市场现状供需分析及投资评估规划分析研究报告
- 2025年荧光浮子项目可行性研究报告
- 2025-2030中国耐电压测试仪行业市场发展分析及发展趋势预测与战略投资研究报告
- 2025-2030中国红茶行业市场发展分析及投资前景与投资策略研究报告
- 2025-2030中国紫外线固化苯胺油墨行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国稳压管行业供需趋势及投资风险研究报告
- 新建农副产品深加工项目立项申请报告
- 工商企业管理毕业论文范文 工商企业管理5000论文范文
- 国际金融学课件完整版
- 2024会计职业规划
- 2024年(中级)多媒体应用设计师软考试题库大全(含真题等)
- 国家电网公司招聘高校毕业生应聘登记表
- 公众号转移合同模板
- 施工现场扬尘控制专项方案
- DB4413-T 44-2024 废气收集处理设施安装维护消防安全指南
- 《智慧旅游认知与实践》课件-第八章 智慧旅游目的地
- 2024年港澳台华侨生入学考试物理试卷试题真题(含答案详解)
评论
0/150
提交评论