forked from m-labs/milkymist
-
Notifications
You must be signed in to change notification settings - Fork 1
/
confslides_overview.tex
223 lines (191 loc) · 5.1 KB
/
confslides_overview.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
\documentclass{beamer}
\usepackage{beamerthemesplit}
\title{An open hardware interactive VJ station}
\subtitle{Technical overview}
\author{S\'ebastien Bourdeauducq}
\date{June 2010}
\begin{document}
\frame{
\begin{figure}[H]
\includegraphics[height=20mm]{newlogo.eps}
\end{figure}
\titlepage
}
\section{Introduction}
\subsection{What we are speaking about}
\frame
{
\frametitle{What we are speaking about}
A device for video performance artists (VJs)...
\begin{itemize}
\item inspired by the popular MilkDrop program for PCs
\item with many interfaces: MIDI, DMX, can also do video mixing
\item highly integrated
\end{itemize}
At the frontier between...
\begin{itemize}
\item big computers with software to render visual effects
\item and small, handy microcontroller boards you connect to anything\\(``Arduino'' is today's buzzword for those)
\end{itemize}
}
\frame
{
\frametitle{What is that MilkDrop thing?}
\begin{figure}[H]
\includegraphics[height=58mm]{milkdrop1.eps}
\end{figure}
}
\frame
{
\frametitle{What is that MilkDrop thing?}
\begin{figure}[H]
\includegraphics[height=58mm]{milkdrop2.eps}
\end{figure}
}
\frame
{
\frametitle{What is that MilkDrop thing?}
\begin{figure}[H]
\includegraphics[height=58mm]{milkdrop3.eps}
\end{figure}
}
\subsection{Open Hardware, for real}
\frame
{
\frametitle{Open Hardware, for real}
\begin{itemize}
\item Arduino = AVR + power supply + connectors.
\item The AVR chip does all the magic! And it's a black box in every sense.
\item Here, all the logic of the chip is described (in Verilog HDL)...
\item ...and open source!
\item Ask Atmel for the same!
\end{itemize}
}
\section{System architecture}
\subsection{The design flow}
\frame
{
\frametitle{The design flow}
``System-on-a-Programmable-Chip'' (SoPC):
\begin{itemize}
\item A microcontroller is implemented using the FPGA fabric
\item The software is written and compiled (GCC)
\item The compiled firmware is flashed/loaded on the board
\item The microprocessor made from the FPGA fabric executes it
\item Acceleration units and specialty peripherals are added to the system and driven by the software
\end{itemize}
}
\subsection{SoC interconnect}
\frame
{
\frametitle{SoC interconnect}
Three different buses are used:
\begin{itemize}
\item WISHBONE as general purpose bus (Opencores standard)
\item Simplified bus for CSRs (custom)
\item Fast Memory Link bus tailored for high speed DRAM access (custom)
\end{itemize}
}
\subsection{Building blocks}
\frame
{
\frametitle{Base system}
\begin{itemize}
\item 32-bit RISC CPU, WISHBONE bus, supported by GCC:
\begin{itemize}
\item Mico32 (from Lattice Semiconductors)
\item AEMB (from Shawn Tan, instruction set compatible with Xilinx's Microblaze)
\end{itemize}
\item Off-chip Flash
\item On-chip SRAM
\item UART (debug), GPIO, ...
\item Can run ucLinux or be programmed like a microcontroller, without OS.
\end{itemize}
}
\frame
{
\frametitle{Memory interface}
\begin{itemize}
\item Off-chip DDR SDRAM
\item Custom controller
\item Flexible and high quality
\begin{itemize}
\item reused by the NASA in the development of a software-defined radio prototype for the ISS
\end{itemize}
\item Custom high-performance bus interface (FML)
\item Bridged to WISHBONE
\begin{itemize}
\item the base system can transparently access DRAM
\end{itemize}
\end{itemize}
}
\frame
{
\frametitle{VGA output}
\begin{itemize}
\item The FPGA directly drives a video DAC for VGA
\item Framebuffer-based (in DDR SDRAM)
\item Supports multiple buffering
\item Automatic buffer switch during blanking intervals
\end{itemize}
}
\frame
{
\frametitle{Graphics acceleration}
\begin{itemize}
\item Texture mapping unit
\begin{itemize}
\item implements any kind of image ``distortion''
\end{itemize}
\item Programmable floating point unit
\begin{itemize}
\item similar to a vertex shader
\end{itemize}
\item Flexible, can be used to implement MilkDrop or others...
\end{itemize}
}
\frame
{
\frametitle{Video inputs}
\begin{itemize}
\item Still in development
\item Dual PAL/NTSC inputs
\item Off-chip ADC and decoder
\item For live video mixing applications
\end{itemize}
}
\frame
{
\frametitle{Control peripherals}
\begin{itemize}
\item Also in development
\item Support planned for:
\begin{itemize}
\item MIDI (electronic instruments)
\item DMX512 (stage lighting)
\item Ethernet -- OpenSoundControl
\end{itemize}
\item Artistic installations, performances, ...
\end{itemize}
}
\section{Contacts}
\frame
{
\frametitle{Thank you for your attention}
\begin{itemize}
\item Web: \url{http://www.milkymist.org}
\begin{itemize}
\item documented source code (GPLv3 licensing)
\item binary kits (to get started fast)
\item mailing list
\item wiki (with suggested contributions)
\item blog
\item these slides are online (GNU FDL licensing)
\end{itemize}
\item Mail: sebastien.bourdeauducq [AT] lekernel DOT net
\end{itemize}
\begin{center}
\framebox[100mm][c]{Questions?}
\end{center}
}
\end{document}