由于CSDN上不了图片,是不是我自己不行还是。。。,所以拿到这边来发了
(三)的图片这里上传:
先来张大的:
不错,软件不大,够用就好了。。
然后来张目录想到文件:
单机test后出现c1,单击c1出现下面的signal,然后把signal里的信号拖到右侧的signals里,就可以看到下图所示的波形了。
在counter.v文件里有这么一句话:
- always @(posedge clk)
- out <= out 1;
说明out在时钟上升沿到来时就加1,
并且在counter_tb_gtk.v文件里有:
- initial
- begin
- #17 reset = 1;
- #11 reset = 0;
- #29 reset = 1;
- #11 reset = 0;
- #100 $stop;
- end
和
- reg clk = 0;
- always #5 clk = !clk;
就是说clk的周期是10ns,(文件收有定义:`timescale 1ns/1ns),且看下面的reset的动作!有点hold不住啊!~哈哈~~
- always @reset
- if (reset)
- assign out = 0;
- else
- deassign out;
当reset由低电平变为高电平时,(上升沿是不起作用),则assign有效,并一直保持这个赋值(直到遇到
deassign),out=0,out的值会一直保持“assign Q = 0;”,直到reset来一个低电平为止(
deassign Q语句执行)。
附:
deassign用于取消之前由assign赋值给某寄存器的值,也就是说,使用assign给寄存器赋值之后,这个值将一直保持在这个寄存器上,直到遇到
deassign为止。
这里就波形图来分型一下这个语句的作用。
阅读(4703) | 评论(0) | 转发(0) |