本帖最后由 笑溜溜+ 于 2012-7-27 21:42 编辑
各位路过的大虾,帮我指导一下。书中说“使用full_case避免综合出锁存器”,下面是我做的程序,一个没有synthesis full_case语句,另一个有。但是我用quartus综合后所用的逻辑单元依然一样,综合后的电路也是一样。不是synthesis full_case可避免综合出锁存器吗?怎么结果还是一样?- module datadistributor(datain,sel,enable,a,b,c,d);
- input datain;
- input[1:0] sel;
- input enable;
- output a;
- output c;
- output d;
- output b;
- reg a,b,c,d;
- always @(datain or enable or sel)
- begin
- if(enable==1'b1)
- begin
- case(sel)
- 2'b00:a<=datain;
- 2'b01:b<=datain;
- 2'b10:c<=datain;
- 2'b11:d<=datain;
- default:a<=datain;
- endcase
- end
- else
- begin
- a<=1'bz;
- b<=1'bz;
- c<=1'bz;
- d<=1'bz;
- end
- end
- endmodule
- module datadistributor_1(datain,sel,enable,a,b,c,d);
- input datain;
- input[1:0] sel;
- input enable;
- output a;
- output c;
- output d;
- output b;
- reg a,b,c,d;
- always @(datain or enable or sel)
- begin
- if(enable==1'b1)
- begin
- case(sel) //synthesis full_case
- 2'b00:a<=datain;
- 2'b01:b<=datain;
- 2'b10:c<=datain;
- 2'b11:d<=datain;
- default:a<=datain;
- endcase
- end
- else
- begin
- a<=1'bz;
- b<=1'bz;
- c<=1'bz;
- d<=1'bz;
- end
- end
-
-
- endmodule
|