我是靠谱客的博主 细腻果汁,最近开发中收集的这篇文章主要介绍verilog计数器count.v和测试台文件,同步置数、同步清零,计数功能,仿真波形及分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、写模块count.v和测试文件tcount.v代码:

module count(out,data,load,reset,clk);
output[7:0] out;
input[7:0] data;
input load,clk,reset;
reg[7:0] out;
always @(posedge clk)
begin
if(!reset)
out=8'h00;
else if(load) out=data;
else
out=out+1;
end
endmodule
//测试文件tcount.v
`timescale 1ns/1ns
module tcount;
wire[7:0] out;
reg[7:0] data;
reg load,clk,reset;
initial
begin
clk = 0;
#10 forever #10 clk = !clk;
end
initial
begin
reset=1; load=1; data = 8'h01;
#40 data = 8'h4;
#40
data = 8'h20;
#40
data = 8'h80;
#40 load=0;
#160 reset=0;
end
//exemplify
count v1_count(
.out (out),
.data (data),
.load (load),
.reset (reset),
.clk (clk)
);
endmodule

代码分析:
开始设置rst为1,load为1,clk在第10s开始出现上升沿,前160ns为同步置数功能,out输出值就是data的数据。在第160ns时刻当load为0时,开始计数功能,在原来的值加1。在第320ns时刻reset设置为0,执行复位操作,所以输出为0。
2、仿真结果分析:

在这里插入图片描述
3、结果分析:
仿真波形中从上到下分别是clk、reset、load、data和out。reset为1且load为1的时候,为置数功能,输出out的值就为data的值,当reset为1且load为0时候,为计数功能,每来一个上升沿,计数值加1,当reset为0时输出out为0,仿真结果和预期实现的完全一致,实验正确。

最后

以上就是细腻果汁为你收集整理的verilog计数器count.v和测试台文件,同步置数、同步清零,计数功能,仿真波形及分析的全部内容,希望文章能够帮你解决verilog计数器count.v和测试台文件,同步置数、同步清零,计数功能,仿真波形及分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部