verilog中关于always语句嵌套task执行顺序和@(posedge clk)执行方式的问题

verilog中关于always语句嵌套task执行顺序和@(posedge clk)执行方式的问题首先明确一个事实 always posedgeclk 中的任务没有执行完的情况下是不会在下一个时钟上升沿到来的时候再次重复执行的再明确另一个事实在前面不带 always 的情况下 posedge 仅会按顺序执行一次 taskshift in output 7 0 shift begin posedgescl shift 7 sda posedgescl shift 6 sda posedgescl shift 5 sda

首先明确一个事实

always@(posedge clk)中的任务没有执行完的情况下是不会在下一个时钟上升沿到来的时候再次重复执行的

再明确另一个事实 在前面不带always的情况下,@(posedge)仅会按顺序执行一次。

task shift_in; output [7:0] shift; begin @ (posedge scl) shift[7] = sda; @ (posedge scl) shift[6] = sda; @ (posedge scl) shift[5] = sda; @ (posedge scl) shift[4] = sda; @ (posedge scl) shift[3] = sda; @ (posedge scl) shift[2] = sda; @ (posedge scl) shift[1] = sda; @ (posedge scl) shift[0] = sda; @ (negedge scl) begin #`timeslice ; out_flag = 1; //应答信号输出 sda_buf = 0; end @(negedge scl) #`timeslice out_flag = 0; end endtask

上段代码中每一次时钟上升沿到来仅会按顺序执行一行。

如果在一个always语句中嵌套如上task的时候,必须等待task执行完,always语句才会执行完,才能敏感下一次时钟信号再次执行always。

而always语句中的task任务会依次等待8次上升沿和一次下降沿后才会执行完。而此期间的时钟变化不会重复执行always语句。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231355.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vs2015安装失败,必需的组件失败_博图显示下位组件错误

    vs2015安装失败,必需的组件失败_博图显示下位组件错误VS2008安装失败,组件安装失败的解决办法之前安装过VS2008,二次安装时,提示组件安装失败![在这里插入图片描述](https://img-blog.csdnimg.cn/20210324112031241.png?x-oss-process=image/w解决办法:win10系统,设置》应用,卸载所有跟VS2008相关的组件,组件就是上面报错的左边那些,卸载完成后重新安装就可以了。其他问题,点装载VS2008的ISO的时候报错:文件正在使用,装载失败解决办法:检查SQLserver

    2025年9月30日
    6
  • 计算机科学丛书豆瓣_有关计算机科学与技术专业的书籍

    计算机科学丛书豆瓣_有关计算机科学与技术专业的书籍1.TheArtofComputerProgramming  Author:Donald.E.Knuth  Website:http://www-cs-faculty.stanford.edu/~knuth/taocp.html  BookInfo:这部书被誉为20世纪最重要的20部著作之一,与Einstein的>并列,是计算机科学领域的权威著作.全书共分7卷,目前已经出版了3卷

    2025年6月16日
    4
  • MySQL练习题(经典50题)

    MySQL练习题(经典50题)MySQL练习题(经典50题)–建表–学生表CREATETABLEStudent(s_idVARCHAR(20),s_nameVARCHAR(20)NOTNULLDEFAULT‘’,s_birthVARCHAR(20)NOTNULLDEFAULT‘’,s_sexVARCHAR(10)NOTNULLDEFAULT‘’,PRIMARYKEY(s_id));–课程表CREATETABLECourse(c_idVARCHAR(20),c_nam

    2026年1月19日
    5
  • ps磨皮滤镜插件Portraiture 3

    ps磨皮滤镜插件Portraiture 3Photoshop必备滤镜插件,Portraiture3formac(ps磨皮滤镜插件)是一款支持自动皮肤平滑、愈合和增强效果的磨皮插件,portraiture3主要针对人像进行皮肤修饰、磨皮润色等处理,还可以平滑和去除缺陷,同时保留皮肤纹理和重要的人像细节,功能十分强大,安装即为激活成功教程版。ps磨皮滤镜插件特色介绍Photoshop的画像消除了选择性蒙版和逐像素处理的繁琐的手工劳动,以帮助您在肖像修饰中实现卓越。Imagenomic发布了Photoshop的磨皮滤镜Portraiture

    2022年7月22日
    18
  • 哈佛大学公开课-幸福课-个人笔记

    哈佛大学公开课-幸福课-个人笔记b站视频链接十一讲:养成良好习惯舒适区拉升区 慢慢的做出改变,一步步来。暴力区人的一生一般都是在舒适区度过的,你要让自己适度的走出然后走进拉升区。自律是有一定量的是有限的,用了可能就没有了,需要时间来恢复。我们不可能拥有很多自律,但同时自律也不是那么重要。老师比喻:1.AB—-榨菜与巧克力,A是巧克力-榨菜,B榨菜-巧克力 最后是A先吃了榨菜,因为A在克制自己不…

    2022年7月18日
    17
  • jpa/springdata(1)jpa

    jpa/springdata(1)jpa

    2021年6月13日
    97

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号