首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为了速度而分离always_comb进程?

为了速度而分离always_comb进程?
EN

Stack Overflow用户
提问于 2017-03-13 00:43:01
回答 1查看 432关注 0票数 0

有几个变量定义:

代码语言:javascript
复制
var integer a;
var integer b;
var integer c;
var integer base;

这是组合过程吗?

代码语言:javascript
复制
always_comb begin
    a = base + 2;
    b = base + 3;
    c = base + 5;
end

比这些组合过程花费的时间更长

代码语言:javascript
复制
always_comb begin
    a = base + 2;
end
always_comb begin
    b = base + 3;
end
always_comb begin
    c = base + 5;
end

假设RHS在执行下一个语句之前被完全评估并分配给LHS?(我知道assign在这里会好得多,这不是我的意思)我指的是在FPGA上的执行(经过综合和实现)。我的观点是:如果阻塞语句确实是阻塞的,即使变量不相互依赖,分离的情况应该会导致更低的延迟,直到cbase更改后稳定下来。说明书对此有何说明?

EN

回答 1

Stack Overflow用户

发布于 2017-03-14 19:15:18

…假设RHS在执行下一个语句之前被完全评估并分配给LHS?

这种假设是不准确的。您提供的代码示例是完全等价的,并将合成到相同的RTL。

always_comb生成组合逻辑。没有任何排序暗示--当其中一个输入(如base)发生变化时,所有三个输出都将尽可能快地更改到新结果,但可能会受到传播延迟的影响。没有任何保证哪一个(如果有的话)将首先稳定在一个新的价值。

就其价值而言,同样的原则也在很大程度上适用于always_ff。如果这些代码示例使用的是always_ff而不是always_comb,那么它们也是等价的;在base更改后,单个时钟边缘将导致所有三个值( abc )都更新到新的和。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42755008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档