OpenCores
URL https://opencores.org/ocsvn/pcie_ds_dma/pcie_ds_dma/trunk

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [projects/] [ambpex5_sx50t_wishbone/] [src/] [testbench/] [test_pkg.vhd] - Diff between revs 16 and 18

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 16 Rev 18
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 );

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.