1 |
8 |
dgisselq |
\documentclass{gqtekspec}
|
2 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
3 |
|
|
%%
|
4 |
|
|
%% Filename: spec.tex
|
5 |
|
|
%%
|
6 |
16 |
dgisselq |
%% Project: Pipelined Wishbone to AXI coverter
|
7 |
8 |
dgisselq |
%%
|
8 |
16 |
dgisselq |
%% Purpose: This document is a LaTeX description describing how to build
|
9 |
|
|
%% a specification document for the cores within this Pipelined
|
10 |
|
|
%% WB2AXI repository.
|
11 |
8 |
dgisselq |
%%
|
12 |
16 |
dgisselq |
%% Creator: Dan Gisselquist, Ph.D.
|
13 |
|
|
%% Gisselquist Technology, LLC
|
14 |
8 |
dgisselq |
%%
|
15 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
16 |
|
|
%%
|
17 |
16 |
dgisselq |
%% Copyright (C) 2018, Gisselquist Technology, LLC
|
18 |
|
|
%%
|
19 |
|
|
%% This program is free software (firmware): you can redistribute it and/or
|
20 |
|
|
%% modify it under the terms of the GNU General Public License as published
|
21 |
|
|
%% by the Free Software Foundation, either version 3 of the License, or (at
|
22 |
|
|
%% your option) any later version.
|
23 |
|
|
%%
|
24 |
|
|
%% This program is distributed in the hope that it will be useful, but WITHOUT
|
25 |
|
|
%% ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or
|
26 |
|
|
%% FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
27 |
|
|
%% for more details.
|
28 |
|
|
%%
|
29 |
|
|
%% You should have received a copy of the GNU General Public License along
|
30 |
|
|
%% with this program. (It's in the $(ROOT)/doc directory, run make with no
|
31 |
|
|
%% target there if the PDF file isn't present.) If not, see
|
32 |
|
|
%% <http://www.gnu.org/licenses/> for a copy.
|
33 |
|
|
%%
|
34 |
|
|
%% License: GPL, v3, as defined and found on www.gnu.org,
|
35 |
|
|
%% http://www.gnu.org/licenses/gpl.html
|
36 |
|
|
%%
|
37 |
|
|
%%
|
38 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
39 |
|
|
%%
|
40 |
|
|
%%
|
41 |
8 |
dgisselq |
\usepackage{import}
|
42 |
|
|
\usepackage{bytefield}
|
43 |
|
|
\project{Wishbone to AXI}
|
44 |
|
|
\title{Specification}
|
45 |
|
|
\author{Dan Gisselquist, Ph.D.}
|
46 |
16 |
dgisselq |
\email{zipcpu (at) gmail.com}
|
47 |
|
|
\revision{Rev.~0.1}
|
48 |
8 |
dgisselq |
\begin{document}
|
49 |
|
|
\pagestyle{gqtekspecplain}
|
50 |
|
|
\titlepage
|
51 |
|
|
\begin{license}
|
52 |
|
|
Copyright (C) \theyear\today, Gisselquist Technology, LLC
|
53 |
|
|
|
54 |
|
|
This project is free software (firmware): you can redistribute it and/or
|
55 |
16 |
dgisselq |
modify it under the terms of the GNU General Public License as published
|
56 |
8 |
dgisselq |
by the Free Software Foundation, either version 3 of the License, or (at
|
57 |
|
|
your option) any later version.
|
58 |
|
|
|
59 |
16 |
dgisselq |
Some files within this repository have been released under the GNU Lesser
|
60 |
|
|
General Public License. These components may be separated from this repository,
|
61 |
|
|
and redistributed or modified under the terms of the Lesser GNU
|
62 |
|
|
Public License, again as published by the Free Software Foundation,
|
63 |
|
|
either vversion 3 of the License or (at your option) any later
|
64 |
|
|
version. These files will identified as such in their headers.
|
65 |
|
|
|
66 |
8 |
dgisselq |
This program is distributed in the hope that it will be useful, but WITHOUT
|
67 |
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or
|
68 |
|
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
69 |
16 |
dgisselq |
for more details, or the GNU Lesser General Public License as appropriate.
|
70 |
8 |
dgisselq |
|
71 |
16 |
dgisselq |
You should have received a copy of both the GNU General Public License as
|
72 |
|
|
well as the GNU Lesser General Public License along with this repository.
|
73 |
|
|
(They are both in the \$(ROOT)/doc directory. Run make with no target there
|
74 |
|
|
if the PDF files are not present.) If not, see If not, see
|
75 |
|
|
\texttt{http://www.gnu.org/licenses/} for a copy.
|
76 |
8 |
dgisselq |
\end{license}
|
77 |
|
|
\begin{revisionhistory}
|
78 |
|
|
0.0 & 9/6/2016 & D. Gisselquist & First draft\\\hline
|
79 |
|
|
\end{revisionhistory}
|
80 |
|
|
% Revision History
|
81 |
|
|
% Table of Contents, named Contents
|
82 |
|
|
\tableofcontents
|
83 |
|
|
\listoffigures
|
84 |
|
|
\listoftables
|
85 |
|
|
\begin{preface}
|
86 |
16 |
dgisselq |
The wishbone to AXI controller is born of necessity. As long as Xilinx's
|
87 |
|
|
proprietary IP makes it difficult to access memory, providing only access
|
88 |
|
|
via the proprietary AXI bus, some conversion will be necessary for anyone
|
89 |
|
|
who wishes to use a wishbone interface.
|
90 |
8 |
dgisselq |
|
91 |
|
|
A special shout out and thanks go to Stephan Wallentowitz, for his first
|
92 |
16 |
dgisselq |
draft of such a converter, and to Olofk for encouraging me to write this
|
93 |
|
|
initial core.
|
94 |
|
|
|
95 |
|
|
The project has since grown into a general purpose set of both bus bridges
|
96 |
|
|
and formal bus properties, to include support for Wishbone, AXI-lite, and
|
97 |
|
|
Avalon busses. The full AXI implementation, together with the bridges
|
98 |
|
|
between full AXI and other busses, remains a work in progress.
|
99 |
8 |
dgisselq |
\end{preface}
|
100 |
|
|
|
101 |
|
|
\chapter{Introduction}\label{ch:intro}
|
102 |
|
|
\pagenumbering{arabic}
|
103 |
|
|
\setcounter{page}{1}
|
104 |
|
|
|
105 |
|
|
%
|
106 |
|
|
% Introduction
|
107 |
|
|
%
|
108 |
|
|
% This section contains the introduction to the core, describing both its
|
109 |
|
|
% use and its features.
|
110 |
|
|
%
|
111 |
|
|
|
112 |
|
|
|
113 |
|
|
% What is old
|
114 |
|
|
% What does the old lack?
|
115 |
|
|
% What is new
|
116 |
|
|
% What does the new have that the old lacks
|
117 |
|
|
% What performance gain can be expected?
|
118 |
|
|
|
119 |
|
|
\chapter{Architecture}\label{ch:arch}
|
120 |
|
|
|
121 |
|
|
% This section describes the architecture of the block. A block level diagram
|
122 |
|
|
% should be included describing the top level of the design.
|
123 |
|
|
|
124 |
|
|
\chapter{Operation}\label{ch:ops}
|
125 |
|
|
|
126 |
|
|
% This section describes the operation of the core. Specific sequences, such
|
127 |
|
|
% as startup sequences, as well as the modes and states of the block should be
|
128 |
|
|
% described.
|
129 |
|
|
%
|
130 |
|
|
|
131 |
|
|
\chapter{Clocks}\label{ch:clocks}
|
132 |
|
|
|
133 |
|
|
% This section specifies all of the clocks. All clocks, clock domain passes
|
134 |
|
|
% and the clock relations should be described.
|
135 |
|
|
|
136 |
|
|
% Name | Source | Rates (MHz) | Remarks | Description
|
137 |
|
|
% | Max|Min|Resolution|
|
138 |
|
|
|
139 |
|
|
\chapter{Wishbone Datasheet}\label{ch:wishbone}
|
140 |
|
|
\begin{table}[htbp]
|
141 |
|
|
\begin{center}
|
142 |
|
|
\begin{wishboneds}
|
143 |
|
|
Revision level of wishbone & WB B4 spec \\\hline
|
144 |
|
|
Type of interface & Slave, Read/Write, pipeline reads supported \\\hline
|
145 |
16 |
dgisselq |
Port size & Various and configurable \\\hline
|
146 |
8 |
dgisselq |
Port granularity & 8--bit \\\hline
|
147 |
16 |
dgisselq |
Maximum Operand Size & Various and configurable\\\hline
|
148 |
8 |
dgisselq |
Data transfer ordering & (Preserved) \\\hline
|
149 |
|
|
Clock constraints & None.\\\hline
|
150 |
|
|
Signal Names & \begin{tabular}{ll}
|
151 |
|
|
Signal Name & Wishbone Equivalent \\\hline
|
152 |
|
|
{\tt i\_wb\_clk} & {\tt CLK\_I} \\
|
153 |
|
|
{\tt i\_wb\_cyc} & {\tt CYC\_I} \\
|
154 |
|
|
{\tt i\_wb\_stb} & {\tt STB\_I} \\
|
155 |
|
|
{\tt i\_wb\_we} & {\tt WE\_I} \\
|
156 |
|
|
{\tt i\_wb\_addr} & {\tt ADR\_I} \\
|
157 |
|
|
{\tt i\_wb\_sel} & {\tt SEL\_I} \\
|
158 |
|
|
{\tt i\_wb\_data} & {\tt DAT\_I} \\
|
159 |
|
|
{\tt o\_wb\_ack} & {\tt ACK\_O} \\
|
160 |
|
|
{\tt o\_wb\_stall} & {\tt STALL\_O} \\
|
161 |
|
|
{\tt o\_wb\_data} & {\tt DAT\_O}
|
162 |
|
|
\end{tabular}\\\hline
|
163 |
|
|
\end{wishboneds}
|
164 |
|
|
\caption{Wishbone Datasheet}\label{tbl:wishbone}
|
165 |
|
|
\end{center}\end{table}
|
166 |
|
|
|
167 |
|
|
\chapter{I/O Ports}\label{ch:ioports}
|
168 |
|
|
|
169 |
|
|
% This section specifies all of the core IO ports
|
170 |
|
|
|
171 |
|
|
% Appendices
|
172 |
|
|
% A. May be added to outline different specifications. (??)
|
173 |
|
|
|
174 |
|
|
|
175 |
|
|
% Index
|
176 |
|
|
\end{document}
|
177 |
|
|
|
178 |
|
|
|