正数倒数计时器设计Verilog代码Quartus仿真

名称:正数倒数计时器设计Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

从5开始,拨动开关1,开始倒计时543210—秒一变拔动开关2,开始正向增加5.6.7.8.9.10—秒一变

1. 工程文件

2. 顶层block图

3. 模块代码

4. 程序编译

5. 仿真图

部分代码展示:

//按键控制倒计时
module down_time(
input clk_in,//时钟
input reset,//复位
input clk_1Hz,//1秒使能信号
input key_1,//开关1
input key_2,//开关2
output [3:0] time_cnt//时间
);
reg [1:0] state=2'd0;
//定义状态
parameter s_idle=2'd0;
parameter s_sub=2'd1;
parameter s_add=2'd2;
parameter s_end=2'd3;
reg [3:0] count=4'd5;//计数器
always@(posedge clk_in or posedge reset)
if(reset)//复位
state<=s_idle;//空闲状态
else
case(state)
s_idle:
if(key_1)//开关1
state<=s_sub;//递减状态
else if(key_2)//开关2
state<=s_add;//递增状态
else
state<=s_idle;//空闲状态
s_sub://递减状态
if(count==4'd0)//减到0
state<=s_end;//结束
else
state<=s_sub;//递减状态
s_add://递增状态
if(count==4'd10)//加到10
state<=s_end;//结束
else
state<=s_add;//递增状态
s_end://结束
state<=s_idle;//空闲状态
default:;
endcase
always@(posedge clk_in or posedge reset)
if(reset)//复位
count<=4'd5;//起始值为5
else
if(state==s_sub && clk_1Hz)//递减状态/1秒使能信号
count<=count-1;//递减
else if(state==s_add && clk_1Hz)//递增状态/1秒使能信号
count<=count+1;//递增
else
;
assign time_cnt=count;//时间
endmodule
源代码

点击下方的公众号卡片获取

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值