基于Verilog HDL的四位计数器设计

采用Verilog HDL设计4bits计数器,采用同步计数的方式,设计文件如下所示:

//4位计数器的仿真程序
//Author:学习FPGA的电气小兴兴
//Time:2023-11-09

module count4
(
	input	wire			clk			,
	input	wire			reset		,
	output	reg		[3:0]	out			 
);

always @(posedge clk) begin
	if (reset) //同步复位
		out<=4'd0; 
	else 
		out<=out+4'd1; //计数
end

endmodule

采用Quartus综合后的电路如下图所示。

编写Testbench,验证设计文件逻辑功能的正确性,如下所示。

//4位计数器仿真程序
//Author:学习FPGA的电气小兴兴
//Time:2023-11-09

`timescale 1ns/1ns
//`include "count4.v"
module coun4_tb;
parameter DELAY=10;

reg clk,reset; //测试输入信号定义为 reg 型
wire[3:0] out; //测试输出信号定义为 wire 

always #(DELAY/2) clk = ~clk; //产生时钟波形
initial begin //激励信号定义
	clk =0; reset=0;
	#DELAY reset=1;
	#DELAY reset=0;
	#(DELAY*20) $stop;
end
//定义结果显示格式
initial $monitor($time,,,"clk=%d reset=%d out=%d", clk, reset,out);

//例化
count4 mycount(.clk(clk),.reset(reset),.out(out)); //调用测试对象

endmodule

采用Questa进行波形仿真,仿真波形如下图所示,初始为不定状态,复位后开始计数,并且计数到最大值15的时候归零,重新开始计数。

Questa打印结果如下图,逻辑功能完全正确,验证成功。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值