为什么仿真没有波形 那里出错误了
功能模块:
module clkdiv
(
clk,rst_n,
clk_div
);
input clk; //20MHZ时钟
input rst_n; //复位,低电平有效
output clk_div; //分频信号,连接到蜂鸣器
reg [23:0]cnt; //分频计数器
always @ (posedge clk or negedge rst_n)
if(!rst_n)
cnt <= 24'd0;
else
cnt <= cnt+1'b1;
//////////////////////////////////
reg clk_div_r; //clk_div信号寄存器
always @ (posedge clk or negedge rst_n)
if(!rst_n)
clk_div_r<=1'b0;
else if(cnt==24'd9_999_999)
clk_div_r<=~clk_div_r; //每1秒让clk_div_r翻转一次
///////////////////////////////////
assign clk_div=clk_div_r;
endmodule
激励模块:
`timescale 1 ns/ 1 ns
module clkdiv_vlg_tst();
reg clk;
reg rst_n;
wire clk_div;
clkdiv i1 (
.clk(clk),
.clk_div(clk_div),
.rst_n(rst_n)
);
initial
begin
clk=0;
forever
#50 clk=~clk;
end
initial
begin
clk=0;
rst_n=0;
#100 rst_n=1;
end
endmodule
此帖出自
小平头技术问答
if(!rst_n)
cnt <= 24'd0;
else
cnt <= cnt+1'b1;
===============================
注意看,你的cnt只会翻转一次,并且只在rst_n复位信号为低,cnt才会清零。
如果是modelsim中,cnt+1超过24bit,会自动变为25bit,不会清零,必须要手工清零。
还有这事啊?
一周热门 更多>