);
reg [63:0] DLYTIME;
reg [0:0] arrive;
reg [31:0] h2f_cmd_r;
initial
begin
DLYTIME<='b0;
arrive<='b0;
intn<='b0;
h2f_cmd_r<='b0;
end
always @(posedge sclk or negedge rst_n)
begin
if(rst_n==0)
DLYTIME<='b0;
else if(w_en==1 && cs==1 && wr_addr==12'h800)
begin
DLYTIME=64'd100000000;
if(DLYTIME!='b0)
begin
DLYTIME=DLYTIME-1;
if(DLYTIME=='b0)
arrive=1;
else
arrive=0;
end
end
else
if(DLYTIME!='b0)
begin
DLYTIME=DLYTIME-1;
if(DLYTIME=='b0)
arrive=1;
else
arrive=0;
end
end
always @(posedge sclk or negedge rst_n)
begin
if(rst_n==0)
h2f_cmd_r<='b0;
else
h2f_cmd_r<=h2f_cmd;
end
always @(posedge sclk or negedge rst_n)
begin
if(rst_n==0)
r_data<='b0;
else if(r_en==1 && cs==1)
case(wr_addr)
12'h800:r_data<=h2f_cmd_r;
12'h801:r_data<=h2f_cmd_r[15:0];
default:r_data<='b0;
endcase
end
always @(posedge sclk or negedge rst_n)
begin
if(rst_n==0)
intn<=0;
else if(arrive==1)
intn<=1;
else
intn<=0;
end
endmodule