首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flops的verilog表示

flops的verilog表示
EN

Stack Overflow用户
提问于 2014-03-24 19:48:54
回答 2查看 196关注 0票数 3

我正在自学verilog,并试图写一个失败的模型。我在指定部分遇到了以下ck->q延迟弧的建模,但不能理解它到底做了什么。

(posedge CK => (Q : 1'b1))=(0, 0);

有人能给我解释一下它是怎么工作的吗?这是不是就像D=1, CK->Q考虑这些延迟一样?如果是这样,我们是否需要(posedge CK => (Q : 1'b0))=(0, 0);

那么针脚D上的X传播情况如何?

EN

回答 2

Stack Overflow用户

发布于 2014-03-24 20:37:16

Verliog可用于对多个层次进行建模。简单的行为模型,RTL (可合成)模拟数据和控制的传输,或处于逻辑门级的门级( and or,触发器)。通常,只有Gate级别必须知道这些延迟。

RTL中模拟翻转行为的典型方法是:

代码语言:javascript
复制
always @(posedge clk) begin
  q <= d;
end
票数 1
EN

Stack Overflow用户

发布于 2014-03-25 01:40:08

您引用的是边缘敏感路径。根据IEEE Std 1800-2012的30.4.3节,“它用于对输入到输出延迟的时序进行建模,只有当指定的边沿出现在源信号处时,才会发生这种延迟”。

您的示例中的数据源表达式(D=1'b1)是一个任意表达式,它用作到路径目标的数据流的描述。这种任意的数据路径描述不会影响数据或事件在模型中的实际传播;数据路径源中的事件如何传播到目标取决于模块的内部逻辑。

在你的例子中,(posedge CK => (Q : 1'b1))=(0, 0)(posedge CK => (Q : 1'b0))=(0, 0)都意味着在CK的正边沿,一个模块路径(又称延迟弧)从CK延伸到Q,它的上升和下降时间为0。

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

https://stackoverflow.com/questions/22608581

复制
相关文章

相似问题

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