FPGA|CPLD|ASICwilliam hill官网
直播中

shaorc

8年用户 676经验值
私信 关注
[问答]

Verilog过程赋值语句提问

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

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

程序和逻辑威廉希尔官方网站 图,在下图给出

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

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

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




` 1.jpg IMG_20170920_145413.jpg

回帖(1)

chenwei6991627

2017-9-20 15:10:02

最佳答案

这个看你功能要求了啊
举报

更多回帖

发帖
×
20
完善资料,
赚取积分