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

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

3天内不再提示

基于阻塞赋值和非阻塞赋值的多级触发器级联实例

电子工程师 来源:CSDN 作者:a14730497 2021-05-08 14:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

下面给出一个基于阻塞赋值和非阻塞赋值的多级触发器级联实例,要求将输入数据延迟 3 个时钟周期再输出,并给出对应的 RTL 级结构图和仿真结果。

(1)基于 D触发器的阻塞赋值语句代码如下:

module pipeb1 (q3, d, clk);

output [7:0] q3;

input [7:0] d;

input clk;

reg [7:0] q3, q2, q1;

always @(posedge clk)

begin

q1 = d;

q2 = q1;

q3 = q2;

end

endmodule

上述代码综合后能得到所期望的逻辑电路吗? 答案是否定的, 根据阻塞赋值语句的执行过程可以得到执行后的结果是 q1 = d;q2 = d。实际只会综合出一个寄存器,如图 8-33 所示,并列出下面的警告信息,而不是所期望的三个。其中的主要原因就是采用了阻塞赋值,首先将 d 的值赋给 q1,再将q1 的值赋给q2,依次到q3,但是 q1、q2、q3 的值在赋值前其数值已经全部被修改为当前时刻的 d 值,因此上述语句等效于 q3=d,这和图 8-33 所示的 RTL 结构是一致的。

pIYBAGCWNI-AKXz-AADOG74i4Xg491.jpg

(2) 如何才能得到所需要的电路呢?如果把 always 块中的两个赋值语句的次序颠倒后再进行分析:先把 q2 的值赋于 q3、再把 q1 的值赋于 q2,最后把 d 赋于q1。这样在先赋值再修改,可以使得 q2,q3 的值都不再是 d 的当前值。修改后的代码如下所列。

module pipeb2 (q3, d, clk);

output [7:0] q3;

input [7:0] d;

input clk;

reg [7:0] q3, q2, q1;

always @(posedge clk)

begin

q3 = q2;

q2 = q1;

q1 = d;

end

endmodule

原文标题:FPGA学习:verilog中阻塞的理解与例子

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    1655

    文章

    22283

    浏览量

    630152
  • 电路图
    +关注

    关注

    10458

    文章

    10749

    浏览量

    551657
  • Verilog
    +关注

    关注

    30

    文章

    1370

    浏览量

    114121

原文标题:FPGA学习:verilog中阻塞的理解与例子

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    飞凌嵌入式ElfBoard-文件I/O的深入学习之阻塞I/O与阻塞I/O

    可能会使程序阻塞等待,直到有数据可读时才会被唤醒返回。 普通文件的读写操作是不会阻塞的,不管读写多少个字节数据,read或 write一定会在有限的时间内返回,所以普通文件一定是以阻塞
    发表于 12-01 13:07

    matlab appdesigner 表格组件赋值问题,求助

    如上图所示,我在用matlab2021Ra APP模块进行编程的时候,想在表格中调入自己编写的结构数组,我从网上AI了一个程序语句,看着没问题,但是就是给表格赋值不了,还请各位大神帮忙看一下这个是怎么回事,我是初学者,请各位帮忙看看
    发表于 07-12 11:45

    高速施密特触发器密封光耦合 skyworksinc

    电子发烧友网为你提供()高速施密特触发器密封光耦合相关产品参数、数据手册,更有高速施密特触发器密封光耦合的引脚图、接线图、封装手册、中文资料、英文资料,高速施密特
    发表于 07-09 18:31
    高速施密特<b class='flag-5'>触发器</b>密封光耦合<b class='flag-5'>器</b> skyworksinc

    密封表面贴装、高速施密特触发器光耦合 skyworksinc

    电子发烧友网为你提供()密封表面贴装、高速施密特触发器光耦合相关产品参数、数据手册,更有密封表面贴装、高速施密特触发器光耦合的引脚图、接线图、封装手册、中文资料、英文资料,密封表面
    发表于 07-04 18:37
    密封表面贴装、高速施密特<b class='flag-5'>触发器</b>光耦合<b class='flag-5'>器</b> skyworksinc

    用于混合组装的微型高速施密特触发器光耦合 skyworksinc

    电子发烧友网为你提供()用于混合组装的微型高速施密特触发器光耦合相关产品参数、数据手册,更有用于混合组装的微型高速施密特触发器光耦合的引脚图、接线图、封装手册、中文资料、英文资料,
    发表于 07-03 18:34
    用于混合组装的微型高速施密特<b class='flag-5'>触发器</b>光耦合<b class='flag-5'>器</b> skyworksinc

    Texas Instruments SN74HC112双路J-K触发器数据手册

    Texas Instruments SN74HC112双路J-K触发器包含两个独立的J-K负边缘触发触发器。清零 (/CLR) 输入或预设 (/PRE) 上的低电平会复位或设置输出,无论其他输入
    的头像 发表于 07-03 14:57 643次阅读
    Texas Instruments SN74HC112双路J-K<b class='flag-5'>触发器</b>数据手册

    施密特触发器光耦特性

    产品的典型代表。密特触发器,对接收的光信号进行整形和噪声抑制。施密特触发器的阈值电压分为高阈值(Vₜ₊)和低阈值(Vₜ₋),可有效消除输入信号的抖动或噪声,确保输出信号干
    的头像 发表于 06-12 10:52 1040次阅读
    施密特<b class='flag-5'>触发器</b>光耦特性

    在testbench中如何使用阻塞赋值阻塞赋值

    本文详细阐述了在一个testbench中,应该如何使用阻塞赋值阻塞赋值。首先说结论,建议在testbench中,对时钟信号(包括分频时钟
    的头像 发表于 04-15 09:34 1000次阅读
    在testbench中如何使用<b class='flag-5'>阻塞</b><b class='flag-5'>赋值</b>和<b class='flag-5'>非</b><b class='flag-5'>阻塞</b><b class='flag-5'>赋值</b>

    如何使用BCTU触发器进行eMIOS ADC转换?

    (或更多)BCTU 触发配置,以 One-Shot 模式运行,并在同一 ADC 实例上进行预采样。ADC 也处于 BCTU 控制模式,确保只有 BCTU 可以发送触发器。如果我的 ADC 触发
    发表于 04-01 08:18

    数字电路—20、边沿触发器

    边沿触发器:靠CP脉冲上升沿或下降沿进行触发
    发表于 03-26 14:52

    数字电路—19、主从触发器

    触发器:同步RS触发器(FF2),其状态由输入信号决定 从触发器:同步RS触发器(FF1),其状态由主触发器的状态决定
    发表于 03-26 14:48

    数字电路—17/18、基本RS触发器

    同步触发器:基本RS触发器触发方式(动作特点):逻辑电平直接触发。(由输入信号直接控制) 在实际工作中,要求触发器按统一的节拍进行状态更
    发表于 03-26 14:27

    数字电路—16、触发器

    触发器是构成时序逻辑电路的基本单元电路。 触发器具有记忆功能,能存储一位二进制数码。
    发表于 03-26 14:21

    “串口阻塞”你真的会用吗?

    很久才会发出来,一下子出来很多数据”。经过帮客户检查应用程序源码,发现应用程序在串口阻塞方面没有做正确的处理,修改后解决。阻塞打开串口open("/dev/tty
    的头像 发表于 02-13 11:42 1198次阅读
    “串口<b class='flag-5'>阻塞</b>”你真的会用吗?

    触发器的作用与应用

    执行更新操作。这在处理级联更新时特别有用。 审计和日志记录 :触发器可以用来记录数据库操作的审计日志,这对于跟踪数据变化和进行安全审计至关重要。 复杂业务逻辑实现 :在某些情况下,业务逻辑可能过于复杂,不适合在应用
    的头像 发表于 12-17 14:51 1852次阅读