请选择 进入手机版 | 继续访问电脑版

明德扬论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫一扫,快捷登录!

查看: 194678|回复: 2

交通信号灯的真真明德扬至简设计法实现

[复制链接]

3

主题

48

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
发表于 2019-11-7 14:57:02 | 显示全部楼层 |阅读模式

马上注册,看完整文章,学更多FPGA知识。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我看了一下现在采用1s定时计数方法,然后对每个1s进行计数,要计数到30,感觉这样的实现虽然与题目要求相符,但如果
直接采用5s计数器,然后对每个5s进行计数更能体现状态的翻转,而且更为简洁明了,程序代码如下:

module ex3(
clk      ,
rst_n     ,
led_east    ,
led_south    ,
led_west    ,
led_north   
);

parameter   TIME_5S=250_000_000 ;

input          clk    ;
input          rst_n   ;
output reg [2:0]     led_east  ;
output reg   [2:0]     led_south  ;
output     [2:0]     led_west  ;
output      [2:0]     led_north  ;

reg    [27:0]    cnt0    ;
wire          add_cnt0  ;
wire          end_cnt0  ;
always @(posedge clk or negedge rst_n)begin
  if(!rst_n)begin
   cnt0 <= 0;
  end
  else if(add_cnt0)begin
   if(end_cnt0)
    cnt0 <= 0;
   else
    cnt0 <= cnt0 + 1'b1;
  end
end
assign add_cnt0 = 1;      
assign end_cnt0 = add_cnt0 && cnt0==TIME_5S-1 ;   
reg    [2:0]     cnt1    ;
wire          add_cnt1  ;
wire          end_cnt1  ;

always @(posedge clk or negedge rst_n)begin
  if(!rst_n)begin
   cnt1 <= 0;
  end
  else if(add_cnt1)begin
   if(end_cnt1)
    cnt1 <= 0;
   else
    cnt1 <= cnt1 + 1'b1;
  end
end
assign add_cnt1 = end_cnt0;      
assign end_cnt1 = add_cnt1 && cnt1== 6-1;   
always  @(posedge clk or negedge rst_n)begin
  if(rst_n==1'b0)begin
   led_east <= 3'b110;
  end
  else begin
   case (cnt1)
    0,1:led_east <= 3'b110;
    2:led_east <= 3'b101;
    3,4,5:led_east <= 3'b011;
    default:led_east <= 3'b110;
   endcase
  end
end

assign led_west = led_east;

always  @(posedge clk or negedge rst_n)begin
  if(rst_n==1'b0)begin
   led_south <= 3'b011;
  end
  else begin
   case (cnt1)
    0,1,2:led_south <= 3'b011;
    3,4:led_south <= 3'b110;
    5:led_south <= 3'b101;
    default:led_south <= 3'b011;
   endcase
  end
end
assign led_north = led_south;

endmodule



0

主题

4

帖子

48

积分

新手上路

Rank: 1

积分
48
发表于 2020-6-14 12:47:31 来自手机 | 显示全部楼层
结合数码管显示倒计时怎么实现

0

主题

2

帖子

29

积分

新手上路

Rank: 1

积分
29
发表于 2021-1-17 23:00:25 | 显示全部楼层
不错的设计 技巧

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|MDYBBS ( 粤ICP备16061416号 )

GMT+8, 2024-3-29 07:26 , Processed in 0.049032 second(s), 21 queries .

Powered by Discuz! X3.4

本论坛由广州健飞通信有限公司所有

© 2001-2019 Comsenz Inc.

快速回复 返回顶部 返回列表