• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

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

09/04 08:38
324
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2409251RT1J9.doc

共1个文件

名称:简单交通灯状态机模块设计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

演示视频:

设计文档:

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

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1134

  • 2-2409251RT1J9.doc
    下载

相关推荐