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

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [projects/] [sp605_lx45t_wishbone/] [src/] [testbench/] [stend_sp605_wishbone.vhd] - Blame information for rev 40

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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