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

Subversion Repositories gecko4

[/] [gecko4/] [trunk/] [GECKO4com/] [doc/] [appendix_1.tex] - Blame information for rev 6

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 ktt1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
%%            _   _            __   ____                                      %%
3
%%           / / | |          / _| |  __|                                     %%
4
%%           | |_| |  _   _  / /   | |_                                       %%
5
%%           |  _  | | | | | | |   |  _|                                      %%
6
%%           | | | | | |_| | \ \_  | |__                                      %%
7
%%           |_| |_| \_____|  \__| |____| microLab                            %%
8
%%                                                                            %%
9
%%           Bern University of Applied Sciences (BFH)                        %%
10
%%           Quellgasse 21                                                    %%
11
%%           Room HG 4.33                                                     %%
12
%%           2501 Biel/Bienne                                                 %%
13
%%           Switzerland                                                      %%
14
%%                                                                            %%
15
%%           http://www.microlab.ch                                           %%
16
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17
\chapter{Bus transactions}
18
\label{appen:bus}
19
This appendix describes the timing diagram of valid bus transactions and
20
transactions containing errors. Although the timing diagrams are shown for a
21
three datum burst transaction, it also reflects the single datum transaction.
22
%-----------------------------------------------------------------------------
23
\section{Write transactions}
24
In the write transaction the data flows from the user FPGA towards the {\sc
25
GECKO4com}. The timing diagram of a correct write transaction is shown in
26
Figure~\ref{fig:write correct}.
27
A write transaction is initiated by activating the $\overline{\textbf{start
28
trans}}$ signal and sending the \emph{Transmission Control Word (TCW)} (see
29
Chapter~\ref{sec:bus prot} and Figure~\ref{fig:TCW}) over the \textbf{data
30
cntrl} lines.\\
31
\textit{Important: All signals are active for one clock period of the
32
\textbf{bus clock}.\important}
33
\begin{figure}[hb]
34
\centering%
35
\includegraphics[width=\columnwidth]{figs/write_transaction_no_bus_error}
36
\caption{A correct write transaction that causes no bus error. Here a 3-short
37
burst transaction is shown. The blue lines represent tri-stated FPGA pins.}
38
\label{fig:write correct}
39
\end{figure}
40
 \\
41
After the initiation of the write transaction the user FPGA has to wait for the
42
{\sc GECKO4com} to activate the $\overline{\textbf{start send}}$ signal
43
(dependency \ding{'312}). Sending data before this dependency will result in
44
unpredictable results. After the reception of the $\overline{\textbf{start
45
send}}$ signal the user FPGA may start transmitting the data payload(shown by
46
\ding{'313}). The data payload may be a continues stream or chunk-ed into parts.
47
For each datum the user FPGA has to put the datum on the \textbf{data cntrl}
48
lines and activate both the $\overline{\textbf{valid lo}}$ and
49
$\overline{\textbf{valid hi}}$ lines to indicate valid data. After the sending
50
of the last datum, the user FPGA has to end the transaction by activating the
51
$\overline{\textbf{end trans}}$ signal as shown at \ding{'314}. The
52
$\overline{\textbf{end trans}}$ signal may be activated after or in parallel
53
with the sending of the last datum of the payload.\\
54
\textit{Important: the {\sc GECKO4com} does not check whether or not the user
55
FPGA sends the correct number of data. It assumes that the user FPGA does send
56
the number of data as announced in the Transmission Control Word (TCW).\important}
57
%-----------------------------------------------------------------------------
58
\section{Write transaction aborts}
59
Write transactions can be aborted under the conditions described in
60
Chapter~\ref{sec:mem map}. An aborted transaction is indicated by the {\sc
61
GECKO4com} by the activation of the $\overline{\textbf{error}}$ line. This
62
condition can occur anywhere during the transaction. Figure~\ref{fig:write
63
error 1} and Figure~\ref{fig:write error 2} show two examples of aborted write
64
transactions.
65
\begin{figure}[pt]
66
\centering%
67
\includegraphics[width=\columnwidth]{figs/write_transaction_bus_error_1}
68
\caption{An aborted write transaction before the reception of the
69
$\overline{\textbf{start trans}}$ signal.}
70
\label{fig:write error 1}
71
\end{figure}
72
\begin{figure}[pb]
73
\centering%
74
\includegraphics[width=\columnwidth]{figs/write_transaction_bus_error_2}
75
\caption{An aborted write transaction after the reception of the
76
$\overline{\textbf{start trans}}$ signal.}
77
\label{fig:write error 2}
78
\end{figure}
79
After the reception of the activated $\overline{\textbf{error}}$ signal the user
80
FPGA is required to activate the $\overline{\textbf{end trans}}$ signal to end
81
the transaction (as shown in dependency \ding{'315}).\\
82
\textit{Important: Failing to adhere to dependency \ding{'315} may leave the bus
83
in an undefined state.\important}
84
%-----------------------------------------------------------------------------
85
\section{Read transactions}
86
Simular to the write transaction a read transaction is initiated  by activating the $\overline{\textbf{start
87
trans}}$ signal and sending the \emph{Transmission Control Word (TCW)} (see
88
Chapter~\ref{sec:bus prot} and Figure~\ref{fig:TCW}) over the \textbf{data
89
cntrl} lines. As during the read transaction the data has to flow from the {\sc
90
GECKO4com} to the user FPGA the controlling of the bi-directional signals, shown
91
in  Table~\ref{tab:gecko4 bus signals}, need special attention.
92
Figure~\ref{fig:read correct} depicts a none-aborted read transaction for a
93
burst of three.
94
\begin{figure}[t]
95
\centering%
96
\includegraphics[width=\columnwidth]{figs/read_transaction_no_bus_error}
97
\caption{A correct read transaction that causes no bus error. Here a 3-short
98
burst transaction is shown. The blue lines represent tri-stated FPGA pins.}
99
\label{fig:read correct}
100
\end{figure}
101
One cycle after the initialization of a read transaction (\ding{206}) the user
102
FPGA has to tristate all bi-directional signals. The user FPGA has to keep the
103
bi-directional signals in tristate up to one cycle after receiving an activated
104
$\overline{\textbf{end trans}}$ signal (\ding{208}).\\
105
\textit{Important: Failing to adhere to dependency \ding{206} and dependency \ding{208} may
106
destroy the IOB buffers of either or both the user FPGA and the {\sc GECKO4com}
107
FPGA!\important}\\
108
Two cycles after the reception of a read transaction (\ding{206}) the {\sc GECKO4com} will
109
start driving the bi-directional signals. The {\sc GECKO4com} will send the
110
requested number of shorts in one continues burst (\ding{207}) over the \textbf{data cntrl}
111
lines and activates the $\overline{\textbf{valid low}}$ and
112
$\overline{\textbf{valid low}}$ as described in Chapter~\ref{sec:bus prot}. During the transmission of the last datum of the read transaction
113
the {\sc GECKO4com} ends the transmission by activation of the
114
$\overline{\textbf{end trans}}$ signal. The \textbf{bus clock} cycle after the
115
activation of the $\overline{\textbf{end trans}}$ signal the {\sc GECKO4com}
116
puts all the bi-directional signals in three-state.\newpage
117
\textit{Important: The user FPGA has to make sure it has enough buffer capacity
118
to store the requested amount of data, as there is no way to interrupt the data
119
flow coming from the {\sc GECKO4com}.\important}
120
%-----------------------------------------------------------------------------
121
\section{Read transactions abort}
122
Read transactions can be aborted under the conditions described in
123
Chapter~\ref{sec:mem map}. An aborted transaction is indicated by the {\sc
124
GECKO4com} by the activation of the $\overline{\textbf{error}}$ line together
125
with the activation of the $\overline{\textbf{end trans}}$ signal (\ding{209}).
126
Figure~\ref{fig:read error} shows an aborted read transaction.
127
\begin{figure}[t]
128
\centering%
129
\includegraphics[width=\columnwidth]{figs/read_transaction_bus_error}
130
\caption{An aborted read transaction. The blue lines represent tri-stated FPGA pins.}
131
\label{fig:read error}
132
\end{figure}

powered by: WebSVN 2.1.0

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