常用VerilogHDL 语法总结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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语

言规范。

相关文档
最新文档