Verilog HDL中总共有19种数据类型

4 个最基本的数据类型:integer型、parameter型、reg型和wire型。

其他的类型有 :large型、medium型、scalared型、 time型、small型、tri型、trio型、tril型、

triand型、trior型、trireg型、vectored型、wand型和wor 型。

一、数字

整数

有二、八、十、十六进制

<位宽>’<进制><数字>, 这是一种全面的描述方式

缺省的位宽由具体的机器系统决定,至少是32位

缺省的进制为十进制

x表示不定值,z代表高阻值,z还可以用?代替

4'b10x0 //位宽为4的二进制数从低位数起第二位为不定值

4'b101z //位宽为4的二进制数从低位数起第一位为高阻值

12'dz    //位宽为12的十进制数,其值为高阻值

12'd?    //同上

8'h4x    //位宽为8的十六进制数,其低4位值为不定值

要表示负数的话只需在位宽表达式前加一个减号

可以用在数字之间提高数字的可读性如16'b1010_1011_1111_1010

参数(parameter)型

即用parameter来定义一个标识符代表一个常量,称为符号常量,类似于const和define pi一样。

网络数据类型表示结构实体(例如门)之间的物理连接,不能储存值,而且必须收到驱动器的驱动,如果没有驱动则该变量就是高阻的,值为z,常用的网络 数据类型包括wire和tri型,wire型变量通常是用来表示单个门驱动或连续赋值语句驱动的网络型数据,tri型变量则用来表示多驱动器驱动的网络型 数据

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

reg型

寄存器是数据存储单元的抽象,缺省初始值为不定值x

memory型

Verilog HDL通过对reg型变量建立数组来对存储器建模,可以描述RAM,ROM和reg文件。

如reg[7:0] mema[255:0];

定义了一个名为mema的存储器,有256个8位的寄存器,地址范围从0到255。

如果想对memory中的 存储单元进行读写操作。必须指定该单元在存储器中的地址。

运算符及表达式

(1)算数运算符(+,-,*,/,%);%为模运算,求余运算符

(2)赋值运算符(=,

(3)关 系运算符(>,=,<=);

(4)逻辑运算符(&&,||,!);逻辑与,逻辑或,逻辑非

(5) 条件运算符(?:);r=s?t:u;如果s为真,则r=t,否则r=u

(6)位运算符(~,|,^,&,^~);~取反,|位或,^按 位异或,&按位与,^~按位同或(异或非)

(7)移位运算符(<>右移);a>>n,n 代表移几位,都用0来填补移出的空位

(8)拼接运算符({});把多个信号的某些位拼接起来

(9) 其他。

单目运算缩减运算,如&b,是将b的每一位相与得出一位的结果

赋值语句和块语句

信号有两种赋值方式

1、非阻塞(non_blocking) 赋值方式(如b<=a;)b的值不是立刻改变的,等到块结束后才完成赋值操作

2、 阻塞(blocking)赋值方式(如b=a;)b的值立刻改变

顺序块

语句是顺序执行的

parameter d="50";

reg[7:0] r;

begin

#d r='h35;

#d r='hE2;

#d r='h00;

#d r='hF7;

#d ->end_wave;

end

用顺序块和延时控制组合来产生一个时序波形

并行块是语句同时执行的

在并行块和顺序块中都有一个起始时间和结束时间的概 念。对于顺序块,起始时间就是第一条语句开始被执行的时间,结束时间就是最后一条语句执行结束的时间。而对于并行块来说,起始时间对于块内所有的语句是相 同的,即程序植程控制进入该块的时间,其结束时间是按时间排序在最后的语句执行结束的时间。

if_else语句

case_endcase 语句

(1)case(表达式) endcase

(2)casez(表 达式) endcase

(3)casex(表达式) endcase

Verilog HDL 针对电路的持性提供了case语句的其他两种形式,用来处理caee语句比较过程中的不必考虑的情况(don't care condition)。其中,casez语句用来处理不考虑高阻值z的比较过程,casex语句则将高阻值 z和不定值x都视为不必关心的情况。所谓不必关心的情况,即在表达式进行比较时,不将该位的 状态考虑在内。这样,在case语句表达式进行比较时,就可以灵活地设置以对信号的某些位进行比较。见下面的两个例子。

循环语句

有4种类型的循环语句

(1)forever--连续执行的语句,常用于产生周期性的波形,作为仿真测试信号。

(2)repeat-- 连续执行一条语句n次

(3)while--执行一条语句直到某个条件不满足

(4)for循环语句,和C/C++中的循环语句类似

结构说明语句

(1)initial;和always在仿真一开始即开始执行,initial 语句只执行一次

(2)always;而always语句则不断重复执行

(3)task; 和function语句可以在程序模块的一处或多处调用

(4)function;

always #half_period areg=~areg;//这条语句生成了一个周期为2*half_period的无限延续的信号波形。

verilog中数组的定义_Verilog 常规数据定义相关推荐

  1. verilog中数组的定义_verilog数组定义及其初始化

    这里的内存模型指的是内存的行为模型.Verilog中提供了两维数组来帮助我们建立内存的行为模型.具体来说,就是可以将内存宣称为一个reg类型的数组,这个数组中的任何一个单元都可以通过一个下标去访问.这 ...

  2. verilog中数组的定义_开源仿真工具Icarus Verilog中的verilog parser

    前面提到用flex和bison开处理命令行参数,回顾一下:开源仿真工具Icarus Verilog中的命令行参数处理方法. 那么Verilog的parser又是怎么实现的呢?简单地说,与做命令行参数的 ...

  3. verilog 给数组集体赋值_Verilog中如何对数组赋值(存储器memory详解)

    http://blog.sina.com.cn/s/blog_9424755f0101rhrh.html 存储器是一个寄存器数组.存储器使用如下方式说明: reg [ msb: 1sb] memory ...

  4. verilog中数组的定义_systemverilog中的数组操作

    sv中的数组基本操作:/* Exercsise platform :     Questa Sim 10.1b */ class Array; int array[9:0] ; function ne ...

  5. mysql中数据定义语言_SQL数据定义语言(DDL)

    数据库模式定义语言DDL(DataDefinition Language),是用于描述数据库中要存储的现实世界实体的语言.一个数据库模式包含该数据库中所有实体的描述定义.这些定义包括结构定义.操作方法 ...

  6. Oracle 数据定义语言,oracle 数据定义语言(DDL)语法

    DDL语言包括数据库对象的创建(create).删除(drop)和修改(alter)的操作 1.创建表语法 create table table_name( column_name datatype  ...

  7. 汇编语言数据类型以及数据定义详解

    汇编器识别一组基本的内部数据类型(intrinsic data type),按照数据大小(字节.字.双字等等).是否有符号.是整数还是实数来描述其类型.这些类型有相当程度的重叠,例如,DWORD 类型 ...

  8. 萌新食用:Verilog中wire和reg数据类型的区别

    萌新食用:Verilog中wire和reg数据类型的区别 最近恰好在学习数电相关知识扯到Verilog中的wire与reg类型数据的区别: 总的来说,其实就一句话:wire相当于物理连线,而reg相当 ...

  9. oracle 数据的定义,oracle——数据定义

    在上文中我们建好了表空间,并创建了新用户.接下来就可以使用这个用户登录,做想做的事了. 对于一个空白的表空间,首先我们当然是要先建表. 一般SQL语言有以下四大功能: **1.数据定义 2.数据查询 ...

最新文章

  1. PAT1042 字符统计 (20 分)
  2. src漏洞挖掘|一个谎言需要无数谎言来弥补
  3. java 输入流关闭顺序_JAVA的节点流和处理流以及流的关闭顺序
  4. 模板:什么是Traits
  5. React中antd的按需引入+自定主题
  6. 腾讯内容平台部-视频内容理解算法实习生
  7. 【高斯消元】bzoj1013 [JSOI2008]球形空间产生器sphere
  8. HDU 1026 广度优先搜索,BFS+路径的记录
  9. Office远程代码执行漏洞CVE-2017-8570 大部分版本受影响 PoC已经公开
  10. struts转换器详解
  11. 基于Java毕业设计银行贷款管理系统源码+系统+mysql+lw文档+部署软件
  12. 苹果手机来电归属地_手机号码归属地能否取消?工信部回应...
  13. pixi 平铺精灵 demo (一)
  14. 坤宝德万达打造命运共同体万达茂天樾之夜.时光发声全国巡回演唱会南宁站圆满结束
  15. c语言中的less函数,less的使用-基本语法-编译
  16. MySQL数据库入门【最详细的入门教学】
  17. 5G 中的SDN/NFV 和云计算
  18. 常见HTTP状态码(200,304,404等)
  19. firebase使用_这就是我希望在开始使用Firebase之前所要知道的
  20. pandas下-综合练习

热门文章

  1. CentOS7离线安装perl5
  2. 基于Java+Swing+Mysql实现汽车信息管理系统
  3. echarts is not defined解决方案
  4. 前端实习生题库整理(一)
  5. 旗鱼云梯和宝塔面板对比
  6. 2016-2019年最新前端工程师面试题
  7. 中心极限定理的解释和关键假设
  8. win10服务器显示图标,win10图标变白怎么办 Win10桌面图标显示不正常解决办法
  9. Nuscenes 数据集浅析
  10. 三级联动显示和回显 ,然后根据地址获得经纬度,并存入后台