第2节 Verilog HDL 的主要数据类型
推荐给好友
打印
加入收藏
更新于2008-05-18 19:14:08

Verilog的主要数据类型有三类:


net (线网):表示器件之间的物理连接;
register (寄存器) :表示抽象的存储元件;
parameters(参数):运行时的常数。

1.net(线网)

  • net表示器件之间的物理连接,需要门和模块的驱动。
  • 没有声明的net的缺省类型为 1 位(标量)wire类型。


2.register
   寄存器类的数据类型:


  net和register声明

  • net声明
    <net_type> [range] [delay] <net_name>[, net_name];
    net_type: net类型
    range: 矢量范围,以[MSB:LSB]格式
    delay: 定义与net相关的延时
    net_name: net名称,一次可定义多个net, 用逗号分开。
    举例:
    wand w; // 一个标量wand类型net
    tri [15: 0] bus; // 16位三态总线
    wire [0: 31] w1, w2; // 两个32位wire,MSB为bit0
  • register声明
    <reg_type> [range] <reg_name>[, reg_name];
    reg_type:寄存器类型
    range: 矢量范围,[MSB:LSB]格式。只对reg类型有效
    reg_name :register名称,一次可定义多个register,逗号分开
    举例: reg a; //一个标量register
    reg [3: 0] v; // 从MSB到LSB的4位寄存器向量
    reg [7: 0] m, n; // 两个8位register

   使用正确的数据类型



    数据类型确定方法

  • 信号可以分为端口信号和内部信号。
    出现在端口列表中的信号是端口信号,其它的信号为内部信号。
  • 对于端口信号
    输入端口、输入输出端口只能是net类型。
    输出端口可以是net类型,也可以是register类型。若输出端口在过程块中赋值则为register类型;若在过程块外(包括实例化语句)赋值,则为net类型。
  • 内部信号类型与输出端口相同,可以是net或register类型。若在过程块中赋值,则为register类型;若在过程块外赋值,则为net类型。

       一些错误: 
          用过程语句给一个net类型(或忘记声明类型)的信号赋值。
          将实例的输入连接到register类型的信号上。
          将模块的输入信号声明为register类型。
       举例:

3.参数(parameter)

  • 用参数声明一个可变常量,常用于定义延时及宽度等参数。
  • 参数定义:parameter <list_of_assignment>;
  • 可一次定义多个参数,用逗号隔开。
  • 参数的定义是局部的,只在当前模块中有效。参数定义可使用以前定义的整数和实数参数。

 

<<上一节       下一节>> 




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.