2502|2

900

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

Verilog过程赋值语句提问 [复制链接]

8芯积分
在书上看到的,讲解阻塞型赋值语句时,举了一个例子

说的是,本想采用触发器的方式,
设计一个延时来使得dreg的输出比areg慢3个时钟节拍,
但是结果是dreg的输出只比areg慢一个时钟节拍输出

程序和逻辑电路图,在下图给出
在分析中(如上图),既然已经说了,是顺序执行,
那么每天语句执行时间为一个时钟周期,
三个语句执行完不就是延时3个周期了吗?
即使后一句的右边是前一句更新后的结果,
到程序执行完时,dreg还是变成了areg
这样不就是延时3个时钟周期了吗?为什么不是这样呢?

另外,
阻塞型赋值语句,规定是,顺序执行语句,每种状态一个接一个执行,
非阻塞型赋值语句,规定是,并行赋值语句,当执行语句时同事计算右边的表达式,
而不会立刻把值赋给左边的变量,过一段时间才会赋值

那在下图中,是把第一个例子中的功能用非阻塞语句实现了
这里说的过一段时间,是指的是CLK信号来到时,才会赋值到左边吗?如果可以把阻塞和非阻塞赋值语句简单化的讲解一下就更好了,谢!



1.jpg (622.21 KB, 下载次数: 0)

1.jpg

IMG_20170920_145413.jpg (525.54 KB, 下载次数: 0)

IMG_20170920_145413.jpg
此帖出自FPGA/CPLD论坛

最新回复

对于非阻塞赋值。三条语句。同时计算右值。经过短暂的延时,同时更新左值。电路上。你就认为,时钟沿到来,三个触发器,同时得到各自当前的输入,经过短暂延时,同时更新输出端的状态。 这个过程清楚了。给一个初始状态。经过几次时钟触发。看看每次都有什么变化。列个表。  详情 回复 发表于 2017-9-22 15:46
点赞 关注
 

回复
举报

14

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
书里边解释已经挺明白了呀,在begin和end之间是clk上升沿到来时要做的事情。

如果使用阻塞赋值是顺序执行,要先把a给b,再把b给c,再把c给d,三个过程是先后进行的,但肯定在下一个clk上升沿到来前就执行完了,所以只延迟了一拍。

如果使用非阻塞赋值,clk上升沿到来时,实际上也要把a给b,把b给c,把c给d。但是这三个过程是同时发生的!也就是a的值给b的同时,b是把自己上一个值给c。比如a把1给b,但b此前是0,在相同的时间内b只能把0给c,不可能把1给c,于是一个clk内,1只能从a到b,下一个clk上升沿到来才能b到c,第三个clk上升沿到来才能c到d。

不知道这样说算不算清楚。
此帖出自FPGA/CPLD论坛
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

板凳
 
对于非阻塞赋值。三条语句。同时计算右值。经过短暂的延时,同时更新左值。电路上。你就认为,时钟沿到来,三个触发器,同时得到各自当前的输入,经过短暂延时,同时更新输出端的状态。 这个过程清楚了。给一个初始状态。经过几次时钟触发。看看每次都有什么变化。列个表。
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表