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

Subversion Repositories pcie_ds_dma

[/] [pcie_ds_dma/] [trunk/] [core/] [wishbone/] [block_test_check/] [block_test_check_wb.vhd] - Blame information for rev 18

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dsmv
----------------------------------------------------------------------------------
2
-- Company:         ;)
3
-- Engineer:        Kuzmi4
4
-- 
5
-- Create Date:     17:40:25 05/21/2010 
6
-- Design Name:     
7
-- Module Name:     block_test_check_wb - rtl 
8
-- Project Name:    DS_DMA
9
-- Target Devices:  any
10
-- Tool versions:   any
11
-- Description:     
12
--                  
13
--                  Top-level module for TEST_CHECK_WB functionality
14
--                  (NB!!! --> module contain syb-modules with restrictions)
15
--
16
-- Revision: 
17
-- Revision 0.01 - File Created 
18
-- Revision 0.02 - update BLOCK_ID/BLOCK_VER logic - now it's inner ID of component
19
--
20
----------------------------------------------------------------------------------
21
library IEEE;
22
use IEEE.STD_LOGIC_1164.ALL;
23
 
24
package block_test_check_wb_pkg is
25
 
26
component block_test_check_wb is
27
port
28
(
29
    --
30
    -- SYS_CON
31
    i_clk : in  STD_LOGIC;
32
    i_rst : in  STD_LOGIC;
33
    --
34
    -- WB CFG SLAVE IF
35
    iv_wbs_cfg_addr     :   in  std_logic_vector(  7 downto 0 );
36
    iv_wbs_cfg_data     :   in  std_logic_vector( 63 downto 0 );
37
    iv_wbs_cfg_sel      :   in  std_logic_vector(  7 downto 0 );
38
    i_wbs_cfg_we        :   in  std_logic;
39
    i_wbs_cfg_cyc       :   in  std_logic;
40
    i_wbs_cfg_stb       :   in  std_logic;
41
    iv_wbs_cfg_cti      :   in  std_logic_vector(  2 downto 0 );
42
    iv_wbs_cfg_bte      :   in  std_logic_vector(  1 downto 0 );
43
 
44
    ov_wbs_cfg_data     :   out std_logic_vector( 63 downto 0 );
45
    o_wbs_cfg_ack       :   out std_logic;
46
    o_wbs_cfg_err       :   out std_logic;
47
    o_wbs_cfg_rty       :   out std_logic;
48
    --
49
    -- WB BURST SLAVE IF (WRITE-ONLY IF)
50
    iv_wbs_burst_addr   :   in  std_logic_vector( 11 downto 0 );
51
    iv_wbs_burst_data   :   in  std_logic_vector( 63 downto 0 );
52
    iv_wbs_burst_sel    :   in  std_logic_vector(  7 downto 0 );
53
    i_wbs_burst_we      :   in  std_logic;
54
    i_wbs_burst_cyc     :   in  std_logic;
55
    i_wbs_burst_stb     :   in  std_logic;
56
    iv_wbs_burst_cti    :   in  std_logic_vector(  2 downto 0 );
57
    iv_wbs_burst_bte    :   in  std_logic_vector(  1 downto 0 );
58
 
59
    o_wbs_burst_ack     :   out std_logic;
60
    o_wbs_burst_err     :   out std_logic;
61
    o_wbs_burst_rty     :   out std_logic;
62
    --
63
    -- WB IRQ lines
64
    o_wbs_irq_0         :   out std_logic;
65
    o_wbs_irq_dmar      :   out std_logic
66
);
67
end component block_test_check_wb;
68
 
69
end package block_test_check_wb_pkg;
70
----------------------------------------------------------------------------------
71
library IEEE;
72
use IEEE.STD_LOGIC_1164.ALL;
73
 
74
library work;
75
use work.cl_test_check_pkg.all;
76
use work.block_check_wb_config_slave_pkg.all;
77
use work.block_check_wb_pkg.all;
78
 
79
 
80
entity block_test_check_wb is
81
port
82
(
83
    --
84
    -- SYS_CON
85
    i_clk : in  STD_LOGIC;
86
    i_rst : in  STD_LOGIC;
87
    --
88
    -- WB CFG SLAVE IF
89
    iv_wbs_cfg_addr     :   in  std_logic_vector(  7 downto 0 );
90
    iv_wbs_cfg_data     :   in  std_logic_vector( 63 downto 0 );
91
    iv_wbs_cfg_sel      :   in  std_logic_vector(  7 downto 0 );
92
    i_wbs_cfg_we        :   in  std_logic;
93
    i_wbs_cfg_cyc       :   in  std_logic;
94
    i_wbs_cfg_stb       :   in  std_logic;
95
    iv_wbs_cfg_cti      :   in  std_logic_vector(  2 downto 0 );
96
    iv_wbs_cfg_bte      :   in  std_logic_vector(  1 downto 0 );
97
 
98
    ov_wbs_cfg_data     :   out std_logic_vector( 63 downto 0 );
99
    o_wbs_cfg_ack       :   out std_logic;
100
    o_wbs_cfg_err       :   out std_logic;
101
    o_wbs_cfg_rty       :   out std_logic;
102
    --
103
    -- WB BURST SLAVE IF (WRITE-ONLY IF)
104
    iv_wbs_burst_addr   :   in  std_logic_vector( 11 downto 0 );
105
    iv_wbs_burst_data   :   in  std_logic_vector( 63 downto 0 );
106
    iv_wbs_burst_sel    :   in  std_logic_vector(  7 downto 0 );
107
    i_wbs_burst_we      :   in  std_logic;
108
    i_wbs_burst_cyc     :   in  std_logic;
109
    i_wbs_burst_stb     :   in  std_logic;
110
    iv_wbs_burst_cti    :   in  std_logic_vector(  2 downto 0 );
111
    iv_wbs_burst_bte    :   in  std_logic_vector(  1 downto 0 );
112
 
113
    o_wbs_burst_ack     :   out std_logic;
114
    o_wbs_burst_err     :   out std_logic;
115
    o_wbs_burst_rty     :   out std_logic;
116
    --
117
    -- WB IRQ lines
118
    o_wbs_irq_0         :   out std_logic;
119
    o_wbs_irq_dmar      :   out std_logic
120
);
121
end block_test_check_wb;
122
 
123
architecture rtl of block_test_check_wb is
124
----------------------------------------------------------------------------------
125
--
126
-- Define TEST_CHECK CTRL/STS stuff:
127
signal  sv_test_check_ctrl      :   std_logic_vector( 15 downto 0 );
128
signal  sv_test_check_size      :   std_logic_vector( 15 downto 0 );
129
signal  sv_test_check_bl_rd     :   std_logic_vector( 31 downto 0 );
130
signal  sv_test_check_bl_ok     :   std_logic_vector( 31 downto 0 );
131
signal  sv_test_check_bl_err    :   std_logic_vector( 31 downto 0 );
132
signal  sv_test_check_error     :   std_logic_vector( 31 downto 0 );
133
signal  sv_test_check_err_adr   :   std_logic_vector( 15 downto 0 );
134
signal  sv_test_check_err_data  :   std_logic_vector( 15 downto 0 );
135
 
136
signal  sv_wb_burst_control     :   std_logic_vector( 15 downto 0 );
137
-- Define TEST_CHECK Data-In stuff:
138
signal  sv_test_check_data      :   std_logic_vector( 63 downto 0 );
139
signal  s_test_check_data_ena   :   std_logic;
140
-- Define TEST_CHECK RST_n stuff:
141
signal  s_test_check_rst_n      :   std_logic;
142
 
143
----------------------------------------------------------------------------------
144
begin
145
----------------------------------------------------------------------------------
146
--
147
-- Instaniate WB_CFG_SLAVE
148
--
149
WB_CFG_SLAVE    :   block_check_wb_config_slave
150
generic map
151
(
152 18 dsmv
    BLOCK_ID   => x"001A", -- идентификатор модуля
153 2 dsmv
    BLOCK_VER  => x"0100"  -- версия модуля
154
)
155
port map
156
(
157
    --
158
    -- SYS_CON
159
    i_clk => i_clk,
160
    i_rst => i_rst,
161
    --
162
    -- WB CFG SLAVE IF
163
    iv_wbs_cfg_addr     => iv_wbs_cfg_addr,
164
    iv_wbs_cfg_data     => iv_wbs_cfg_data,
165
    iv_wbs_cfg_sel      => iv_wbs_cfg_sel,
166
    i_wbs_cfg_we        => i_wbs_cfg_we,
167
    i_wbs_cfg_cyc       => i_wbs_cfg_cyc,
168
    i_wbs_cfg_stb       => i_wbs_cfg_stb,
169
    iv_wbs_cfg_cti      => iv_wbs_cfg_cti,
170
    iv_wbs_cfg_bte      => iv_wbs_cfg_bte,
171
 
172
    ov_wbs_cfg_data     => ov_wbs_cfg_data,
173
    o_wbs_cfg_ack       => o_wbs_cfg_ack,
174
    o_wbs_cfg_err       => o_wbs_cfg_err,
175
    o_wbs_cfg_rty       => o_wbs_cfg_rty,
176
    --
177
    -- CONTROL Outputs
178
    ov_test_check_ctrl      => sv_test_check_ctrl,
179
    ov_test_check_size      => sv_test_check_size,
180
    ov_test_check_err_adr   => sv_test_check_err_adr,
181
    ov_wb_burst_control     => sv_wb_burst_control,
182
    --
183
    -- STATUS Input
184
    iv_test_check_bl_rd     => sv_test_check_bl_rd,
185
    iv_test_check_bl_ok     => sv_test_check_bl_ok,
186
    iv_test_check_bl_err    => sv_test_check_bl_err,
187
    iv_test_check_error     => sv_test_check_error,
188
    iv_test_check_err_data  => sv_test_check_err_data
189
);
190
----------------------------------------------------------------------------------
191
--
192
-- Instaniate TEST_CHECK
193
--
194
TEST_CHECK  :   cl_test_check
195
port map
196
(
197
        ---- Global ----
198
        reset       => s_test_check_rst_n,      -- 0 - сброс
199
        clk         => i_clk,                   -- тактовая частота
200
 
201
        ---- DIO_OUT ----
202
        do_clk      => i_clk,                   -- тактовая частота чтения из FIFO
203
        do_data     => sv_test_check_data,
204
        do_data_en  => s_test_check_data_ena,   -- 1 - передача данных из dio_out
205
 
206
        ---- Управление ----
207
        test_check_ctrl     => sv_test_check_ctrl,
208
        test_check_size     => sv_test_check_size,      -- размер в блоках по 512x64 (4096 байт)
209
        test_check_bl_rd    => sv_test_check_bl_rd,
210
        test_check_bl_ok    => sv_test_check_bl_ok,
211
        test_check_bl_err   => sv_test_check_bl_err,
212
        test_check_error    => sv_test_check_error,
213
        test_check_err_adr  => sv_test_check_err_adr,
214
        test_check_err_data => sv_test_check_err_data
215
);
216
----------------------------------------------------------------------------------
217
--
218
-- Instaniate WB_BURST_SLAVE (provide Input-Only Functionality)
219
--
220
WB_BURST_SLAVE  :   block_check_wb_burst_slave
221
port map
222
(
223
    --
224
    -- SYS_CON
225
    i_clk => i_clk,
226
    i_rst => i_rst,
227
    --
228
    -- WB BURST SLAVE IF (READ-ONLY IF)
229
    iv_wbs_burst_addr   => iv_wbs_burst_addr,
230
    iv_wbs_burst_data   => iv_wbs_burst_data,
231
    iv_wbs_burst_sel    => iv_wbs_burst_sel,
232
    i_wbs_burst_we      => i_wbs_burst_we,
233
    i_wbs_burst_cyc     => i_wbs_burst_cyc,
234
    i_wbs_burst_stb     => i_wbs_burst_stb,
235
    iv_wbs_burst_cti    => iv_wbs_burst_cti,
236
    iv_wbs_burst_bte    => iv_wbs_burst_bte,
237
 
238
    o_wbs_burst_ack     => o_wbs_burst_ack,
239
    o_wbs_burst_err     => o_wbs_burst_err,
240
    o_wbs_burst_rty     => o_wbs_burst_rty,
241
    --
242
    -- TEST_CHECK IF (Output data with ENA)
243
    ov_test_check_data      => sv_test_check_data,
244
    o_test_check_data_ena   => s_test_check_data_ena,
245
    --
246
    -- TEST_CHECK Controls (WBS_CFG)
247
    iv_control          => sv_wb_burst_control
248
 
249
);
250
----------------------------------------------------------------------------------
251
--
252
-- MODULE INNER wires routing:
253
--
254
-- define 
255
 
256
-- define TEST_CHECK.reset - it is RST_n signal 
257
s_test_check_rst_n  <= not i_rst;
258
----------------------------------------------------------------------------------
259
--
260
-- MODULE OUTPUTs routing:
261
--
262
-- DMAR WB IRQ deal
263
o_wbs_irq_dmar  <= sv_test_check_ctrl(5); -- TEST_CHECK_CTRL.START -> 1 - разрешение работы
264
-- WB IRQ deal
265
o_wbs_irq_0     <= '0'; -- No EVENTs for now
266
----------------------------------------------------------------------------------
267
end rtl;
268
 

powered by: WebSVN 2.1.0

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