Verilog语言中如何用“case”何“if”语句分别用两方法设计4—2译码器
2个回答
展开全部
// 用case的方法
module decoder_4to2(
input wire [3:0] in4
output wire [1:0] out2
);
always @(*) begin
case(in4)
4'b0001 : out2 = 2'b00;
4'b0010 : out2 = 2'b01;
4'b0100 : out2 = 2'b10;
4'b1000 : out2 = 2'b11;
default : out2 = 2'b00;
endcase
end
endmodule
// 用if的方法
module decoder_4to2(
input wire [3:0] in4
output wire [1:0] out2
);
always @(*) begin
if(in4==4'b0001) out2 = 2'b00;
else if(in4==4'b0010) out2 = 2'b01;
else if(in4==4'b0100) out2 = 2'b10;
else if(in4==4'b1000) out2 = 2'b11;
else out2 = 2'b00;
end
endmodule
module decoder_4to2(
input wire [3:0] in4
output wire [1:0] out2
);
always @(*) begin
case(in4)
4'b0001 : out2 = 2'b00;
4'b0010 : out2 = 2'b01;
4'b0100 : out2 = 2'b10;
4'b1000 : out2 = 2'b11;
default : out2 = 2'b00;
endcase
end
endmodule
// 用if的方法
module decoder_4to2(
input wire [3:0] in4
output wire [1:0] out2
);
always @(*) begin
if(in4==4'b0001) out2 = 2'b00;
else if(in4==4'b0010) out2 = 2'b01;
else if(in4==4'b0100) out2 = 2'b10;
else if(in4==4'b1000) out2 = 2'b11;
else out2 = 2'b00;
end
endmodule
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
case (in[3:0])
4'b1000: out[1:0] = 2'b00;
4'b0100: out[1:0] = 2'b01;
4'b0010: out[1:0] = 2'b11;
4'b0001: out[1:0] = 2'b10;
endcase
if的写法照着上面改就行了
if (in==4'b1000)
out = 2'b00;
else if (in==4'b0100)
....
4'b1000: out[1:0] = 2'b00;
4'b0100: out[1:0] = 2'b01;
4'b0010: out[1:0] = 2'b11;
4'b0001: out[1:0] = 2'b10;
endcase
if的写法照着上面改就行了
if (in==4'b1000)
out = 2'b00;
else if (in==4'b0100)
....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询