求助!懂verilog HDL语言的来
大家帮我看看这个三八译码器的程序,帮我找找哪里错了~~谢谢了!!module38(A,B);input[2:0]A;output[7:0]B;reg[7:0]B;alwa...
大家帮我看看这个三八译码器的程序,帮我找找哪里错了~~谢谢了!!
module 38(A,B);
input [2:0] A;
output [7:0] B;
reg [7:0] B;
always@(B)
begin
case (a)
3'b000: B = 8'b00000001;
3'b001: B = 8'b00000010;
3'b010: B = 8'b00000100;
3'b011: B = 8'b00001000;
3'b100: B = 8'b00010000;
3'b101: B = 8'b00100000;
3'b110: B = 8'b01000000;
3'b111: B = 8'b10000000;
endcase
end
endmodule 展开
module 38(A,B);
input [2:0] A;
output [7:0] B;
reg [7:0] B;
always@(B)
begin
case (a)
3'b000: B = 8'b00000001;
3'b001: B = 8'b00000010;
3'b010: B = 8'b00000100;
3'b011: B = 8'b00001000;
3'b100: B = 8'b00010000;
3'b101: B = 8'b00100000;
3'b110: B = 8'b01000000;
3'b111: B = 8'b10000000;
endcase
end
endmodule 展开
3个回答
展开全部
module my_38(A,B);
input [2:0] A;
output [7:0] B;
reg [7:0] B;
always@(A)
begin
case (A)
3'b000: B = 8'b00000001;
3'b001: B = 8'b00000010;
3'b010: B = 8'b00000100;
3'b011: B = 8'b00001000;
3'b100: B = 8'b00010000;
3'b101: B = 8'b00100000;
3'b110: B = 8'b01000000;
3'b111: B = 8'b10000000;
endcase
end
endmodule
该成这样就OK了,原因是模块明必须以字母开头,你要做的是38译码所以always的敏感列表要该成A,case中的a是没用定义的变量Verilog是大小写敏感的也就是大写和小写是不同的变量你这里只有A所以把a改成A。
input [2:0] A;
output [7:0] B;
reg [7:0] B;
always@(A)
begin
case (A)
3'b000: B = 8'b00000001;
3'b001: B = 8'b00000010;
3'b010: B = 8'b00000100;
3'b011: B = 8'b00001000;
3'b100: B = 8'b00010000;
3'b101: B = 8'b00100000;
3'b110: B = 8'b01000000;
3'b111: B = 8'b10000000;
endcase
end
endmodule
该成这样就OK了,原因是模块明必须以字母开头,你要做的是38译码所以always的敏感列表要该成A,case中的a是没用定义的变量Verilog是大小写敏感的也就是大写和小写是不同的变量你这里只有A所以把a改成A。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
case (a) 这个A要大写
always@(B) 应该是always @(A)
always@(B) 应该是always @(A)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询