简单交通灯状态机模块设计Verilog代码modelsim仿真

名称:简单交通灯状态机模块设计Verilog代码modelsim仿真

软件:modelsim

语言:Verilog

代码功能:

简单交通灯状态机模块

要求:设计一个简单交通灯状态机模块,包含一个计数器与一个状态转换模块。

当reset为1时,状态为S0,此时计数器为0

当reset为0时,状态变为S1(绿灯状态),每次当时钟clk上跳沿来临的时候,则计数器加1。

绿灯状态当计数器计到30(过了30个时钟周期)时,状态变为S2(黄灯状态),每次当时钟clk上跳沿来临的时候,则计数器加1。

在黄灯当状态计数器计到5(过了5个时钟周期)时,状态变为S3(红灯状态),每次当时钟clk上跳沿来临的时候,则计数器加1。

在红灯状态当状态计数器计到20(过了20个时钟周期)时,状态变为S1(绿灯状态)。

以此循环反复


FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

设计文档.doc

1. 思路

使用状态机进行设计,分为S0,S1,S2,S3共4个状态,S0为复位后的起始状态,S1表示绿灯,S2表示黄灯,S3表示红灯。在S1状态下进行计数,计数到30后跳转到S2状态。在S2状态下进行计数,计数到5后跳转到S3状态。在S3状态下进行计数,计数到20后跳转到S1状态。最终当状态为S1时控制绿灯亮,当状态为S2时控制黄灯亮,当状态为S3时控制红灯亮。


2. 状态图



3. verilog文件


4. testbench文件


5. 程序编译


6. 仿真图





部分代码展示:

//testbench
module testbench();
reg clock;//时钟
reg reset;//复位
wire green;//绿灯
wire yellow;//黄灯
wire red;//红灯
//交通灯
traffic_light i_traffic_light(
. clock(clock),//时钟
. reset(reset),//复位
. green(green),//绿灯
. yellow(yellow),//黄灯
. red(red)//红灯
);
initial begin
reset=1;//复位
#20;
reset=0;
end

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 简单交通灯状态机模块设计Verilog代码modelsim仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员