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/] [pcie_ctrl/] [core64_type_pkg.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dsmv
-------------------------------------------------------------------------------
2
--
3
-- Title       : core64_type_pkg
4
-- Author      : Dmitry Smekhov
5
-- Company     : Instrumental Systems
6
-- E-mail      : dsmv@insys.ru
7
--
8
-- Version     : 1.1
9
--
10
-------------------------------------------------------------------------------
11
--
12
-- Description : Определения типов для проекта DS_DMA64 
13
--
14
-------------------------------------------------------------------------------
15
--
16
--  Version 1.1  28.09.2011 Dmitry Smekhov
17
--                               Добавлен complete в тип  type_pb_slave 
18
--
19
-------------------------------------------------------------------------------
20
 
21
library ieee;
22
use ieee.std_logic_1164.all;
23
 
24
--! Определение типов для проекта DS_DMA64 
25
package core64_type_pkg is
26
 
27
--! Передача данных в узел PCIE 
28
type type_trn_tx is record
29
 
30
    trn_td                      : std_logic_vector((64 - 1) downto 0);
31
    trn_trem_n          : std_logic_vector (7 downto 0);
32
    trn_tsof_n          : std_logic;
33
    trn_teof_n          : std_logic;
34
    trn_tsrc_dsc_n      : std_logic;
35
    trn_tsrc_rdy_n      : std_logic;
36
    trn_terrfwd_n       : std_logic ;
37
 
38
end record;
39
 
40
--! Готовность к передачи данных в узел PCIE 
41
type type_trn_tx_back is record
42
 
43
    trn_tdst_dsc_n      : std_logic;
44
    trn_tdst_rdy_n      : std_logic;
45
    trn_tbuf_av         : std_logic_vector ( 5 downto 0 );
46
        cfg_dcommand    : std_logic_vector( 15 downto 0 );                       -- регистр Device Control Register
47
 
48
end record;
49
 
50
--! Приём данных из узла PCIE 
51
type type_trn_rx is record
52
 
53
    trn_rd                      : std_logic_vector((64 - 1) downto 0);
54
    trn_rrem_n          : std_logic_vector (7 downto 0);
55
    trn_rsof_n          : std_logic;
56
    trn_reof_n          : std_logic;
57
    trn_rsrc_dsc_n      : std_logic;
58
    trn_rsrc_rdy_n      : std_logic;
59
    trn_rbar_hit_n      : std_logic_vector ( 6 downto 0 );
60
    trn_rerrfwd_n       : std_logic;
61
    trn_rfc_npd_av      : std_logic_vector ( 11 downto 0 );
62
    trn_rfc_nph_av      : std_logic_vector ( 7 downto 0 );
63
    trn_rfc_pd_av       : std_logic_vector ( 11 downto 0 );
64
    trn_rfc_ph_av       : std_logic_vector ( 7 downto 0 );
65
 
66
end record;
67
 
68
 
69
--! Готовность к приёму данных из узла PCIE 
70
type type_trn_rx_back is record
71
 
72
    trn_rdst_rdy_n                      : std_logic;
73
    trn_rnp_ok_n                        : std_logic;
74
    trn_rcpl_streaming_n    : std_logic;
75
 
76
end record;
77
 
78
--! Передача данных в узел PCIE. Интерфейс AXI
79
type type_axi_tx is record
80
 
81
--    trn_td                    : std_logic_vector((64 - 1) downto 0);
82
--    trn_trem_n                : std_logic_vector (7 downto 0);
83
--    trn_tsof_n                : std_logic;
84
--    trn_teof_n                : std_logic;
85
--    trn_tsrc_dsc_n    : std_logic;
86
--    trn_tsrc_rdy_n    : std_logic;
87
--    trn_terrfwd_n     : std_logic ;              
88
 
89
        s_axis_tx_tdata   : std_logic_vector(63 downto 0);
90
        s_axis_tx_tstrb   : std_logic_vector(7 downto 0);
91
        s_axis_tx_tuser   : std_logic_vector(3 downto 0);
92
        s_axis_tx_tlast   : std_logic;
93
        s_axis_tx_tvalid  : std_logic;
94
    tx_cfg_gnt        : std_logic;
95
    fc_sel                : std_logic_vector(2 downto 0);
96
 
97
 
98
end record;
99
 
100
--! Готовность к передачи данных в узел PCIE. Интерфейс AXI
101
type type_axi_tx_back is record
102
 
103
    tx_cfg_req       : std_logic;
104
    tx_err_drop      : std_logic;
105
        s_axis_tx_tready : std_logic;
106
--    trn_tdst_dsc_n    : std_logic;
107
--    trn_tdst_rdy_n    : std_logic;
108
    trn_tbuf_av         : std_logic_vector ( 5 downto 0 );
109
        cfg_dcommand    : std_logic_vector( 15 downto 0 );                       -- регистр Device Control Register
110
 
111
      fc_cpld       : std_logic_vector(11 downto 0);
112
      fc_cplh       : std_logic_vector(7 downto 0);
113
      fc_npd        : std_logic_vector(11 downto 0);
114
      fc_nph        : std_logic_vector(7 downto 0);
115
      fc_pd         : std_logic_vector(11 downto 0);
116
      fc_ph         : std_logic_vector(7 downto 0);
117
 
118
end record;
119
 
120
 
121
--! Приём данных из узла PCIE. Интерфейс AXI 
122
type type_axi_rx is record
123
 
124
--    trn_rd                    : std_logic_vector((64 - 1) downto 0);
125
--    trn_rrem_n                : std_logic_vector (7 downto 0);
126
--    trn_rsof_n                : std_logic;
127
--    trn_reof_n                : std_logic; 
128
--    trn_rsrc_dsc_n    : std_logic; 
129
--    trn_rsrc_rdy_n    : std_logic; 
130
--    trn_rbar_hit_n    : std_logic_vector ( 6 downto 0 );
131
--    trn_rerrfwd_n     : std_logic; 
132
--    trn_rfc_npd_av    : std_logic_vector ( 11 downto 0 ); 
133
--    trn_rfc_nph_av    : std_logic_vector ( 7 downto 0 ); 
134
--    trn_rfc_pd_av     : std_logic_vector ( 11 downto 0 ); 
135
--    trn_rfc_ph_av     : std_logic_vector ( 7 downto 0 );               
136
 
137
      m_axis_rx_tdata     : std_logic_vector(63 downto 0);
138
      m_axis_rx_tstrb     : std_logic_vector(7 downto 0);
139
      m_axis_rx_tlast     : std_logic;
140
      m_axis_rx_tvalid    : std_logic;
141
      m_axis_rx_tuser     : std_logic_vector(21 downto 0);
142
 
143
 
144
end record;
145
 
146
 
147
--! Готовность к приёму данных из узла PCIE. Интерфейс AXI 
148
type type_axi_rx_back is record
149
 
150
--    trn_rdst_rdy_n                    : std_logic; 
151
--    trn_rnp_ok_n                      : std_logic; 
152
--    trn_rcpl_streaming_n    : std_logic;
153
 
154
      m_axis_rx_tready     : std_logic;
155
      rx_np_ok             : std_logic;
156
 
157
end record;
158
 
159
--! Доступ к регистрам 
160
type type_reg_access is record
161
 
162
        adr                                             : std_logic_vector( 31 downto 0 );       --! адрес регистра
163
        data                                    : std_logic_vector( 31 downto 0 );       --! данные для записи в регистр
164
        req_wr                                  : std_logic_vector( 1 downto 0 );        --! 1 - требование записи в регистр
165
        req_rd                                  : std_logic_vector( 1 downto 0 );        --! 1 - требование чтения из регистра
166
 
167
end record;
168
 
169
--! Доступ к регистрам - ответный пакет 
170
type type_reg_access_back is record
171
 
172
        data                                    : std_logic_vector( 31 downto 0 );       --! данные для записи в регистр
173
        data_we                                 : std_logic;    --! 1 - строб данных 
174
        complete                                : std_logic;    --! 1 - операция завершена 
175
 
176
end record;
177
 
178
--! RX->TX
179
type type_rx_tx_engine  is record
180
 
181
        request_reg_wr                  : std_logic;    --! 1 - запрос на запись в регистр 
182
        request_reg_rd                  : std_logic;    --! 1 - запрос на чтение из регистра 
183
        request_tag                             : std_logic_vector( 7 downto 0 );        --! идентификатор запроса
184
        request_tc                              : std_logic_vector( 2 downto 0 );        --! Traffic class
185
        request_attr                    : std_logic_vector( 3 downto 0 );        --! атрибуты
186
        request_id                              : std_logic_vector( 15 downto 0 );  --! ID получателя запроса 
187
 
188
        complete_we                             : std_logic;    --! 1 - запись ответа на запрос 
189
        lower_adr                               : std_logic_vector( 6 downto 2 );       --! младшие разряды адреса
190
        byte_count                              : std_logic_vector( 2 downto 0 );        --! число байт в запросе 
191
 
192
end record;
193
 
194
--! TX->RX
195
type type_tx_rx_engine  is record
196
 
197
        complete_reg                    : std_logic;    --! 1 - завершение доступа к регистру 
198
 
199
end record;
200
 
201
--! RX->EXT_FIFO 
202
type type_rx_ext_fifo is record
203
 
204
        adr                                             : std_logic_vector( 8 downto 0 );        --! адрес 
205
        data                                    : std_logic_vector( 63 downto 0 );       --! данные
206
        data_we                                 : std_logic;    --! 1 - запись данных 
207
 
208
end record;
209
 
210
--! TX->EXT_FIFO 
211
type type_tx_ext_fifo is record
212
 
213
        adr                                             : std_logic_vector( 8 downto 0 );        --! адрес 
214
 
215
        complete_ok                             : std_logic;    --! 1 - успешное завершение операции 
216
        complete_error                  : std_logic;    --! 1 - операция завершена с ошибкой
217
 
218
end record;
219
 
220
--! TX->EXT_FIFO_BACK
221
type type_tx_ext_fifo_back is record
222
 
223
        data                                    : std_logic_vector( 63 downto 0 );       --! данные
224
 
225
        req_wr                                  : std_logic;    --! 1 - требование записи блока 4 кБ
226
        req_rd                                  : std_logic;    --! 1 - требование чтения
227
        rd_size                                 : std_logic;    --! 0 - 512 байт, 1 - 4 кБ
228
        pci_adr                                 : std_logic_vector( 39 downto 8 );      --! адрес на шине PCI 
229
 
230
end record;
231
 
232
--! REG->DISP 
233
type type_reg_disp is record
234
 
235
        adr                                             : std_logic_vector( 31 downto 0 );       --! адрес 
236
        data                                    : std_logic_vector( 31 downto 0 );       --! данные 
237
        request_reg_wr                  : std_logic;    --! 1 - запрос на запись в регистр 
238
        request_reg_rd                  : std_logic;    --! 1 - запрос на чтение из регистра 
239
 
240
end record;
241
 
242
 
243
--! REG->DISP BACK 
244
type type_reg_disp_back is record
245
 
246
        data                                    : std_logic_vector( 31 downto 0 );       --! данные 
247
        data_we                                 : std_logic;    --! 1 - строб записи данных 
248
        complete                                : std_logic;    --! 1 - операция завершена 
249
 
250
end record;
251
 
252
 
253
--! REG->EXT_FIFO 
254
type type_reg_ext_fifo is record
255
 
256
        adr                                             : std_logic_vector( 6 downto 0 );        --! адрес 
257
        data                                    : std_logic_vector( 31 downto 0 );       --! данные 
258
        data_we                                 : std_logic;    --! 1 - запись в регистры 
259
 
260
end record;
261
 
262
--! REG->EXT_FIFO BACK 
263
type type_reg_ext_fifo_back is record
264
 
265
        data                                    : std_logic_vector( 31 downto 0 );       --! данные 
266
 
267
end record;
268
 
269
 
270
--! PB_DATA_MASTER  
271
type type_pb_master is record
272
 
273
        stb0                                    : std_logic;    --! 1 - строб команды и адреса 
274
        stb1                                    : std_logic;    --! 1 - строб данных    
275
        cmd                                             : std_logic_vector( 2 downto 0 );        --! команда      
276
        adr                                             : std_logic_vector( 31 downto 0 );       --! адрес
277
        data                                    : std_logic_vector( 63 downto 0 );       --! данные 
278
 
279
end record;
280
 
281
--! PB_DATA_SLAVE 
282
type type_pb_slave is record
283
 
284
        stb0                                    : std_logic;    --! 1 - строб команды и адреса 
285
        stb1                                    : std_logic;    --! 1 - строб данных    
286
        data                                    : std_logic_vector( 63 downto 0 );       --! данные 
287
        dmar                                    : std_logic_vector( 1 downto 0 );        --! 1 - запрос DMA 
288
        irq                                             : std_logic;    --! 1 - запрос прерывания 
289
        complete                                : std_logic;    --! 1 - завершение операции на шине 
290
        ready                                   : std_logic;    --! 1 - готовность к приёму данных 
291
 
292
end record;
293
 
294
--! EXT_FIFO -> DISP
295
type type_ext_fifo_disp is record
296
 
297
        adr                                             : std_logic_vector( 31 downto 0 );       --! адрес 
298
        data                                    : std_logic_vector( 63 downto 0 );       --! данные 
299
        data_we                                 : std_logic;    --! 1 - запись 
300
        request_wr                              : std_logic;    --! 1 - запрос на запись в регистр 
301
        request_rd                              : std_logic;    --! 1 - запрос на чтение из регистра 
302
 
303
end record;
304
 
305
--! EXT_FIFO -> DISP BACK 
306
type type_ext_fifo_disp_back is record
307
 
308
        data                                    : std_logic_vector( 63 downto 0 );       --! данные 
309
        data_we                             : std_logic;        --! 1 - запись
310
        dmar                                    : std_logic_vector( 1 downto 0 );        --! 1 - запрос DMA 
311
        allow_wr                                : std_logic;    --! 1 - разрешение записи 
312
        irq                                             : std_logic;    --! 1 - запрос прерывания 
313
        complete                                : std_logic;    --! 1 - завершение операции
314
 
315
end record;
316
 
317
 
318
end package;

powered by: WebSVN 2.1.0

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