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(表达式)<case分支项> endcase
(2)casez(表 达式)<case分支项> endcase
(3)casex(表达式)<case分支项> 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的无限延续的信号波形。

转载于:https://www.cnblogs.com/FPGA_DSP/archive/2010/01/06/1640526.html

Verilog 常规数据定义相关推荐

  1. verilog中数组的定义_Verilog 常规数据定义

    Verilog HDL中总共有19种数据类型 4 个最基本的数据类型:integer型.parameter型.reg型和wire型. 其他的类型有 :large型.medium型.scalared型. ...

  2. Halcon基础知识:常规数据、对象数据、对象元组

    一.说明 halcon到底有多少数据类型,这是一个相当重要的知识:初学者如果看了几十个程序案例,自然对此感兴趣.本文将介绍两种数据:常规数据,对象数据:以及出现的机会,1)程序一般处理过程,2)调用函 ...

  3. PostgreSQL SQL 语言:数据定义

    本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. 1.表基础 关系型数据库中的一个表非常像纸上的一张表:它由行和列组成.列的数量和顺序是固定的,并且每一列拥有一个名字.行的 ...

  4. mysql数据表交叉引用_数据定义语句

    数据定义语句 MySQL 8.0支持原子数据定义语言(DDL)语句.此功能称为原子DDL.原子DDL语句将数据字典更新,存储引擎操作和与DDL操作相关联的二进制日志写入操作组合到单个原子事务中.即使事 ...

  5. GitHub上YOLOv5开源代码的训练数据定义

    GitHub上YOLOv5开源代码的训练数据定义 代码地址:https://github.com/ultralytics/YOLOv5 训练数据定义地址:https://github.com/ultr ...

  6. mysql数据定义语句有哪些_MySQL语法一:数据定义语句 钓鱼翁

    MySQL语句语法主要分为以下三大类: 一.数据定义语句DDL(CREATE,ALTER,DROP,DECLARE) 数据定义语句是用于修改表结构的. 一).语法提炼: 二).由上图可知,数据定义语句 ...

  7. 实验1 应用SQL Server进行数据定义和管理

    实验1 应用SQL Server进行数据定义和管理 [实验目的] 1)熟悉SQL Server的配置和管理. 2)掌握数据库的定义和修改方法. 3)掌握表的定义和修改方法. 4)掌握使用SQL语句进行 ...

  8. MySQL基础篇:数据定义语言DDL

    文章目录 1.介绍 2.操作数据库Database 创建数据库 查看有哪些数据库 删除数据库 选择数据库 查看当前正在使用哪个数据库 3.表结构的操作 查看当前数据库的所有表 创建表结构 查看表结构 ...

  9. SQL数据定义、查询、更新+空值的处理 实践学习报告

    本篇博客分享的是博主的各种数据操作-实践详细过程(以截图方式展示) 软件:Oracle  SQL  developer,希望对大家有所帮助咯! 目录 1.学生-课程数据库 2.1.数据定义理论 2.2 ...

  10. MySQL学习笔记(5)之数据定义类型

    数据定义类型总汇 1.整数型: 整数类型 字节 有符号范围 无符号范围 用途 tinyint 1 (-128,127) (0,255) 小整数 smallint 2 (-32 768,32 767) ...

最新文章

  1. RepeatMasker安装和使用——基因组重复序列注释
  2. 各种操作系统ping时的TTL值
  3. 使用电脑一定得有良好的习惯呀!
  4. 用sk-learn的pipline的时候,现:TypeError: ‘Pipeline‘ object is not subscriptable
  5. SpringBoot中整合Mail实现发送模板邮件
  6. SQL语句 SELECT LIKE用法详解
  7. bzoj3715 [PA2014]Lustra
  8. linux下安装pm2
  9. leetcode 2 --- 两数相加
  10. python默认编码方式_关于设置python默认编码方式的问题
  11. python从入门到精通需要多久-python从入门到精通需要多久?你需要先明白这两个点...
  12. windows操作系统_windows下用深度系统安装器安装深度操作系统实现双系统分别运行...
  13. Opencv之疲劳检测
  14. 【Windows】六种正确清理C盘的方法,解决你的红色烦恼
  15. BZOJ3787 gty的文艺妹子序列 【树状数组】【分块】
  16. 在Debian中网卡的设置
  17. Hibernate----初识
  18. c++ zlib加密压缩文件详细介绍与代码演示
  19. python redis缓存_第二百九十五节,python操作redis缓存-字符串类型
  20. js面向数据编程(DOP)一点分享(转载)

热门文章

  1. thinkphp 每个页面自定义加载对应指定的js、css
  2. aix查看文件夹大小命令_AIX5.3系统文件大小的限制
  3. linux中的ps fx命令,Linux中的ps命令
  4. mysql odbc 驱动程序不支持所需的属性_ODBC 驱动程序不支持所需的属性。
  5. 自定义rest api的基本思想过程--总结
  6. php基础之MySQL数据排序asc、desc
  7. java中的装箱和拆箱
  8. 还在使用集合类完成这些功能?不妨来看看 Guava 集合类!!!
  9. SSH框架下载地址及说明介绍地址
  10. 字符串转换为小数(如String a=“123“),转换之后为123.0