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

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

3天内不再提示

Verilog HDL提供了哪两种类型的显式时序控制

FPGA之家 来源:YGOPRO de Space 作者:无名法老王 2021-07-02 10:52 次阅读

Verilog HDL提供了两种类型的显式时序控制:一种是延迟控制,即定义执行语句的延迟时间;另一种是事件控制,只有当某一事件发生时才允许该语句继续向下执行。

Verilog仿真时,仿真时间由以下四种形式进行控制:

(1)定义过的门级或线传输延迟

(2)由#符号引入的延迟控制

(3)由@符号引入的事件控制

(4)等待语句

其中形式1是由门级器件来决定的,无须讨论。

1、延迟控制#

Verilog延迟控制格式为:

# expression

延迟时间由expression的值确定。

example1:

module delay; reg[1:0] r; initial #70 $stop; initial begin : b1 #10 r=1; #20 r=1; #30 r=1; end initial begin : b2 #5 r=2; #20 r=2; #30 r=2; end always @r begin $display(“r=%0d at time %0d”,r,$time); end endmodule

执行结果如下:

r=2 at time 5 r=1 at time 10 r=2 at time 25r=1 at time 30 r=2 at time 55 r=1 at time 60

在赋值语句中使用:

current_state=#clock_period next_state;

2、事件控制

一个事件可以通过运行表达式:-》event变量来被激发。

事件变量的声明:

event var;

event触发为:

-》var;

捕获触发为:

@(var);

在赋值语句中使用:

current_state=@(posedge clock) next_state;

3、等待语句

wait(expression)

当等待的表达式为假则中断运行,知道表达式变为真。

4、延迟定义模块

Verilog可以对模块中某一指定的路径进行延迟定义,延迟定义块内容要放在specify和endspecify之间,延迟定义块是一个独立的块结构,不在任何其他模块(如initial或always)内出现,在定义块内使用specparam关键字定义参数

(1)并行连接:每条路径都有一个源域和一个目标域,每一位对应相连(向量位数相同)。

(source=》destination)=《delay_value》;

(2)全连接:位对位连接,源和目标位数不必相同(源域的每一位和目标域的每一位分别相连)。

(source*》destination)=《delay_vaule》;

编辑:jq

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

    关注

    50

    文章

    4014

    浏览量

    133310
  • Verilog
    +关注

    关注

    28

    文章

    1341

    浏览量

    109910
  • HDL
    HDL
    +关注

    关注

    8

    文章

    326

    浏览量

    47301

原文标题:Verilog HDL语言(4):时序控制

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

收藏 人收藏

    评论

    相关推荐

    Verilog HDL的基础知识

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

    FPGA Verilog HDL代码如何debug?

    个数找最大值,现在有两种实现方法,哪种比较好? 一种是4级比较器,用寄存器的,4个时钟的到结果。一种是用wire,直接assign的,马上就能得到结果,不过我在下一个时钟等他稳定才取来用。 A:这两种
    发表于 09-24 19:16

    防雷器件一般有两种类型

    防雷器件是用于保护电子设备和建筑物免受雷电冲击波影响的重要组件。它们可以有效地将雷电能量引导至地面,从而保护人员和设备的安全。防雷器件的种类繁多,但通常可以分为大类:外部防雷器件和内部防雷器
    的头像 发表于 09-21 09:17 204次阅读

    如何在两种类型的SOT663封装之间进行协同布局

    电子发烧友网站提供《如何在两种类型的SOT663封装之间进行协同布局.pdf》资料免费下载
    发表于 09-11 11:35 0次下载
    如何在<b class='flag-5'>两种类型</b>的SOT663封装之间进行协同布局

    边沿触发器主要有两种类型

    边沿触发器是一种数字电路元件,它在数字逻辑设计中扮演着重要的角色。边沿触发器主要有两种类型:上升沿触发器和下降沿触发器。这两种触发器的主要区别在于它们响应的是信号的上升沿还是下降沿。 边沿触发器
    的头像 发表于 08-09 17:44 556次阅读

    电源时序器属于控制继电器吗

    电源时序器和控制继电器是两种不同的电子设备,电源时序器通过控制继电器实现对电源设备的顺序控制,而
    的头像 发表于 07-08 14:30 422次阅读

    cpu控制器的两种类型和特点

    CPU控制器,即中央处理器控制器,是计算机硬件的核心部件之一,负责执行程序指令和控制计算机的运行。CPU控制器的类型和特点对于计算机的性能和
    的头像 发表于 06-30 10:59 983次阅读

    FPGA verilog HDL实现中值滤波

    今天给大侠简单带来FPGA verilog HDL实现中值滤波,话不多说,上货。一、实现步骤: 1、查看了中值滤波实现相关的网站和paper; 2、按照某篇paper的设计思想进行编程实现
    发表于 06-18 18:50

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

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

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

    有什么好用的verilog HDL编辑工具可用?最好能集成实时的verilog HDL语法检测、自定义模块识别触发等功能,最好能够免费;
    发表于 04-28 11:00

    逆变电路分为两种类型

    路: 单相逆变器通常用于小功率应用,如家用电器或小型便携设备。它们可以是方波、修正正弦波或正弦波输出。 单相逆变电路是一种将直流电源转换成单相交流电的电子装置,其典型应用包括功率调节器和不间断电源(UPS)系统,这些系统通常用于家庭和商业环境。该电
    的头像 发表于 02-23 17:31 994次阅读
    逆变电路分为<b class='flag-5'>哪</b><b class='flag-5'>两种类型</b>

    verilog inout用法与仿真

    Verilog语言是一种硬件描述语言(HDL),用于描述数字逻辑电路和系统。它是一种非常强大且广泛使用的语言,在数字电路设计中扮演着重要的角色。其中, inout 是Verilog中的一种信号
    的头像 发表于 02-23 10:15 2525次阅读

    时序电路包括两种类型 时序电路必然存在状态循环对不对

    时序电路是由触发器等时序元件组成的数字电路,用于处理时序信号,实现时序逻辑功能。根据时序元件的类型
    的头像 发表于 02-06 11:22 1146次阅读

    Verilog HDL数字集成电路设计方法概述

    电子发烧友网站提供Verilog HDL数字集成电路设计方法概述.zip》资料免费下载
    发表于 02-03 09:27 2次下载

    晶振中的抖动有两种主要类型

    晶振中的抖动有两种主要类型? 晶振中的抖动主要分为相位抖动和频率抖动。 相位抖动是指晶振输出信号相位的随机波动。这种波动可能是由于晶体本身的不完美造成的,也可能是由于外部环境的干扰引起的。相位抖动
    的头像 发表于 01-25 13:51 816次阅读