verilog之简单时钟信号的编写

Posted electricdream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog之简单时钟信号的编写相关的知识,希望对你有一定的参考价值。

verilog之简单时钟信号的编写

1、数字时钟信号

在数字电路中,时钟信号是重要的一类信号,一般作为激励源驱动时序电路。掌握时钟信号的编写,对于时序电路的仿真具有重要意义。所有的时序电路都需要设置时钟信号来确认时序。这里先写一个已知时间间隔的简易时钟信号。

2、基于begin-end的编写

initial begin
     
    clk=1;
    #1
    clk=0;
    #1
    clk=1;
    #1
    clk=0;
end

这个编写的逻辑非常简单,就是根据时钟信号的特点,一个时钟周期变一次,根据所需的时间长度确认重复的次数。

3、基于fork-join的编写

initial fork
    clk1=1;
    #1
    clk1=0;
    #2
    clk1=1;
    #3
    clk1=0;
    #10
    $stop();
join

这个代码是使用同步进行的fork-join来实现的。这里可以看出延时时间是绝对的,不包含前面的延时。这里也可以看出每个语句之间是没有优先级的。

4、小结

技术图片

可以看到来个信号的结果是一致的。使用initial语句实现信号可以直接表示每个时间段的信号变化。对于其他测试向量来说,也可以使用这种精确的方法实现信号源的编写。但是,在比较大的设计中,时钟信号一般需要作用比较长的时间,使用initial会占用大量的空间。对于高度重复的信号源,可以使用always块来实现。always块可以一直循环执行,知道仿真结束。

以上是关于verilog之简单时钟信号的编写的主要内容,如果未能解决你的问题,请参考以下文章

verilog 实现一个时钟

数字IC设计verilog编写——6脉冲同步器

数字IC设计verilog编写——6脉冲同步器

数字IC设计verilog编写——6脉冲同步器

数字IC设计verilog编写——6脉冲同步器

数字IC设计verilog编写——5无毛刺时钟MUX设计