交通灯 verilog

本文介绍了使用Verilog设计交通灯控制模块,包括状态机控制、分频器生成1Hz时钟以及数码管动态扫描显示的方法。
摘要由CSDN通过智能技术生成

目录

控制模块

分频器

数码管显示

顶层模块


 

控制模块

通过状态机完成相应功能

module TOP(clk,rst_n,en_n,led,a);
input clk;
input rst_n;
input en_n;
output [5:0] led;
output [4:0] a;
parameter 	s0   = 2'b00,
			s1 	 = 2'b01,
			s2   = 2'b10,
			s3   = 2'b11;

reg [1:0] next_state;
reg [1:0] current_state;
always@(posedge clk or negedge rst_n)
begin
	if(!rst_n)
		current_state <= s0;
	else 
		current_state <= next_state;
end
reg [4:0] cnt;
always@(posedge clk or negedge rst_n)
begin
	if(!rst_n)
		begin
			next_state <= s0;
			cnt <= 5'd30;
		end
	else 
	case(current_state)
	s0:
		begin
			if(en_n == 1'b1)
				next_state <= s0;
			else
			 begin
			  if(cnt == 4)
			  begin
				next_state <= s1;
				cnt <= 5'd3;
		            end
				else
						begin 
							cnt <= cnt - 1'b1;
				end	
					end 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值