用Verilog语言设计一个3-8译码器~(要求分别用case语句和if_else语句各写一份~)

如题所述

module decoder38(

input [2:0]code,

output reg[7:0]result

);

always@(*)

begin

case(code)

3'b000: result = 8'h01;

3'b001: result = 8'h02;

3'b010: result = 8'h04;

3'b011: result = 8'h08;

3'b100: result = 8'h10;

3'b101: result = 8'h20;

3'b110: result = 8'h40;

3'b111: result = 8'h80;

endcase

end

endmodule

module decoder38(

input [2:0]code,

output reg[7:0]result

);

always@(*)

begin

if(code[2])

if(code[1])

if(code[0])

result = 8'h80;

else

result = 8'h40;

else

if(code[0])

result = 8'h20;

else

result = 8'h10;

else

else

if(code[1])

if(code[0])

result = 8'h08;

else

result = 8'h04;

else

if(code[0])

result = 8'h02;

else

result = 8'h01;

else

end

endmodule

工作原理

使用Verilog描述硬件的基本设计单元是模块(module)。构建复杂的电子电路,主要是通过模块的相互连接调用来实现的。模块被包含在关键字module、endmodule之内。实际的电路元件。Verilog中的模块类似C语言中的函数,它能够提供输入、输出端口,可以实例调用其他模块,也可以被其他模块实例调用。模块中可以包括组合逻辑部分、过程时序部分。

以上内容参考:百度百科-Verilog HDL

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-01
module decoder38(
input [2:0]code,
output reg[7:0]result
);

always@(*)
begin
case(code)
3'b000: result = 8'h01;
3'b001: result = 8'h02;
3'b010: result = 8'h04;
3'b011: result = 8'h08;
3'b100: result = 8'h10;
3'b101: result = 8'h20;
3'b110: result = 8'h40;
3'b111: result = 8'h80;
endcase
end
endmodule

module decoder38(
input [2:0]code,
output reg[7:0]result
);

always@(*)
begin
if(code[2])
if(code[1])
if(code[0])
result = 8'h80;
else
result = 8'h40;
else
if(code[0])
result = 8'h20;
else
result = 8'h10;
else
else
if(code[1])
if(code[0])
result = 8'h08;
else
result = 8'h04;
else
if(code[0])
result = 8'h02;
else
result = 8'h01;
else

end
endmodule本回答被提问者采纳
第2个回答  2011-10-17
楼上回答已经属于是标准答案了~
相似回答