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

Subversion Repositories funbase_ip_library

[/] [funbase_ip_library/] [trunk/] [TUT/] [ip.hwp.communication/] [hibi/] [3.0/] [vhd/] [hibi_bridge_v2.vhd] - Blame information for rev 145

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 145 lanttu
-------------------------------------------------------------------------------
2
-- File        : hibi_bridge.vhd
3
-- Description : Connects two HIBI buses together
4
-- Author      : Erno Salminen
5
-- e-mail      : erno.salminen@tut.fi
6
-- Project     : 
7
-- Design      : 
8
-- Date        : 02.12.2002
9
-- Modified    : 
10
-- 
11
-------------------------------------------------------------------------------
12
-- Funbase IP library Copyright (C) 2011 TUT Department of Computer Systems
13
--
14
-- This file is part of HIBI
15
--
16
-- This source file may be used and distributed without
17
-- restriction provided that this copyright statement is not
18
-- removed from the file and that any derivative work contains
19
-- the original copyright notice and the associated disclaimer.
20
--
21
-- This source file is free software; you can redistribute it
22
-- and/or modify it under the terms of the GNU Lesser General
23
-- Public License as published by the Free Software Foundation;
24
-- either version 2.1 of the License, or (at your option) any
25
-- later version.
26
--
27
-- This source is distributed in the hope that it will be
28
-- useful, but WITHOUT ANY WARRANTY; without even the implied
29
-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
30
-- PURPOSE.  See the GNU Lesser General Public License for more
31
-- details.
32
--
33
-- You should have received a copy of the GNU Lesser General
34
-- Public License along with this source; if not, download it
35
-- from http://www.opencores.org/lgpl.shtml
36
-------------------------------------------------------------------------------
37
 
38
library ieee;
39
use ieee.std_logic_1164.all;
40
use ieee.std_logic_arith.all;
41
use ieee.std_logic_unsigned.all;
42
 
43
entity hibi_bridge is
44
 
45
  generic (
46
    -- Bus A
47
    a_id_g            : integer := 0;
48
    a_addr_g          : integer := 0;
49
    a_inv_addr_en_g   : integer := 0;
50
 
51
    a_id_width_g      : integer := 0;
52
    a_addr_width_g    : integer := 0;   -- in bits
53
    a_data_width_g    : integer := 0;   -- in bits    
54
    a_comm_width_g    : integer := 0;
55
    a_counter_width_g : integer := 0;
56
 
57
    a_rx_fifo_depth_g     : integer := 0;
58
    a_tx_fifo_depth_g     : integer := 0;
59
    a_rx_msg_fifo_depth_g : integer := 0;
60
    a_tx_msg_fifo_depth_g : integer := 0;
61
 
62
    -- These 4 added 2007/04/17
63
    -- 0 round-robin, 1 priority,2=prior+rr,3=rand 
64
    a_arb_type_g     : integer := 0;
65
    -- fifo_sel: 0 synch multiclk,         1 basic GALS,
66
    --           2 Gray FIFO (depth=2^n!), 3 mixed clock pausible
67
    a_fifo_sel_g     : integer := 0;
68
 
69
    a_debug_width_g  : integer := 0;
70
 
71
    a_prior_g          : integer := 0;
72
    a_max_send_g       : integer := 0;
73
    a_n_agents_g       : integer := 0;
74
    a_n_cfg_pages_g    : integer := 0;
75
    a_n_time_slots_g   : integer := 0;
76
    a_n_extra_params_g : integer := 0;
77
    a_cfg_re_g         : integer := 0;
78
    a_cfg_we_g         : integer := 0;
79
 
80
    -- Bus B    
81
    b_id_g            : integer := 0;
82
    b_addr_g          : integer := 0;
83
    b_inv_addr_en_g   : integer := 0;
84
 
85
    b_id_width_g      : integer := 0;
86
    b_addr_width_g    : integer := 0;   -- in bits
87
    b_data_width_g    : integer := 0;   -- in bits    
88
    b_comm_width_g    : integer := 0;
89
    b_counter_width_g : integer := 0;
90
 
91
    b_rx_fifo_depth_g     : integer := 0;
92
    b_tx_fifo_depth_g     : integer := 0;
93
    b_rx_msg_fifo_depth_g : integer := 0;
94
    b_tx_msg_fifo_depth_g : integer := 0;
95
 
96
    -- These 4 added 2007/04/17
97
    -- 0 round-robin, 1 priority,2=prior+rr,3=rand 
98
    b_arb_type_g     : integer := 0;
99
    -- fifo_sel: 0 synch multiclk,         1 basic GALS,
100
    --           2 Gray FIFO (depth=2^n!), 3 mixed clock pausible
101
    b_fifo_sel_g     : integer := 0;
102
 
103
    b_debug_width_g  : integer := 0;
104
 
105
    b_prior_g          : integer := 0;
106
    b_max_send_g       : integer := 0;
107
    b_n_agents_g       : integer := 0;
108
    b_n_cfg_pages_g    : integer := 0;
109
    b_n_time_slots_g   : integer := 0;
110
    b_n_extra_params_g : integer := 0;
111
    b_cfg_re_g         : integer := 0;
112
    b_cfg_we_g         : integer := 0;
113
 
114
    a_id_min_g        : integer := 0;
115
    a_id_max_g        : integer := 0;
116
    a_addr_limit_g    : integer := 0;
117
    a_separate_addr_g : integer := 0;
118
 
119
    b_id_min_g        : integer := 0;
120
    b_id_max_g        : integer := 0;
121
    b_addr_limit_g    : integer := 0;
122
    b_separate_addr_g : integer := 0
123
    );
124
 
125
  port (
126
    a_clk   : in std_logic;
127
    a_rst_n : in std_logic;
128
 
129
    b_clk   : in std_logic;
130
    b_rst_n : in std_logic;
131
 
132
    a_bus_av_in   : in std_logic;
133
    a_bus_data_in : in std_logic_vector (a_data_width_g-1 downto 0);
134
    a_bus_comm_in : in std_logic_vector (a_comm_width_g-1 downto 0);
135
    a_bus_full_in : in std_logic;
136
    a_bus_lock_in : in std_logic;
137
 
138
    b_bus_av_in   : in std_logic;
139
    b_bus_data_in : in std_logic_vector (b_data_width_g-1 downto 0);
140
    b_bus_comm_in : in std_logic_vector (b_comm_width_g-1 downto 0);
141
    b_bus_full_in : in std_logic;
142
    b_bus_lock_in : in std_logic;
143
 
144
    a_bus_av_out   : out std_logic;
145
    a_bus_data_out : out std_logic_vector (a_data_width_g-1 downto 0);
146
    a_bus_comm_out : out std_logic_vector (a_comm_width_g-1 downto 0);
147
    a_bus_lock_out : out std_logic;
148
    a_bus_full_out : out std_logic;
149
 
150
    b_bus_av_out   : out std_logic;
151
    b_bus_data_out : out std_logic_vector (b_data_width_g-1 downto 0);
152
    b_bus_comm_out : out std_logic_vector (b_comm_width_g-1 downto 0);
153
    b_bus_lock_out : out std_logic;
154
    b_bus_full_out : out std_logic
155
 
156
    -- synthesis translate_off 
157
;
158
    a_debug_out : out std_logic_vector(a_debug_width_g-1 downto 0);
159
    a_debug_in  : in  std_logic_vector(a_debug_width_g-1 downto 0);
160
    b_debug_out : out std_logic_vector(b_debug_width_g-1 downto 0);
161
    b_debug_in  : in  std_logic_vector(b_debug_width_g-1 downto 0)
162
    -- synthesis translate_on
163
 
164
    );
165
 
166
end hibi_bridge;
167
 
168
 
169
architecture rtl of hibi_bridge is
170
 
171
 
172
 
173
 
174
  -- A-sillasta ulos
175
  signal a_c_d_from_a : std_logic_vector (1 + a_comm_width_g + a_data_width_g -1 downto 0);
176
  signal av_from_a    : std_logic;
177
  signal data_from_a  : std_logic_vector (a_data_width_g-1 downto 0);
178
  signal comm_from_a  : std_logic_vector (a_comm_width_g-1 downto 0);  --13.03.03 Command_type;
179
  signal full_from_a  : std_logic;
180
  signal one_p_from_a : std_logic;
181
  signal empty_from_a : std_logic;
182
  signal one_d_from_a : std_logic;
183
 
184
  -- A-sillan kattelylogiikasta komb.prosessille "A->B"
185
  signal data_a_HS  : std_logic_vector (a_data_width_g-1 downto 0);
186
  signal empty_hs_a : std_logic;
187
  signal one_d_a_HS : std_logic;
188
  -- Komb. pros "A->B":lta A-sillan kattelylogiikalle
189
  signal re_a_HS    : std_logic;
190
 
191
 
192
 
193
  -- A-sillalle sisaan
194
  signal a_c_d_to_a : std_logic_vector (1 + a_comm_width_g + a_data_width_g-1 downto 0);
195
  signal av_to_a    : std_logic;
196
  signal data_to_a  : std_logic_vector (a_data_width_g-1 downto 0);
197
  signal comm_to_a  : std_logic_vector (a_comm_width_g-1 downto 0);  --13.03.03 command_type;
198
  signal we_to_a    : std_logic;
199
  signal re_to_a    : std_logic;
200
 
201
  signal Msg_av_to_a      : std_logic;
202
  signal Msg_data_to_a    : std_logic_vector (a_data_width_g-1 downto 0);
203
  signal Msg_comm_to_a    : std_logic_vector (a_comm_width_g-1 downto 0);  --13.03.03 command_type;
204
  signal Msg_we_to_a      : std_logic;
205
  signal Msg_re_to_a      : std_logic;
206
  signal Msg_full_From_b  : std_logic;
207
  signal Msg_one_p_from_b : std_logic;
208
  signal Msg_empty_from_b : std_logic;
209
  signal Msg_one_d_from_b : std_logic;
210
 
211
 
212
 
213
 
214
 
215
 
216
 
217
  -- b- sillalta ulos
218
  signal a_c_d_from_b : std_logic_vector (1 + a_comm_width_g + a_data_width_g-1 downto 0);
219
  signal av_From_b    : std_logic;
220
  signal data_from_b  : std_logic_vector (a_data_width_g-1 downto 0);
221
  signal comm_From_b  : std_logic_vector (a_comm_width_g-1 downto 0);
222
  signal full_From_b  : std_logic;
223
  signal one_p_from_b : std_logic;
224
  signal empty_from_b : std_logic;
225
  signal one_d_from_b : std_logic;
226
 
227
  -- b-sillalle sisaan
228
  signal a_c_d_to_b : std_logic_vector (1 + a_comm_width_g + a_data_width_g-1 downto 0);
229
  signal av_to_b    : std_logic;
230
  signal data_to_b  : std_logic_vector (a_data_width_g-1 downto 0);
231
  signal comm_to_b  : std_logic_vector (a_comm_width_g-1 downto 0);
232
  signal we_to_b    : std_logic;
233
  signal re_to_b    : std_logic;
234
 
235
  signal Msg_av_a_to_b    : std_logic;
236
  signal Msg_data_a_to_b  : std_logic_vector (a_data_width_g-1 downto 0);
237
  signal Msg_comm_a_to_b  : std_logic_vector (a_comm_width_g-1 downto 0);
238
  signal Msg_full_from_a  : std_logic;
239
  signal Msg_one_p_from_a : std_logic;
240
  signal Msg_empty_from_a : std_logic;
241
  signal Msg_one_d_from_a : std_logic;
242
  signal Msg_we_to_b      : std_logic;
243
  signal Msg_re_to_b      : std_logic;
244
 
245
  -- B-sillan kattelylogiikasta komb.prosessille "B->A"
246
  signal data_b_HS  : std_logic_vector (b_data_width_g-1 downto 0);
247
  signal empty_hs_b : std_logic;
248
  signal one_d_b_HS : std_logic;
249
  -- Komb. pros "B->A":lta B-sillan kattelylogiikalle
250
  signal re_b_HS    : std_logic;
251
 
252
 
253
 
254
begin  -- rtl
255
 
256
  assert a_comm_width_g = b_comm_width_g report "Command widths do not match" severity warning;
257
 
258
  HibiWrapper_a : entity work.hibi_wrapper_r1
259
    generic map (
260
      id_g            => a_id_g,
261
      addr_g          => a_addr_g,
262
      inv_addr_en_g   => a_inv_addr_en_g,
263
 
264
      id_width_g      => a_id_width_g,
265
      addr_width_g    => a_addr_width_g,
266
      data_width_g    => a_data_width_g,
267
      comm_width_g    => a_comm_width_g,
268
      counter_width_g => a_counter_width_g,
269
 
270
      -- These 6 added 2007/04/17
271
      rel_agent_freq_g => 1,                 -- fully synchronous 2007/04/17
272
      rel_bus_freq_g   => 1,                 -- fully synchronous2007/04/17
273
      arb_type_g       => a_arb_type_g,      -- 2007/04/17
274
      fifo_sel_g       => a_fifo_sel_g,      --2007/04/17
275
 
276
      debug_width_g    => a_debug_width_g,   --2007/04/17
277
 
278
      rx_fifo_depth_g     => a_rx_fifo_depth_g,
279
      rx_msg_fifo_depth_g => a_rx_msg_fifo_depth_g,
280
      tx_fifo_depth_g     => a_tx_fifo_depth_g,
281
      tx_msg_fifo_depth_g => a_tx_msg_fifo_depth_g,
282
 
283
      prior_g          => a_prior_g,
284
      max_send_g       => a_max_send_g,
285
      n_agents_g       => a_n_agents_g,
286
      n_cfg_pages_g    => a_n_cfg_pages_g,
287
      n_time_slots_g   => a_n_time_slots_g,
288
      n_extra_params_g => a_n_extra_params_g,
289
      cfg_re_g         => a_cfg_re_g,
290
      cfg_we_g         => a_cfg_we_g,
291
 
292
      id_min_g        => a_id_min_g,
293
      id_max_g        => a_id_max_g,
294
      addr_limit_g    => a_addr_limit_g,
295
      separate_addr_g => a_separate_addr_g
296
 
297
      )
298
    port map (
299
      bus_clk        => a_clk,
300
      agent_clk      => a_clk,
301
      bus_sync_clk   => a_clk,
302
      agent_sync_clk => a_clk,
303
 
304
      rst_n => a_rst_n,
305
 
306
      bus_comm_in => a_bus_comm_in,
307
      bus_data_in => a_bus_data_in,
308
      bus_full_in => a_bus_full_in,
309
      bus_lock_in => a_bus_lock_in,
310
      bus_av_in   => a_bus_av_in,
311
 
312
      agent_av_in       => av_to_a,
313
      agent_data_in     => data_to_a,
314
      agent_comm_in     => comm_to_a,
315
      agent_we_in       => we_to_a,
316
      agent_re_in       => re_to_a,
317
      agent_msg_av_in   => Msg_av_to_a,
318
      agent_msg_data_in => Msg_data_to_a,
319
      agent_msg_comm_in => Msg_comm_to_a,
320
      agent_msg_we_in   => Msg_we_to_a,
321
      agent_msg_re_in   => Msg_re_to_a,
322
 
323
      bus_comm_out => a_bus_comm_out,
324
      bus_data_out => a_bus_data_out,
325
      bus_full_out => a_bus_full_out,
326
      bus_lock_out => a_bus_lock_out,
327
      bus_av_out   => a_bus_av_out,
328
 
329
      agent_comm_out  => comm_from_a,
330
      agent_data_out  => data_from_a,
331
      agent_av_out    => av_from_a,
332
      agent_full_out  => full_from_a,
333
      agent_one_p_out => one_p_from_a,
334
      agent_empty_out => empty_from_a,
335
      agent_one_d_out => one_d_from_a,
336
 
337
      agent_msg_comm_out  => Msg_comm_a_to_b,
338
      agent_msg_data_out  => Msg_data_a_to_b,
339
      agent_msg_av_out    => Msg_av_a_to_b,
340
      agent_msg_full_out  => Msg_full_from_a,
341
      agent_msg_one_p_out => Msg_one_p_from_a,
342
      agent_msg_empty_out => Msg_empty_from_a,
343
      agent_msg_one_d_out => Msg_one_d_from_a
344
 
345
      -- synthesis translate_off 
346
      ,
347
      debug_out => a_debug_out,
348
      debug_in  => a_debug_in
349
      -- synthesis translate_on
350
      );
351
 
352
 
353
 
354
 
355
  HibiWrapper_b : entity work.hibi_wrapper_r1
356
    generic map (
357
      id_g            => b_id_g,
358
      addr_g          => b_addr_g,
359
      inv_addr_en_g   => b_inv_addr_en_g,
360
 
361
      id_width_g      => b_id_width_g,
362
      addr_width_g    => b_addr_width_g,
363
      data_width_g    => b_data_width_g,
364
      comm_width_g    => b_comm_width_g,
365
      counter_width_g => b_counter_width_g,
366
 
367
      rx_fifo_depth_g     => b_rx_fifo_depth_g,
368
      rx_msg_fifo_depth_g => b_rx_msg_fifo_depth_g,
369
      tx_fifo_depth_g     => b_tx_fifo_depth_g,
370
      tx_msg_fifo_depth_g => b_tx_msg_fifo_depth_g,
371
 
372
      -- These 6 added 2007/04/17
373
      rel_agent_freq_g => 1,                 -- fully synchronous 2007/04/17
374
      rel_bus_freq_g   => 1,                 -- fully synchronous2007/04/17
375
      arb_type_g       => b_arb_type_g,      -- 2007/04/17
376
      fifo_sel_g       => b_fifo_sel_g,      --2007/04/17
377
 
378
      debug_width_g    => b_debug_width_g,   --2007/04/17
379
 
380
      prior_g          => b_prior_g,
381
      max_send_g       => b_max_send_g,
382
      n_agents_g       => b_n_agents_g,
383
      n_cfg_pages_g    => b_n_cfg_pages_g,
384
      n_time_slots_g   => b_n_time_slots_g,
385
      n_extra_params_g => b_n_extra_params_g,
386
      cfg_re_g         => b_cfg_re_g,
387
      cfg_we_g         => b_cfg_we_g,
388
 
389
      id_min_g        => b_id_min_g,
390
      id_max_g        => b_id_max_g,
391
      addr_limit_g    => b_addr_limit_g,
392
      separate_addr_g => b_separate_addr_g
393
      )
394
    port map (
395
      bus_clk        => b_clk,
396
      agent_clk      => b_clk,
397
      bus_sync_clk   => b_clk,
398
      agent_sync_clk => b_clk,
399
      rst_n          => b_rst_n,
400
 
401
      bus_comm_in => b_bus_comm_in,
402
      bus_data_in => b_bus_data_in,
403
      bus_full_in => b_bus_full_in,
404
      bus_lock_in => b_bus_lock_in,
405
      bus_av_in   => b_bus_av_in,
406
 
407
      agent_comm_in => comm_to_b,
408
      agent_data_in => data_to_b,
409
      agent_av_in   => av_to_b,
410
      agent_we_in   => we_to_b,
411
      agent_re_in   => re_to_b,
412
 
413
      agent_msg_comm_in => Msg_comm_a_to_b,
414
      agent_msg_data_in => Msg_data_a_to_b,
415
      agent_msg_av_in   => Msg_av_a_to_b,
416
      agent_msg_we_in   => Msg_we_to_b,
417
      agent_msg_re_in   => Msg_re_to_b,
418
 
419
      bus_comm_out => b_bus_comm_out,
420
      bus_data_out => b_bus_data_out,
421
      bus_full_out => b_bus_full_out,
422
      bus_lock_out => b_bus_lock_out,
423
      bus_av_out   => b_bus_av_out,
424
 
425
      agent_comm_out  => comm_From_b,
426
      agent_data_out  => data_from_b,
427
      agent_av_out    => av_From_b,
428
      agent_full_out  => full_From_b,
429
      agent_one_p_out => one_p_from_b,
430
      agent_empty_out => empty_from_b,
431
      agent_one_d_out => one_d_from_b,
432
 
433
      agent_msg_comm_out  => Msg_comm_to_a,
434
      agent_msg_data_out  => Msg_data_to_a,
435
      agent_msg_av_out    => Msg_av_to_a,
436
      agent_msg_full_out  => Msg_full_From_b,
437
      agent_msg_one_p_out => Msg_one_p_from_b,
438
      agent_msg_empty_out => Msg_empty_from_b,
439
      agent_msg_one_d_out => Msg_one_d_from_b
440
 
441
      -- synthesis translate_off 
442
      ,
443
      debug_out => b_debug_out,
444
      debug_in  => b_debug_in
445
      -- synthesis translate_on
446
      );
447
 
448
  -- Continuous assignments
449
  a_c_d_from_a (1 + a_comm_width_g + a_data_width_g -1)                   <= av_from_a;
450
  a_c_d_from_a (a_comm_width_g + a_data_width_g -1 downto a_data_width_g) <= comm_from_a;
451
  a_c_d_from_a (a_data_width_g -1 downto 0)                               <= data_from_a;
452
 
453
  av_to_b   <= a_c_d_to_b (1+ a_comm_width_g + a_data_width_g -1);
454
  comm_to_b <= a_c_d_to_b (a_comm_width_g + a_data_width_g -1 downto a_data_width_g);
455
  data_to_b <= a_c_d_to_b (a_data_width_g -1 downto 0);
456
 
457
  a_c_d_from_b (1 + a_comm_width_g + a_data_width_g -1)                   <= av_from_b;
458
  a_c_d_from_b (a_comm_width_g + a_data_width_g -1 downto a_data_width_g) <= comm_from_b;
459
  a_c_d_from_b (a_data_width_g -1 downto 0)                               <= data_from_b;
460
 
461
  av_to_a   <= a_c_d_to_a (1+ a_comm_width_g + a_data_width_g -1);
462
  comm_to_a <= a_c_d_to_a (a_comm_width_g + a_data_width_g -1 downto a_data_width_g);
463
  data_to_a <= a_c_d_to_a (a_data_width_g -1 downto 0);
464
 
465
 
466
  re_to_a    <= re_b_hs;
467
  empty_hs_b <= empty_from_a;
468
  a_c_d_to_b <= a_c_d_from_a;
469
 
470
 
471
  re_to_b    <= re_a_hs;
472
  empty_hs_a <= empty_from_b;
473
  a_c_d_to_a <= a_c_d_from_b;
474
 
475
 
476
  A_to_b : process (empty_hs_a, full_from_a)
477
  begin  -- process A_to_b
478
    if empty_hs_a = '0' and full_from_a = '0' then
479
      re_a_hs <= '1';
480
      we_to_a <= '1';
481
    else
482
      re_a_hs <= '0';
483
      we_to_a <= '0';
484
    end if;
485
 
486
  end process A_to_b;
487
 
488
 
489
  b_to_a : process (empty_hs_b, full_from_b)
490
  begin  -- process b_to_a
491
    if empty_hs_b = '0' and full_from_b = '0' then
492
      re_b_hs <= '1';
493
      we_to_b <= '1';
494
    else
495
      re_b_hs <= '0';
496
      we_to_b <= '0';
497
    end if;
498
 
499
  end process b_to_a;
500
 
501
  msg_a_to_b : process (Msg_empty_from_a, Msg_full_From_b)
502
  begin  -- process b_to_a
503
    if Msg_empty_from_a = '0' and Msg_full_From_b = '0' then
504
      Msg_we_to_b <= '1';
505
      Msg_re_to_a <= '1';
506
    else
507
      Msg_we_to_b <= '0';
508
      Msg_re_to_a <= '0';
509
    end if;
510
 
511
  end process msg_a_to_b;
512
 
513
  msg_b_to_a : process (Msg_empty_from_b, Msg_full_From_a)
514
  begin  -- process b_to_a
515
    if Msg_empty_from_b = '0' and Msg_full_From_a = '0' then
516
      Msg_we_to_a <= '1';
517
      Msg_re_to_b <= '1';
518
    else
519
      Msg_we_to_a <= '0';
520
      Msg_re_to_b <= '0';
521
    end if;
522
 
523
  end process msg_b_to_a;
524
 
525
 
526
 
527
 
528
end rtl;
529
 
530
 
531
 
532
 
533
 
534
 
535
 
536
 
537
 
538
 
539
 
540
 
541
 
542
 
543
 
544
 
545
 
546
 
547
 
548
 
549
 
550
 
551
 
552
 
553
 
554
 
555
 
556
 
557
 
558
 
559
 
560
 
561
 
562
 
563
 
564
 
565
 
566
 
567
 
568
 
569
 
570
 
571
 
572
 
573
 
574
 
575
 
576
 
577
 
578
 
579
 
580
 
581
 
582
 
583
 
584
 
585
 
586
 
587
 
588
 
589
 
590
 
591
 
592
 
593
 
594
 
595
 
596
 
597
 
598
 

powered by: WebSVN 2.1.0

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