首页 > 解决方案 > 如何删除 if 语句中的重复代码

问题描述

试图使这段现有代码更紧凑。

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;

有任何想法吗 ?

标签: system-verilog

解决方案


您的第二组代码在零时间内执行,没有时间增量,因此在解析此代码后,您的结果结构可能仍然未知,直到稍后的增量时间。我的猜测是,在“公共代码块”中存在一定程度的延迟,导致 addr 值被更新。


推荐阅读