您好、欢迎来到现金彩票网!
当前位置:彩63彩票app下载 > 高优先级 >

Verilog数据类型

发布时间:2019-05-14 05:23 来源:未知 编辑:admin

  结构化元件间的物理连线。它的值由驱动元件的值决定,例如连续赋值或门的输出。如果没有驱动元件连接到线网,线网的缺省值为 z 。

  2) 寄存器类型。 register type 表示一个抽象的数据存储单元,它只能在 always 语句和 initial 语句中被赋值,并且它的值从一个赋值到另一个赋值被保存下来。寄存器类型的变量具有 x 的缺省值。

  net_kind 是上述线网类型的一种。 msb 和 lsb 是用于定义线网范围的常量表达式;范围定义是可选的;如果没有定义范围,缺省的线 位。下面是线网类型说明实例。

  当一个线网有多个驱动器时,即对一个线网有多个赋值时,不同的线网产生不同的行为。例如,

  本例中, Rde 有两个驱动源,分别来自于两个连续赋值语句。由于它是线或线网, Rde 的有效值由使用驱动源的值(右边表达式的值)的线或 (wor) 表(参见后面线或网的有关章节)决定。

  用于连接单元的连线是最常见的线网类型。连线与三态线 (tri) 网语法和语义一致;三态线可以用于描述多个驱动源驱动同一根线的线网类型;并且没有其他特殊的意义。

  在这个实例中, Cla 有两个驱动源。两个驱动源的值(右侧表达式的值)用于在上表中索引,以便决定 Cla 的有效值。由于 Cla 是一个向量,每位的计算是相关的。例如,如果第一个右侧表达式的值为 01x, 并且第二个右测表达式的值为 11z ,那么 Cla 的有效值是 x1x ( 第一位 0 和 1 在表中索引到 x, 第二位 1 和 1 在表中索引到 1 ,第三位 x 和 z 在表中索引到 x) 。

  线或指如果某个驱动源为 1 ,那么线 。线或和三态线或 (trior) 在语法和功能上是一致的。

  线与 (wand) 网指如果某个驱动源为 0 ,那么线 。线与和三态线与 (triand) 网在语法和功能上是一致的。

  此线网存储数值(类似于寄存器),并且用于电容节点的建模。当三态寄存器 (trireg) 的所有驱动源都处于高阻态,也就是说,值为 z 时,三态寄存器线网保存作用在线网上的最后一个值。此外,三态寄存器线网的缺省初始值为 x 。

  这类线网可用于线逻辑的建模,即线网有多于一个驱动源。 tri0 ( tri1 )线网的特征是,若无驱动源驱动,它的值为 0 ( tri1 的值为 1 )。

  HDL 中,有可能不必声明某种线网类型。在这样的情况下,缺省线 位线网。可以使用 `default_nettype 编译器指令改变这一隐式线网说明方式。使用方法如下:

  在定义向量线网时可选用关键词 scalared 或 vectored 。如果一个线网定义时使用了关键词 vectored, 那么就不允许位选择和部分选择该线网。换句话说,必须对线网整体赋值(位选择和部分选择在下一章中讲解)。例如 :

  msb 和 lsb 定义了范围,并且均为常数值表达式。范围定义是可选的;如果没有定义范围,缺省值为 1 位寄存器。例如:

  MyMem 和 Bog 都是存储器。数组的维数不能大于 2 。注意存储器属于寄存器数组类型。线网数据类型没有相应的存储器类型。

  在赋值语句中需要注意如下区别:存储器赋值不能在一条赋值语句中完成,但是寄存器可以。因此在存储器被赋值时,需要定义一个索引。下例说明它们之间的不同。

  这些系统任务从指定的文本文件中读取数据并加载到存储器。文本文件必须包含相应的二进制或者十六进制数。例如:

  Romb 是存储器。文件 “ram.patt” 必须包含二进制值。文件也可以包含空白空间和注释。下面是文件中可能内容的实例。

  系统任务 $readmemb 促使从索引 7 即 Romb 最左边的字索引,开始读取值。如果只加载存储器的一部分,值域可以在 $readmemb 方法中显式定义。例如:

  整数寄存器包含整数值。整数寄存器可以作为普通寄存器使用,典型应用为高层次行为建模。使用整数型说明形式如下:

  msb 和 lsb 是定义整数数组界限的常量表达式,数组界限的定义是可选的。注意容许无位界限的情况。一个整数最少容纳 32 位。但是具体实现可提供更多的位。下面是整数说明的实例。

  一个整数型寄存器可存储有符号数,并且算术操作符提供 2 的补码运算结果。

  整数不能作为位向量访问。例如,对于上面的整数 B 的说明, B[6] 和 B[20:10] 是非法的。一种截取位值的方法是将整数赋值给一般的 reg 类型变量,然后从中选取相应的位,如下所示:

  上例说明了如何通过简单的赋值将整数转换为位向量。类型转换自动完成,不必使用特定的函数。从位向量到整数的转换也可以通过赋值完成。例如 :

  注意赋值总是从最右端的位向最左边的位进行;任何多余的位被截断。如果你能够回忆起整数是作为 2 的补码位向量表示的,就很容易理解类型转换。

  time 类型的寄存器用于存储和处理时间。 time 类型的寄存器使用下述方式加以说明。

  msb 和 lsb 是表明范围界限的常量表达式。如果未定义界限,每个标识符存储一个至少 64 位的时间值。时间类型的寄存器只存储无符号数。例如 :

  real 说明的变量的缺省值为 0 。不允许对 real 声明值域、位界限或字节界限。

  参数是一个常量。参数经常用于定义时延和变量的宽度。使用参数说明的参数只被赋值一次。参数说明形式如下:

  参数值也可以在编译时被改变。改变参数值可以使用参数定义语句或通过在模块初始化语句中定义参数值.

http://bed-plans.net/gaoyouxianji/235.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有