URL
https://opencores.org/ocsvn/srdydrdy_lib/srdydrdy_lib/trunk
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 2 |
Rev 14 |
Line 34... |
Line 34... |
parameter width=128)
|
parameter width=128)
|
(input clk,
|
(input clk,
|
input reset,
|
input reset,
|
|
|
input c_srdy,
|
input c_srdy,
|
output reg c_drdy,
|
//output reg c_drdy,
|
|
output c_drdy,
|
input [width-1:0] c_data,
|
input [width-1:0] c_data,
|
input [mirror-1:0] c_dst_vld,
|
input [mirror-1:0] c_dst_vld,
|
|
|
output reg [mirror-1:0] p_srdy,
|
output reg [mirror-1:0] p_srdy,
|
input [mirror-1:0] p_drdy,
|
input [mirror-1:0] p_drdy,
|
Line 51... |
Line 52... |
|
|
always @(posedge clk)
|
always @(posedge clk)
|
if (load)
|
if (load)
|
p_data <= `SDLIB_DELAY c_data;
|
p_data <= `SDLIB_DELAY c_data;
|
|
|
|
assign c_drdy = (p_srdy == 0);
|
|
|
always @*
|
always @*
|
begin
|
begin
|
nxt_p_srdy = p_srdy;
|
nxt_p_srdy = p_srdy;
|
nxt_state = state;
|
|
c_drdy = 0;
|
|
load = 0;
|
load = 0;
|
|
|
case (state)
|
if (p_srdy == {mirror{1'b0}})
|
0 :
|
|
begin
|
begin
|
c_drdy = 1'b1;
|
|
if (c_srdy)
|
if (c_srdy)
|
begin
|
begin
|
if (c_dst_vld == {mirror{1'b0}})
|
if (c_dst_vld == {mirror{1'b0}})
|
nxt_p_srdy = {mirror{1'b1}};
|
nxt_p_srdy = {mirror{1'b1}};
|
else
|
else
|
nxt_p_srdy = c_dst_vld;
|
nxt_p_srdy = c_dst_vld;
|
nxt_state = 1;
|
|
load = 1;
|
load = 1;
|
end
|
end
|
end
|
end
|
|
else
|
1 :
|
|
begin
|
begin
|
nxt_p_srdy = p_srdy & ~p_drdy;
|
nxt_p_srdy = p_srdy & ~p_drdy;
|
|
|
if (p_srdy == {mirror{1'b0}})
|
|
begin
|
|
nxt_state = 1'b0;
|
|
end
|
|
end
|
end
|
endcase
|
|
end
|
end
|
|
|
always @(`SDLIB_CLOCKING)
|
always @(`SDLIB_CLOCKING)
|
begin
|
begin
|
if (reset)
|
if (reset)
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.