verilog数字电路实验 交通灯

本文介绍了使用Verilog进行数字电路实验,特别是交通灯控制系统的实现。内容包括源码展示、测试激励文件的示例以及具体的管脚配置,适合数字电路初学者进行仿真实践。
摘要由CSDN通过智能技术生成

数字电路设计@heyian910

verilog数字电路实验 交通灯

源码

module main(
		input clk,
		input clr,
		input start,
		input stopa,
		input stopb,
		input pause,
		output [3:0] AN,
		output [7:0] SEG,
		output reg [2:0] LA,LB//红 黄 绿
    );
	 reg [1:0] state1,state2;
	 reg newstart = 1'b1;  //
	 reg [15:0] Data;
	 reg [3:0] Data_4;
	 wire [1:0] BIT_SEL;
	 reg Increment;
	 integer clk_num=0;
	 delay_5ms uu1(clk,BIT_SEL);
	 SMG uu2(Data_4,BIT_SEL,SEG,AN);
	 
	 initial begin Data <= 16'b0; Increment = 1'b0;end
	 
	 always@(posedge clk)
	 begin
		if(clk_num<25000000) //设置数字跳转频率
		begin
			clk_num = clk_num+1;
			Increment = 1'b0;
		end
		else
		begin
			clk_num = 0;
			Increment = 1'b1;
		end
	 end
	 
always@(posedge clr  or posedge Increment )
if(clr)
begin
   Data <= 16'b1010101010101010;//输出“----”
	LA <= 3'b100;
	LB <= 3'b100;
	state1 <= 2'b00;
	state2 <= 2'b00;
	newstart = 1'b1;
end		
else if(stopa)
     begin
		 Data <= 16'b1111111111111111;//熄灭
		 LA <= 3'b100;
		 LB <= 3'b001;
	  end
	  else if(stopb)
	       begin
		      Data <= 16'b1111111111111111;//熄灭
		      LA <= 3'b001;
		      LB <= 3'b100;
	       end
	       else if(start)                      //系统开始运行
	            begin
		           if(!pause)
		           begin
			          if(newstart==1'b1)
			          begin
				         Data <=16'b0010000000110000;//30s 40s          111111111111111111111111
				         LA<=3'b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值