fix: request/done protocol
This commit is contained in:
@ -12,11 +12,11 @@ module sampler
|
|||||||
input [DATA_WIDTH-1:0] data_in,
|
input [DATA_WIDTH-1:0] data_in,
|
||||||
input out_of_range,
|
input out_of_range,
|
||||||
input [31:0] smp_num,
|
input [31:0] smp_num,
|
||||||
input done,
|
input request,
|
||||||
|
|
||||||
output logic [DATA_WIDTH*PACK_FACTOR-1:0] m_axis_tdata,
|
output logic [DATA_WIDTH*PACK_FACTOR-1:0] m_axis_tdata,
|
||||||
output logic m_axis_tvalid,
|
output logic m_axis_tvalid,
|
||||||
output logic request
|
output logic done
|
||||||
);
|
);
|
||||||
logic [DATA_WIDTH-1:0] data_converted;
|
logic [DATA_WIDTH-1:0] data_converted;
|
||||||
logic out_of_range_reg;
|
logic out_of_range_reg;
|
||||||
@ -66,18 +66,18 @@ module sampler
|
|||||||
cnt_smp_num <= '0;
|
cnt_smp_num <= '0;
|
||||||
smp_num_reg <= '0;
|
smp_num_reg <= '0;
|
||||||
enable <= 0;
|
enable <= 0;
|
||||||
request <= 0;
|
done <= 0;
|
||||||
end
|
end
|
||||||
else begin
|
else begin
|
||||||
buffer_ready <= 0;
|
buffer_ready <= 0;
|
||||||
if (!enable) begin
|
if (!enable) begin
|
||||||
if (request && done) begin
|
if (done && request) begin
|
||||||
enable <= 1;
|
enable <= 1;
|
||||||
request <= 0;
|
done <= 0;
|
||||||
cnt_smp_num <= 0;
|
cnt_smp_num <= 0;
|
||||||
smp_num_reg <= smp_num;
|
smp_num_reg <= smp_num;
|
||||||
end else begin
|
end else begin
|
||||||
request <= 1;
|
done <= 1;
|
||||||
end
|
end
|
||||||
end else begin
|
end else begin
|
||||||
if (cnt_smp_num != smp_num_reg) begin
|
if (cnt_smp_num != smp_num_reg) begin
|
||||||
@ -104,17 +104,17 @@ module sampler
|
|||||||
cnt_smp_num <= '0;
|
cnt_smp_num <= '0;
|
||||||
smp_num_reg <= '0;
|
smp_num_reg <= '0;
|
||||||
enable <= 0;
|
enable <= 0;
|
||||||
request <= 0;
|
done <= 0;
|
||||||
end else begin
|
end else begin
|
||||||
buffer_ready <= 0;
|
buffer_ready <= 0;
|
||||||
if (!enable) begin
|
if (!enable) begin
|
||||||
if (request && done) begin
|
if (done && request) begin
|
||||||
enable <= 1;
|
enable <= 1;
|
||||||
request <= 0;
|
done <= 0;
|
||||||
cnt_smp_num <= 0;
|
cnt_smp_num <= 0;
|
||||||
smp_num_reg <= smp_num;
|
smp_num_reg <= smp_num;
|
||||||
end else begin
|
end else begin
|
||||||
request <= 1;
|
done <= 1;
|
||||||
end
|
end
|
||||||
end else begin
|
end else begin
|
||||||
if (cnt_smp_num != smp_num_reg) begin
|
if (cnt_smp_num != smp_num_reg) begin
|
||||||
|
|||||||
Reference in New Issue
Block a user