如果多个条件语句中的赋值变量不同,条件本身又互斥则没有必要使用if else,直接使用if即可,否则嵌套的
if else回增加延时。
如:
module test(clk,datin,datout1,datout2,datout3);
input clk;
input [7:0] datin;
output [7:0] datout1,datout2,datout3;
reg [7:0] datout1,datout2,datout3;
always@(posedge clk)
begin
if(datin==0)
datout1=1;
else if(datin==1)
datout2=2;
else if(datin==2)
datout3=3;
end
endmodule
综合结果为:
如图所示,datout3由3个2路选择器级联接入,datout2由2个2路选择器接入。他们的延时都将大于datout1。
module test(clk,datin,datout1,datout2,datout3);
input clk;
input [7:0] datin;
output [7:0] datout1,datout2,datout3;
reg [7:0] datout1,datout2,datout3;
always@(posedge clk)
begin
if(datin==0)
datout1=1;
if(datin==1)
datout2=2;
if(datin==2)
datout3=3;
end
endmodule
则3个输出都为一个2路选择器接入。
阅读(1473) | 评论(0) | 转发(0) |