System verilog 如何删除if语句中的保留代码
试图使这段现有代码更加紧凑System verilog 如何删除if语句中的保留代码,system-verilog,System Verilog,试图使这段现有代码更加紧凑 if(argA) { struct_A_s addr; Chunk of common code; } else if(argB) { struct_B_s addr Chunk of common code; `enter code here` } else { struct_C_s addr; Chunk of common code; } I wish to do
if(argA) {
struct_A_s addr;
Chunk of common code;
}
else if(argB) {
struct_B_s addr
Chunk of common code;
`enter code here` }
else {
struct_C_s addr;
Chunk of common code;
}
I wish to do something similar to the lines below.
写在addr下面的方式没有得到正确的结构
if(argA) {
struct_A_s addr;
}
else if(argB) {
struct_B_s addr
}
else {
struct_C_s addr;
}
Chunk of common code;
有什么想法吗?您的第二组代码是在零时间内执行的,没有时间增量,因此在解析此代码之后,您的结果结构可能仍然未知,直到稍后的增量时间。我的猜测是,在“公共代码块”中存在某种程度的延迟,导致addr值被更新。如果不理解
addr
在公共代码中是如何使用的,很难说。最有可能使用addr
作为参数为公共代码创建函数。然后,您只需在条件子句中使用函数名。您在非SystemVerilog中显示的代码。谢谢Serge-dave_59,Yes:),大括号基本上是开始和结束。您确实需要提供更多的细节,以及它如何不提供正确的结构。