由于CSDN上不了图片,是不是我自己不行还是。。。,所以拿到这边来发了

(三)的图片这里上传:

先来张大的:

windows XP下 iverilog GTKWave使用(四)-LMLPHP

不错,软件不大,够用就好了。。

然后来张目录想到文件:
windows XP下 iverilog GTKWave使用(四)-LMLPHP
单机test后出现c1,单击c1出现下面的signal,然后把signal里的信号拖到右侧的signals里,就可以看到下图所示的波形了。
windows XP下 iverilog GTKWave使用(四)-LMLPHP
在counter.v文件里有这么一句话:

点击(此处)折叠或打开

  1. always @(posedge clk)
  2.         out <= out 1;
说明out在时钟上升沿到来时就加1,
并且在counter_tb_gtk.v文件里有:

点击(此处)折叠或打开

  1. initial
  2.         begin
  3.             #17 reset = 1;
  4.             #11 reset = 0;
  5.             #29 reset = 1;
  6.             #11 reset = 0;
  7.             #100 $stop;
  8.         end



点击(此处)折叠或打开

  1. reg clk = 0;
  2.     always #5 clk = !clk;

就是说clk的周期是10ns,(文件收有定义:`timescale 1ns/1ns),且看下面的reset的动作!有点hold不住啊!~哈哈~~


点击(此处)折叠或打开

  1. always @reset
  2.         if (reset)
  3.             assign out = 0;
  4.         else
  5.             deassign out;
当reset由低电平变为高电平时,(上升沿是不起作用),则assign有效,并一直保持这个赋值(直到遇到deassign),out=0,out的值会一直保持“assign Q = 0;”,直到reset来一个低电平为止(deassign Q语句执行)。
附:
deassign用于取消之前由assign赋值给某寄存器的值,也就是说,使用assign给寄存器赋值之后,这个值将一直保持在这个寄存器上,直到遇到deassign为止。
这里就波形图来分型一下这个语句的作用。




09-25 02:53