收藏 分享(赏)

Verilog实验报告 交通灯.doc

上传人:精品资料 文档编号:8549979 上传时间:2019-07-02 格式:DOC 页数:8 大小:110.50KB
下载 相关 举报
Verilog实验报告 交通灯.doc_第1页
第1页 / 共8页
Verilog实验报告 交通灯.doc_第2页
第2页 / 共8页
Verilog实验报告 交通灯.doc_第3页
第3页 / 共8页
Verilog实验报告 交通灯.doc_第4页
第4页 / 共8页
Verilog实验报告 交通灯.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、Verilog 实验报告-第四次 交通灯班级:集电 0802 班 姓名: 张鹏 学号: 04086057 序号: 16 一、规范(1 ) 具有开关功能:当 reset=0 时 红绿灯关闭,使主支干道六个灯全灭;(2 ) 具有四个功能:当 reset=1 且 func=2b00 时,主干道和支路正常计数;且 func=2b01 时,支干道一直绿灯,主干道一直红灯;且 func=2b10 时,主干道一直绿灯,支干道一直红灯;且 func=2b11 时,主干道和支干道一直黄灯闪;(3 ) 计数器频率:运行频率 2Hz 计数器;(4 ) 信号灯种类:红、黄、绿;(5 ) 信号灯计执行时间关系:主干道:

2、绿灯常亮+绿灯闪+黄灯=支干道:红灯常亮;此设计中:主干道:绿灯常亮=57s,T 绿灯闪=3s,T 黄灯亮=3s支干道:绿灯常亮=15s,T 绿灯闪=3s,T 黄灯亮=3s(6 ) 信号灯到计时功能:信号灯预置后,开始执行 2Hz 计数器;(7 ) 信号灯跳转功能:当各信号灯计时至 T 时在下一个时钟信号上升沿到来时自动转为下一状态;(8 ) 信号灯各状态跳转关系:绿-黄-红- 绿;二、输入输出定义reset,clk, func1:0 ,green1:0,red1:0,yellow1:0信号名 宽度 输入/输出 管脚 描述reset 1 input L13 红绿灯总开关clk 1 input

3、C9 freq:50MHzfunc 2 input N17/H18 控制红绿灯功能green1 1 output D11 主绿green0 1 output E11 支绿red1 1 output F11 主红red0 1 output F12 支红yellow1 1 output C11 主黄yellow0 1 output E12 支黄三、模块设计状态转移图:四、测试代码module frequency_divider_small(reset,clk,out); /重写一个小分频模块测试交通灯主模块功能 input reset,clk;output out;reg 1:0 temp;reg

4、 out;always (posedge clk or negedge reset)if (!reset)temp=2b00; else temp=(temp=2b11)?2b00:temp+2b01;always (temp)out=(temp=2b11);endmodule module test_traffic_light;reg reset,clk;reg 1:0 func;wire 1:0 green;wire 1:0 red; wire 1:0 yellow;traffic_light simulation(.reset(reset),.clk(clk),.func(func),.

5、green(green),.red(red),.yellow(yellow);always #10 clk=clk;initial begin reset=0;clk=1;func=2b00;#20 reset=1;#21000 func=2b01;#10000 func=2b10;#10000 func=2b11;endendmodule波形:五、源代码module frequency_divider(reset,clk,out);/分频模块,把 50MHz 时钟分成半秒计时器input reset,clk;output out;reg 5:0 mol1,mol2;reg 6:0 mol3,

6、mol4;reg out1,out2,out3,out;always (posedge clk or negedge reset)/把 25000000 分成 40*40*125*125if(!reset)mol1=6d0;elsemol1=(mol1=6d39)?6d0:mol1+6d1;always (posedge clk or negedge reset)if(!reset)mol2=6d0;else if(out1)mol2=(mol2=6d39)?6d0:mol2+6d1;always (posedge clk or negedge reset)if(!reset)mol3=7d0

7、;else if(out2)mol3=(mol3=7d124)?7d0:mol3+7d1; always (posedge clk or negedge reset)if(!reset)mol4=7d0;else if(out3)mol4=(mol4=7d124)?7d0:mol4+7d1;always (mol1 or mol2 or mol3 or mol4)beginout1=(mol1=6d39);out2=(mol2=6d39)out3=(mol3=7d124)out=(mol4=7d124)endendmodulemodule traffic_light(reset,clk,fun

8、c,green,red,yellow);/交通灯主模块input reset,clk;input 1:0 func;output 1:0 green,red,yellow;reg 1:0 green,red,yellow;reg 2:0 state;reg 6:0 cnt;wire in;parameter greentime1=6d57;/主干道绿灯时间parameter greentime0=6d27;/支干道绿灯时间parameter yellowtime=3d3;/黄灯时间,绿灯闪时间frequency_divider fenpin(.reset(reset),.clk(clk),.o

9、ut(in);/调用分频模块always (posedge clk or negedge reset)if(!reset)begincnt=7d0;state=3d1;green=2b00;red=2b00;yellow=2b00;endelseif(in)/分频器结果当主模块始能if(func=2b00)/选择不同功能控制开关if(cnt=7d0)case(state)/选择不同状态3d1:begincnt=greentime11;state=3d2;green=2b10;red=2b01;yellow=2b00;end3d2:begincnt=yellowtime1;state=3d3;e

10、nd3d3:begincnt=yellowtime1;state=3d4;green=2b00;red=2b01;yellow=2b10;end3d4:begincnt=greentime11;state=3d5;green=2b01;red=2b10;yellow=2b00;end3d5:begincnt=yellowtime1;state=3d6;end3d6:begincnt=yellowtime1;state=3d1;green=2b00;red=2b10;yellow=2b01;endendcase else begincnt=cnt-7d1;/倒计数,计数结束进入下一状态case(

11、state)3d3:green1=cnt0;/主干道绿灯闪3d6:green0=cnt0;/支干道绿灯闪endcaseendelse if(func=2b10)/主干道常绿,支干道常红begincnt=0;state=3d1;green=2b10;red=2b01;yellow=2b00;endelse if(func=2b01)/主干道常红,支干道常绿begincnt=0;state=3d1;green=2b01;red=2b10;yellow=2b00;endelse if(func=2b11)/主干道,支干道黄灯一直闪begincnt=0;state=3d1;green=2b00;red=2b00;yellow1=yellow1;yellow0=yellow1;endendmodule

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报