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_pe_dma/] [1.0/] [doc/] [hw_ref_doc_src/] [hpd_ref_doc.tex] - Blame information for rev 145

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 145 lanttu
\documentclass[a4paper,10pt,oneside,final]{article}
2
 
3
 
4
\usepackage[english]{babel}
5
\usepackage[T1]{fontenc}
6
\usepackage{tabularx}
7
\usepackage[usenames,dvipsnames]{color}
8
\usepackage[table]{xcolor}
9
\usepackage[left=3.0cm, right=2.5cm, top=2.5cm, bottom=2.5cm]{geometry}
10
\usepackage{graphicx}
11
\usepackage{float}
12
\usepackage{caption}
13
\usepackage{listings}
14
 
15
 
16
 
17
 
18
\lstdefinestyle{ccc}
19
{
20
numbers=none,
21
basicstyle=\ttfamily,
22
keywordstyle=\bf\color[RGB]{0,0,255},
23
commentstyle=\color[RGB]{178,34,34},
24
stringstyle=\color[rgb]{0.627,0.126,0.941},
25
backgroundcolor=\color{white},
26
frame=tb, %frame= lrtb,
27
framerule=0.5pt,
28
linewidth=\textwidth,
29
%aboveskip=-4.0pt,
30
%belowskip=-4.0pt,
31
lineskip=-5.0pt,
32
}
33
 
34
%
35
% Define author(s) and  component's name
36
%
37
\def\defauthor{Lasse Lehtonen}
38
\def\deftitle{HIBI\_PE\_DMA\\Reference Manual}
39
 
40
 
41
 
42
\author{\defauthor}
43
\title{\deftitle}
44
 
45
\usepackage{fancyhdr}
46
\pagestyle{fancy}
47
\lhead{\bfseries Department of Computer Systems\\
48
  Faculty of Computing and Electrical Engineering}
49
\chead{}
50
\rhead{\bfseries \deftitle}
51
\lfoot{\thepage}
52
\cfoot{}
53
\rfoot{\includegraphics[height=1.0cm]{pic/tty_logo.png}}
54
%\renewcommand{\headrulewidth}{0.4pt}
55
%\renewcommand{\footrulewidth}{0.4pt}
56
 
57
%\setlength{\headheight}{\headheight+1cm}
58
%\setlength{\textheight}{\textheight-2cm}
59
%\setlength{\footskip}{\footskip+1cm}
60
 
61
\def\deftablecolora{blue!10!white}
62
\def\deftablecolorb{white}
63
 
64
 
65
\begin{document}
66
 
67
 
68
 
69
%\maketitle
70
%\thispagestyle{empty}
71
 
72
\begin{titlepage}
73
\begin{center}
74
 
75
\vspace{6.0cm}
76
\textsc{\LARGE Tampere University of Technology}\\[1.0cm]
77
\textsc{\Large Faculty of Computing and Electrical Engineering}\\[1.0cm]
78
\textsc{\Large Department of Computer Systems}\\[1.0cm]
79
\vspace{6.0cm}
80
\hrule
81
\vspace{0.4cm}
82
{ \huge \bfseries HIBI\_PE\_DMA\\\vspace{10pt}HW Reference Manual}
83
\vspace{0.4cm}
84
\hrule
85
 
86
%\vspace{2.0cm}
87
 
88
\vfill
89
 
90
\begin{minipage}{0.4\textwidth}
91
\begin{flushleft} \large
92
\emph{Author:}\\
93
\defauthor
94
\end{flushleft}
95
\end{minipage}
96
\begin{minipage}{0.4\textwidth}
97
\begin{flushright} \large
98
\emph{Updated:} \\
99
\today
100
\end{flushright}
101
\end{minipage}
102
 
103
\end{center}
104
\end{titlepage}
105
 
106
\newpage
107
\tableofcontents
108
 
109
 
110
 
111
\newpage
112
\section{REVISION HISTORY}
113
\setcounter{page}{1}
114
 
115
\begin{center}
116
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
117
 
118
  \captionof{table}{}
119
  \begin{tabularx}{\textwidth}{|lllX|}
120
    \hline
121
    Revision & Author          & Date    & Description\\
122
    \hline
123
    1.03  & Lasse Lehtonen  & 26.01.2012 & Ported old document to Latex\\
124
    1.04  & Lasse Lehtonen  & 27.01.2012 & Added streaming channels\\
125
    1.05  & Lasse Lehtonen  & 02.03.2012 & Removed SW part and changed register order\\
126
    & & & \\
127
    & & & \\
128
    \hline
129
  \end{tabularx}
130
\end{center}
131
 
132
 
133
 
134
\newpage
135
\section{DOCUMENT OVERVIEW}
136
 
137
\subsection{SCOPE}
138
 
139
This documentation describes how to use HIBI PE DMA component.
140
 
141
\subsection{AUDIENCE}
142
 
143
For hardware integrators and software developers using this component.
144
 
145
\subsection{RELATED DOCUMENTATION}
146
 
147
\begin{center}
148
  \rowcolors[]{2}{\deftablecolora}{\deftablecolorb}
149
 
150
  \captionof{table}{}
151
  \begin{tabularx}{\textwidth}{|lX|}
152
    \hline
153
    Document & Description\\
154
    \hline
155
    building\_test\_system.pptx & Descibes an example using in SOPC
156
                                  with NIOS II processors\\
157
    hpd\_sw\_ref.pdf   & Software reference manual\\
158
    HIBI\_PE\_DMA.pptx & Introduction to HIBI PE DMA\\
159
    \hline
160
  \end{tabularx}
161
\end{center}
162
 
163
\subsection{DOCUMENT CONVENTIONS}
164
 
165
 
166
\begin{itemize}
167
\item Ports: \texttt{teletype} in text
168
\item Generics: \texttt{teletype} in text
169
\end{itemize}
170
 
171
 
172
 
173
\newpage
174
\section{INTRODUCTION}
175
 
176
\subsection{BRIEF DESCRIPTION}
177
 
178
HIBI\_PE\_DMA (HPD) component allows separate processor systems with
179
Avalon-MM compatible interface to communicate with each other via Hibi
180
hierarchical bus. Communication is DMA based and uses either packet or
181
stream channels for network transactions. HIBI\_PE\_DMA supports both
182
polling and interrupts.
183
 
184
\subsection{EXAMPLE SYSTEM}
185
 
186
Example system showing three SOPC blocks with Nios processors
187
communicating via Hibi. Each HIBI\_PE\_DMA component is associated
188
with dual-port RAMs where they store received data and read the data
189
to be sent.
190
 
191
\begin{center}
192
  \includegraphics[width=0.8\textwidth]{pic/example_system.png}
193
  \captionof{figure}{Example system with three Nios processors}
194
  \label{fig:example_system}
195
\end{center}
196
 
197
 
198
 
199
\newpage
200
\section{HARDWARE DESIGN}
201
 
202
\subsection{HIBI\_PE\_DMA}
203
 
204
\subsubsection{GENERICS}
205
 
206
\begin{center}
207
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
208
 
209
  \captionof{table}{}
210
  \begin{tabularx}{\textwidth}{|lX|}
211
    \hline
212
    Name                   & Description\\
213
    \hline
214
    data\_width\_g         & Width of the data buses\\
215
    addr\_width\_g         & Width of the Hibi address\\
216
    words\_width\_g        & Number of bits needed to represent word counters\\
217
    n\_stream\_chans\_g    & Number of stream channels\\
218
    n\_packet\_chans\_g    & Number of packet channels\\
219
    n\_chans\_bits\_g      & Bits needed to represent n\_stream\_chans\_g +
220
                             n\_packet\_chans\_g\\
221
    hibi\_addr\_cmp\_lo\_g & Lower boundary for address comparison\\
222
    hibi\_addr\_cmp\_hi\_g & Upper boundary for address comparison\\
223
    \hline
224
  \end{tabularx}
225
\end{center}
226
 
227
\subsubsection{CLOCKING AND RESET}
228
 
229
\begin{center}
230
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
231
 
232
  \captionof{table}{}
233
  \begin{tabularx}{\textwidth}{|lllX|}
234
    \hline
235
    Port   & Width & Direction & Description\\
236
    \hline
237
    clk    & 1     & in        & Clock, active on rising edge\\
238
    rst\_n & 1     & in        & Reset, asynchronous, active low\\
239
    \hline
240
  \end{tabularx}
241
\end{center}
242
 
243
 
244
 
245
\subsubsection{CONFIGURATION INTERFACE}
246
 
247
This slave interface is used by the processor for reading or writing
248
HIBI\_PE\_DMA registers.
249
 
250
\begin{center}
251
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
252
 
253
  \captionof{table}{}
254
  \begin{tabularx}{\textwidth}{|lllX|}
255
    \hline
256
    Port   & Width & Direction & Description\\
257
    \hline
258
    avalon\_cfg\_addr\_in         & n\_chans\_g+4  & in  & Register address\\
259
    avalon\_cfg\_writedata\_in    & addr\_width\_g & in  & Data in\\
260
    avalon\_cfg\_we\_in           & 1              & in  & Write enable\\
261
    avalon\_cfg\_readdata\_out    & addr\_width\_g & out & Data out\\
262
    avalon\_cfg\_re\_in           & 1              & in  & Read enable\\
263
    avalon\_cfg\_cs\_in           & 1              & in  & Chip select\\
264
    avalon\_cfg\_waitrequest\_out & 1              & out & Stall\\
265
    \hline
266
  \end{tabularx}
267
\end{center}
268
 
269
 
270
\subsubsection{MEMORY WRITE INTERFACE}
271
 
272
This master interface is used by HIBI\_PE\_DMA to write received data to the
273
shared dual-port memory.
274
 
275
\begin{center}
276
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
277
 
278
  \captionof{table}{}
279
  \begin{tabularx}{\textwidth}{|lllX|}
280
    \hline
281
    Port   & Width & Direction & Description\\
282
    \hline
283
    avalon\_addr\_out\_rx       & addr\_width\_g     & out & Write address\\
284
    avalon\_we\_out\_rx         & 1                  & out & Write enable\\
285
    avalon\_be\_out\_rx         & data\_width\_g / 8 & out & Byte enable\\
286
    avalon\_writedata\_out\_rx  & data\_width\_g     & out & Data out\\
287
    avalon\_waitrequest\_in\_rx & 1                  & in  & Stall\\
288
    \hline
289
  \end{tabularx}
290
\end{center}
291
 
292
\pagebreak
293
\subsubsection{MEMORY READ INTERFACE}
294
 
295
This master interface is used by HIBI\_PE\_DMA to read data to be sent from the
296
shared dual-port memory.
297
 
298
\begin{center}
299
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
300
 
301
  \captionof{table}{}
302
  \begin{tabularx}{\textwidth}{|lllX|}
303
    \hline
304
    Port   & Width & Direction & Description\\
305
    \hline
306
    avalon\_addr\_out\_tx         & addr\_width\_g & out & Read address\\
307
    avalon\_re\_out\_tx           & 1              & out & Read enable\\
308
    avalon\_readdata\_in\_tx      & data\_width\_g & in  & Data in\\
309
    avalon\_waitrequest\_in\_tx   & 1              & in  & Stall\\
310
    avalon\_readdatavalid\_in\_tx & 1              & out & Byte enable\\
311
    \hline
312
  \end{tabularx}
313
\end{center}
314
 
315
 
316
\subsubsection{HIBI RECEIVE INTERFACE}
317
 
318
\begin{center}
319
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
320
 
321
  \captionof{table}{}
322
  \begin{tabularx}{\textwidth}{|lllX|}
323
    \hline
324
    Port   & Width & Direction & Description\\
325
    \hline
326
    hibi\_data\_in  & data\_width\_g & in  & Data in\\
327
    hibi\_av\_in    & 1              & in  & Address valid\\
328
    hibi\_empty\_in & 1              & in  & No more data\\
329
    hibi\_comm\_in  & 5              & in  & Hibi command\\
330
    hibi\_re\_out   & 1              & out & Read enable\\
331
    \hline
332
  \end{tabularx}
333
\end{center}
334
 
335
 
336
\subsubsection{HIBI TRANSMIT INTERFACE}
337
 
338
\begin{center}
339
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
340
 
341
  \captionof{table}{}
342
  \begin{tabularx}{\textwidth}{|lllX|}
343
    \hline
344
    Port   & Width & Direction & Description\\
345
    \hline
346
    hibi\_data\_out & data\_width\_g & in  & Data out\\
347
    hibi\_av\_out   & 1              & in  & Address valid\\
348
    hibi\_full\_in  & 1              & in  & Receiver fulll\\
349
    hibi\_comm\_out & 5              & in  & Hibi command\\
350
    hibi\_we\_out   & 1              & out & Write enable\\
351
    \hline
352
  \end{tabularx}
353
\end{center}
354
 
355
 
356
\subsubsection{INTERRUPT INTERFACE}
357
 
358
\begin{center}
359
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
360
 
361
  \captionof{table}{}
362
  \begin{tabularx}{\textwidth}{|lllX|}
363
    \hline
364
    Port   & Width & Direction & Description\\
365
    \hline
366
    rx\_irq\_out & 1 & out  & Interrupt, active high\\
367
    \hline
368
  \end{tabularx}
369
\end{center}
370
 
371
 
372
\pagebreak
373
\subsubsection{INTERFACE STRUCTURE}
374
 
375
Figure \ref{fig:arch} shows how HIBI\_PE\_DMA's interfaces are connected.
376
 
377
\begin{center}
378
  \includegraphics[width=0.8\textwidth]{pic/arch.png}
379
  \captionof{figure}{HIBI\_PE\_DMA connected to a Processing Element
380
    (PE), dual-port memory and Hibi}
381
  \label{fig:arch}
382
\end{center}
383
 
384
 
385
\subsubsection{INTEGRATION}
386
 
387
Related  source  files  are listed  in  next  table  in the  order  of
388
compilation (when applicable).
389
 
390
\begin{center}
391
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
392
 
393
  \captionof{table}{}
394
  \begin{tabularx}{\textwidth}{|lX|}
395
    \hline
396
    Filename   & Description\\
397
    \hline
398
     hpd\_tx\_control.vhd   & Sending logic\\
399
     hpd\_rx\_packet.vhd    & RX packet channel\\
400
     hpd\_rx\_stream.vhd    & RX stream channel\\
401
     hpd\_rx\_and\_conf.vhd & RX channels and configuration registers\\
402
     hibi\_pe\_dma.vhd      & Top level\\
403
    \hline
404
  \end{tabularx}
405
\end{center}
406
 
407
 
408
\pagebreak
409
\subsubsection{REGISTERS}
410
 
411
\begin{center}
412
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
413
 
414
  \captionof{table}{}
415
  \begin{tabularx}{\textwidth}{|lllX|}
416
    \hline
417
    Address & Name    & Access & Description\\
418
    \hline
419
    0x00 & RX\_INITIALIZE & W  & Initializes channels\\
420
    0x01 & CONTROL        & RW & Control register\\
421
    0x02 & IRQ\_STATUS    & RW & Read IRQ status and acknowledge interrupts\\
422
    0x03 & TX\_MEM\_ADDR  & W  & Address where data to be sent begins\\
423
    0x04 & TX\_WORDS      & W  & How many words to send\\
424
    0x05 & TX\_COMM       & W  & Hibi command to send the data with\\
425
    0x06 & TX\_HIBI\_ADDR & W  & Hibi address to send the data\\
426
    0x07 & RX\_HIBI\_DATA & R  & Current data on hibi rx interface\\
427
    0xn8 & RX\_MEM\_ADDR  & RW & Address where channel n stores received data\\
428
    0xn9 & RX\_WORDS      & RW & How many words to receive for packet channel n
429
                                 or read acknowledge for stream channel n\\
430
    0xnA & RX\_HIBI\_ADDR & RW & Hibi address for channel n to listen\\
431
    \hline
432
  \end{tabularx}
433
\end{center}
434
 
435
 
436
\paragraph{RX\_INITIALIZE REGISTER (0x00)} initializes channels with
437
previously set data. For every bit that is '1' corresponding channel
438
is initializes. Eg. if bit 3 is '1' then channel 3 will be
439
initialized. Initialization means that the channel reads in registers
440
0xn0-0xn3 and starts listening hibi receive interface.
441
 
442
\begin{center}
443
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
444
 
445
  \captionof{table}{}
446
  \begin{tabularx}{\textwidth}{|lllX|}
447
    \hline
448
    Bit & Name    & Access & Description\\
449
    \hline
450
    [total\_channels-1:0] & INIT & W & Initialize channels\\
451
    \hline
452
  \end{tabularx}
453
\end{center}
454
 
455
 
456
\paragraph{CONTROL REGISTER (0x01)} is used to enable interrupts,
457
start sending and checking if transmission has been done.
458
 
459
\begin{center}
460
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
461
 
462
  \captionof{table}{}
463
  \begin{tabularx}{\textwidth}{|lllX|}
464
    \hline
465
    Bit & Name    & Access & Description\\
466
    \hline
467
 
468
    1  & IE     & RW & Interrupt enable\\
469
    16 & TXDONE & R  & Transmission completed\\
470
    \hline
471
  \end{tabularx}
472
\end{center}
473
 
474
 
475
\paragraph{IRQ\_STATUS REGISTER (0x02)} holds the interrupt status.
476
Channel interrupts are acknowledged by writing '1' to the
477
corresponding bit, other interrupt goes low automatically when this
478
register is read. IGNORED\_TX is '1' if transmission was tried when
479
previous transmission was still going on. UNKNOWN\_RX is '1' when
480
hibi\_data\_in line has an address that isn't listened by any channel.
481
 
482
\begin{center}
483
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
484
 
485
  \captionof{table}{}
486
  \begin{tabularx}{\textwidth}{|lllX|}
487
    \hline
488
    Bit & Name    & Access & Description\\
489
    \hline
490
    [total\_channels-1:0] & IRQ & RW & Channel interrupt statuses\\
491
    addr\_width\_g-2 & IGNORED\_TX & R & Last transmission ignored\\
492
    addr\_width\_g-1 & UNKOWN\_RX & R & Received unknown hibi address\\
493
    \hline
494
  \end{tabularx}
495
\end{center}
496
 
497
 
498
\paragraph{TX\_MEM\_ADDR REGISTER (0x03)} tells HIBI\_PE\_DMA where
499
the beginning of the packet to be sent is in the shared memory.
500
 
501
\begin{center}
502
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
503
 
504
  \captionof{table}{}
505
  \begin{tabularx}{\textwidth}{|lllX|}
506
    \hline
507
    Bit & Name    & Access & Description\\
508
    \hline
509
    [addr\_width\_g-1:0] & ADDRESS & W & Packet's starting address\\
510
    \hline
511
  \end{tabularx}
512
\end{center}
513
 
514
 
515
\paragraph{TX\_WORDS REGISTER (0x04)} defines the amount of words
516
 to send.
517
 
518
 
519
\begin{center}
520
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
521
 
522
  \captionof{table}{}
523
  \begin{tabularx}{\textwidth}{|lllX|}
524
    \hline
525
    Bit & Name    & Access & Description\\
526
    \hline
527
    [words\_width\_g-1:0] & WORDS & W & How many words to send\\
528
    \hline
529
  \end{tabularx}
530
\end{center}
531
 
532
 
533
\paragraph{TX\_COMM REGISTER (0x05)} defines witch hibi command to
534
use when sending the data.
535
 
536
\begin{center}
537
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
538
 
539
  \captionof{table}{}
540
  \begin{tabularx}{\textwidth}{|lllX|}
541
    \hline
542
    Bit & Name    & Access & Description\\
543
    \hline
544
    [4:0] & CMD & W & Hibi command\\
545
    \hline
546
  \end{tabularx}
547
\end{center}
548
 
549
 
550
\paragraph{TX\_HIBI\_ADDR REGISTER (0x06)} is used as the target
551
hibi address when sending.
552
 
553
 
554
\begin{center}
555
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
556
 
557
  \captionof{table}{}
558
  \begin{tabularx}{\textwidth}{|lllX|}
559
    \hline
560
    Bit & Name    & Access & Description\\
561
    \hline
562
    [addr\_width\_g-1:0] & ADDR & W & Hibi address to use\\
563
    \hline
564
  \end{tabularx}
565
\end{center}
566
 
567
 
568
\paragraph{RX\_HIBI\_DATA REGISTER (0x07)} is used to read
569
the unknown incoming address from hibi. When HIBI\_PE\_DMA receives an
570
address from hibi bus that no channel is listening it stalls the hibi
571
and raises an interrupt. This register can then be used to read the
572
address.
573
 
574
\begin{center}
575
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
576
 
577
  \captionof{table}{}
578
  \begin{tabularx}{\textwidth}{|lllX|}
579
    \hline
580
    Bit & Name    & Access & Description\\
581
    \hline
582
    [addr\_width\_g-1:0] & ADDR & R & Contents of hibi\_data\_in  bus\\
583
    \hline
584
  \end{tabularx}
585
\end{center}
586
 
587
 
588
\paragraph{RX\_MEM\_ADDR REGISTER (0xn8)} holds the address of the
589
beginning of the memory area where to store incoming data from channel
590
n. Area should be at least as big as the amount of words to receive
591
specified with register 0xn2. Address is updated only when channel is
592
initialized.
593
 
594
\begin{center}
595
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
596
 
597
  \captionof{table}{}
598
  \begin{tabularx}{\textwidth}{|lllX|}
599
    \hline
600
    Bit & Name    & Access & Description\\
601
    \hline
602
    [addr\_width\_g-1:0] & ADDRESS & RW & Where to store data\\
603
    \hline
604
  \end{tabularx}
605
\end{center}
606
 
607
 
608
\paragraph{RX\_WORDS REGISTER (0xn9)} tells packet channels how many
609
words to receive before interrupting. Amount is updated only when
610
channel is initialized. For stream channels this register tells the
611
length of the rx memory region when initialized and for already
612
initialized stream channels this register acknowledges that WORDS
613
words have been read from the rx memory and allows the channel to
614
continue receiving. When read for returns amount of words already
615
received.
616
 
617
 
618
\begin{center}
619
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
620
 
621
  \captionof{table}{}
622
  \begin{tabularx}{\textwidth}{|lllX|}
623
    \hline
624
    Bit & Name    & Access & Description\\
625
    \hline
626
    [words\_width\_g-1:0] & WORDS & RW & Words to receive or acknowledge\\
627
    \hline
628
  \end{tabularx}
629
\end{center}
630
 
631
 
632
\paragraph{RX\_HIBI\_ADDR REGISTER (0xnA)} specifies the hibi address
633
to listen and receive data from. Address is updated only when channel
634
is initialized.
635
 
636
\begin{center}
637
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
638
 
639
  \captionof{table}{}
640
  \begin{tabularx}{\textwidth}{|lllX|}
641
    \hline
642
    Bit & Name    & Access & Description\\
643
    \hline
644
    [addr\_width\_g-1:0] & ADDRESS & RW & Hibi address to listen\\
645
    \hline
646
  \end{tabularx}
647
\end{center}
648
 
649
 
650
 
651
 
652
 
653
 
654
 
655
 
656
\end{document}

powered by: WebSVN 2.1.0

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