Line 30... |
Line 30... |
|
|
package test_pkg is
|
package test_pkg is
|
|
|
--! Initialising
|
--! Initialising
|
procedure test_init(
|
procedure test_init(
|
fname: in string --! имя файла отчёта
|
fname: in string --! file name for report
|
);
|
);
|
|
|
--! Finished
|
--! Finished
|
procedure test_close;
|
procedure test_close;
|
|
|
|
|
|
--! Read registers
|
|
procedure test_read_reg (
|
|
signal cmd: out bh_cmd; --! command
|
|
signal ret: in bh_ret --! answer
|
|
);
|
|
|
--! Start DMA with incorrect descriptor
|
--! Start DMA with incorrect descriptor
|
procedure test_dsc_incorrect (
|
procedure test_dsc_incorrect (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
);
|
);
|
|
|
--! Start DMA for one block 4 kB
|
--! Start DMA for one block 4 kB
|
procedure test_read_4kb (
|
procedure test_read_4kb (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
);
|
);
|
|
|
|
|
--! Read block_test_check 8 kB
|
--! Read block_test_check 8 kB
|
procedure test_adm_read_8kb (
|
procedure test_adm_read_8kb (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
);
|
);
|
|
|
----! Проверка обращений к блоку MAIN
|
----! Проверка обращений к блоку MAIN
|
--procedure test_block_main (
|
--procedure test_block_main (
|
-- signal cmd: out bh_cmd; --! команда
|
-- signal cmd: out bh_cmd; --! command
|
-- signal ret: in bh_ret --! ответ
|
-- signal ret: in bh_ret --! answer
|
-- );
|
-- );
|
--
|
--
|
----! Чтение 16 кБ с использованием двух блоков дескрипторов
|
----! Чтение 16 кБ с использованием двух блоков дескрипторов
|
--procedure test_adm_read_16kb (
|
--procedure test_adm_read_16kb (
|
-- signal cmd: out bh_cmd; --! команда
|
-- signal cmd: out bh_cmd; --! command
|
-- signal ret: in bh_ret --! ответ
|
-- signal ret: in bh_ret --! answer
|
-- );
|
-- );
|
--
|
--
|
--! Запись 16 кБ с использованием двух блоков дескрипторов
|
--! Запись 16 кБ с использованием двух блоков дескрипторов
|
procedure test_adm_write_16kb (
|
procedure test_adm_write_16kb (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
);
|
);
|
---------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------
|
--
|
--
|
--
|
--
|
--
|
--
|
procedure test_num_1(
|
procedure test_num_1(
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
);
|
);
|
procedure test_num_2(
|
procedure test_num_2(
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
);
|
);
|
-- ==> TEST_CHECK.WB_CFG_SLAVE
|
-- ==> TEST_CHECK.WB_CFG_SLAVE
|
procedure test_wb_1(
|
procedure test_wb_1(
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
);
|
);
|
-- ==> TEST_GEN.WB_CFG_SLAVE
|
-- ==> TEST_GEN.WB_CFG_SLAVE
|
procedure test_wb_2(
|
procedure test_wb_2(
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
);
|
);
|
end package test_pkg;
|
end package test_pkg;
|
---------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------
|
package body test_pkg is
|
package body test_pkg is
|
|
|
Line 149... |
Line 154... |
end if;
|
end if;
|
|
|
end test_close;
|
end test_close;
|
|
|
|
|
|
--! Read registers
|
|
procedure test_read_reg (
|
|
signal cmd: out bh_cmd; --! command
|
|
signal ret: in bh_ret --! answer
|
|
)
|
|
is
|
|
|
|
variable adr : std_logic_vector( 31 downto 0 );
|
|
variable data1 : std_logic_vector( 31 downto 0 );
|
|
variable data2 : std_logic_vector( 31 downto 0 );
|
|
variable str : line;
|
|
begin
|
|
|
|
write( str, string'("TEST_READ_REG" ));
|
|
writeline( log, str );
|
|
|
|
block_write( cmd, ret, 0, 8, x"0000000F" ); -- BRD_MODE
|
|
wait for 100 ns;
|
|
|
|
|
|
--block_read( cmd, ret, 4, 23, x"0000A400" ); -- LOCAL_ADR
|
|
wb_block_gen_read( cmd, ret, REG_BLOCK_ID, data1 ); -- read block id
|
|
wb_block_check_read( cmd, ret, REG_BLOCK_ID, data2 ); -- read block id
|
|
|
|
write( str, string'("BLOCK 0 ID: " )); hwrite( str, data1( 15 downto 0 ) );
|
|
writeline( log, str );
|
|
|
|
write( str, string'("BLOCK 1 ID: " )); hwrite( str, data2( 15 downto 0 ) );
|
|
writeline( log, str );
|
|
|
|
wb_read( cmd, ret, 16#1000#, data1 );
|
|
|
|
wb_read( cmd, ret, 16#3000#, data1 );
|
|
|
|
write( str, string'("0x1000: " )); hwrite( str, data1( 15 downto 0 ) );
|
|
writeline( log, str );
|
|
|
|
write( str, string'("0x3000: " )); hwrite( str, data2( 15 downto 0 ) );
|
|
writeline( log, str );
|
|
|
|
block_write( cmd, ret, 0, 8, x"00000000" ); -- BRD_MODE
|
|
wait for 100 ns;
|
|
block_write( cmd, ret, 0, 8, x"0000000F" ); -- BRD_MODE
|
|
wait for 100 ns;
|
|
|
|
wb_block_gen_read( cmd, ret, REG_BLOCK_ID, data1 ); -- read block id
|
|
wb_block_check_read( cmd, ret, REG_BLOCK_ID, data2 ); -- read block id
|
|
|
|
write( str, string'("BLOCK 0 ID: " )); hwrite( str, data1( 15 downto 0 ) );
|
|
writeline( log, str );
|
|
|
|
write( str, string'("BLOCK 1 ID: " )); hwrite( str, data2( 15 downto 0 ) );
|
|
writeline( log, str );
|
|
|
|
end test_read_reg;
|
|
|
|
|
|
|
|
|
|
|
--! Start DMA with incorrect descriptor
|
--! Start DMA with incorrect descriptor
|
procedure test_dsc_incorrect (
|
procedure test_dsc_incorrect (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
)
|
)
|
is
|
is
|
|
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
Line 207... |
Line 271... |
end test_dsc_incorrect;
|
end test_dsc_incorrect;
|
|
|
|
|
--! Start DMA for one block 4 kB
|
--! Start DMA for one block 4 kB
|
procedure test_read_4kb (
|
procedure test_read_4kb (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
)
|
)
|
is
|
is
|
|
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
Line 359... |
Line 423... |
end test_read_4kb;
|
end test_read_4kb;
|
|
|
|
|
--! Read block_test_check 8 kB
|
--! Read block_test_check 8 kB
|
procedure test_adm_read_8kb (
|
procedure test_adm_read_8kb (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
)
|
)
|
is
|
is
|
|
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
Line 531... |
Line 595... |
end test_adm_read_8kb;
|
end test_adm_read_8kb;
|
--
|
--
|
--
|
--
|
----! Проверка обращений к блоку MAIN
|
----! Проверка обращений к блоку MAIN
|
--procedure test_block_main (
|
--procedure test_block_main (
|
-- signal cmd: out bh_cmd; --! команда
|
-- signal cmd: out bh_cmd; --! command
|
-- signal ret: in bh_ret --! ответ
|
-- signal ret: in bh_ret --! answer
|
-- )
|
-- )
|
--is
|
--is
|
--
|
--
|
--variable adr : std_logic_vector( 31 downto 0 );
|
--variable adr : std_logic_vector( 31 downto 0 );
|
--variable data : std_logic_vector( 31 downto 0 );
|
--variable data : std_logic_vector( 31 downto 0 );
|
Line 616... |
Line 680... |
--
|
--
|
--
|
--
|
--
|
--
|
----! Чтение 16 кБ с использованием двух блоков дескрипторов
|
----! Чтение 16 кБ с использованием двух блоков дескрипторов
|
--procedure test_adm_read_16kb (
|
--procedure test_adm_read_16kb (
|
-- signal cmd: out bh_cmd; --! команда
|
-- signal cmd: out bh_cmd; --! command
|
-- signal ret: in bh_ret --! ответ
|
-- signal ret: in bh_ret --! answer
|
-- )
|
-- )
|
--is
|
--is
|
--
|
--
|
--variable adr : std_logic_vector( 31 downto 0 );
|
--variable adr : std_logic_vector( 31 downto 0 );
|
--variable data : std_logic_vector( 31 downto 0 );
|
--variable data : std_logic_vector( 31 downto 0 );
|
Line 867... |
Line 931... |
--
|
--
|
--
|
--
|
--
|
--
|
--! Запись 16 кБ с использованием двух блоков дескрипторов
|
--! Запись 16 кБ с использованием двух блоков дескрипторов
|
procedure test_adm_write_16kb (
|
procedure test_adm_write_16kb (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
)
|
)
|
is
|
is
|
|
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
Line 1296... |
Line 1360... |
---------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------
|
--
|
--
|
-- My procedure for test Updated Design (test_read_4kb like refenernce)
|
-- My procedure for test Updated Design (test_read_4kb like refenernce)
|
--
|
--
|
procedure test_num_1 (
|
procedure test_num_1 (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
) is
|
) is
|
|
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
variable str : line;
|
variable str : line;
|
Line 1433... |
Line 1497... |
end test_num_1;
|
end test_num_1;
|
--
|
--
|
--
|
--
|
--
|
--
|
procedure test_num_2 (
|
procedure test_num_2 (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
) is
|
) is
|
|
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
variable data : std_logic_vector( 31 downto 0 );
|
variable data64 : std_logic_vector( 63 downto 0 );
|
variable data64 : std_logic_vector( 63 downto 0 );
|
Line 1584... |
Line 1648... |
--
|
--
|
-- My procedure for test WB stuff in Design:
|
-- My procedure for test WB stuff in Design:
|
-- ==> TEST_CHECK.WB_CFG_SLAVE
|
-- ==> TEST_CHECK.WB_CFG_SLAVE
|
--
|
--
|
procedure test_wb_1 (
|
procedure test_wb_1 (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
) is
|
) is
|
|
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable data32 : std_logic_vector( 31 downto 0 );
|
variable data32 : std_logic_vector( 31 downto 0 );
|
variable data64 : std_logic_vector( 63 downto 0 );
|
variable data64 : std_logic_vector( 63 downto 0 );
|
Line 1747... |
Line 1811... |
--
|
--
|
-- My procedure for test WB stuff in Design:
|
-- My procedure for test WB stuff in Design:
|
-- ==> TEST_GEN.WB_CFG_SLAVE
|
-- ==> TEST_GEN.WB_CFG_SLAVE
|
--
|
--
|
procedure test_wb_2 (
|
procedure test_wb_2 (
|
signal cmd: out bh_cmd; --! команда
|
signal cmd: out bh_cmd; --! command
|
signal ret: in bh_ret --! ответ
|
signal ret: in bh_ret --! answer
|
) is
|
) is
|
|
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable adr : std_logic_vector( 31 downto 0 );
|
variable data32 : std_logic_vector( 31 downto 0 );
|
variable data32 : std_logic_vector( 31 downto 0 );
|
variable data64 : std_logic_vector( 63 downto 0 );
|
variable data64 : std_logic_vector( 63 downto 0 );
|