输出PS2数据流-HDLbits

要求添加数据路径,把有效的PS2的3个字节的数据输出。

module top_module(
input clk,
input [7:0] in,
input reset, // Synchronous reset
output [23:0] out_bytes,
output done); //

// FSM from fsm_ps2
parameter BYTE1=2'h0,BYTE2=2'h1,BYTE3=2'h2,DONE=2'h3;
reg [1:0]state,next_state;
reg [23:0]data;
always @(*)
begin
case(state)
BYTE1:begin
next_state=in[3]?BYTE2:BYTE1;

end
BYTE2:begin
next_state=BYTE3;

end
BYTE3:begin
next_state=DONE;

end
DONE:next_state=in[3]?BYTE2:BYTE1;
default:next_state=BYTE1;
endcase
end

always @(posedge clk)
if(reset)
state<=BYTE1;
else
state<=next_state;

assign done=state==DONE;
// New: Datapath to store incoming bytes.
always @(posedge clk)
if(reset)
data<=24'h0;
else begin
data<={data[15:0],in};
end
assign out_bytes=done?data:24'hx;
endmodule

posted on 2025-12-18 15:42  yf.x  阅读(13)  评论(0)    收藏  举报

导航