打造IC人才
科技生态圈

IC设计笔记 | Verilog基本语法概述

发布时间:2023-06-13

来源:IC修真院

概述

Verilog 是一种用于数字逻辑电路设计的硬件描述语言,可以用来进行数字电路的仿真验证、时序分析、逻辑综合。

既是一种行为级(可用于电路的功能描述)描述语言又是一种结构性(可用于元器件及其之间的连接)描述语言

Verilog模块基本概念

模块是Verilog的基本单位,除了编译指令,其他的所有的设计代码都必须放在一个或多个模块中

一个模块内部可以使用其他模块,称为实例。上层模块可以引用底层任意层次模块的变量

模块内部可以包含若干个“块”

Verilog模块总结

Verilog用于模块的测试

检查程序的功能是否正确要求:

何为仿真?为何要仿真?

仿真是对电路模块进行动态的全面测试,通过观测被测试模块的输出信号是否符合要求可以调试和验证逻辑系统的设计和结构是否准确,并发现问题及时修改。

仿真可以在几个层面上进行?每个层面的仿真有什么意义?

仿真有:前(RTL)仿真,逻辑网表仿真,门级仿真和布线后仿真;

前仿真:前(RTL)仿真,逻辑网表仿真,门级仿真;可以调试和验证逻辑系统的设计和结构准确与否,并发现问题及时修改。

布线后仿真:分析设计模块运行是否正常;

模块的结构

Verilog 的基本设计单元是"模块(block)"

verilog 模块的结构由在module和endmodule关键字之间的4个主要部分组成:

image逻辑功能的定义

在Verilog中有3种方法可以描述电路的逻辑功能:

1. 用assign语句(连续赋值语句,常用于描述组合逻辑)

assign x = (b &~c);

2.用元件例化(instance 门元件例化)

and(门元件关键字) u_and3(例化原件名)(f,a,b,c);

注1:元件例化即是调用Verilog提供的元件;

注2:元件例化包括门元件例化和模块元件例化;

注3:每个实例元件的名字必须唯一,以避免与其他调用元件的实例相混淆;

注4:例化元件名也可以省略。

3.用”always“块语句

image

注1:”always“块语句常用于描述时序逻辑,也可描述组合逻辑;

注2:”always“块可用多种手段来表达逻辑关系,如用if...else语句或case语句;

注3:”always“块语句与assign语句是并发执行的,assign语句一定要放在”always“块语句之外。

模块结构模板:

image



图片



图片

标示符

任何用Verilog语言描述的东西都可以通过其名字来识别,这个名字被称为标示符;

源文件名,模块名,端口名,变量名,常量名,实例名等

标示符可由字母,数字,$和下划线组成,但第一个字符必须是字母或下划线,不能是$和数字

在Verilog中标示符是区分大小写的,且不能与关键字同名。

语汇代码编写标准


图片



图片


综合代码编写标准


图片



图片



图片



图片



图片

相关推荐:

数电知识点整理 | 半导体基础知识之数电

数字IC验证|UVM重点归纳2

电子信息科学与技术转行IC验证经验分享

推荐阅读

换一换