在verilog设计时,我们应当避免锁存器(Latch) 的产生,下列代码中,会被综合为锁存器的有
```
module modulea(
input data,
input en ,
output reg q) ;
always @(*) begin
if (en) q = data ;
end
endmodule
```
```
module moduleb(
input data1,
input data2,
input en ,
output reg q1 ,
output reg q2 ) ;
always @(*) begin
if (en) q1 = data1 ;
else q2 = data2 ;
end
endmodule
```
```
module modulec(
input data1,
input data2,
input [1:0] sel ,
output reg q ) ;
always @(*) begin
case(sel)
2'b00: q = data1 ;
2'b01: q = data2 ;
endcase
end
endmodule
```
```
module moduled(
rd,
rst,
outdata
);
input rd;
input rst;
output reg outdata;
always@(rst)
if(!rst)
outdata = 1'b0;
else
outdata = rd;
endmodule
```