0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Verilog基本语法概述

jf_GctfwYN7 来源:IC修真院优秀学员 2023-06-10 10:04 次阅读

概述

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

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

Verilog模块基本概念

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

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

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

Verilog模块总结

· Verilog中的标示符可以是任意一组字母、数字、$符号和下划线符号的组合,但标示符的第一个字符必须是字母或者下划线。标示符区分大小写。

· Verilog程序是有模块组成的,每个模块嵌套在module和endmodule声明语句中。模块是可以进行层次嵌套的

· 每个Verilog源文件中只准有一个顶层模块,其他为子模块

· 每个模块要进行端口定义,并说明输入输出端口,然后对模块的功能进行行为逻辑描述

· 程序书写格式自由,一行可以写几个语句,一个语句可以分几行写

· 除了endmodule语句,begin...end语句,fork...join语句外,每个语句和数据定义的最后必须有分号

· 可用/*...*/和//...对程序的任何部分做注释,加上必要的注释,以增强程序的可度性和可维护性。

Verilog用于模块的测试

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

· 需要有测试激励信号输入到被测模块

· 需要记录被测模块的输出信号

· 需要把用功能和行为描述的Verilog模块转换为门级电路互连的电路结构(综合)

· 需要对已经转换为门级电路结构的逻辑进行测试(门级电路仿真)

· 需要对布局布线后的电路结构进行测试(布局布线后仿真)

何为仿真?为何要仿真?

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

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

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

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

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

模块的结构

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

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

module block1(a,b,c,d);  //端口定义
input  a,b,c;
output d;           //I/O声明
wirex;//信号类型声明


assign d = a | x;
assign x = (b &~c); //功能描述
endmodule

逻辑功能的定义

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

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

assign x = (b &~c);

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

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

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

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

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

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

3.用”always“块语句

always @(posedge clk) //当时钟上升沿到来时执行一遍块内语句
begin
if(load)
out = data;   //同步预置数据
else
out = data + cin +1;  //加1计数
end

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

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

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

模块结构模板:

module <顶层模块名> (<输入输出端口列表>);
output 输出端口列表;
input 输入端口列表;


//更推荐
module <顶层模块名> (
output 输出端口列表,
input  输入端口列表
);
//1.使用assign语句定义逻辑功能
wire 结果信号名;
assign <结果信号名> =表达式;
//2.使用always块定义逻辑功能
    always@(<敏感信号表达式>)
  begin
  //过程赋值语句
  //if语句
  //case语句
  //while,repeat,for循环
  //task,function调用
  end
//3.文件例化
     ();//模块元件例化
     ();//门元件例化
endmodule

关键字

69e2fda4-06b1-11ee-962d-dac502259ad0.png

6a084fa0-06b1-11ee-962d-dac502259ad0.png

标示符

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

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

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

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

语汇代码编写标准

6a2b309c-06b1-11ee-962d-dac502259ad0.png

6a4ae0a4-06b1-11ee-962d-dac502259ad0.png

综合代码编写标准

6a6a3bd4-06b1-11ee-962d-dac502259ad0.png

6a8c4de6-06b1-11ee-962d-dac502259ad0.png

6ab0ad3a-06b1-11ee-962d-dac502259ad0.png

6aced59e-06b1-11ee-962d-dac502259ad0.png

6ae3267a-06b1-11ee-962d-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 逻辑电路
    +关注

    关注

    13

    文章

    471

    浏览量

    42216
  • 电路设计
    +关注

    关注

    6568

    文章

    2318

    浏览量

    195556
  • Verilog
    +关注

    关注

    28

    文章

    1327

    浏览量

    109313
  • 时序分析
    +关注

    关注

    2

    文章

    126

    浏览量

    22473
  • 数字逻辑电路

    关注

    0

    文章

    65

    浏览量

    15650

原文标题:IC学霸笔记 | Verilog基本语法概述

文章出处:【微信号:IC修真院,微信公众号:IC修真院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Verilog HDL的基本语法

    Verilog HDL的基本语法 .pdf
    发表于 08-15 15:06

    Verilog_比较细节的语法

    Verilog比较细节的`语法
    发表于 09-17 23:47

    verilog 语法在复习进阶

    verilog 语法在复习进阶
    发表于 09-19 08:18

    Verilog HDL语法

    Verilog HDL语法,要的拿
    发表于 01-24 22:53

    verilog语法练习实践篇

    verilog语法练习晋级篇
    发表于 09-02 13:40

    verilog HDL语法总结

    verilog HDL语法总结
    发表于 03-16 14:26

    Verilog基础语法

    Verilog基础语法
    发表于 05-27 08:00

    verilog是什么?基本语法有哪些?

    verilog是什么?基本语法有哪些?
    发表于 09-18 07:41

    博客园正式支持Verilog语法着色功能

    以前在贴Verilog代码时,都只能挑C++或者C#的语法着色,但两者的主题词毕竟不太一样,透过dudu的帮助,我将Verilog 2001年的主题词加上了,现在博客园也能漂亮的显示Veril
    发表于 05-10 08:25 976次阅读

    可综合的Verilog语法和语义

    可综合的Verilog语法和语义(剑桥大学,影印):第七版
    发表于 05-21 14:50 27次下载
    可综合的<b class='flag-5'>Verilog</b><b class='flag-5'>语法</b>和语义

    Verilog_HDL的基本语法详解(夏宇闻版)

    Verilog_HDL的基本语法详解(夏宇闻版):Verilog HDL是一种用于数字逻辑电路设计的语言。用Verilog HDL描述的电路设计就是该电路的
    发表于 10-08 14:48 0次下载
    <b class='flag-5'>Verilog</b>_HDL的基本<b class='flag-5'>语法</b>详解(夏宇闻版)

    Verilog HDL实验练习与语法手册

    Verilog HDL实验练习与语法手册-高教
    发表于 05-11 11:30 0次下载

    常见的Verilog行为级描述语法

    常见的Verilog描述语句与对应的逻辑关系;熟悉语法与逻辑之间的关系
    的头像 发表于 09-15 08:18 9847次阅读
    常见的<b class='flag-5'>Verilog</b>行为级描述<b class='flag-5'>语法</b>

    Verilog语法进阶

    Verilog语法进阶说明。
    发表于 05-06 16:14 30次下载

    Verilog HDL入门教程-Verilog HDL的基本语法

    Verilog HDL入门教程-Verilog HDL的基本语法
    发表于 01-07 09:23 161次下载