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

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [core/] [ds_dma64/] [pcie_src/] [pcie_core64_m1/] [top/] [pcie_core64_m10.vhd] - Blame information for rev 47

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 46 dsmv
-------------------------------------------------------------------------------
2
--
3
-- Title       : pcie_core64_m10
4
-- Author      : Dmitry Smekhov
5
-- Company     : Instrumental Systems 
6
-- E-mail      : dsmv@insys.ru
7
--
8
-- Version     : 1.0
9
--
10
-------------------------------------------------------------------------------
11
--
12
-- Description :  Контроллер шины PCI Express 
13
--                                Модификация 10 - Artix 7 PCI Express 2.0 x4 
14
--
15
-------------------------------------------------------------------------------
16
--
17
--  Version 1.0         15.08.2011 
18
--                                      Создан из pcie_core64_m4 v1.2
19
--
20
-------------------------------------------------------------------------------
21
 
22
 
23
library ieee;
24
use ieee.std_logic_1164.all;
25
 
26
use work.core64_type_pkg.all;
27
 
28
package pcie_core64_m10_pkg is
29
 
30
--! контроллер PCI-Express 
31
component pcie_core64_m10 is
32
        generic (
33
                DEVICE_ID                       : in std_logic_vector := x"5507";       --! значение регистра DeviceID 
34
                refclk                          : in integer:=100;                              --! Значение опорной тактовой частоты [МГц]
35
                is_simulation           : in integer:=0;                         --! 0 - синтез, 1 - моделирование 
36
                interrupt_number        : in std_logic_vector( 1 downto 0 ):="00"        -- номер INTx: 0 - INTA, 1 - INTB, 2 - INTC, 3 - INTD 
37
 
38
        );
39
 
40
        port (
41
 
42
                ---- PCI-Express ----
43
                txp                             : out std_logic_vector( 3 downto 0 );
44
                txn                             : out std_logic_vector( 3 downto 0 );
45
 
46
                rxp                             : in  std_logic_vector( 3 downto 0 );
47
                rxn                             : in  std_logic_vector( 3 downto 0 );
48
 
49
                mgt250                  : in  std_logic; --! тактовая частота 250 MHz или 100 МГц от PCI_Express
50
 
51
                perst                   : in  std_logic;        --! 0 - сброс                                              
52
 
53
                px                              : out std_logic_vector( 7 downto 0 );    --! контрольные точки 
54
 
55
                pcie_lstatus    : out std_logic_vector( 15 downto 0 ); -- регистр LSTATUS
56
                pcie_link_up    : out std_logic;        -- 0 - завершена инициализация PCI-Express
57
 
58
 
59
                ---- Локальная шина ----                          
60
                clk_out                 : out std_logic;        --! тактовая частота 250 MHz              
61
                reset_out               : out std_logic;        --! 0 - сброс
62
                dcm_rstp                : out std_logic;        --! 1 - сброс DCM 266 МГц
63
 
64
                ---- BAR0 - блоки управления ----
65
                bp_host_data    : out std_logic_vector( 31 downto 0 );   --! шина данных - выход 
66
                bp_data                 : in  std_logic_vector( 31 downto 0 );  --! шина данных - вход
67
                bp_adr                  : out std_logic_vector( 19 downto 0 );   --! адрес регистра 
68
                bp_we                   : out std_logic_vector( 3 downto 0 );    --! 1 - запись в регистры 
69
                bp_rd                   : out std_logic_vector( 3 downto 0 );   --! 1 - чтение из регистров блока 
70
                bp_sel                  : out std_logic_vector( 1 downto 0 );    --! номер блока для чтения 
71
                bp_reg_we               : out std_logic;                        --! 1 - запись в регистр по адресам   0x100000 - 0x1FFFFF 
72
                bp_reg_rd               : out std_logic;                        --! 1 - чтение из регистра по адресам 0x100000 - 0x1FFFFF 
73
                bp_irq                  : in  std_logic;                        --! 1 - запрос прерывания 
74
 
75
                ---- BAR1 ----  
76
                aclk                    : in std_logic;                         --! тактовая частота локальной шины - 266 МГц
77
                aclk_lock               : in std_logic;                         --! 1 - захват частоты
78
                pb_master               : out type_pb_master;           --! запрос 
79
                pb_slave                : in  type_pb_slave                     --! ответ  
80
 
81
 
82
 
83
        );
84
end component;
85
 
86
end package;
87
 
88
 
89
 
90
library ieee;
91
use ieee.std_logic_1164.all;
92
 
93
use work.core64_type_pkg.all;
94
use work.core64_rx_engine_m2_pkg.all;
95
use work.core64_tx_engine_m2_pkg.all;
96
use work.core64_reg_access_pkg.all;
97
use work.core64_pb_disp_pkg.all;
98
use work.block_pe_fifo_ext_pkg.all;
99
use work.core64_interrupt_pkg.all;
100
 
101
--! контроллер PCI-Express 
102
entity pcie_core64_m10 is
103
        generic (
104
                DEVICE_ID                       : in std_logic_vector := x"5507";       --! значение регистра DeviceID 
105
                refclk                          : in integer:=100;                              --! Значение опорной тактовой частоты [МГц]
106
                is_simulation           : in integer:=0;                         --! 0 - синтез, 1 - моделирование 
107
                interrupt_number        : in std_logic_vector( 1 downto 0 ):="00"        -- номер INTx: 0 - INTA, 1 - INTB, 2 - INTC, 3 - INTD 
108
        );
109
 
110
        port (
111
 
112
                ---- PCI-Express ----
113
                txp                             : out std_logic_vector( 3 downto 0 );
114
                txn                             : out std_logic_vector( 3 downto 0 );
115
 
116
                rxp                             : in  std_logic_vector( 3 downto 0 );
117
                rxn                             : in  std_logic_vector( 3 downto 0 );
118
 
119
                mgt250                  : in  std_logic;        --! тактовая частота 250 MHz или 100 МГц от PCI_Express
120
 
121
                perst                   : in  std_logic;        --! 0 - сброс                                              
122
 
123
                px                              : out std_logic_vector( 7 downto 0 );    --! контрольные точки 
124
 
125
                pcie_lstatus    : out std_logic_vector( 15 downto 0 ); --! регистр LSTATUS
126
                pcie_link_up    : out std_logic;        --! 0 - завершена инициализация PCI-Express
127
 
128
 
129
                ---- Локальная шина ----                          
130
                clk_out                 : out std_logic;        --! тактовая частота 250 MHz              
131
                reset_out               : out std_logic;        --! 0 - сброс
132
                dcm_rstp                : out std_logic;        --! 1 - сброс DCM 266 МГц
133
 
134
                ---- BAR0 - блоки управления ----
135
                bp_host_data    : out std_logic_vector( 31 downto 0 );   --! шина данных - выход 
136
                bp_data                 : in  std_logic_vector( 31 downto 0 );  --! шина данных - вход
137
                bp_adr                  : out std_logic_vector( 19 downto 0 );   --! адрес регистра 
138
                bp_we                   : out std_logic_vector( 3 downto 0 );    --! 1 - запись в регистры 
139
                bp_rd                   : out std_logic_vector( 3 downto 0 );   --! 1 - чтение из регистров блока 
140
                bp_sel                  : out std_logic_vector( 1 downto 0 );    --! номер блока для чтения 
141
                bp_reg_we               : out std_logic;                        --! 1 - запись в регистр по адресам   0x100000 - 0x1FFFFF 
142
                bp_reg_rd               : out std_logic;                        --! 1 - чтение из регистра по адресам 0x100000 - 0x1FFFFF 
143
                bp_irq                  : in  std_logic;                        --! 1 - запрос прерывания 
144
 
145
                ---- BAR1 ----  
146
                aclk                    : in std_logic;                         --! тактовая частота локальной шины - 266 МГц
147
                aclk_lock               : in std_logic;                         --! 1 - захват частоты
148
                pb_master               : out type_pb_master;           --! запрос 
149
                pb_slave                : in  type_pb_slave                     --! ответ  
150
 
151
 
152
        );
153
end pcie_core64_m10;
154
 
155
 
156
architecture pcie_core64_m10 of pcie_core64_m10 is
157
 
158
function  set_refclk( refclk    : in integer ) return integer is
159
 
160
variable        ret     : integer;
161
 
162
begin
163
 
164
        case( refclk ) is
165
                when 100 =>     ret:=0;          -- 100 MHz --
166
                when 250 => ret:=2;             -- 250 MHz --
167
                when others => ret:=1;  -- 125 MHz --
168
        end case;
169
 
170
        return ret;
171
 
172
end set_refclk;
173
 
174
constant        REF_CLK_FREQ            : integer:=set_refclk( refclk );
175
 
176
function  set_interrupt_pin( num        : in std_logic_vector( 1 downto 0 ) ) return bit_vector is
177
 
178
variable        ret     : bit_vector( 3 downto 0 );
179
 
180
begin
181
 
182
        case( num ) is
183
                when "00" => ret:=x"1";         -- INTA -- 
184
                when "01" => ret:=x"2";         -- INTB --
185
                when "10" => ret:=x"3";         -- INTC --
186
                when "11" => ret:=x"4";         -- INTD --
187
                when others => ret:=x"0";
188
        end case;
189
 
190
        return ret;
191
 
192
end set_interrupt_pin;
193
 
194
constant        INTERRUPT_PIN                   : bit_vector( 3 downto 0 ):=set_interrupt_pin( interrupt_number );
195
 
196
 
197
constant C_DATA_WIDTH                           : integer:=64;
198
 
199
component cl_a7pcie_x4    generic (
200
      --CFG_VEND_ID                                : std_logic_vector := X"4953";
201
          CFG_DEV_ID                                 : std_logic_vector := X"5507";
202
      PL_FAST_TRAIN                              : string     := "FALSE";
203
      REF_CLK_FREQ                               : integer    := 0;    -- 0 - 100 MHz; 1 - 125 MHz; 2 - 250 MHz
204
      PCIE_EXT_CLK                               : string := "FALSE";
205
      UPSTREAM_FACING                            : string := "TRUE"
206
    );
207
    port (
208
     -------------------------------------------------------------------------------------------------------------------
209
     -- 1. PCI Express (pci_exp) Interface                                                                            --
210
     -------------------------------------------------------------------------------------------------------------------
211
      pci_exp_txp                                : out std_logic_vector(3 downto 0);
212
      pci_exp_txn                                : out std_logic_vector(3 downto 0);
213
      pci_exp_rxp                                : in std_logic_vector(3 downto 0);
214
      pci_exp_rxn                                : in std_logic_vector(3 downto 0);
215
 
216
     -------------------------------------------------------------------------------------------------------------------
217
     -- 2. Clocking Interface                                                                                         --
218
     -------------------------------------------------------------------------------------------------------------------
219
      PIPE_PCLK_IN                               : in std_logic:='0';
220
      PIPE_RXUSRCLK_IN                           : in std_logic:='0';
221
      PIPE_RXOUTCLK_IN                           : in std_logic_vector(3 downto 0):=(others=>'0');
222
      PIPE_DCLK_IN                               : in std_logic:='0';
223
      PIPE_USERCLK1_IN                           : in std_logic:='0';
224
      PIPE_USERCLK2_IN                           : in std_logic:='0';
225
      PIPE_OOBCLK_IN                             : in std_logic:='0';
226
      PIPE_MMCM_LOCK_IN                          : in std_logic:='0';
227
 
228
      PIPE_TXOUTCLK_OUT                          : out std_logic;
229
      PIPE_RXOUTCLK_OUT                          : out std_logic_vector(3 downto 0);
230
      PIPE_PCLK_SEL_OUT                          : out std_logic_vector(3 downto 0);
231
      PIPE_GEN3_OUT                              : out std_logic;
232
 
233
     -------------------------------------------------------------------------------------------------------------------
234
     -- 3. AXI-S Interface                                                                                            --
235
     -------------------------------------------------------------------------------------------------------------------
236
      -- Common
237
      user_clk_out                               : out std_logic;
238
      user_reset_out                             : out std_logic;
239
      user_lnk_up                                : out std_logic;
240
 
241
      -- TX
242
      tx_buf_av                                  : out std_logic_vector(5 downto 0);
243
      tx_cfg_req                                 : out std_logic;
244
      tx_err_drop                                : out std_logic;
245
      s_axis_tx_tready                           : out std_logic;
246
      s_axis_tx_tdata                            : in std_logic_vector((C_DATA_WIDTH - 1) downto 0);
247
      s_axis_tx_tkeep                            : in std_logic_vector((C_DATA_WIDTH / 8 - 1) downto 0);
248
      s_axis_tx_tlast                            : in std_logic;
249
      s_axis_tx_tvalid                           : in std_logic;
250
      s_axis_tx_tuser                            : in std_logic_vector(3 downto 0);
251
      tx_cfg_gnt                                 : in std_logic;
252
 
253
      -- RX
254
      m_axis_rx_tdata                            : out std_logic_vector((C_DATA_WIDTH - 1) downto 0);
255
      m_axis_rx_tkeep                            : out std_logic_vector((C_DATA_WIDTH / 8 - 1) downto 0);
256
      m_axis_rx_tlast                            : out std_logic;
257
      m_axis_rx_tvalid                           : out std_logic;
258
      m_axis_rx_tready                           : in std_logic;
259
      m_axis_rx_tuser                            : out std_logic_vector(21 downto 0);
260
      rx_np_ok                                   : in std_logic:='0';  -- ???
261
      rx_np_req                                  : in std_logic:='0';  -- ???
262
 
263
      -- Flow Control
264
      fc_cpld                                    : out std_logic_vector(11 downto 0);
265
      fc_cplh                                    : out std_logic_vector(7 downto 0);
266
      fc_npd                                     : out std_logic_vector(11 downto 0);
267
      fc_nph                                     : out std_logic_vector(7 downto 0);
268
      fc_pd                                      : out std_logic_vector(11 downto 0);
269
      fc_ph                                      : out std_logic_vector(7 downto 0);
270
      fc_sel                                     : in std_logic_vector(2 downto 0);
271
 
272
     -------------------------------------------------------------------------------------------------------------------
273
     -- 4. Configuration (CFG) Interface                                                                              --
274
     -------------------------------------------------------------------------------------------------------------------
275
     ---------------------------------------------------------------------
276
      -- EP and RP                                                      --
277
     ---------------------------------------------------------------------
278
      cfg_mgmt_do                                : out std_logic_vector (31 downto 0);
279
      cfg_mgmt_rd_wr_done                        : out std_logic;
280
 
281
      cfg_status                                 : out std_logic_vector(15 downto 0);
282
      cfg_command                                : out std_logic_vector(15 downto 0);
283
      cfg_dstatus                                : out std_logic_vector(15 downto 0);
284
      cfg_dcommand                               : out std_logic_vector(15 downto 0);
285
      cfg_lstatus                                : out std_logic_vector(15 downto 0);
286
      cfg_lcommand                               : out std_logic_vector(15 downto 0);
287
      cfg_dcommand2                              : out std_logic_vector(15 downto 0);
288
      cfg_pcie_link_state                        : out std_logic_vector(2 downto 0);
289
 
290
      cfg_pmcsr_pme_en                           : out std_logic;
291
      cfg_pmcsr_powerstate                       : out std_logic_vector(1 downto 0);
292
      cfg_pmcsr_pme_status                       : out std_logic;
293
      cfg_received_func_lvl_rst                  : out std_logic;
294
 
295
      -- Management Interface
296
      cfg_mgmt_di                                : in std_logic_vector (31 downto 0):=(others=>'0');
297
      cfg_mgmt_byte_en                           : in std_logic_vector (3 downto 0):=(others=>'0');
298
      cfg_mgmt_dwaddr                            : in std_logic_vector (9 downto 0):=(others=>'0');
299
      cfg_mgmt_wr_en                             : in std_logic:='0';
300
      cfg_mgmt_rd_en                             : in std_logic:='0';
301
      cfg_mgmt_wr_readonly                       : in std_logic:='0';
302
 
303
      -- Error Reporting Interface
304
      cfg_err_ecrc                               : in std_logic:='0';
305
      cfg_err_ur                                 : in std_logic:='0';
306
      cfg_err_cpl_timeout                        : in std_logic:='0';
307
      cfg_err_cpl_unexpect                       : in std_logic:='0';
308
      cfg_err_cpl_abort                          : in std_logic:='0';
309
      cfg_err_posted                             : in std_logic:='0';
310
      cfg_err_cor                                : in std_logic:='0';
311
      cfg_err_atomic_egress_blocked              : in std_logic:='0';
312
      cfg_err_internal_cor                       : in std_logic:='0';
313
      cfg_err_malformed                          : in std_logic:='0';
314
      cfg_err_mc_blocked                         : in std_logic:='0';
315
      cfg_err_poisoned                           : in std_logic:='0';
316
      cfg_err_norecovery                         : in std_logic:='0';
317
      cfg_err_tlp_cpl_header                     : in std_logic_vector(47 downto 0):=(others=>'0');
318
      cfg_err_cpl_rdy                            : out std_logic;
319
      cfg_err_locked                             : in std_logic:='0';
320
      cfg_err_acs                                : in std_logic:='0';
321
      cfg_err_internal_uncor                     : in std_logic:='0';
322
      cfg_trn_pending                            : in std_logic:='0';
323
      cfg_pm_halt_aspm_l0s                       : in std_logic:='0';
324
      cfg_pm_halt_aspm_l1                        : in std_logic:='0';
325
      cfg_pm_force_state_en                      : in std_logic:='0';
326
      cfg_pm_force_state                         : in std_logic_vector(1 downto 0):=(others=>'0');
327
      cfg_dsn                                    : in std_logic_vector(63 downto 0):=(others=>'0');
328
 
329
     ---------------------------------------------------------------------
330
      -- EP Only                                                        --
331
     ---------------------------------------------------------------------
332
      cfg_interrupt                              : in std_logic;
333
      cfg_interrupt_rdy                          : out std_logic;
334
      cfg_interrupt_assert                       : in std_logic;
335
      cfg_interrupt_di                           : in std_logic_vector(7 downto 0);
336
      cfg_interrupt_do                           : out std_logic_vector(7 downto 0);
337
      cfg_interrupt_mmenable                     : out std_logic_vector(2 downto 0);
338
      cfg_interrupt_msienable                    : out std_logic;
339
      cfg_interrupt_msixenable                   : out std_logic;
340
      cfg_interrupt_msixfm                       : out std_logic;
341
      cfg_interrupt_stat                         : in std_logic:='0';
342
      cfg_pciecap_interrupt_msgnum               : in std_logic_vector(4 downto 0):=(others=>'0');
343
      cfg_to_turnoff                             : out std_logic;
344
      cfg_turnoff_ok                             : in std_logic:='0';
345
      cfg_bus_number                             : out std_logic_vector(7 downto 0);
346
      cfg_device_number                          : out std_logic_vector(4 downto 0);
347
      cfg_function_number                        : out std_logic_vector(2 downto 0);
348
      cfg_pm_wake                                : in std_logic:='0';
349
 
350
     ---------------------------------------------------------------------
351
      -- RP Only                                                        --
352
     ---------------------------------------------------------------------
353
      cfg_pm_send_pme_to                         : in std_logic:='0';
354
      cfg_ds_bus_number                          : in std_logic_vector(7 downto 0):=(others=>'0');
355
      cfg_ds_device_number                       : in std_logic_vector(4 downto 0):=(others=>'0');
356
      cfg_ds_function_number                     : in std_logic_vector(2 downto 0):=(others=>'0');
357
 
358
      cfg_mgmt_wr_rw1c_as_rw                     : in std_logic:='0';
359
      cfg_msg_received                           : out std_logic;
360
      cfg_msg_data                               : out std_logic_vector(15 downto 0);
361
 
362
      cfg_bridge_serr_en                         : out std_logic;
363
      cfg_slot_control_electromech_il_ctl_pulse  : out std_logic;
364
      cfg_root_control_syserr_corr_err_en        : out std_logic;
365
      cfg_root_control_syserr_non_fatal_err_en   : out std_logic;
366
      cfg_root_control_syserr_fatal_err_en       : out std_logic;
367
      cfg_root_control_pme_int_en                : out std_logic;
368
      cfg_aer_rooterr_corr_err_reporting_en      : out std_logic;
369
      cfg_aer_rooterr_non_fatal_err_reporting_en : out std_logic;
370
      cfg_aer_rooterr_fatal_err_reporting_en     : out std_logic;
371
      cfg_aer_rooterr_corr_err_received          : out std_logic;
372
      cfg_aer_rooterr_non_fatal_err_received     : out std_logic;
373
      cfg_aer_rooterr_fatal_err_received         : out std_logic;
374
 
375
      cfg_msg_received_err_cor                   : out std_logic;
376
      cfg_msg_received_err_non_fatal             : out std_logic;
377
      cfg_msg_received_err_fatal                 : out std_logic;
378
      cfg_msg_received_pm_as_nak                 : out std_logic;
379
      cfg_msg_received_pm_pme                    : out std_logic;
380
      cfg_msg_received_pme_to_ack                : out std_logic;
381
      cfg_msg_received_assert_int_a              : out std_logic;
382
      cfg_msg_received_assert_int_b              : out std_logic;
383
      cfg_msg_received_assert_int_c              : out std_logic;
384
      cfg_msg_received_assert_int_d              : out std_logic;
385
      cfg_msg_received_deassert_int_a            : out std_logic;
386
      cfg_msg_received_deassert_int_b            : out std_logic;
387
      cfg_msg_received_deassert_int_c            : out std_logic;
388
      cfg_msg_received_deassert_int_d            : out std_logic;
389
      cfg_msg_received_setslotpowerlimit         : out std_logic;
390
 
391
     -------------------------------------------------------------------------------------------------------------------
392
     -- 5. Physical Layer Control and Status (PL) Interface                                                           --
393
     -------------------------------------------------------------------------------------------------------------------
394
      pl_directed_link_change                    : in std_logic_vector(1 downto 0):="00";
395
      pl_directed_link_width                     : in std_logic_vector(1 downto 0):="00";
396
      pl_directed_link_speed                     : in std_logic:='0';
397
      pl_directed_link_auton                     : in std_logic:='0';
398
      pl_upstream_prefer_deemph                  : in std_logic:='0';
399
 
400
      pl_sel_lnk_rate                            : out std_logic;
401
      pl_sel_lnk_width                           : out std_logic_vector(1 downto 0);
402
      pl_ltssm_state                             : out std_logic_vector(5 downto 0);
403
      pl_lane_reversal_mode                      : out std_logic_vector(1 downto 0);
404
 
405
      pl_phy_lnk_up                              : out std_logic;
406
      pl_tx_pm_state                             : out std_logic_vector(2 downto 0);
407
      pl_rx_pm_state                             : out std_logic_vector(1 downto 0);
408
 
409
      pl_link_upcfg_cap                          : out std_logic;
410
      pl_link_gen2_cap                           : out std_logic;
411
      pl_link_partner_gen2_supported             : out std_logic;
412
      pl_initial_link_width                      : out std_logic_vector(2 downto 0);
413
 
414
      pl_directed_change_done                    : out std_logic;
415
 
416
     ---------------------------------------------------------------------
417
      -- EP Only                                                        --
418
     ---------------------------------------------------------------------
419
      pl_received_hot_rst                        : out std_logic;
420
     ---------------------------------------------------------------------
421
      -- RP Only                                                        --
422
     ---------------------------------------------------------------------
423
      pl_transmit_hot_rst                        : in std_logic:='0';
424
      pl_downstream_deemph_source                : in std_logic:='0';
425
     -------------------------------------------------------------------------------------------------------------------
426
     -- 6. AER interface                                                                                              --
427
     -------------------------------------------------------------------------------------------------------------------
428
      cfg_err_aer_headerlog                      : in std_logic_vector(127 downto 0):=(others=>'0');
429
      cfg_aer_interrupt_msgnum                   : in std_logic_vector(4 downto 0):=(others=>'0');
430
      cfg_err_aer_headerlog_set                  : out std_logic;
431
      cfg_aer_ecrc_check_en                      : out std_logic;
432
      cfg_aer_ecrc_gen_en                        : out std_logic;
433
     -------------------------------------------------------------------------------------------------------------------
434
     -- 7. VC interface                                                                                               --
435
     -------------------------------------------------------------------------------------------------------------------
436
      cfg_vc_tcvc_map                            : out std_logic_vector(6 downto 0);
437
 
438
     -------------------------------------------------------------------------------------------------------------------
439
     -- 8. System(SYS) Interface                                                                                      --
440
     -------------------------------------------------------------------------------------------------------------------
441
      PIPE_MMCM_RST_N                            : in std_logic;   --     // Async      | Async
442
      sys_clk                                    : in std_logic;
443
      sys_rst_n                                  : in std_logic);
444
  end component;
445
 
446
--signal     sys_clk_c : std_logic;
447
 
448
--signal     sys_reset_n_c : std_logic;
449
signal     trn_clk_c : std_logic;
450
signal     user_reset           : std_logic;
451
signal     user_lnk_up          : std_logic;
452
signal     cfg_trn_pending_n_c : std_logic;
453
signal     trn_tsof_n_c : std_logic;
454
signal     trn_teof_n_c : std_logic;
455
signal     trn_tsrc_rdy_n_c : std_logic;
456
signal     trn_tdst_rdy_n_c : std_logic;
457
signal     trn_tsrc_dsc_n_c : std_logic;
458
signal     trn_terrfwd_n_c : std_logic;
459
signal     trn_tdst_dsc_n_c : std_logic;
460
signal     trn_td_c : std_logic_vector((64 - 1) downto 0);
461
signal     trn_trem_n_c : std_logic_vector(7 downto 0);
462
signal     trn_tbuf_av_c : std_logic_vector(( 4 -1 )  downto 0);
463
signal     trn_rsof_n_c : std_logic;
464
signal     trn_reof_n_c : std_logic;
465
signal     trn_rsrc_rdy_n_c : std_logic;
466
signal     trn_rsrc_dsc_n_c : std_logic;
467
signal     trn_rdst_rdy_n_c : std_logic;
468
signal     trn_rerrfwd_n_c : std_logic;
469
signal     trn_rnp_ok_n_c : std_logic;
470
 
471
signal     trn_rd_c : std_logic_vector((64 - 1) downto 0);
472
signal     trn_rrem_n_c : std_logic_vector(7 downto 0);
473
signal     trn_rbar_hit_n_c : std_logic_vector(6 downto 0);
474
signal     trn_rfc_nph_av_c : std_logic_vector(7 downto 0);
475
signal     trn_rfc_npd_av_c : std_logic_vector(11 downto 0);
476
signal     trn_rfc_ph_av_c : std_logic_vector(7 downto 0);
477
signal     trn_rfc_pd_av_c : std_logic_vector(11 downto 0);
478
signal     trn_rcpl_streaming_n_c      : std_logic;
479
 
480
signal     cfg_do : std_logic_vector(31 downto 0);
481
signal     cfg_di : std_logic_vector(31 downto 0);
482
signal     cfg_dwaddr : std_logic_vector(9 downto 0) ;
483
signal     cfg_byte_en : std_logic_vector(3 downto 0);
484
signal     cfg_err_tlp_cpl_header : std_logic_vector(47 downto 0);
485
signal     cfg_wr_en : std_logic;
486
signal     cfg_rd_en : std_logic;
487
signal     cfg_rd_wr_done : std_logic;
488
signal     cfg_err_cor : std_logic;
489
signal     cfg_err_ur : std_logic;
490
signal     cfg_err_ecrc : std_logic;
491
signal     cfg_err_cpl_timeout : std_logic;
492
signal     cfg_err_cpl_abort : std_logic;
493
signal     cfg_err_cpl_unexpect : std_logic;
494
signal     cfg_err_posted : std_logic;
495
signal          cfg_err_locked  : std_logic;
496
signal      cfg_trn_pending                           : std_logic;
497
signal      cfg_dcommand2                             : std_logic_vector(15 downto 0);
498
signal      cfg_dsn                                   : std_logic_vector(63 downto 0);
499
 
500
 
501
signal      pl_initial_link_width                     : std_logic_vector(2 downto 0);
502
signal      pl_lane_reversal_mode                     : std_logic_vector(1 downto 0);
503
signal      pl_link_gen2_capable                      : std_logic;
504
signal      pl_link_partner_gen2_supported            : std_logic;
505
signal      pl_link_upcfg_capable                     : std_logic;
506
signal      pl_ltssm_state                            : std_logic_vector(5 downto 0);
507
signal      pl_received_hot_rst                       : std_logic;
508
signal      pl_sel_link_rate                          : std_logic;
509
signal      pl_sel_link_width                         : std_logic_vector(1 downto 0);
510
signal      pl_directed_link_auton                    : std_logic;
511
signal      pl_directed_link_change                   : std_logic_vector(1 downto 0);
512
signal      pl_directed_link_speed                    : std_logic;
513
signal      pl_directed_link_width                    : std_logic_vector(1 downto 0);
514
signal      pl_upstream_prefer_deemph                 : std_logic;
515
 
516
 
517
 
518
signal     cfg_err_cpl_rdy : std_logic;
519
signal     cfg_interrupt : std_logic;
520
signal     cfg_interrupt_rdy : std_logic;
521
 
522
signal     cfg_interrupt_assert : std_logic;
523
 
524
signal     cfg_interrupt_n                      : std_logic;
525
signal     cfg_interrupt_rdy_n          : std_logic;
526
signal     cfg_interrupt_assert_n       : std_logic;
527
 
528
 
529
signal     cfg_interrupt_di : std_logic_vector(7 downto 0);
530
signal     cfg_interrupt_do : std_logic_vector(7 downto 0);
531
signal     cfg_interrupt_mmenable : std_logic_vector(2 downto 0);
532
signal     cfg_interrupt_msienable: std_logic;
533
 
534
signal     cfg_turnoff_ok : std_logic;
535
signal     cfg_to_turnoff : std_logic;
536
signal     cfg_pm_wake : std_logic;
537
signal     cfg_pcie_link_state : std_logic_vector(2 downto 0);
538
signal     cfg_bus_number : std_logic_vector(7 downto 0);
539
signal     cfg_device_number : std_logic_vector(4 downto 0);
540
signal     cfg_function_number : std_logic_vector(2 downto 0);
541
signal     cfg_status : std_logic_vector(15 downto 0);
542
signal     cfg_command : std_logic_vector(15 downto 0);
543
signal     cfg_dstatus : std_logic_vector(15 downto 0);
544
signal     cfg_dcommand : std_logic_vector(15 downto 0);
545
signal     cfg_lstatus : std_logic_vector(15 downto 0);
546
signal     cfg_lcommand : std_logic_vector(15 downto 0);
547
--signal     unsigned_fast_simulation: unsigned(0 downto 0);
548
signal     vector_fast_simulation: std_logic_vector(0 downto 0):=(0=>'1');
549
 
550
signal  fc_sel                          : std_logic_vector( 2 downto 0 );
551
signal  sys_reset_p                     : std_logic;
552
 
553
signal  refclkout                       : std_logic;
554
 
555
 
556
signal clk                                      : std_logic;
557
signal rstp                                     : std_logic;
558
signal trn_rx                           : type_axi_rx;                  --! приём пакета
559
signal trn_rx_back                      : type_axi_rx_back;             --! готовность к приёму пакета
560
 
561
signal reg_access                       : type_reg_access;              --! запрос на доступ к регистрам 
562
 
563
signal rx_tx_engine                     : type_rx_tx_engine;    --! обмен RX->TX 
564
signal tx_rx_engine                     : type_tx_rx_engine;    --! обмен TX->RX 
565
 
566
signal rx_ext_fifo                      : type_rx_ext_fifo;             --! обмен RX->EXT_FIFO 
567
signal tx_ext_fifo                      : type_tx_ext_fifo;
568
signal  tx_ext_fifo_back        : type_tx_ext_fifo_back;
569
signal  reg_access_back         : type_reg_access_back;
570
signal  completer_id            : std_logic_vector( 15 downto 0 );
571
 
572
signal  trn_tx                          : type_axi_tx;
573
signal  trn_tx_back                     : type_axi_tx_back;
574
 
575
signal  reg_disp                        : type_reg_disp;
576
signal  reg_disp_back           : type_reg_disp_back;
577
 
578
signal  reg_ext_fifo            : type_reg_ext_fifo;
579
signal  reg_ext_fifo_back       : type_reg_ext_fifo_back;
580
 
581
signal  ext_fifo_disp           : type_ext_fifo_disp;           --! запрос на доступ от узла EXT_FIFO 
582
signal  ext_fifo_disp_back      : type_ext_fifo_disp_back;      --! ответ на запрос
583
 
584
signal  pb_rstp                         : std_logic;
585
 
586
signal  irq                                     : std_logic;
587
 
588
function  SET_FAST_TRAIN( is_simulation : integer ) return string is
589
 
590
constant        ret_true        : string:="TRUE";
591
constant        ret_false       : string:="FALSE";
592
 
593
begin
594
 
595
        if( is_simulation=0 ) then
596
                return ret_false;
597
        else
598
                return ret_true;
599
        end if;
600
 
601
end SET_FAST_TRAIN;
602
 
603
constant        PL_FAST_TRAIN   : string:= SET_FAST_TRAIN( is_simulation );
604
 
605
begin
606
 
607
 
608
 
609
clk_out <= clk;
610
reset_out <= not pb_rstp after 1 ns when rising_edge( clk );
611
 
612
ep :  cl_a7pcie_x4
613
  generic map(
614
         CFG_DEV_ID                                             => DEVICE_ID,
615
     REF_CLK_FREQ                   => REF_CLK_FREQ,           -- 0 - 100 MHz; 1 - 125 MHz; 2 - 250 MHz
616
         PL_FAST_TRAIN                                  => PL_FAST_TRAIN
617
--       INTERRUPT_PIN                  => INTERRUPT_PIN,
618
--       PCIE_CAP_INT_MSG_NUM           => INTERRUPT_PIN
619
 
620
  )
621
  port map(
622
          pci_exp_txp                     => txp,
623
          pci_exp_txn                     => txn,
624
          pci_exp_rxp                     => rxp,
625
          pci_exp_rxn                     => rxn,
626
          user_clk_out                    => clk ,
627
          user_reset_out                  => user_reset,
628
          user_lnk_up                     => user_lnk_up,
629
          tx_buf_av                       => trn_tx_back.trn_tbuf_av ,
630
          tx_cfg_req                      => trn_tx_back.tx_cfg_req ,
631
          tx_err_drop                     => trn_tx_back.tx_err_drop ,
632
          s_axis_tx_tready                => trn_tx_back.s_axis_tx_tready ,
633
          s_axis_tx_tdata                 => trn_tx.s_axis_tx_tdata ,
634
          s_axis_tx_tkeep                 => trn_tx.s_axis_tx_tstrb ,
635
          s_axis_tx_tlast                 => trn_tx.s_axis_tx_tlast ,
636
          s_axis_tx_tvalid                => trn_tx.s_axis_tx_tvalid ,
637
          s_axis_tx_tuser                 => trn_tx.s_axis_tx_tuser,
638
          tx_cfg_gnt                      => trn_tx.tx_cfg_gnt ,
639
          m_axis_rx_tdata                 => trn_rx.m_axis_rx_tdata ,
640
          m_axis_rx_tkeep                 => trn_rx.m_axis_rx_tstrb ,
641
          m_axis_rx_tlast                 => trn_rx.m_axis_rx_tlast ,
642
          m_axis_rx_tvalid                => trn_rx.m_axis_rx_tvalid ,
643
          m_axis_rx_tready                => trn_rx_back.m_axis_rx_tready ,
644
          m_axis_rx_tuser                 => trn_rx.m_axis_rx_tuser,
645
          rx_np_ok                        => trn_rx_back.rx_np_ok ,
646
          fc_cpld                         => trn_tx_back.fc_cpld ,
647
          fc_cplh                         => trn_tx_back.fc_cplh ,
648
          fc_npd                          => trn_tx_back.fc_npd ,
649
          fc_nph                          => trn_tx_back.fc_nph ,
650
          fc_pd                           => trn_tx_back.fc_pd ,
651
          fc_ph                           => trn_tx_back.fc_ph ,
652
          fc_sel                          => trn_tx.fc_sel ,
653
 
654
          cfg_interrupt                   => cfg_interrupt ,
655
          cfg_interrupt_rdy               => cfg_interrupt_rdy ,
656
          cfg_interrupt_assert            => cfg_interrupt_assert ,
657
          cfg_interrupt_di                => cfg_interrupt_di ,
658
          cfg_interrupt_do                => cfg_interrupt_do ,
659
          cfg_interrupt_mmenable          => cfg_interrupt_mmenable ,
660
          cfg_interrupt_msienable         => cfg_interrupt_msienable ,
661
          cfg_turnoff_ok                  => cfg_turnoff_ok ,
662
          cfg_to_turnoff                  => cfg_to_turnoff ,
663
          cfg_trn_pending                 => cfg_trn_pending ,
664
          cfg_pm_wake                     => cfg_pm_wake ,
665
          cfg_bus_number                  => cfg_bus_number ,
666
          cfg_device_number               => cfg_device_number ,
667
          cfg_function_number             => cfg_function_number ,
668
          cfg_status                      => cfg_status ,
669
          cfg_command                     => cfg_command ,
670
          cfg_dstatus                     => cfg_dstatus ,
671
          cfg_dcommand                    => trn_tx_back.cfg_dcommand  ,
672
          cfg_lstatus                     => cfg_lstatus ,
673
          cfg_lcommand                    => cfg_lcommand ,
674
          cfg_dcommand2                   => cfg_dcommand2 ,
675
          cfg_pcie_link_state             => cfg_pcie_link_state ,
676
          cfg_dsn                         => cfg_dsn ,
677
          cfg_pmcsr_pme_en                => open,
678
          cfg_pmcsr_pme_status            => open,
679
          cfg_pmcsr_powerstate            => open,
680
 
681 47 dsmv
          PIPE_MMCM_RST_N                                 =>  '1',
682 46 dsmv
          sys_clk                         =>  mgt250,
683
          sys_rst_n                       =>  perst
684
 
685
);
686
 
687
sys_reset_p <= not perst;
688
 
689
pcie_link_up <= not user_lnk_up;
690
pcie_lstatus <= cfg_lstatus;
691
 
692
rstp <=  user_reset  after 1 ns when rising_edge( clk );
693
dcm_rstp <= user_reset;
694
 
695
pb_rstp <= rstp or ( not aclk_lock ) after 1 ns when rising_edge( clk );
696
 
697
--trn_tx_back.cfg_dcommand <= cfg_dcommand;
698
--  trn_rnp_ok_n_c              <= '0';
699
--  trn_rcpl_streaming_n_c      <= '1'; 
700
--  trn_terrfwd_n_c             <= '1';
701
--
702
--  cfg_err_cor             <= '1';
703
--  cfg_err_ur              <= '1';
704
--  cfg_err_ecrc            <= '1';
705
--  cfg_err_cpl_timeout     <= '1';
706
--  cfg_err_cpl_abort       <= '1';
707
--  cfg_err_cpl_unexpect    <= '1';
708
--  cfg_err_posted          <= '0';
709
--
710
--  cfg_interrupt_di <= X"00";
711
--
712
--  cfg_pm_wake             <= '1';
713
--  cfg_trn_pending         <= '1';
714
--  cfg_dwaddr                <= (others => '0');
715
--  cfg_err_tlp_cpl_header    <= (others => '0');
716
--  cfg_di                    <= (others => '0');
717
--  cfg_byte_en             <= X"F"; -- 4-bit bus
718
--  cfg_wr_en               <= '1';
719
--  cfg_rd_en               <= '1';      
720
 
721
  fc_sel             <= "000";
722
 
723
--  rx_np_ok           <= '1';
724
--
725
--  tx_cfg_gnt         <= '1';
726
--
727
  cfg_err_cor          <= '0';
728
  cfg_err_ur           <= '0';
729
  cfg_err_ecrc         <= '0';
730
  cfg_err_cpl_timeout  <= '0';
731
  cfg_err_cpl_abort    <= '0';
732
  cfg_err_cpl_unexpect <= '0';
733
  cfg_err_posted       <= '0';
734
  cfg_err_locked       <= '0';
735
  cfg_pm_wake          <= '0';
736
  cfg_trn_pending      <= '0';
737
 
738
--  trn_tx.s_axis_tx_tuser(0)   <= '0'; -- Unused for S6
739
--  trn_tx.s_axis_tx_tuser(1)   <= '0'; -- Error forward packet
740
--  trn_tx.s_axis_tx_tuser(2)   <= '0'; -- Stream packet
741
 
742
--  cfg_interrupt_assert <= '0';
743
--  cfg_interrupt        <= '0';
744
  cfg_interrupt_di     <= x"00";
745
 
746
  cfg_err_tlp_cpl_header <= (OTHERS => '0');
747
  cfg_dwaddr             <= (OTHERS => '0');
748
  cfg_rd_en            <= '0';
749
  cfg_wr_en            <= '0';
750
  cfg_byte_en          <= X"0";
751
  cfg_di               <= (others => '0');
752
  cfg_dsn              <= (others=>'0');
753
 
754
 
755
--  cfg_completer_id     <= (cfg_bus_number &
756
--                           cfg_device_number &
757
--                           cfg_function_number);
758
--  cfg_bus_mstr_enable  <= cfg_command(2);
759
 
760
  pl_directed_link_auton  <= '0';
761
  pl_directed_link_speed  <= '0';
762
  pl_directed_link_width  <= "00";
763
  pl_directed_link_change <= "00";
764
  pl_upstream_prefer_deemph <= '1';
765
 
766
--  cfg_completer_id_c          <= (cfg_bus_number &
767
--                                cfg_device_number &
768
--                                cfg_function_number);
769
--  cfg_bus_mstr_enable_c       <= cfg_command(2);
770
 
771
 
772
 
773
rx: core64_rx_engine_m2
774
        port map(
775
 
776
                --- General ---
777
                rstp                    => rstp,                        --! 1 - сброс 
778
                clk                             => clk,                         --! тактовая частота ядра - 250 MHz 
779
 
780
                trn_rx                  => trn_rx,                      --! приём пакета
781
                trn_rx_back             => trn_rx_back,         --! готовность к приёму пакета
782
 
783
                reg_access              => reg_access,          --! запрос на доступ к регистрам 
784
 
785
                rx_tx_engine    => rx_tx_engine,        --! обмен RX->TX 
786
                tx_rx_engine    => tx_rx_engine,        --! обмен TX->RX 
787
 
788
                rx_ext_fifo             => rx_ext_fifo          --! обмен RX->EXT_FIFO 
789
 
790
 
791
 
792
        );
793
 
794
 
795
tx: core64_tx_engine_m2
796
        generic map(
797
                interrupt_number                => interrupt_number             -- номер INTx: 0 - INTA, 1 - INTB, 2 - INTC, 3 - INTD 
798
        )
799
        port map(
800
 
801
                --- General ---
802
                rstp                    => rstp,                        --! 1 - сброс 
803
                clk                             => clk,                         --! тактовая частота ядра - 250 MHz 
804
 
805
                trn_tx                  => trn_tx,                      --! передача пакета
806
                trn_tx_back             => trn_tx_back,         --! готовность к передаче пакета
807
 
808
                completer_id    => completer_id,        --! идентификатор устройства 
809
 
810
                --cfg_interrupt                 => cfg_interrupt_n,             -- 0 - изменение состояния прерывания
811
                --cfg_interrupt_assert  => cfg_interrupt_assert_n,      -- 0 - формирование прерывания, 1 - снятие прерывания 
812
                --cfg_interrupt_rdy             => cfg_interrupt_rdy_n,         -- 0 - подтверждение изменения прерывания 
813
 
814
                cfg_interrupt                   => '1',                 -- 0 - изменение состояния прерывания
815
                cfg_interrupt_assert    => '1',                 -- 0 - формирование прерывания, 1 - снятие прерывания 
816
                --cfg_interrupt_rdy             => cfg_interrupt_rdy_n,         -- 0 - подтверждение изменения прерывания 
817
 
818
                reg_access_back => reg_access_back,     --! запрос на доступ к регистрам 
819
 
820
                rx_tx_engine    => rx_tx_engine,        --! обмен RX->TX 
821
                tx_rx_engine    => tx_rx_engine,        --! обмен TX->RX 
822
 
823
                tx_ext_fifo             => tx_ext_fifo,         --! обмен TX->EXT_FIFO 
824
                tx_ext_fifo_back=> tx_ext_fifo_back --! обмен TX->EXT_FIFO 
825
 
826
        );
827
 
828
  completer_id     <= (cfg_bus_number &
829
                       cfg_device_number &
830
                       cfg_function_number );
831
 
832
 
833
 reg: core64_reg_access
834
        port map(
835
                --- General ---
836
                rstp                            => rstp,        --! 1 - сброс 
837
                clk                                     => clk,         --! тактовая частота ядра - 250 MHz 
838
 
839
                --- RX_ENGINE ---- 
840
                reg_access                      => reg_access,  --! запрос на доступ к регистрам 
841
 
842
                --- TX_ENGINE ----
843
                reg_access_back         => reg_access_back,     --! ответ на запрос 
844
 
845
                ---- PB_DISP ----
846
                reg_disp                        => reg_disp,            --! запрос на доступ к регистрам из BAR1 
847
                reg_disp_back           => reg_disp_back,       --! ответ на запрос 
848
 
849
                ---- BLOCK EXT_FIFO ----
850
                reg_ext_fifo            => reg_ext_fifo,                --! запрос на доступ к блокам управления EXT_FIFO 
851
                reg_ext_fifo_back       => reg_ext_fifo_back,   --! ответ на запрос 
852
 
853
                ---- BAR0 - блоки управления ----
854
                bp_host_data            => bp_host_data,        --! шина данных - выход 
855
                bp_data                         => bp_data,                     --! шина данных - вход
856
                bp_adr                          => bp_adr,                      --! адрес регистра 
857
                bp_we                           => bp_we,                       --! 1 - запись в регистры 
858
                bp_rd                           => bp_rd,                       --! 1 - чтение из регистров блока 
859
                bp_sel                          => bp_sel,                      --! номер блока для чтения 
860
                bp_reg_we                       => bp_reg_we,           --! 1 - запись в регистр по адресам   0x100000 - 0x1FFFFF 
861
                bp_reg_rd                       => bp_reg_rd,           --! 1 - чтение из регистра по адресам 0x100000 - 0x1FFFFF 
862
                bp_irq                          => bp_irq                       --! 1 - запрос прерывания 
863
        );
864
 
865
 
866
 disp: core64_pb_disp
867
        port map(
868
                --- General ---
869
                rstp                            => pb_rstp,             --! 1 - сброс 
870
                clk                                     => clk,                 --! тактовая частота ядра - 250 MHz 
871
 
872
                ---- PB_DISP ----
873
                reg_disp                        => reg_disp,            --! запрос на доступ к регистрам из BAR1 
874
                reg_disp_back           => reg_disp_back,       --! ответ на запрос 
875
 
876
                ---- EXT_FIFO ----
877
                ext_fifo_disp           => ext_fifo_disp,               --! запрос на доступ от узла EXT_FIFO 
878
                ext_fifo_disp_back      => ext_fifo_disp_back,  --! ответ на запрос
879
 
880
                ---- BAR1 ----  
881
                aclk                            => aclk,                                --! тактовая частота локальной шины - 266 МГц
882
                pb_master                       => pb_master,                   --! запрос 
883
                pb_slave                        => pb_slave                             --! ответ  
884
 
885
        );
886
 
887
 
888
 
889
fifo: block_pe_fifo_ext
890
        port map(
891
 
892
                ---- Global ----         
893
                rstp                             => pb_rstp,
894
                clk                                      => clk,
895
                aclk                             => aclk,
896
 
897
                ---- TX_ENGINE ----      
898
                tx_ext_fifo                      => tx_ext_fifo,
899
                tx_ext_fifo_back         => tx_ext_fifo_back,
900
 
901
                ---- RX_ENGINE ----      
902
                rx_ext_fifo                      => rx_ext_fifo,
903
 
904
                ---- REG ----            
905
                reg_ext_fifo             => reg_ext_fifo,
906
                reg_ext_fifo_back        => reg_ext_fifo_back,
907
 
908
                ---- DISP  ----          
909
                ext_fifo_disp            => ext_fifo_disp,
910
                ext_fifo_disp_back       => ext_fifo_disp_back,
911
 
912
                irq                                      => irq,                                -- 1 - запрос прерывания
913
 
914
                test                            => px
915
        );
916
 
917
 
918
 
919
 
920
 int: core64_interrupt
921
        port map(
922
 
923
                rstp                                    => pb_rstp,                                     -- 1 - сброс
924
                clk                                             => clk,                                         -- Тактовая частота ядра 250 МГц
925
 
926
                irq                                             => irq,                                         -- 1 - запрос прерывания
927
 
928
                cfg_command10                   => cfg_command(10),                     -- 1 - прерывания запрещены 
929
                cfg_interrupt                   => cfg_interrupt_n,             -- 0 - изменение состояния прерывания
930
                cfg_interrupt_assert    => cfg_interrupt_assert_n,      -- 0 - формирование прерывания, 1 - сниятие прерывания 
931
                cfg_interrupt_rdy               => cfg_interrupt_rdy_n          -- 0 - подтверждение изменения прерывания 
932
 
933
        );
934
 
935
cfg_interrupt <= not cfg_interrupt_n;
936
cfg_interrupt_assert <= not cfg_interrupt_assert_n;
937
cfg_interrupt_rdy_n <= not cfg_interrupt_rdy;
938
 
939
--cfg_interrupt <= '0';
940
--cfg_interrupt_assert <= '0';
941
--      cfg_interrupt_n_c <= '1';
942
--      cfg_interrupt_assert_n_c <= '1';
943
 
944
end pcie_core64_m10;

powered by: WebSVN 2.1.0

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