DS_DMA
|
00001 ------------------------------------------------------------------------------- 00002 -- 00003 -- Title : core64_type_pkg 00004 -- Author : Dmitry Smekhov 00005 -- Company : Instrumental Systems 00006 -- E-mail : dsmv@insys.ru 00007 -- 00008 -- Version : 1.0 00009 -- 00010 ------------------------------------------------------------------------------- 00011 -- 00012 -- Description : Определения типов для проекта DS_DMA64 00013 -- 00014 ------------------------------------------------------------------------------- 00015 00016 00017 library ieee; 00018 use ieee.std_logic_1164.all; 00019 00020 --! Определение типов для проекта DS_DMA64 00021 package core64_type_pkg is 00022 00023 --! Передача данных в узел PCIE 00024 type type_trn_tx is record 00025 00026 trn_td : std_logic_vector((64 - 1) downto 0); 00027 trn_trem_n : std_logic_vector (7 downto 0); 00028 trn_tsof_n : std_logic; 00029 trn_teof_n : std_logic; 00030 trn_tsrc_dsc_n : std_logic; 00031 trn_tsrc_rdy_n : std_logic; 00032 trn_terrfwd_n : std_logic ; 00033 00034 end record; 00035 00036 --! Готовность к передачи данных в узел PCIE 00037 type type_trn_tx_back is record 00038 00039 trn_tdst_dsc_n : std_logic; 00040 trn_tdst_rdy_n : std_logic; 00041 trn_tbuf_av : std_logic_vector ( 5 downto 0 ); 00042 cfg_dcommand : std_logic_vector( 15 downto 0 ); -- регистр Device Control Register 00043 00044 end record; 00045 00046 --! Приём данных из узла PCIE 00047 type type_trn_rx is record 00048 00049 trn_rd : std_logic_vector((64 - 1) downto 0); 00050 trn_rrem_n : std_logic_vector (7 downto 0); 00051 trn_rsof_n : std_logic; 00052 trn_reof_n : std_logic; 00053 trn_rsrc_dsc_n : std_logic; 00054 trn_rsrc_rdy_n : std_logic; 00055 trn_rbar_hit_n : std_logic_vector ( 6 downto 0 ); 00056 trn_rerrfwd_n : std_logic; 00057 trn_rfc_npd_av : std_logic_vector ( 11 downto 0 ); 00058 trn_rfc_nph_av : std_logic_vector ( 7 downto 0 ); 00059 trn_rfc_pd_av : std_logic_vector ( 11 downto 0 ); 00060 trn_rfc_ph_av : std_logic_vector ( 7 downto 0 ); 00061 00062 end record; 00063 00064 00065 --! Готовность к приёму данных из узла PCIE 00066 type type_trn_rx_back is record 00067 00068 trn_rdst_rdy_n : std_logic; 00069 trn_rnp_ok_n : std_logic; 00070 trn_rcpl_streaming_n : std_logic; 00071 00072 end record; 00073 00074 --! Передача данных в узел PCIE. Интерфейс AXI 00075 type type_axi_tx is record 00076 00077 -- trn_td : std_logic_vector((64 - 1) downto 0); 00078 -- trn_trem_n : std_logic_vector (7 downto 0); 00079 -- trn_tsof_n : std_logic; 00080 -- trn_teof_n : std_logic; 00081 -- trn_tsrc_dsc_n : std_logic; 00082 -- trn_tsrc_rdy_n : std_logic; 00083 -- trn_terrfwd_n : std_logic ; 00084 00085 s_axis_tx_tdata : std_logic_vector(63 downto 0); 00086 s_axis_tx_tstrb : std_logic_vector(7 downto 0); 00087 s_axis_tx_tuser : std_logic_vector(3 downto 0); 00088 s_axis_tx_tlast : std_logic; 00089 s_axis_tx_tvalid : std_logic; 00090 tx_cfg_gnt : std_logic; 00091 fc_sel : std_logic_vector(2 downto 0); 00092 00093 00094 end record; 00095 00096 --! Готовность к передачи данных в узел PCIE. Интерфейс AXI 00097 type type_axi_tx_back is record 00098 00099 tx_cfg_req : std_logic; 00100 tx_err_drop : std_logic; 00101 s_axis_tx_tready : std_logic; 00102 -- trn_tdst_dsc_n : std_logic; 00103 -- trn_tdst_rdy_n : std_logic; 00104 trn_tbuf_av : std_logic_vector ( 5 downto 0 ); 00105 cfg_dcommand : std_logic_vector( 15 downto 0 ); -- регистр Device Control Register 00106 00107 fc_cpld : std_logic_vector(11 downto 0); 00108 fc_cplh : std_logic_vector(7 downto 0); 00109 fc_npd : std_logic_vector(11 downto 0); 00110 fc_nph : std_logic_vector(7 downto 0); 00111 fc_pd : std_logic_vector(11 downto 0); 00112 fc_ph : std_logic_vector(7 downto 0); 00113 00114 end record; 00115 00116 00117 --! Приём данных из узла PCIE. Интерфейс AXI 00118 type type_axi_rx is record 00119 00120 -- trn_rd : std_logic_vector((64 - 1) downto 0); 00121 -- trn_rrem_n : std_logic_vector (7 downto 0); 00122 -- trn_rsof_n : std_logic; 00123 -- trn_reof_n : std_logic; 00124 -- trn_rsrc_dsc_n : std_logic; 00125 -- trn_rsrc_rdy_n : std_logic; 00126 -- trn_rbar_hit_n : std_logic_vector ( 6 downto 0 ); 00127 -- trn_rerrfwd_n : std_logic; 00128 -- trn_rfc_npd_av : std_logic_vector ( 11 downto 0 ); 00129 -- trn_rfc_nph_av : std_logic_vector ( 7 downto 0 ); 00130 -- trn_rfc_pd_av : std_logic_vector ( 11 downto 0 ); 00131 -- trn_rfc_ph_av : std_logic_vector ( 7 downto 0 ); 00132 00133 m_axis_rx_tdata : std_logic_vector(63 downto 0); 00134 m_axis_rx_tstrb : std_logic_vector(7 downto 0); 00135 m_axis_rx_tlast : std_logic; 00136 m_axis_rx_tvalid : std_logic; 00137 m_axis_rx_tuser : std_logic_vector(21 downto 0); 00138 00139 00140 end record; 00141 00142 00143 --! Готовность к приёму данных из узла PCIE. Интерфейс AXI 00144 type type_axi_rx_back is record 00145 00146 -- trn_rdst_rdy_n : std_logic; 00147 -- trn_rnp_ok_n : std_logic; 00148 -- trn_rcpl_streaming_n : std_logic; 00149 00150 m_axis_rx_tready : std_logic; 00151 rx_np_ok : std_logic; 00152 00153 end record; 00154 00155 --! Доступ к регистрам 00156 type type_reg_access is record 00157 00158 adr : std_logic_vector( 31 downto 0 ); --! адрес регистра 00159 data : std_logic_vector( 31 downto 0 ); --! данные для записи в регистр 00160 req_wr : std_logic_vector( 1 downto 0 ); --! 1 - требование записи в регистр 00161 req_rd : std_logic_vector( 1 downto 0 ); --! 1 - требование чтения из регистра 00162 00163 end record; 00164 00165 --! Доступ к регистрам - ответный пакет 00166 type type_reg_access_back is record 00167 00168 data : std_logic_vector( 31 downto 0 ); --! данные для записи в регистр 00169 data_we : std_logic; --! 1 - строб данных 00170 complete : std_logic; --! 1 - операция завершена 00171 00172 end record; 00173 00174 --! RX->TX 00175 type type_rx_tx_engine is record 00176 00177 request_reg_wr : std_logic; --! 1 - запрос на запись в регистр 00178 request_reg_rd : std_logic; --! 1 - запрос на чтение из регистра 00179 request_tag : std_logic_vector( 7 downto 0 ); --! идентификатор запроса 00180 request_tc : std_logic_vector( 2 downto 0 ); --! Traffic class 00181 request_attr : std_logic_vector( 3 downto 0 ); --! атрибуты 00182 request_id : std_logic_vector( 15 downto 0 ); --! ID получателя запроса 00183 00184 complete_we : std_logic; --! 1 - запись ответа на запрос 00185 lower_adr : std_logic_vector( 6 downto 2 ); --! младшие разряды адреса 00186 00187 end record; 00188 00189 --! TX->RX 00190 type type_tx_rx_engine is record 00191 00192 complete_reg : std_logic; --! 1 - завершение доступа к регистру 00193 00194 end record; 00195 00196 --! RX->EXT_FIFO 00197 type type_rx_ext_fifo is record 00198 00199 adr : std_logic_vector( 8 downto 0 ); --! адрес 00200 data : std_logic_vector( 63 downto 0 ); --! данные 00201 data_we : std_logic; --! 1 - запись данных 00202 00203 end record; 00204 00205 --! TX->EXT_FIFO 00206 type type_tx_ext_fifo is record 00207 00208 adr : std_logic_vector( 8 downto 0 ); --! адрес 00209 00210 complete_ok : std_logic; --! 1 - успешное завершение операции 00211 complete_error : std_logic; --! 1 - операция завершена с ошибкой 00212 00213 end record; 00214 00215 --! TX->EXT_FIFO_BACK 00216 type type_tx_ext_fifo_back is record 00217 00218 data : std_logic_vector( 63 downto 0 ); --! данные 00219 00220 req_wr : std_logic; --! 1 - требование записи блока 4 кБ 00221 req_rd : std_logic; --! 1 - требование чтения 00222 rd_size : std_logic; --! 0 - 512 байт, 1 - 4 кБ 00223 pci_adr : std_logic_vector( 39 downto 8 ); --! адрес на шине PCI 00224 00225 end record; 00226 00227 --! REG->DISP 00228 type type_reg_disp is record 00229 00230 adr : std_logic_vector( 31 downto 0 ); --! адрес 00231 data : std_logic_vector( 31 downto 0 ); --! данные 00232 request_reg_wr : std_logic; --! 1 - запрос на запись в регистр 00233 request_reg_rd : std_logic; --! 1 - запрос на чтение из регистра 00234 00235 end record; 00236 00237 00238 --! REG->DISP BACK 00239 type type_reg_disp_back is record 00240 00241 data : std_logic_vector( 31 downto 0 ); --! данные 00242 data_we : std_logic; --! 1 - строб записи данных 00243 complete : std_logic; --! 1 - операция завершена 00244 00245 end record; 00246 00247 00248 --! REG->EXT_FIFO 00249 type type_reg_ext_fifo is record 00250 00251 adr : std_logic_vector( 6 downto 0 ); --! адрес 00252 data : std_logic_vector( 31 downto 0 ); --! данные 00253 data_we : std_logic; --! 1 - запись в регистры 00254 00255 end record; 00256 00257 --! REG->EXT_FIFO BACK 00258 type type_reg_ext_fifo_back is record 00259 00260 data : std_logic_vector( 31 downto 0 ); --! данные 00261 00262 end record; 00263 00264 00265 --! PB_DATA_MASTER 00266 type type_pb_master is record 00267 00268 stb0 : std_logic; --! 1 - строб команды и адреса 00269 stb1 : std_logic; --! 1 - строб данных 00270 cmd : std_logic_vector( 2 downto 0 ); --! команда 00271 adr : std_logic_vector( 31 downto 0 ); --! адрес 00272 data : std_logic_vector( 63 downto 0 ); --! данные 00273 00274 end record; 00275 00276 --! PB_DATA_SLAVE 00277 type type_pb_slave is record 00278 00279 stb0 : std_logic; --! 1 - строб команды и адреса 00280 stb1 : std_logic; --! 1 - строб данных 00281 data : std_logic_vector( 63 downto 0 ); --! данные 00282 dmar : std_logic_vector( 1 downto 0 ); --! 1 - запрос DMA 00283 irq : std_logic; --! 1 - запрос прерывания 00284 00285 end record; 00286 00287 --! EXT_FIFO -> DISP 00288 type type_ext_fifo_disp is record 00289 00290 adr : std_logic_vector( 31 downto 0 ); --! адрес 00291 data : std_logic_vector( 63 downto 0 ); --! данные 00292 data_we : std_logic; --! 1 - запись 00293 request_wr : std_logic; --! 1 - запрос на запись в регистр 00294 request_rd : std_logic; --! 1 - запрос на чтение из регистра 00295 00296 end record; 00297 00298 --! EXT_FIFO -> DISP BACK 00299 type type_ext_fifo_disp_back is record 00300 00301 data : std_logic_vector( 63 downto 0 ); --! данные 00302 data_we : std_logic; --! 1 - запись 00303 dmar : std_logic_vector( 1 downto 0 ); --! 1 - запрос DMA 00304 allow_wr : std_logic; --! 1 - разрешение записи 00305 irq : std_logic; --! 1 - запрос прерывания 00306 00307 end record; 00308 00309 00310 end package;