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/] [fh_mesh_2d/] [1.0/] [doc/] [ref_doc_src/] [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
\lstdefinestyle{ccc}
17
{
18
numbers=none,
19
basicstyle=\small\ttfamily,
20
keywordstyle=\bf\color[rgb]{0,0,0},
21
%commentstyle=\color[rgb]{0.133,0.545,0.133},
22
stringstyle=\color[rgb]{0.627,0.126,0.941},
23
backgroundcolor=\color{white},
24
frame=tb, %frame= lrtb,
25
framerule=0.5pt,
26
linewidth=\textwidth,
27
%aboveskip=-4.0pt,
28
%belowskip=-4.0pt,
29
lineskip=-5.0pt,
30
}
31
 
32
%
33
% Define author(s) and  component's name
34
%
35
\def\defauthor{Lasse Lehtonen}
36
\def\deftitle{FH Mesh\_2D\\Reference Manual}
37
 
38
 
39
 
40
\author{\defauthor}
41
\title{\deftitle}
42
 
43
\usepackage{fancyhdr}
44
\pagestyle{fancy}
45
\lhead{\bfseries Department of Computer Systems\\
46
  Faculty of Computing and Electrical Engineering}
47
\chead{}
48
\rhead{\bfseries \deftitle}
49
\lfoot{\thepage}
50
\cfoot{}
51
\rfoot{\includegraphics[height=1.0cm]{pic/tty_logo.png}}
52
\renewcommand{\headrulewidth}{0.4pt}
53
\renewcommand{\footrulewidth}{0.4pt}
54
 
55
 
56
\def\deftablecolora{blue!10!white}
57
\def\deftablecolorb{white}
58
 
59
\begin{document}
60
 
61
 
62
%\maketitle
63
%\thispagestyle{empty}
64
 
65
\begin{titlepage}
66
\begin{center}
67
 
68
\vspace{6.0cm}
69
\textsc{\LARGE Tampere University of Technology}\\[1.0cm]
70
\textsc{\Large Faculty of Computing and Electrical Engineering}\\[1.0cm]
71
\textsc{\Large Department of Computer Systems}\\[1.0cm]
72
\vspace{6.0cm}
73
\hrule
74
\vspace{0.4cm}
75
{ \huge \bfseries FH Mesh\_2D\\[0.5cm]Reference Manual}
76
\vspace{0.4cm}
77
\hrule
78
 
79
%\vspace{2.0cm}
80
 
81
\vfill
82
 
83
\begin{minipage}{0.4\textwidth}
84
\begin{flushleft} \large
85
\emph{Author:}\\
86
Lasse Lehtonen
87
\end{flushleft}
88
\end{minipage}
89
\begin{minipage}{0.4\textwidth}
90
\begin{flushright} \large
91
\emph{Updated:} \\
92
\today
93
\end{flushright}
94
\end{minipage}
95
 
96
\end{center}
97
\end{titlepage}
98
 
99
\newpage
100
\tableofcontents
101
 
102
 
103
 
104
\newpage
105
\section{REVISION HISTORY}
106
\setcounter{page}{1}
107
 
108
\begin{center}
109
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
110
 
111
  \captionof{table}{}
112
  \begin{tabularx}{\textwidth}{|lllX|}
113
    \hline
114
    Revision & Author          & Date       & Description\\
115
    \hline
116
    1.00  & Lasse Lehtonen  & 8.8.2011 & Initial documentation\\
117
    & & & \\
118
    & & & \\
119
    & & & \\
120
    & & & \\
121
    \hline
122
  \end{tabularx}
123
\end{center}
124
 
125
 
126
 
127
\newpage
128
\section{DOCUMENT OVERVIEW}
129
 
130
\subsection{SCOPE}
131
 
132
This documentation describes the basic operation and usage of FH
133
Mesh\_2D Network-on-Chip component.
134
 
135
\subsection{AUDIENCE}
136
 
137
For hardware integrators wanting to use this component.
138
 
139
\subsection{RELATED DOCUMENTATION}
140
 
141
\begin{center}
142
  \rowcolors[]{2}{\deftablecolora}{\deftablecolorb}
143
 
144
  \captionof{table}{}
145
  \begin{tabularx}{\textwidth}{|lX|}
146
    \hline
147
    Document & Description\\
148
    \hline
149
    & \\
150
    & \\
151
    & \\
152
    & \\
153
    \hline
154
  \end{tabularx}
155
\end{center}
156
 
157
\subsection{DOCUMENT CONVENTIONS}
158
 
159
 
160
\begin{itemize}
161
\item Ports: \texttt{teletype} in text
162
\item Generics: \texttt{teletype} in text
163
\end{itemize}
164
 
165
 
166
 
167
\newpage
168
\section{INTRODUCTION}
169
 
170
\subsection{BRIEF DESCRIPTION}
171
 
172
FH Mesh\_2D Network-on-Chip is a highly configurable network based on
173
2-dimensional mesh architecture. Network can be configured to use
174
either store-and-forward of wormhole switching, but is limited to only
175
XY routing. Fifo depths and bus widths can be freely set and the
176
network supports different synchronous frequencies for agents than the
177
network's operating frequency.
178
 
179
\subsection{EXAMPLE SYSTEM}
180
 
181
Example system in figure~\ref{fig:example_system} presents a 5 by 4
182
mesh topology. Every router is connected to one agent and all
183
neighboring routers in cardinal directions with bi-directional links.
184
 
185
\begin{center}
186
  \includegraphics[width=1.0\textwidth]{pic/mesh_5x4.pdf}
187
  \captionof{figure}{}
188
  \label{fig:example_system}
189
\end{center}
190
 
191
 
192
 
193
\newpage
194
\section{HARDWARE DESIGN}
195
 
196
\subsection{FH MESH\_2D}
197
 
198
\subsubsection{GENERICS}
199
 
200
\begin{center}
201
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
202
 
203
  \captionof{table}{}
204
  \begin{tabularx}{\textwidth}{|lX|}
205
    \hline
206
    Name                & Description\\
207
    \hline
208
    n\_ag\_g          & Number of agents\\
209
    stfwd\_en\_g      & Selects between store-and-forward (1)
210
                          and wormhole (0) switching\\
211
    data\_width\_g    & Width of the data bus in bits\\
212
    addr\_width\_g    & Width of the address bus in bits. Must be less
213
                          or equal than data\_width\_g\\
214
    tx\_len\_width\_g & Width of txlen bus in bits\\
215
    packet\_length\_g & Packet's maximum length in words\\
216
    timeout\_g        & How many clock cycles to wait for packet to fill
217
                        before filling it with dummy data\\
218
    lut\_en\_g        & Enable address translation\\
219
    fifo\_depth\_g    & Depth of FIFOs in words\\
220
    len\_flit\_en\_g  & Enable packet to carry length information in
221
                           its own flit\\
222
    oaddr\_flit\_en\_g & Enable packet to carry the destination
223
                             memory-mapped address\\
224
    mesh\_freq\_g  & Network's frequency relative to IP  frequecy\\
225
    ip\_freq\_g    & Agent's relative frequency to network frequecy\\
226
    rows\_g & Number of rows in the network\\
227
    cols\_g & Number of columns in the network\\
228
    \hline
229
  \end{tabularx}
230
\end{center}
231
 
232
\subsubsection{CLOCKING AND RESET}
233
 
234
 
235
\begin{center}
236
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
237
 
238
  \captionof{table}{}
239
  \begin{tabularx}{\textwidth}{|lllX|}
240
    \hline
241
    Port   & Width & Direction & Description\\
242
    \hline
243
    clk\_mesh    & 1     & in      & Clock for the network, active on rising edge\\
244
    clk\_ip    & 1     & in      & Clock for the IP, active on rising edge\\
245
    rst\_n & 1     & in      & Reset, asynchronous, active low\\
246
    \hline
247
  \end{tabularx}
248
\end{center}
249
 
250
Clock frequencies must be at integer ratio (e.g. 1:3 but not 2:3) and they must
251
have a synchronized rising edge.
252
 
253
\subsubsection{DATA INTERFACE}
254
 
255
\begin{center}
256
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
257
 
258
  \captionof{table}{}
259
  \begin{tabularx}{\textwidth}{|lllX|}
260
    \hline
261
    Port   & Width & Direction & Description\\
262
    \hline
263
    tx\_data\_in & rows\_g*cols\_g*data\_width\_g & in  & All TX datas from IPs \\
264
    tx\_we\_in & rows\_g*cols\_g & in & Write enables from all IPs\\
265
    tx\_txlen\_in & rows\_g*cols\_g*tx\_len\_width\_g & in & Transfer's length in words\\
266
    rx\_re\_in & rows\_g*cols\_g & in & Read enables from all IPs\\
267
    rx\_data\_out & rows\_g*cols\_g*data\_width\_g & out & All RX datas from the network\\
268
    rx\_empty\_out & rows\_g*cols\_g & out &  RX FIFO empty signals\\
269
    rx\_full\_out & rows\_g*cols\_g & out &  RX FIFO full signals\\
270
    tx\_empty\_out & rows\_g*cols\_g & out &  TX FIFO empty signals\\
271
    tx\_full\_out & rows\_g*cols\_g & out &  TX FIFO full signals\\
272
    \hline
273
  \end{tabularx}
274
\end{center}
275
 
276
Routers are connected to vectors starting from $(X=0, Y=0)$ and continuing
277
row by row from $X=0$ to $X=cols\_g-1$.
278
 
279
 
280
 
281
\subsubsection{ARCHITECTURE}
282
 
283
Router design contains a basic synchronous FIFO for incoming links on
284
cardinal directions and multiclock FIFOs capable of synchronous clock
285
domain crossing for both ways connected to the Packet Codec. Packet
286
codec acts as network interface for IPs handling the creation of
287
packets and the address translation from memory mapped addresses to
288
network addresses.
289
 
290
\begin{center}
291
  \includegraphics[width=0.4\textwidth]{pic/router_arch.png}
292
  \captionof{figure}{}
293
\end{center}
294
 
295
\subsubsection{INTEGRATION}
296
 
297
Related  source  files  are listed  in  next  table  in the  order  of
298
compilation (when applicable).
299
 
300
\begin{center}
301
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
302
 
303
  \captionof{table}{}
304
  \label{tab:files}
305
  \begin{tabularx}{\textwidth}{|lX|}
306
    \hline
307
    Filename   & Description\\
308
    \hline
309
    fifo.vhd           & Simple synchronous FIFO\\
310
    multiclk\_fifo.vhd & FIFO with clock domain crossing\\
311
    pkt\_counter.vhd   & Debug component counting packets\\
312
    addr\_lut\_pkg.vhd & Package for pkt\_codec\\
313
    addr\_lut.vhd      & Address translation unit\\
314
    pkt\_enc.vhd       & Packet encoder\\
315
    pkt\_dec.vhd       & Pakcet decoder\\
316
    pkt\_enc\_dec\_1d  & Top level for encoders and decoders\\
317
    mesh\_router.vhd   & Router implementation\\
318
    mesh\_2d.vhd       & Top level containing all routers\\
319
    mesh\_2d\_with\_pkt\_codec\_top.vhd & Top level with pkt\_codec\\
320
    \hline
321
  \end{tabularx}
322
\end{center}
323
 
324
 
325
\subsubsection{SWITCHING}
326
 
327
Depending on generic \texttt{stfwd\_en\_g} FH Mesh\_2D uses either
328
store-and-forward or wormhole switching. If store-and-forward
329
switching is used the Packet Codec handles the creation of the
330
network packet. If there's not enough data to fill the whole packet
331
the unused flits will be sent empty. Packet Codec will wait few clock
332
cycles before filling the packet to allow IP to stall a little while
333
sending. For store-and-forward switching the FIFOs must be the same
334
size as the packets.
335
 
336
\vspace{0.4cm}
337
\noindent
338
For wormhole switched configuration there's no limitation to the size
339
of the FIFOs.
340
 
341
 
342
\subsubsection{ROUTING}
343
 
344
Routing algorithm of FH Mesh\_2D if fixed to YX-routing. Packets travel
345
first on the Y-axis to the correct row and then along the X-axis to
346
the destination router.
347
 
348
\newpage
349
\section{TESTING}
350
 
351
\subsection{TEST CASE}
352
 
353
FH Mesh\_2D network model comes with a simple test case which instantiates
354
a 2 by 3 mesh with packet codec inteface. Test case sends one message
355
from router (0,0) to router (1,2) and terminates after that.
356
 
357
\subsection{SIMULATION}
358
 
359
In order to simulate the test case one needs to compile files listed
360
in table~\ref{tab:files} in addition to files listed in
361
table~\ref{tab:simfiles} found in basic\_tester/vhd. Top level for the
362
simulation (simple\_test\_mesh\_2d.vhd) and the test case files are
363
located in directory mesh\_2d/sim. For the users of Modelsim also a
364
do-file to compile needed files is supplied.
365
 
366
 
367
\begin{center}
368
  \rowcolors{3}{\deftablecolora}{\deftablecolorb}
369
 
370
  \captionof{table}{}
371
  \label{tab:simfiles}
372
  \begin{tabularx}{\textwidth}{|lX|}
373
    \hline
374
    Filename   & Description\\
375
    \hline
376
    txt\_util.vhd          & Helper functions for printing\\
377
    basic\_tester\_pkg.vhd & Package for Basic Tester\\
378
    basic\_tester\_tx.vhd  & Transfer generation\\
379
    basic\_tester\_rx.vhd  & Transfer validator\\
380
    \hline
381
  \end{tabularx}
382
\end{center}
383
 
384
 
385
\end{document}

powered by: WebSVN 2.1.0

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