verilog基础语法入门


前言

Verilog是一种硬件描述语言,用于描述数字电路的行为和功能。
在这里插入图片描述

一、模块定义

Verilog程序的最基本设计单元是“模块”,模块从关键字module开始,到endmodule结束,其中每条语句以";"分隔。
一个完整的模块由以下四个部分组成:

1. 模块声明

格式如下:
module 模块名(端口名1,端口名2,…,端口名n);
模块名只能以下划线和字母****开头!!!

2. 端口定义

●输入端口定义为
input 端口名1,端口名2,…,端口名n;
●输出端口定义为
output 端口名1,端口名2,…,端口名n;
●双向端口(不常用)
inout 端口名1,端口名2,…,端口名n;
定义完要有分号!

3. 信号类型声明

最常用的类型有wire(连线)和reg(寄存器):
●wire类型表示一条连线,只要输入有变化输出马上无条件反映;
●reg类型表示一定要有触发,输出才会反应输入;
声明类型时也可以声明其位宽,如reg [2:0] A,其表示A为3bit位宽的寄存器。
不声明类型时默认为wire类型

4. 逻辑功能定义

通常采用assign持续赋值语句、always过程赋值块和调用元件(元件例化)等三种方式构成逻辑功能。
在这里插入图片描述
在这里插入图片描述
Verilog模块的模板如下所示。
在这里插入图片描述
在这里插入图片描述
模块的总结如下。
在这里插入图片描述

二、运算符与表达式

表达式就是用运算符把操作数组合起来,并按照运算符的语义计算出结果。在Verilog中,运算符用于对信号进行数学和逻辑运算。运算符的分类如下所示。
在这里插入图片描述

1. 算术运算符

在这里插入图片描述

2. 逻辑运算符

在这里插入图片描述

3. 位运算符

在这里插入图片描述

4. 关系运算符

在这里插入图片描述

5. 等式运算符

在这里插入图片描述

6. 缩减运算符

在这里插入图片描述

7. 移位运算符

在这里插入图片描述

8. 条件运算符

在这里插入图片描述

9. 位拼接运算符

在这里插入图片描述

下面是运算符的优先级。
在这里插入图片描述

三、语句

Verilog的语句分类如下。
在这里插入图片描述
在这里插入图片描述

1. 赋值语句

在这里插入图片描述

2. 块语句

在这里插入图片描述

3. 条件语句

在这里插入图片描述
在这里插入图片描述

4. 循环语句

在这里插入图片描述
在这里插入图片描述

5. 结构说明语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 编译预处理语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
需要注意的是,begin…end里面的语句是顺序执行的,always、assign、实例原件是并行执行的。


总结

Verilog是一种基于硬件描述语言的编程语言,用以设计和模拟数字电路。它支持门级、寄存器传输级、行为级等多层次的建模方式,并可用于仿真、综合和验证数字电路。

相关推荐

  1. FPGA | Verilog基础语法

    2024-07-15 23:04:06       63 阅读
  2. 01.Verilog基础语法

    2024-07-15 23:04:06       21 阅读
  3. Verilog基本语法概述

    2024-07-15 23:04:06       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 23:04:06       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 23:04:06       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 23:04:06       57 阅读
  4. Python语言-面向对象

    2024-07-15 23:04:06       68 阅读

热门阅读

  1. C语言 冒泡排序

    2024-07-15 23:04:06       19 阅读
  2. 网线8芯分开4芯一组

    2024-07-15 23:04:06       21 阅读
  3. js实现文件的分片上传

    2024-07-15 23:04:06       21 阅读
  4. Linux高级IO流详解

    2024-07-15 23:04:06       20 阅读
  5. 10个使用Numba CUDA进行编程的例子

    2024-07-15 23:04:06       18 阅读
  6. OSINT技术情报精选·2024年7月第2周

    2024-07-15 23:04:06       16 阅读
  7. 第一个AI应用(文心智能体平台)

    2024-07-15 23:04:06       16 阅读
  8. pytorch学习--使用m1 进行训练

    2024-07-15 23:04:06       18 阅读
  9. Halcon与C++之间的数据转换

    2024-07-15 23:04:06       17 阅读
  10. QT 报错C2872: “byte“: 不明确的符号

    2024-07-15 23:04:06       18 阅读