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

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [projects/] [ac701_a200t_core/] [src/] [testbench/] [stend_ac701_core.vhd] - Blame information for rev 50

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 47 dsmv
-------------------------------------------------------------------------------
2
--
3
-- Title       : stend_ambpex5_core
4
-- Author      : Dmitry Smekhov
5
-- Company     : Instrumental Systems
6
-- E-mail      : dsmv@insys.ru
7
--
8
-- Version     : 1.0
9
--
10
-------------------------------------------------------------------------------
11
--
12
-- Description : 
13
--
14
-------------------------------------------------------------------------------
15
 
16
 
17
library ieee;
18
use ieee.std_logic_1164.all;
19
use ieee.std_logic_textio.all;
20
 
21
library work;
22
 
23
use work.cmd_sim_pkg.all;
24
use work.block_pkg.all;
25
use work.ac701_a200t_core_pkg.all;
26
use work.xilinx_pcie_rport_m2_pkg.all;
27
 
28
use work.test_pkg.all;
29
 
30
use std.textio.all;
31
use std.textio;
32
 
33
entity stend_ac701_core is
34 50 dsmv
        generic(
35
                test_id                 : in integer:=3;                                                        -- идентификатор теста
36
                test_log                : in string:="src\testbench\log\file_id_"       -- имя файла отчёта
37
        );
38 47 dsmv
end stend_ac701_core;
39
 
40
 
41
architecture stend_ac701_core of stend_ac701_core is
42
 
43 50 dsmv
constant        fname_test_log  : string:= test_log & integer'image(test_id) & ".log";
44 47 dsmv
 
45 50 dsmv
 
46 47 dsmv
signal  clk250                  : std_logic:='0';
47
signal  clk250p                 : std_logic;
48
signal  clk250n                 : std_logic;
49
 
50
signal  clk100                  : std_logic:='0';
51
signal  clk100p                 : std_logic;
52
signal  clk100n                 : std_logic;
53
 
54
signal  reset                   : std_logic;
55
 
56
signal  txp                             : std_logic_vector( 3 downto 0 ):=(others=>'0');
57
signal  txn                             : std_logic_vector( 3 downto 0 ):=(others=>'1');
58
signal  rxp                             : std_logic_vector( 3 downto 0 ):=(others=>'0');
59
signal  rxn                             : std_logic_vector( 3 downto 0 ):=(others=>'1');
60
 
61
signal  rp_txp                  : std_logic_vector( 0 downto 0 ):=(others=>'0');
62
signal  rp_txn                  : std_logic_vector( 0 downto 0 ):=(others=>'1');
63
signal  rp_rxp                  : std_logic_vector( 0 downto 0 ):=(others=>'0');
64
signal  rp_rxn                  : std_logic_vector( 0 downto 0 ):=(others=>'1');
65
 
66
signal  tp                              : std_logic_vector( 3 downto 1 );
67
signal  led1                    : std_logic;
68
signal  led2                    : std_logic;
69
signal  led3                    : std_logic;
70
signal  led4                    : std_logic;
71
 
72
signal  cmd                             : bh_cmd;       -- команда
73
signal  ret                             : bh_ret;       -- ответ
74
 
75
 
76
begin
77
 
78
 amb: ac701_a200t_core
79
        generic map(
80
                is_simulation   => 2    -- 0 - синтез, 1 - моделирование ADM, 2 - моделирование pcie_core  
81
        )
82
        port map(
83
                ---- PCI-Express ----
84
                pci_exp_txp                     => txp,
85
                pci_exp_txn                     => txn,
86
 
87
                pci_exp_rxp                     => rxp,
88
                pci_exp_rxn                     => rxn,
89
 
90
                sys_clk_p                       => clk100p,   -- тактовая частота 250 MHz от PCI_Express
91
                sys_clk_n                       => clk100n,
92
 
93
                sys_reset_n                     => reset,       -- 0 - сброс                                               
94
 
95
 
96
                ---- Светодиоды ----
97
                gpio_led1                       => led1,
98
                gpio_led2                       => led2,
99
                gpio_led3                       => led3,
100
                gpio_led4                       => led4
101
        );
102
 
103
 
104
rp : xilinx_pcie_rport_m2
105
generic map (
106
      REF_CLK_FREQ => 0,
107
      ALLOW_X8_GEN2 => FALSE,
108
      PL_FAST_TRAIN => TRUE,
109
      LINK_CAP_MAX_LINK_SPEED => X"1",
110
      DEVICE_ID => X"6011",
111
      LINK_CAP_MAX_LINK_WIDTH => X"01",
112
      LINK_CAP_MAX_LINK_WIDTH_int => 1,
113
      LINK_CTRL2_TARGET_LINK_SPEED => X"1",
114
      LTSSM_MAX_LINK_WIDTH => X"01",
115
      DEV_CAP_MAX_PAYLOAD_SUPPORTED => 2,
116
      VC0_TX_LASTPACKET => 29,
117
      VC0_RX_RAM_LIMIT => X"7FF",
118
      VC0_TOTAL_CREDITS_PD => (308),
119
      VC0_TOTAL_CREDITS_CD => (308),
120
      USER_CLK_FREQ => 1
121
)
122
port map (
123
 
124
                sys_clk => clk100,
125
                sys_reset_n => reset,
126
 
127
                pci_exp_txn => rp_txn,
128
                pci_exp_txp => rp_txp,
129
                pci_exp_rxn => rp_rxn,
130
                pci_exp_rxp => rp_rxp,
131
 
132
                cmd                     => cmd, -- команда
133
                ret                     => ret  -- ответ
134
 
135
);
136
 
137
 
138
clk100 <= not clk100 after 5 ns;
139
--clk250 <= not clk250 after 2 ns;
140
--
141
--clk250p <= clk250;
142
--clk250n <= not clk250;
143
 
144
clk100p <= clk100;
145
clk100n <= not clk100;
146
 
147
rxp(0) <= rp_txp(0);
148
rxn(0) <= rp_txn(0);
149
 
150
rp_rxp(0) <= txp(0);
151
rp_rxn(0) <= txn(0);
152
 
153
reset <= '0', '1' after 5002 ns;
154
 
155
pr_main: process
156
 
157
variable        data    : std_logic_vector( 31 downto 0 );
158
variable        str     : LINE;         -- pointer to string
159
begin
160
 
161 50 dsmv
 
162
        test_init( fname_test_log );
163 47 dsmv
 
164 49 dsmv
        wait for 250 us;
165 47 dsmv
 
166
 
167
        --test_dsc_incorrect( cmd, ret );          
168
 
169
        --test_read_4kb( cmd, ret );
170
        --test_adm_read_8kb( cmd, ret );
171 48 dsmv
        --test_adm_read_16kb( cmd, ret );
172 47 dsmv
        --test_adm_write_16kb( cmd, ret );
173 50 dsmv
        --test_block_main( cmd, ret );
174
 
175
        case( test_id ) is
176
                when 0 => test_dsc_incorrect( cmd, ret );
177
        when 1 => test_read_4kb( cmd, ret );      -- was original
178
        when 2 => test_adm_read_8kb( cmd, ret );
179
        when 3 => test_adm_read_16kb( cmd, ret );
180
        when 4 => test_adm_write_16kb( cmd, ret );
181
        when 5 => test_block_main( cmd, ret );
182
 
183
                when others => null;
184
 
185
        end case;
186
 
187 47 dsmv
        test_close;
188
    --
189
    -- Print Final Banner
190
    report "Init END OF TEST" severity WARNING;
191
    assert false
192
    report "End of TEST; Ending simulation (not a Failure)"
193
    severity FAILURE;
194
        wait;
195
 
196
end process;
197
 
198
end stend_ac701_core;

powered by: WebSVN 2.1.0

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