verilog之时钟信号的编写2

Posted electricdream

tags:

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

verilog之时钟信号的编写2

1、时钟信号的特点

时钟信号除了可以根据时序一个个变化列举出来,还可以利用其循环的变化的特点,使用循环执行语句always来实现。这种方法实现的时钟信号可以一直执行且不需要关注每个变化点的延时。

2、基于begin-end块的时钟信号

initial begin
    clk=0;
    clk1=0;
    clk2=0;
end
//way1
always #1 clk=~clk;
//way2
always begin
    #1 clk1=~clk1;
    #1 clk2=~clk2;
end

方法1是最方便的时钟信号,只有一条执行语句,甚至不需要使用块来封装。

方法2则是使用begin-end来实现两个时钟信号clk1和clk2,可以简单地分析出clk2的周期是clk1的两倍。clk1是2系统周期,clk2是4系统周期。占空比就是50%,一条语句是无法实现其他占空比的时钟信号的。

3、基于fork-join块的时钟信号

initial begin
    clk=1;
    clk1=1;
end
always fork
#1 clk=~clk;
#2 clk1=~clk1;
#3 ;
#50 ;
join

技术图片

可以观察到fork-join的时钟信号的周期是最大延时的两倍。每个时钟信号的周期都是一致的。其他延时只会改变时钟信号的相位。从这里也可以看出fork-join的块的工作原理:先找到最大延时,其他延时执行语句在其子期间中显示。使用fork-join可以仿真有时钟延时的信号输入。

4、小结

使用循环执行语句来实现时钟信号是常用的方法。一般的时钟信号的激励也是利用循环执行来模拟的。

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

verilog 实现一个时钟

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

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

verilog仿真的时钟问题

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

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