常用VerilogHDL 语法总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用VerilogHDL 语法总结
1 模块
(1)端口定义:声明模块的输入输出口。引用模块时端口的两种连接方法。
(2)模块内容:I/O说明(输入输出)、内部信号说明(和端口有关的变量说明)、功能定义(定义逻辑功能的三种方式:assign 声明语句;实例元件;always 块)。
(3)理解要点:整体语句并发执行,always块内顺序执行。
2 常量
(1)数字:整数及三种表达方式
x和z值
负数:减号的位置
下划线:位置和作用
(2)参数:parameter符号常量,常用于定义延迟时间(使用#)和变量宽度。
3 变量
(1)wire:表示易assign指定的组合逻辑信号;默认值;任何方程式的输入或assign语句及实例元件的输出;定义格式。(2)reg:表示always块中指定的信号,代表触发器;寄存器数据类型(触发器存储值),默认值为x;定义格式。
(3)memory:reg的数组;描述RAM、ROM、reg文件;单元索引;一个n为寄存器和n个一位数组的区别。
4 运算符与表达式
(1)算术运算符:五种
(2)位运算符:五种
(3)逻辑运算符:三种
(4)关系运算符:四种(3种不同的返回值)
(5)等式运算符:四种
(6)移位运算符:两种(移位补零)
(7)位拼接运算符:{},常用于某些控制信号位;重复与嵌套使用
(8)缩减运算符:类似于逻辑运算符,结果为一位二进制数(9)运算符优先级
5 语句
(1)赋值语句
阻塞赋值:b<=a;块结束后完成赋值,b的值不是立即改
变的,较为常用;
非阻塞赋值:b=a;赋值语
句执行后块才结束,b的值马上
改变,在沿触发的always块中
使用可能引起错误后果。
(2)块语句
顺序块begin-end:顺序执
行,最后语句执行完流程跳出语
句块;
并行块fork-join:同时执
行,时间最长语句执行完或
disable语句执行时跳出程序
块;
块名的作用;
起始时间和结束时间
(3)条件语句
If-else语句:三种形式;
if表达式判断;分号;复合语句;
表达式简写;if语句嵌套;if
与else的配对。
Case语句:三种形式
(casez:不考虑z进行比较,
casex:不考虑z和x进行比较);
控制表达式与分支表达式(常量
表达式);default;所有表达式
的位宽必须相等。
条件语句使用不当造成锁
存器:避免错误:case中使用
default,if必须搭配else。
(4)循环语句
Forever:格式;连续执行;
Repeat:格式;连续执行n
次;表达式通常为常量表达式;
While:格式;执行语句至
条件不满足;
For:格式:for(循环变量
初值;循环结束条件;循环变量
增值)。
(5)结构说明语句
Initial:格式;执行一次;
常用来变量初始化和生成激励
波形作为电路的测试仿真信号;
Always:格式;执行至仿真
结束;注意时序;常用来描述时
钟信号作为激励信号;时间控制
可以为沿触发(描述时序行为)
也可以是电平触发(描述组合逻
辑行为);
Task:定义;任务的调用与
变量的传递;任务调用变量与任
务定义的I/O变量必须一一对
应;
Function:定义;函数返回
值(函数定义蕴含定义了同名寄
存器);函数调用通过函数表达
式中的操作数来实现的。
(6)时间控制语句
#、@、wait标识的语句
6 系统函数和任务
(1)$display和$write:输出
信息;格式说明和普通字符;
(2)$monitor:监控和输出参
数列表中的表达式和变量值;关
闭与打开控制;
(3)$time:返回64位整数表
示当前仿真时刻值;时间尺度;
$realtime:返回时间为实
型数;
(4)$finish:退出仿真器,返
回主操作系统;参数;
(5)$stop:把EDA工具设置为
暂停,给出交互命令提示,把控
制权交给用户;
(6)$readmemb 和$readmemh:
从文件读取数据到存储器;格
式;读取内容;
(7)$random:返回32位带符
号整型随机数;用于产生随即脉
冲序列和宽度随机的脉冲序列
进行电路测试。
7 编译预处理
(1)`define:宏定义,符号常
量;
(2)`include:文件包含;使
用形式;
(3)`timescale:时间尺度,
说明跟在该命令后的模块的时
间单位和时间精度;
(4)`ifdef、`else、`endif:
满足条件的语句进行编译;不编
译的部分也应符VerilongHDL语
言规范。