Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86883
  • 博文数量: 16
  • 博客积分: 146
  • 博客等级: 入伍新兵
  • 技术积分: 139
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-29 22:41
文章分类

全部博文(16)

文章存档

2012年(2)

2011年(14)

分类: WINDOWS

2012-04-17 21:17:12

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

(三)的图片这里上传:

先来张大的:

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

然后来张目录想到文件:

单机test后出现c1,单击c1出现下面的signal,然后把signal里的信号拖到右侧的signals里,就可以看到下图所示的波形了。

在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为止。
这里就波形图来分型一下这个语句的作用。




阅读(4703) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~