DEVEL: Implemented test for the case of empty input FIFO
This commit is contained in:
@ -56,6 +56,8 @@ package psi_ms_daq_daq_dma_tb_case_input_empty is
|
||||
signal Mem_DatRdy : inout std_logic;
|
||||
constant Generics_c : Generics_t);
|
||||
|
||||
shared variable SubCase : integer := 0;
|
||||
|
||||
end package;
|
||||
|
||||
------------------------------------------------------------
|
||||
@ -72,7 +74,36 @@ package body psi_ms_daq_daq_dma_tb_case_input_empty is
|
||||
signal DaqSm_Resp_Rdy : inout std_logic;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case INPUT_EMPTY Procedure CONTROL: No Content added yet!" severity warning;
|
||||
InitCase(Clk, Rst);
|
||||
print(">> -- Input Empty --");
|
||||
|
||||
-- Transfer aborted by input FIFO empty
|
||||
wait for 1 us;
|
||||
print(">> Transfer aborted by input FIFO empty");
|
||||
InitCase(Clk, Rst);
|
||||
InitSubCase(0);
|
||||
ApplyCmd(2, 16#01230000#, 30, DaqSm_Cmd, DaqSm_Cmd_Vld, Clk);
|
||||
CheckResp(2, 16, NoEnd_s, DaqSm_Resp, DaqSm_Resp_Vld, DaqSm_Resp_Rdy, Clk);
|
||||
SubCase := 1;
|
||||
ApplyCmd(2, 16#01231000#, 30, DaqSm_Cmd, DaqSm_Cmd_Vld, Clk);
|
||||
CheckResp(2, 30, NoEnd_s, DaqSm_Resp, DaqSm_Resp_Vld, DaqSm_Resp_Rdy, Clk);
|
||||
WaitAllProc(Clk);
|
||||
|
||||
-- With leftover data
|
||||
wait for 1 us;
|
||||
print(">> With leftover data");
|
||||
InitCase(Clk, Rst);
|
||||
InitSubCase(1);
|
||||
ApplyCmd(2, 16#01230000#, 30, DaqSm_Cmd, DaqSm_Cmd_Vld, Clk);
|
||||
CheckResp(2, 30, NoEnd_s, DaqSm_Resp, DaqSm_Resp_Vld, DaqSm_Resp_Rdy, Clk);
|
||||
SubCase := 1;
|
||||
ApplyCmd(2, 16#01231000#, 30, DaqSm_Cmd, DaqSm_Cmd_Vld, Clk);
|
||||
CheckResp(2, 18, NoEnd_s, DaqSm_Resp, DaqSm_Resp_Vld, DaqSm_Resp_Rdy, Clk);
|
||||
SubCase := 2;
|
||||
ApplyCmd(2, 16#01232000#, 30, DaqSm_Cmd, DaqSm_Cmd_Vld, Clk);
|
||||
CheckResp(2, 30, NoEnd_s, DaqSm_Resp, DaqSm_Resp_Vld, DaqSm_Resp_Rdy, Clk);
|
||||
WaitAllProc(Clk);
|
||||
|
||||
end procedure;
|
||||
|
||||
procedure input (
|
||||
@ -82,7 +113,23 @@ package body psi_ms_daq_daq_dma_tb_case_input_empty is
|
||||
signal Inp_Data : inout Input2Daq_Data_a;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case INPUT_EMPTY Procedure INPUT: No Content added yet!" severity warning;
|
||||
-- Transfer aborted by input FIFO empty
|
||||
WaitForCase(0, Clk);
|
||||
ApplyData(2, 16, NoEnd_s, Inp_Vld, Inp_Rdy, Inp_Data, Clk);
|
||||
while SubCase < 1 loop
|
||||
wait until rising_edge(Clk);
|
||||
end loop;
|
||||
ApplyData(2, 30, NoEnd_s, Inp_Vld, Inp_Rdy, Inp_Data, Clk, 16);
|
||||
ProcDone_V(0) := '1';
|
||||
|
||||
-- With leftover data
|
||||
WaitForCase(1, Clk);
|
||||
ApplyData(2, 48, NoEnd_s, Inp_Vld, Inp_Rdy, Inp_Data, Clk);
|
||||
while SubCase < 2 loop
|
||||
wait until rising_edge(Clk);
|
||||
end loop;
|
||||
ApplyData(2, 30, NoEnd_s, Inp_Vld, Inp_Rdy, Inp_Data, Clk, 48);
|
||||
ProcDone_V(0) := '1';
|
||||
end procedure;
|
||||
|
||||
procedure mem_cmd (
|
||||
@ -93,7 +140,18 @@ package body psi_ms_daq_daq_dma_tb_case_input_empty is
|
||||
signal Mem_CmdRdy : inout std_logic;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case INPUT_EMPTY Procedure MEM_CMD: No Content added yet!" severity warning;
|
||||
-- Transfer aborted by input FIFO empty
|
||||
WaitForCase(0, Clk);
|
||||
CheckMemCmd( 16#01230000#, 16, 0, Mem_CmdAddr, Mem_CmdSize, Mem_CmdVld, Mem_CmdRdy, Clk);
|
||||
CheckMemCmd( 16#01231000#, 30, 0, Mem_CmdAddr, Mem_CmdSize, Mem_CmdVld, Mem_CmdRdy, Clk);
|
||||
ProcDone_V(1) := '1';
|
||||
|
||||
-- With leftover data
|
||||
WaitForCase(1, Clk);
|
||||
CheckMemCmd( 16#01230000#, 30, 0, Mem_CmdAddr, Mem_CmdSize, Mem_CmdVld, Mem_CmdRdy, Clk);
|
||||
CheckMemCmd( 16#01231000#, 18, 0, Mem_CmdAddr, Mem_CmdSize, Mem_CmdVld, Mem_CmdRdy, Clk);
|
||||
CheckMemCmd( 16#01232000#, 30, 0, Mem_CmdAddr, Mem_CmdSize, Mem_CmdVld, Mem_CmdRdy, Clk);
|
||||
ProcDone_V(1) := '1';
|
||||
end procedure;
|
||||
|
||||
procedure mem_dat (
|
||||
@ -103,7 +161,18 @@ package body psi_ms_daq_daq_dma_tb_case_input_empty is
|
||||
signal Mem_DatRdy : inout std_logic;
|
||||
constant Generics_c : Generics_t) is
|
||||
begin
|
||||
assert false report "Case INPUT_EMPTY Procedure MEM_DAT: No Content added yet!" severity warning;
|
||||
-- Transfer aborted by input FIFO empty
|
||||
WaitForCase(0, Clk);
|
||||
CheckMemData(16, 0, Mem_DatData, Mem_DatVld, Mem_DatRdy, Clk, 0, "1.0");
|
||||
CheckMemData(30, 0, Mem_DatData, Mem_DatVld, Mem_DatRdy, Clk, 16, "1.1");
|
||||
ProcDone_V(2) := '1';
|
||||
|
||||
-- Transfer aborted by input FIFO empty
|
||||
WaitForCase(1, Clk);
|
||||
CheckMemData(30, 0, Mem_DatData, Mem_DatVld, Mem_DatRdy, Clk, 0, "1.0");
|
||||
CheckMemData(18, 0, Mem_DatData, Mem_DatVld, Mem_DatRdy, Clk, 30, "1.1");
|
||||
CheckMemData(30, 0, Mem_DatData, Mem_DatVld, Mem_DatRdy, Clk, 30+18, "1.2");
|
||||
ProcDone_V(2) := '1';
|
||||
end procedure;
|
||||
|
||||
end;
|
||||
|
Reference in New Issue
Block a user