HDLbits刷题记录之Always nolatches
题目:
要求是给四个按键进行赋值,所以默认给0,这样的话,case的default可以省略。直接上代码吧。先放一段我写的错误代码,如下:
// 错误代码
module top_module (
input [15:0] scancode,
output reg left,
output reg down,
output reg right,
output reg up );
always@(*) begin
case(scancode)
16'he06b : begin left = 1'b1;down = 1'b0;right =1'b0;up = 1'b0; end
16'he072 : begin left = 1'b0;down = 1'b1;right =1'b0;up = 1'b0; end
16'he074 : begin left = 1'b0;down = 1'b0;right =1'b1;up = 1'b0; end
16'he075 : begin left = 1'b0;down = 1'b0;right =1'b0;up = 1'b1; end
endcase
end
endmodule
虽然上面写的繁琐,但是为什么有些地方在报错,我不明白。如有大佬看到小弟写的错误,还请指点一下本菜鸡。
下面贴一下我在网上找的正确方法的代码:
// synthesis verilog_input_version verilog_2001
module top_module (
input [15:0] scancode,
output reg left,
output reg down,
output reg right,
output reg up );
always@(*) begin
left = 1'b0;down = 1'b0;right =1'b0;up = 1'b0;
case(scancode)
16'he06b : left = 1'b1;
16'he072 : down = 1'b1;
16'he074 : right =1'b1;
16'he075 : up = 1'b1;
endcase
end
endmodule
总结思考:
近日被课程缠身,更新的速度慢了些,回宿舍睡觉了,明天再更。