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

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

3天内不再提示

Verilog HDL中定义的26个有关门级的关键字中常用的有哪些?

FPGA之家 来源:YGOPRO de Space 作者:YGOPRO 2021-07-02 16:29 次阅读

1、结构描述形式

从电路结构的角度来描述电路模块,称为结构描述形式。

Verilog HDL中定义了26个有关门级的关键字,比较常用的有8个:

and nand nor or xor xnor buf not。

其调用格式为:

门类型 《实例名》(输出,输入1,输入2,。。。。,输入N)

eg. nand na01(na_out, a, b, c);

表示一个名字为na01的与非门,输出为na_out,输入为a,b,c。

2、数据流描述形式

对线型变量进行操作,就是数据流描述形式。数据流描述一般采用assign连续赋值语句来实现,主要用于实现组合功能。连续赋值语句右边所有的变量受持续监控,只要这些变量有一个发生变化,整个表达式就被重新赋值给左端。

其格式为:

assign L_s = R_s;

3、行为描述形式

从功能和行为的角度来描述一个实际电路,称为行为级描述形式。行为描述主要包括过程结构、语句块、时序控制、流控制四个方面,主要用于时序逻辑功能的实现。

1、过程结构

过程结构采用下面四种过程模块来实现:

initial模块 always模块 任务(task)模块 函数(function)模块

(1)initial模块

在进行仿真时,一个initial模块从模拟0时刻开始执行,且在仿真过程中只执行一次,在执行完一次后,该initial就被挂起,不再执行。如果仿真中有两个initial模块,则同时从0时刻开始执行

initial模块是面向仿真的,是不可综合的,通常被用来描述测试模块的初始化、监视、波形生成等功能。

其格式为:

initial

begin/fork

块内变量说明

时序控制1 行为语句1;

。。。。

时序控制n 行为语句n;

end/join

其中,begin/end块定义语句是串行执行的,而fork/join块语句中的语句定义是并行执行的。

(2)always模块

always模块是一直重复执行且可综合的,多个always模块是同时并行执行的。其格式为:

always@(敏感时间列表)

begin/fork

块内变量说明

时序控制1 行为语句1;

。。。。

时序控制n 行为语句n;

end/join

2、语句块

语句块就是在initial或always模块中位于begin.。.end/fork.。.join块定义语句之间的一组行为语句。

(1)begin.。.end

串行块,块内的语句逐次逐条顺序执行。

(2)fork.。.join

并行块,块内的语句都是各自独立地同时开始执行。

3、时序控制

Verilog HDL提供两种类型的显示时序控制:延时控制和事件控制。

(1)延时控制

其格式如下:

# 延时数 表达式;

延时控制只能在仿真中使用,是不可综合的。在综合时,所有的延时控制都会被忽略。

(2)事件控制

分为两种:边沿触发事件和电平触发事件控制。

边沿触发:上升沿posedge,下降沿negedge。

4、流控制

流控制语句包括3类:跳转、分支、循环。

(1)if语句

else分支可缺省,但会生成本不期望的锁存器,所以不要省去。

(2)case语句

其格式如下:

case(变量)

情况1:语句1 ;

。。。。。

情况n:语句n;

default: 语句n+1;

endcase

default语句缺省也会生成锁存器,所以不要省去。

if语句是串行执行的,case语句是并行执行的,选用if语句要占用额外的硬件资源。

(3)循环语句

for循环。

while循环。

forever循环:forever语句必须写在initial模块中,用于产生周期性波形。

repeat循环:执行指定的循环数,如果循环计数表达式的值不确定(x或z),那么循环次数按0处理,其格式:

repeat(表达式)

begin

。。。。。

end

编辑:jq

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

    关注

    17

    文章

    126

    浏览量

    50419

原文标题:Verilog HDL语言(2) : Verilog HDL语言的描述语句

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言关键字分别发生在哪个阶段

    在编译的第一阶段:预处理,对一些宏定义做替换。 第二,const。 C语言中的 const 用于修饰只读变量,表示变量本身不能修改。 这个关键字会在编译的第二步起作用,也就是编译。
    的头像 发表于 11-24 10:31 188次阅读

    数字系统设计与Verilog HDL

    数字系统设计与Verilog HDL 1.兼职职位 ,不坐班,等待公司分配任务,时间自由 2.薪资: 200-5000不等可具体协商 3.要求:国内985/211院校在读或毕业,或者国外前100的院校 4.英语水平:四500+
    发表于 11-06 17:57

    Verilog HDL的基础知识

    本文继续介绍Verilog HDL基础知识,重点介绍赋值语句、阻塞与非阻塞、循环语句、同步与异步、函数与任务语法知识。
    的头像 发表于 10-24 15:00 423次阅读
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>的基础知识

    C语言关键字--typedef

    C语言关键字使用方法学习指南!
    的头像 发表于 10-07 12:44 268次阅读

    FPGA Verilog HDL代码如何debug?

    verilog是并行执行,想请教如何debug自己的verilog代码,我以前一直都是对照着modelsim上的方针波形来看看哪里逻辑错误! A:以下是一些常见的 Verilog
    发表于 09-24 19:16

    使用边缘AI和Sitara处理器进行关键字检测

    电子发烧友网站提供《使用边缘AI和Sitara处理器进行关键字检测.pdf》资料免费下载
    发表于 09-02 11:30 0次下载
    使用边缘AI和Sitara处理器进行<b class='flag-5'>关键字</b>检测

    快速掌握C语言关键字

    C语言中的32关键字你知道多少呢?根据关键字的作用分为四类:数据类型关键字、控制语句关键字
    的头像 发表于 07-06 08:04 353次阅读
    快速掌握C语言<b class='flag-5'>关键字</b>

    FPGA设计 Verilog HDL实现基本的图像滤波处理仿真

    今天给大侠带来FPGA设计中用Verilog HDL实现基本的图像滤波处理仿真,话不多说,上货。 1、用matlab代码,准备好把图片转化成Vivado Simulator识别的格式,即每行一
    发表于 05-20 16:44

    什么好用的verilog HDL编辑工具可用?

    什么好用的verilog HDL编辑工具可用?最好能集成实时的verilog HDL语法检测、自定义
    发表于 04-28 11:00

    verilog调用模块端口对应方式

    Verilog的模块端口对应方式,并提供示例代码和详细解释,以帮助读者更好地理解和应用。 首先,我们来了解一下Verilog的模块和模块端口。一
    的头像 发表于 02-23 10:20 1784次阅读

    veriloginitial和always的区别

    Verilog是一种硬件描述语言(HDL),用于设计和模拟数字电路。在Verilog关键字initial和always都是用于描述电路行
    的头像 发表于 02-22 16:09 2933次阅读

    verilog function函数的用法

    Verilog 是一种硬件描述语言 (HDL),主要用于描述数字电子电路的行为和结构。在 Verilog ,函数 (Function) 是一种用于执行特定任务并返回一
    的头像 发表于 02-22 15:49 5718次阅读

    verilogfunction和task的区别

    非常相似,但它们在功能和使用方式上有一些重要的区别。 定义和声明方式不同: Function:使用关键字"function"来定义和声明。函数可以
    的头像 发表于 02-22 15:40 1913次阅读

    关键字搜索文件夹某个TXT文件

    文件夹随时创造TXT文件,如何及时选出刚创造的文件?或关键字搜索出需要的TXT文件?
    发表于 02-06 15:22

    在NVM和本地\"内存定义数组(静态 /global /local)的\"关键字是什么?

    在 NVM 和本地\"内存定义数组(静态 /global /local)的\"关键字是什么? 还有与 32 位对齐的关键字怎么样。
    发表于 01-25 07:52