verilog行为仿真时钟激励显示总是z

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
仿真波形如下。我的激励根本没起作用。

initial内部就写信号的初始值,出现z的情况一般是没有初始值。后面测试的逻辑以及时钟的产生用always进程来写。这样就可以了。 参考技术A 把时钟激励改成 always@ #100 CLK = ~CLK;你完全是C语言的思路啊。追问

创造时钟激励的写法确实有问题。。然后我改了。。仿真结果依然是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行为仿真时钟激励显示总是z的主要内容,如果未能解决你的问题,请参考以下文章

用verilog 如何写vga 显示时钟

verilog仿真的时钟问题

verilog--逻辑仿真的构成及设计举例

基于FPGA的数字时钟verilog开发

verilog中除法运算在modelsim仿真中只要一个时钟周期就能完成,实际上也是这样吗?

在FPGA设计中,激励 是啥意思?能够给个激励的具体解释呢,谢谢