【Verilog语法简介】

这篇博客介绍了Verilog语言,一种用于数字电路系统建模和验证的硬件描述语言。它包括Verilog变量数据类型如线网型、寄存器型、其他数据类型、向量型和存储器类型数据;操作符类别;模块定义;赋值语句;initial/always语句;条件语句和循环语句。Verilog语法与C语言类似,适用于FPGA开发。
摘要由CSDN通过智能技术生成

1.Verilog简介

Verilog语言是一种用于建模电子系统的硬件描述语言,这种硬件描述语言最多的用于进行数字电路系统的寄存器传输级建模和验证工作,同时一些例如生物电路等数模混合电路的建模和验证电路。Verilog语言的语法规则与C语言有很多相似之处。Verilog语言的标准化内容在IEEE 1364标准中规定。

2. Verilog语法讲解

Verilog硬件描述语言有变量和常量,下面分别对变量和常量进行介绍。

2.1 Verilog变量数据类型

2.1.1 线网型数据(Nets)

线网型数据代表着不同电路结构体之间的直接物理连接。这种类型的变量不存储数据,变量的值跟随驱动信号的变化而进行瞬时变化。这种数据类型用关键字wire来定义。
下面表格是wire类型变量的值,下一节要介绍的reg类型值也类似。
在这里插入图片描述

2.1.2 寄存器型数据(Reg)

寄存器类型变量经常用在时序电路中。这种类型的变量可以存储数据的值。触发信号到来时,变量的值跟随驱动信号变化。触发信号没有到来时,变量值不变化。寄存器类型数据使用关键字reg来定义。

2.1.3 其他数据类型:(integer、real、time)

integerrealtime这三种变量其实也是寄存器类型的变量。
integer变量一般是一个32bit的整形数据。
real 变量是一个IEEE标准的64bit浮点型数据。
time是一个64位的无符号整形变量。代表了仿真运行时间.可以利用系统函数$time查看time类型的变量.

2.1.4 向量型数据结构

2.1.12.1.2两节中提到的wire类型和reg类型都是1 bit数据。Verilog中存在向量类型(Vector),向量变量类型代表了一个包含了多bit数据的一个数据类型。
下面这段代码定义了一个线网型wire类型数据的向量signal,signal变量包含了32bit数据。[31:0]代表了32bit数据的最高位角标位31,最低为角标为0。

wire [31:0] signal

下面这段代码定义了一个线网型reg类型数据的向量signal,signal变量包含了32bit数据。[31:0]代表了32bit数据的最高位角标位31,最低为角标为0。

reg [31:0] signal

2.1.5 存储器类型数据

寄存器变量组成的数组就是存储器类型数据。定义语句如下所示:

reg [15:0] memo [7:0];

上面的语句定义类一个存储器memo,有8个存储单元,每个存储单元有16位。

2.1.6 Verilog常量表示

Verilog中的常量主要有整数型和参数型常量
对于整型常量最完整的描述为<位宽><数制><数值>。位宽和数制可以根据需要或者指定或者省略。对于整型数据的数制类型主要有二进制(b或B表示)、八进制(o或O表示)、十六进制(h或H表示)。可以以如下形式表示:

//指明数据位宽,二进制数据
4'b1011
//指明数据位宽、十六进制表示
4'hFF
//负数表示,符号标注在最前面
-4'b1001

参数型的常量是使用关键字parameter来申明,被称为参数型变量。parameter类型常量赋值语句的右边都必须是一个常数表达式。参数类型定义的示例:


                
  • 18
    点赞
  • 128
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值