congbupt 发表于 2010-12-4 14:37:52

verilog语言,if语句中如何既保存原来的值又不生成锁存器?

RT
比如:
//low_count是一个模4的计数器,一直循环下去,0123-0123-0123……
task shift_state;
          case(sh_state)
                  idle2:sh_state = (low_count==0)?bit1:idle2;
                  bit1: sh_state = (low_count==0)?bit2:bit1;
                  bit2: begin
                                sh_state = (low_count==0)?bit1:bit2;
                                          if(low_count==0)
                                             byte_end = 0;
                                          else
                                             byte_end = 1;
                                       end
                  default:sh_state = idle2;
             endcase
endtask

congbupt 发表于 2010-12-4 14:39:38

补充一下,上面这个case也生成锁存器。

另外是询问if语句中如何既保存原来的值又不生成锁存器。多谢各位大神

hwakicestone 发表于 2010-12-21 11:49:25

在if语句中进行操作,在else里面加上对这个语句的重复复制就好了!比如
if(a)
b<=c;
else
b<=b;
页: [1]
查看完整版本: verilog语言,if语句中如何既保存原来的值又不生成锁存器?