Chinaunix首页 | 论坛 | 博客
  • 博客访问: 371124
  • 博文数量: 50
  • 博客积分: 1495
  • 博客等级: 上尉
  • 技术积分: 805
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-21 14:19
文章分类

全部博文(50)

文章存档

2011年(47)

2010年(3)

分类: 嵌入式

2010-12-29 21:42:08


今天任务不是很多,回头看了下verilog基础
顺便做些笔记....

`timescale 1ns/100ps  代表时间单位是1ns,时间精度为100ps;
以反引号“`”开始的第一条语句是编译器指令

assign 连续赋值语句是并发执行的,也就是说各个语句的执行顺序与其在描述中出现的顺序是无关的;

initial 语句: 此语句只执行一次;
always 语句: 此语句总是循环执行;
*只有reg类型的数据才能在这两种语句中被赋值。reg类型数据在被赋新值前保持原有值不变。


时延可以细分为两种:
1) 语句间时延:这是时延语句执行的时延。
    example:
          sum = (A ^ B) ^ C;
          #4 T1 = A & C;
    先执行第一条语句,延迟4各单位时间,再执行第二条语句。

2) 语句内时延:这是右边表达式数值据算与左边表达式赋值间的时延。
    example:
          sum = #4 (A ^ B) ^ C;
    先执行右边的等式,延迟4个单位的时间,再赋给sum。

在模块实例语句中,端口可以与名称或位置关联
名字关联 F(.A(a), .B(b));  顺序可以随意调换

位置关联 F(a, b);  顺序不可以随意调换


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