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块可以一直循环执行,知道仿真结束。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM