gpt4 book ai didi

Verilog 始终使用 (*) 符号进行阻止

转载 作者:行者123 更新时间:2023-12-02 15:36:08 24 4
gpt4 key购买 nike

我有一个关于如何在 Verilog 模块中编写 always block 的简单问题。
如果我的 Verilog 模块中有以下输入:

input        [31:0] PCplus4 ;       // Value of PC + 4
input [31:0] A; // Value A, i.e. RSbus (Use Forwarded Value)
input [31:0] B; // Value B, i.e. RTbus (Use Forwarded Value)
input [31:0] IMM; // Extended Immediate Value
input [25:0] TARGET; // Target Address for Jumps
input [3:0] BR; // Branch Selector Input

如果我使用有什么区别

always @ (*)  

而不是

always @ (PCplus4  or A or B or IMM or TARGET or BR)  

always @ (*)语法对所有版本的 Verilog 都有效吗?

最佳答案

always @(*) 语法于 2001 年添加到 IEEE Verilog 标准中。所有现代 Verilog 工具(模拟器、综合等)都支持此语法。

这里引用了 LRM (1800-2009) 的一段话:

An incomplete event_expression list of an event control is a common source of bugs in register transfer level (RTL) simulations. The implicit event_expression, @*, is a convenient shorthand that eliminates these problems by adding all nets and variables that are read by the statement (which can be a statement group) of a procedural_timing_ control_statement to the event_expression.

因此,您的两行代码可能是等效的(这取决于 always block 主体中的代码)。但是,@* 语法更易于维护。

关于Verilog 始终使用 (*) 符号进行阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6009998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com