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

Subversion Repositories wbicapetwo

[/] [wbicapetwo/] [trunk/] [doc/] [src/] [spec.tex] - Blame information for rev 2

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

Line No. Rev Author Line
1 2 dgisselq
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
%%
3
%% Filename:    spec.tex
4
%%
5
%% Project:     Wishbone to ICAPE2 interface conversion
6
%%
7
%% Purpose:     This LaTeX file contains all of the documentation/description
8
%%              currently provided with this FPGA Real-time Clock Core.
9
%%              It's not nearly as interesting as the PDF file it creates,
10
%%              so I'd recommend reading that before diving into this file.
11
%%              You should be able to find the PDF file in the SVN distribution
12
%%              together with this PDF file and a copy of the GPL-3.0 license
13
%%              this file is distributed under.  If not, just type 'make'
14
%%              in the doc directory and it (should) build without a problem.
15
%%
16
%%
17
%% Creator:     Dan Gisselquist
18
%%              Gisselquist Technology, LLC
19
%%
20
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
21
%%
22
%% Copyright (C) 2015, Gisselquist Technology, LLC
23
%%
24
%% This program is free software (firmware): you can redistribute it and/or
25
%% modify it under the terms of  the GNU General Public License as published
26
%% by the Free Software Foundation, either version 3 of the License, or (at
27
%% your option) any later version.
28
%%
29
%% This program is distributed in the hope that it will be useful, but WITHOUT
30
%% ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or
31
%% FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
32
%% for more details.
33
%%
34
%% You should have received a copy of the GNU General Public License along
35
%% with this program.  (It's in the $(ROOT)/doc directory, run make with no
36
%% target there if the PDF file isn't present.)  If not, see
37
%% <http://www.gnu.org/licenses/> for a copy.
38
%%
39
%% License:     GPL, v3, as defined and found on www.gnu.org,
40
%%              http://www.gnu.org/licenses/gpl.html
41
%%
42
%%
43
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44
\documentclass{gqtekspec}
45
\project{Real-Time Clock}
46
\title{Specification}
47
\author{Dan Gisselquist, Ph.D.}
48
\email{dgisselq\at opencores.org}
49
\revision{Rev.~0.1}
50
\begin{document}
51
\pagestyle{gqtekspecplain}
52
\titlepage
53
\begin{license}
54
Copyright (C) \theyear\today, Gisselquist Technology, LLC
55
 
56
This project is free software (firmware): you can redistribute it and/or
57
modify it under the terms of  the GNU General Public License as published
58
by the Free Software Foundation, either version 3 of the License, or (at
59
your option) any later version.
60
 
61
This program is distributed in the hope that it will be useful, but WITHOUT
62
ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or
63
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
64
for more details.
65
 
66
You should have received a copy of the GNU General Public License along
67
with this program.  If not, see \hbox{<http://www.gnu.org/licenses/>} for a
68
copy.
69
\end{license}
70
\begin{revisionhistory}
71
0.1 & 5/25/2015 & Gisselquist & First Draft \\\hline
72
\end{revisionhistory}
73
% Revision History
74
% Table of Contents, named Contents
75
\tableofcontents
76
% \listoffigures
77
\listoftables
78
\begin{preface}
79
My thanks to those helpers on the Xilinx Forum who helped me get the final
80
step to getting this working.
81
\end{preface}
82
 
83
\chapter{Introduction}
84
\pagenumbering{arabic}
85
\setcounter{page}{1}
86
 
87
This core makes the ICAPE2 FPGA configuration registers available to be read
88
or written from a wishbone bus.  As the documentation of this capability could
89
use a bit to be desired, I have put this file together to help document
90
what works.
91
 
92
The interface itself is very valuable for a couple of purposes---from my humble
93
and personal perspective.  The first is the user configurable watchdog timer
94
which can be used to automatically reset an FPGA after it locks up.  The second
95
is the warm boot start capability, which makes it possible to create a fall
96
back configuration image and test it without compromising the ability of the
97
FPGA to be started in a known good image.  The third valuable capability is that
98
of commanding a reconfiguration.  All of these capabilities are available
99
through this interface.  Further details are available from Xilinx's "7-Series
100
FPGAs Configuration" User Guide.
101
 
102
This introduction is the first chapter.  Beyond this introduction, most
103
of the capabilities are documented elsewhere.  Hence, the register chapter
104
will be omitted and the reader will be gently pointed to the User's Guide.
105
This leaves the Wishbone chapter and the I/O Port's chapter which follow.
106
 
107
As always, write me if you have any questions or problems.
108
 
109
\chapter{Architecture}\label{chap:arch}
110
 
111
If I understand correctly, every one of Xilinx's 7--Series FPGA's contains
112
two ICAPE2 interface modules.  These modules allow user logic to communicate
113
with the configuration interface of the chip.  This interface, however, isn't
114
well documented.  According to the User's Guide, it matches the SelectMAP
115
interface, yet in practice \ldots it doesn't.
116
 
117
This core encapsulates the difficulty of matching that interface.  Register
118
addresses match those in the User's Guide, as do register definitions.
119
 
120
\chapter{Operation}\label{chap:ops}
121
 
122
Consider the warm boot reload operation.  To do this, write the address in
123
configuration memory of an FPGA image to the warm boot start address (WBSTAR).
124
In this case, that is address 5'h10 within this interface.  A second write to
125
the configuration command address (CMD), 5'h4 in this interface, will issue the
126
IPROG command to the FPGA and cause it to configure itself from the address
127
you just gave it.
128
 
129
There, wasn't that simple?
130
 
131
Now I can, from the comfort of my home, reconfigure an FPGA in my office without
132
needing to press the power button or connect to a JTAG cable.  Not bad, no?
133
 
134
\chapter{Wishbone Datasheet}\label{chap:wishbone}
135
Tbl.~\ref{tbl:wishbone}
136
\begin{table}[htbp]
137
\begin{center}
138
\begin{wishboneds}
139
Revision level of wishbone & WB B4 spec \\\hline
140
Type of interface & Slave, Read/Write \\\hline
141
Port size & 32--bit \\\hline
142
Port granularity & 32--bit \\\hline
143
Maximum Operand Size & 32--bit \\\hline
144
Data transfer ordering & (Irrelevant) \\\hline
145
Clock constraints & See the Datasheet for your part\\\hline
146
Signal Names & \begin{tabular}{ll}
147
                Signal Name & Wishbone Equivalent \\\hline
148
                {\tt i\_clk} & {\tt CLK\_I} \\
149
                {\tt i\_wb\_cyc} & {\tt CYC\_I} \\
150
                {\tt i\_wb\_stb} & {\tt STB\_I} \\
151
                {\tt i\_wb\_we} & {\tt WE\_I} \\
152
                {\tt i\_wb\_addr} & {\tt ADR\_I} \\
153
                {\tt i\_wb\_data} & {\tt DAT\_I} \\
154
                {\tt o\_wb\_ack} & {\tt ACK\_O} \\
155
                {\tt o\_wb\_stall} & {\tt STALL\_O} \\
156
                {\tt o\_wb\_data} & {\tt DAT\_O}
157
                \end{tabular}\\\hline
158
\end{wishboneds}
159
\caption{Wishbone Datasheet}\label{tbl:wishbone}
160
\end{center}\end{table}
161
is required by the wishbone specification, and so
162
it is included here.  The big thing to notice is that this ICAPE2 interface
163
acts as a wishbone slave, and that all accesses to the ICAPE2 registers become
164
32--bit reads and writes to this interface.  Bit ordering is the normal
165
ordering where bit~31 is the most significant bit and so forth.  (Bit reversal
166
is accomplished internally to match Xilinx's definition.)  The {\tt o\_stall}
167
and {\tt o\_ack} lines are necessarily used to deal with the fact that
168
operations to the device take many clocks to complete (14 for writes, 21 for
169
reads), so be prepared to wait a couple of clocks for your access to complete.
170
Further, the {\tt o\_ack} line will go high while the bus is stalled in many
171
cases, indicating that the operation is complete but that the core is not
172
yet ready to handle a subsequent request.
173
 
174
\chapter{I/O Ports}\label{chap:ioports}
175
This core offers no I/O ports beyond those of the wishbone discussed in
176
Chapt.~\ref{chap:wishbone}.  The I/O ports associated with the ICAPE2 interface
177
are captured internally, and not brought to the output of this core.
178
 
179
% Appendices
180
% Index
181
\end{document}
182
 
183
 

powered by: WebSVN 2.1.0

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