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

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

软件:Quartus

语言:Verilog

代码功能:

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



FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com


演示视频:

设计文档:

设计文档.doc

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

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 正数倒数计时器设计Verilog代码Quartus仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员