本帖最后由 笑溜溜+ 于 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
|