Verilog学习笔记1--基础知识
1语言要素
一、空白符
包括空格符(\b)、制表符(\t)、换行符、换页符
目的:为了程序的易读性
二、注释符
单行注释‘//’
多行注释以‘/’开头到‘/’结束
三、标识符
用于命名信号名称、模块名称和参数名称等的规则如下:所命名的名称必须由字母、数字以及符号$和下划线组成,并且每个名称都必须以字母或下划线作为开头。
四、转义标示符
以''符号开头,空白结尾
五、关键字
verilog规定无法被用户定义
六、数值
| 状态 | 含义 |
|---|---|
| 0 | 低电平,逻辑假 |
| 1 | 高电平,逻辑真 |
| x或X | 不确定 |
| z或Z | 高阻态 |
(1)整数及其表示方式
| 数制 | 基本符号 |
|---|---|
| 二进制 | b或B |
| 八进制 | o或O |
| 十进制 | d或D |
| 十六进制 | h或H |
宽度是8的二进制数值'b' $$
'
'
'
'
'
'
'
'
'
'
;
宽度是$'h'$ $a6;
五维八运算符o35;
四位二运算符$b'$ x_{{
o}
}^{{
s}
}$。
(2)实数及其表示
十进制表示法,小数点两边必须都有数字
科学计数法
1.2数据类型
物理数据类型:线连接型、寄存器类和存储器类
信号强度用于表征数字电路中不同水平的驱动源,用于解决赋值冲突问题

一、连线型

二、寄存器型(reg)
reg型代表数据存储单元的抽象类型,在硬件设计中被广泛采用以模拟状态保持功能。
在行为级描述中常用reg型变量,在Verilog语言中通常通过赋值语句在其身上进行赋值。
例如:
// 定义一个一位名为a的寄存器变量
reg a;
// 定义一个四位名为b的寄存器变量
reg [3:0] b;
// 定义三个命名分别为c、d、e并各有八位宽度的寄存器变量
reg [8:1] c, d, e;
当向寄存器赋予负数值时,默认会将其转换为二进制补码形式。
三、连线型数据类型的声明
该系统支持多种网络声明类型:wire(线)、tri(三态)、trio(三态高电平)、tril(四态高电平)、wand(宽电平)、triand(三态与电平结合)、tior(四态)及wor(超宽电平)。这些网络声明用于定义不同类型的信号传输特性。
该系统支持两种数据类型:标量及矢量形式的数据。
该系统支持三种主要的工作模式:
1. 瞬态模拟
2. 时序分析
3. 功耗分析
这些模式均基于相同的电路模型构建。
该系统采用先进的算法来实现高效的时序分析。
四、寄存器型数据类型的声明
register
