verilog 实现一个时钟
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog 实现一个时钟相关的知识,希望对你有一定的参考价值。
参考技术A testbench中:initial
clk=0;
always
#25 clk=~clk; //周期为50的clk追问
这。。。然后呢?
追答然后就行了啊~~ testbench是由quartusii 和 ise软件直接生成的。 你在initial 和 always中输入上述语句 就是一个 周期信号啊 可以作为 自己编的.v程序的周期输入
参考技术B 产生时钟的方法有很多,以下是一个:在testbench中编写一下测试脚本,
initial begin
clk=0;
forever #10 clk=~clk; // 周期为20ns的时钟
end
可以利用此编写的时钟测试你所编写的verilog程序
希望能帮到你哦哦!!!!
verilog行为仿真时钟激励显示总是z
仿真代码如下:
module test();
div div(
.CLK(CLK),
.CLK_out(CLK_out)
);
reg CLK=0;
wire CLK_out;
initial
begin
while(1)begin
CLK=0;
#100;
CLK=1;
#100;
CLK=0;
#100;
CLK=1;
#100;
end
end
endmodule
使用的是vivado
仿真波形如下。我的激励根本没起作用。
创造时钟激励的写法确实有问题。。然后我改了。。仿真结果依然是z,不止这个程序,我按书上的例程照抄然后进行仿真CLK信号也是z。。我写的时钟激励信号根本输不进去
参考技术B reg CLK = 0; 改成 reg CLK;追问改了之后还是z。。。
追答你的div代码是不是也乱赋值了?
试试这个:
module div (CLK, CLK_out);
input CLK;
output CLK_out;
assign CLK_out = CLK;
endmodule
如果还不行,换编译器吧。
z(高阻)的形成的还有一个原因是内部定义是tri类型。其他都应该是 x(不确定) 态。
请问tri类型是什么意思。。
参考技术C 最后怎么解决的 我也是这样以上是关于verilog 实现一个时钟的主要内容,如果未能解决你的问题,请参考以下文章