概述
posedge clk // clk时钟上升研posedge
negedge res // res复位下降沿negedge
counter.v:
// 2022-1-20 verilog 学习
// 计数器 时序逻辑一定有触发器,触发器一定有时钟信号clk和复位信号res
`timescale 1ns/10ps
module counter(
clk,
res,
y
);
input clk; // 对时钟计数,时钟信号是输入
input res;
output[7:0] y; // 输出8位
//reg[7:0] y; // 对y赋值,需要reg型变量
//wire[7:0] sum; // 中间变量, +1运算的结果
//assign sum = y+1; // 组合逻辑部分
always@(posedge clk or negedge res) // 敏感变量,输入
if(~res) begin
y<=0; //复位下降沿,y清零
end
else begin
//y<=sum; // 正常工作,y=sum
y <= y+1; // 时钟每次以来,计数器+1
end
endmodule
// testbench 测试台
module counter_tb;
reg clk,res; // 需要改变的输入
wire[7:0] y; // 需要看的输出
counter counter(
.clk(clk),
.res(res),
.y(y)
);
// 赋值输入
initial begin
clk <= 0; res<=0;
#17 res <= 1; // 17ns后不再复位(不清零)
#6000 $stop;
end
always #5 clk = ~clk; // 每过10ns时钟取反(时钟周期为10ns)
endmodule
modelsim 仿真:
unsigned 数字显示
模拟显示
8位计数器:0加到255
仿真了两圈多
最后
以上就是妩媚泥猴桃为你收集整理的verilog 计数器 时钟 复位counter.v:modelsim 仿真:的全部内容,希望文章能够帮你解决verilog 计数器 时钟 复位counter.v:modelsim 仿真:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复