Avoiding latches
// 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
// 初始化所有输出信号为0
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; // 向上箭头键
// 其他扫描码不处理,保持输出为0
endcase
end
endmodule