Verilog中的常量、变量、常用的关键词

一.常量

(1)整数

       1)表示方法

        进制表示(二、十、十六、八)符号:b(B)、d(D)、h(H)、o(O);

       2)格式:

       a.<位宽><进制><数字>,这是一种全面的表示方法。

       b.在<进制><数字>这种描述方法的时候,数字的位宽常常采用默认(一般为32位)。

       c.在<数字>这种描述中采用十进制的表示方法。

(2)x和z,

     在数字电路中,x代表不定值、z代表高阻。一个x可以表示十六进制的4位二进制表示状态。八进制的三位,二进制的一位,z类似。(有时可以用?来表示高阻,常在 

     case语句中使用,    以增强语句的可读性)。

(3)负数

     一个数可以被定为负数,只要在位宽表达式的前面加一个负号,减号必须在数字定义表达式的前面。

(4)下划线

    为了增强程序的可读性。它不可在进制和位宽之间,只允许在数字和数字之间。

例如:

     16‘b1001-1010-1110-1111    //合法

     16‘b-1001-1010-1110-1111    //不合法

(5)参数(parameter)

      1)定义

      定义一个标识符代表一个常量,称为符号常量。

      2)作用

      采用标识符代表一个常量来提高程序的可读性,维护性。

     3)格式

    parameter  参数名1=表达式,参数2=表达式,........参数n=表达式:

二.变量

   (1)wire型

   1)定义

    常用来表示以assign关键字指定的组合逻辑信号。

   2)适用范围

   Verilog程序模块中输入、输出信号类型默认时自动定义为wire型。wire型信号可以用作任何方程式的输入,也可以作为“assign”语句或实例元件的输出。

   3)格式

   wire [n-1,0]数据名1,数据名2,.........数据i;//共有i条总线,每条总线有n条线路。

   e.g

   wire a;                      //定义了一个1位的wire型数据类型

   wire[7:0] b;              //定义了一个8位的wire数据类型

   wire[4:1] c,d;            //定义了二个4位的wire数据类型

(2)reg型

  1)定义

  定义:寄存器是数据存储单元的抽象,通过赋值可以改变寄存器存储的值,其作用与改变触发器的值相当,reg类型的默认初始值位x。

  2)适用范围

  表示“always”模块内的指定信号,代表触发器。在“always”中每一个信号都必须定义为reg。

   3)格式

  与wire相似。

注意:reg语句只表示定义的信号将用于“always”模块内,这一点很重要,虽然并不是所有的信号一定是寄存器或者触发器的输出。虽然reg信号常常是寄存器或者触发器的输出。但并不一定总是这样。

(3)memory

1)定义

  通过对reg型变量建立数组来对存储器建模,可以描述RAM型存储器、ROM存储器和reg 文件。数组中的每一个单元通过一个数组进行寻址,在Verilog没有多维数组的存在。

2)格式

 reg[n-1:0]  存储器名[m-1:0];

或者reg[n-1:0]  存储器名[m:1];



你可能感兴趣的:(FPGA)