Skip to content

Commit cb0d2ef

Browse files
committed
doc/2021_05: add slides (split to main, sim, cosim, control and other)
1 parent d8321fa commit cb0d2ef

26 files changed

+1450
-1
lines changed

.github/workflows/Doc.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ jobs:
7070
matrix:
7171
slides:
7272
- 2020_03
73+
- 2021_05
7374
steps:
7475

7576
- uses: actions/checkout@v2
@@ -80,4 +81,5 @@ jobs:
8081
- name: 'Upload artifact: ${{ matrix.slides }}.pdf'
8182
uses: actions/upload-artifact@v2
8283
with:
83-
path: doc/pdf/${{ matrix.slides }}.pdf
84+
name: ${{ matrix.slides }}
85+
path: doc/pdf/*.pdf

doc/2021_05/2021_05_control.tex

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
\documentclass{beamer}
2+
\usepackage[utf8]{inputenc}
3+
\usepackage{tikz}
4+
\usetikzlibrary{arrows.meta}
5+
\tikzset{>={Latex[width=2mm,length=2mm]},
6+
base/.style = {
7+
rectangle, rounded corners, draw=black,
8+
minimum height=1cm, text centered, font=\sffamily
9+
},
10+
process/.style = {
11+
base, minimum width=2.5cm, fill=orange!15,
12+
font=\ttfamily
13+
},
14+
}
15+
16+
\graphicspath{{./img/},{../2020_03/img/}}
17+
\DeclareGraphicsExtensions{.png,.jpg,.pdf}
18+
19+
\usepackage{hyperref}
20+
\hypersetup{colorlinks,urlcolor=blue!50!black,linkcolor=red}
21+
22+
\usepackage{fontawesome}
23+
\usepackage{listings}
24+
25+
\title{\small Máster en Sistemas Electrónicos Avanzados (MSEA)\\\Large Co-simulación y verificación funcional con\\VHDL, C/C++ y Python/m\\{\small $\{$control$\}$}}
26+
\author{Unai Martinez Corral\\\href{mailto:[email protected]}{\faEnvelope[email protected]} ~\href{https://github.com/umarcor}{\faGithub~umarcor} ~\href{https://gitlab.com/umarcor}{\faGitlab~umarcor}}
27+
\institute{Escuela de Ingeniería de Bilbao\\Universidad del País Vasco/Euskal Herriko Unibertsitatea (UPV/EHU)}
28+
\date{2021/05}
29+
30+
\begin{document}
31+
32+
\frame{\titlepage}
33+
34+
\begin{frame}
35+
\frametitle{Exercises: VHPIDIRECT}
36+
\centering
37+
\vfill
38+
\includegraphics[width=\linewidth]{control.pdf}
39+
\vfill
40+
\end{frame}
41+
42+
\end{document}
43+

doc/2021_05/2021_05_cosim.tex

+321
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,321 @@
1+
\documentclass[xcolor={usenames,dvipsnames}]{beamer}
2+
\usepackage[utf8]{inputenc}
3+
\usepackage{tikz}
4+
\usetikzlibrary{arrows.meta}
5+
\tikzset{>={Latex[width=2mm,length=2mm]},
6+
base/.style = {
7+
rectangle, rounded corners, draw=black,
8+
minimum height=1cm, text centered, font=\sffamily
9+
},
10+
process/.style = {
11+
base, minimum width=2.5cm, fill=orange!15,
12+
font=\ttfamily
13+
},
14+
}
15+
16+
\usepackage[normalem]{ulem}
17+
18+
\graphicspath{{./img/},{../2020_03/img/}}
19+
\DeclareGraphicsExtensions{.png,.jpg,.pdf}
20+
21+
\usepackage{hyperref}
22+
\hypersetup{colorlinks,urlcolor=blue!50!black,linkcolor=red}
23+
24+
\usepackage{fontawesome}
25+
\usepackage{listings}
26+
27+
\title{\small Máster en Sistemas Electrónicos Avanzados (MSEA)\\\Large Co-simulación y verificación funcional con\\VHDL, C/C++ y Python/m\\{\small $\{$cosim$\}$}}
28+
\author{Unai Martinez Corral\\\href{mailto:[email protected]}{\faEnvelope[email protected]} ~\href{https://github.com/umarcor}{\faGithub~umarcor} ~\href{https://gitlab.com/umarcor}{\faGitlab~umarcor}}
29+
\institute{Escuela de Ingeniería de Bilbao\\Universidad del País Vasco/Euskal Herriko Unibertsitatea (UPV/EHU)}
30+
\date{2021/05}
31+
32+
\begin{document}
33+
34+
\frame{\titlepage}
35+
36+
\begin{frame}
37+
\frametitle{VHDL co-simulation with GHDL}
38+
\begin{center}
39+
\begin{minipage}{.4\linewidth}
40+
\href{https://ghdl.github.io/ghdl-cosim}{\includegraphics[width=.9\linewidth]{ghdlcosim_logo}}
41+
\end{minipage}
42+
\begin{minipage}{.45\linewidth}
43+
\href{https://ghdl.github.io/ghdl-cosim}{\faBook~ghdl.github.io/ghdl-cosim}
44+
\end{minipage}
45+
\end{center}
46+
47+
\vfill
48+
49+
\footnotesize
50+
51+
\begin{itemize}
52+
\item Indirect co-simulation:
53+
\begin{itemize}
54+
\item {\color{OliveGreen} Partial} Verilog Procedural Interface (\textbf{VPI}),
55+
{\color{gray} also known as Program Language Interface (\textbf{PLI}) 2.0}.
56+
57+
\item \sout{VHDL Procedural Interface (\textbf{VHPI})}.
58+
59+
{\color{OliveGreen}
60+
There is AVHPI \href{https://ghdl.github.io/ghdl-cosim/vhpidirect/grt.html}{\faBook}, and work in progress by
61+
Marlon James for adding VHPI support.
62+
}
63+
\end{itemize}
64+
65+
\vfill
66+
67+
\item Direct co-simulation:
68+
\begin{itemize}
69+
\item Specific implementations of (a draft of) VHPIDIRECT, \sout{such as Foreign Language Interface (\textbf{FLI}) or
70+
Xilinx Simulation Interface (\textbf{XSI})}.
71+
\item \sout{Direct Programming Interface (\textbf{DPI})}.
72+
73+
{\color{OliveGreen} The VASG expects to standardize a direct interface (VHDPI or VHFFI) in the next revision of the standard (202X).}
74+
\end{itemize}
75+
76+
\end{itemize}
77+
\vfill
78+
\end{frame}
79+
80+
\begin{frame}
81+
\frametitle{Direct VHDL co-simulation with GHDL}
82+
83+
\begin{itemize}
84+
\item Type declarations \href{https://ghdl.github.io/ghdl-cosim/vhpidirect/declarations.html}{\faBook}
85+
\item Linking object files \href{https://ghdl.github.io/ghdl-cosim/vhpidirect/linking.html}{\faBook}
86+
\item Notebook: Common mistakes \href{https://ghdl.github.io/ghdl-cosim/vhpidirect/notebook/mistakes.html}{\faBook}
87+
\end{itemize}
88+
89+
\vfill
90+
91+
Exercises:
92+
\begin{itemize}
93+
\item 'rand' from stdlib
94+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/quickstart.html\#rand-from-stdlib}{\faBook}
95+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/quickstart/random}{\faCode}
96+
97+
\item 'sin' from libmath
98+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/quickstart.html\#sin-from-libmath}{\faBook}
99+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/quickstart/math}{\faCode}
100+
101+
\item custom C
102+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/quickstart.html\#custom-c}{\faBook}
103+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/quickstart/customc}{\faCode}
104+
\end{itemize}
105+
106+
\end{frame}
107+
108+
\begin{frame}
109+
\frametitle{Direct co-simulation with GHDL: wrapping}
110+
111+
\begin{itemize}
112+
\item Wrapping a simulation \href{https://ghdl.github.io/ghdl-cosim/vhpidirect/wrapping.html}{\faBook}
113+
\item How to use GHDL from an external C program? \href{https://ghdl.github.io/ghdl-cosim/vhpidirect/notebook/howtouseghdlfromc.html}{\faBook}
114+
\end{itemize}
115+
116+
\vfill
117+
118+
Exercises:
119+
\begin{itemize}
120+
\item basic
121+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/quickstart.html\#basic}{\faBook}
122+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/quickstart/wrapping/basic}{\faCode}
123+
124+
\item time
125+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/quickstart.html\#time}{\faBook}
126+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/quickstart/wrapping/time}{\faCode}
127+
128+
\item exitcb
129+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/quickstart.html\#exitcb}{\faBook}
130+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/quickstart/wrapping/exitcb}{\faCode}
131+
132+
\item Command-Line Arguments
133+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/quickstart.html\#command-line-arguments}{\faBook}
134+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/quickstart/cli}{\faCode}
135+
136+
\item Setting parameters in C through VHDL generics
137+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/quickstart.html\#setting-parameters-in-c-through-vhdl-generics}{\faBook}
138+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/quickstart/cli/fcngen}{\faCode}
139+
\end{itemize}
140+
\end{frame}
141+
142+
\begin{frame}
143+
\frametitle{Direct co-simulation with GHDL: arrays and matrices}
144+
145+
\begin{itemize}
146+
\item Constrained/bounded integer arrays \href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/arrays.html\#constrained-bounded-integer-arrays}{\faBook}
147+
\item Constrained multidimensional arrays of doubles/reals \href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/arrays.html\#constrained-multidimensional-arrays-of-doubles-reals}{\faBook}
148+
\end{itemize}
149+
150+
\vfill
151+
152+
Exercises:
153+
\begin{itemize}
154+
\item Vector of \lstinline{std_logic}
155+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/arrays.html\#vector-of-std-logic}{\faBook}
156+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/arrays/logicvector}{\faCode}
157+
158+
\item Array and AXI4 Stream Verification Components
159+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/arrays.html\#array-and-axi4-stream-verification-components}{\faBook}
160+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/arrays/matrices/vunit_axis_vcs}{\faCode}
161+
162+
\end{itemize}
163+
\end{frame}
164+
165+
\begin{frame}
166+
\frametitle{Direct co-simulation with GHDL: shared/dynamic loading}
167+
168+
\begin{itemize}
169+
\item Dynamic loading \href{https://ghdl.github.io/ghdl-cosim/vhpidirect/dynamic.html}{\faBook}
170+
\end{itemize}
171+
172+
\vfill
173+
174+
Exercises:
175+
\begin{itemize}
176+
\item shlib
177+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/shared.html\#shlib}{\faBook}
178+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/shared/shlib}{\faCode}
179+
180+
\item dlopen
181+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/shared.html\#dlopen}{\faBook}
182+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/shared/dlopen}{\faCode}
183+
184+
\item shghdl
185+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/shared.html\#shghdl}{\faBook}
186+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/shared/shghdl}{\faCode}
187+
188+
\item py
189+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/shared.html\#py}{\faBook}
190+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/shared/py}{\faCode}
191+
192+
\item py/vunit
193+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/shared.html\#py-vunit}{\faBook}
194+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/shared/py/vunit}{\faCode}
195+
196+
\item pycb
197+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/shared.html\#pycb}{\faBook}
198+
\href{https://github.com/ghdl/ghdl-cosim/blob/master/vhpidirect/shared/pycb}{\faCode}
199+
200+
\end{itemize}
201+
\end{frame}
202+
203+
\begin{frame}
204+
\frametitle{Standard Direct VHDL interface proposal (VHDPI/VHFFI) }
205+
206+
The VHDL Analysis and Standardization Group (VASG) is working towards defining a direct co-simulation interface in the
207+
next revision of the standard.
208+
The interface is inspired on GHDL's direct interface, FLI, XSI and System Verilog's DPI.
209+
In fact, one of the original motivations is allowing standardized VHDL and System Verilog co-simulation.
210+
211+
\vfill
212+
213+
\begin{itemize}
214+
\item IEEE-P1076/VHDL-Issues\#10 \href{https://gitlab.com/IEEE-P1076/VHDL-Issues/-/issues/10}{\faGitlab}
215+
\item P1076/DpiProposal \href{http://www.eda-twiki.org/cgi-bin/view.cgi/P1076/DpiProposal}{\faGlobe}
216+
\item umarcor.github.io/ghdl-cosim/VHDL202x \href{https://umarcor.github.io/ghdl-cosim/vhdl202x/}{\faGlobe}
217+
\item VHDL/Compliance-Tests: cosim \href{https://github.com/VHDL/Compliance-Tests/tree/master/cosim}{\faCode}
218+
\end{itemize}
219+
\end{frame}
220+
221+
\begin{frame}
222+
\frametitle{Virtual development board for HDL design}
223+
\centering
224+
\vfill
225+
\includegraphics[width=\linewidth]{vboard}
226+
\vfill
227+
\Large \href{https://github.com/dbhi/vboard}{\faGithub~dbhi/vboard}
228+
229+
\href{https://github.com/dbhi/vboard/tree/main/vga}{\faCode~dbhi/vboard: vga}
230+
\vfill
231+
\end{frame}
232+
233+
\begin{frame}
234+
\frametitle{Dynamic Binary Hardware Injection (DBHI)}
235+
\centering
236+
\includegraphics[width=\linewidth]{diagram.pdf}
237+
238+
\vfill
239+
\Large\href{https://dbhi.github.io/}{\faGlobe~dbhi.github.io}
240+
\end{frame}
241+
242+
\begin{frame}
243+
\frametitle{VUnit's external API}
244+
\begin{itemize}
245+
\item VUnit External VHDL API \href{http://vunit.github.io/data_types/user_guide.html\#external-vhdl-api}{\faBook}
246+
\item VUnit/cosim \href{https://vunit.github.io/cosim}{\faBook}
247+
\end{itemize}
248+
\vfill
249+
\begin{minipage}{.3\linewidth}
250+
Exercises:
251+
\begin{itemize}
252+
\item copy
253+
\href{https://vunit.github.io/cosim/examples/copy.html}{\faBook}
254+
\href{https://github.com/VUnit/cosim/tree/master/examples/copy}{\faCode}
255+
\item buffer
256+
\href{https://vunit.github.io/cosim/examples/buffer.html}{\faBook}
257+
\href{https://github.com/VUnit/cosim/tree/master/examples/buffer}{\faCode}
258+
\end{itemize}
259+
\end{minipage}
260+
\begin{minipage}{.65\linewidth}
261+
\includegraphics[width=\linewidth]{vunit_axiscosim.pdf}
262+
\end{minipage}
263+
\end{frame}
264+
265+
\begin{frame}
266+
\frametitle{Renode by Antmicro}
267+
\centering
268+
\includegraphics[width=\linewidth]{renode.png}
269+
270+
\vfill
271+
\Large
272+
renode.io
273+
\href{https://renode.io/}{\faGlobe}
274+
\href{https://docs.google.com/presentation/d/1j0gjI4pVkgF9CWvxaxr5XuCKakEB25YX2n-iFxlYKnE}{\faSlideshare}
275+
\end{frame}
276+
277+
\begin{frame}
278+
\frametitle{Indirect co-simulation with GHDL: VPI}
279+
\centering
280+
\Large
281+
282+
\href{https://github.com/umarcor/osvb/tree/main/fpconv}{\faCode~umarcor/osvb: fpconv}
283+
284+
\href{https://umarcor.github.io/osvb/notebook/fpconv.html}{\faGlobe~umarcor.github.io/osvb/notebook/fpconv}
285+
286+
\end{frame}
287+
288+
\begin{frame}
289+
\frametitle{Mixed-language co-simulation}
290+
291+
\begin{itemize}
292+
\item \emph{Verilated} models
293+
294+
\vfill
295+
\includegraphics[width=\linewidth]{mixedlanguage}
296+
\vfill
297+
298+
\item CXXRTL (Yosys)
299+
300+
\vfill
301+
\includegraphics[width=\linewidth]{mixedcxxrtl}
302+
\vfill
303+
\end{itemize}
304+
\end{frame}
305+
306+
\begin{frame}
307+
\frametitle{Mixed-signal co-simulation}
308+
\centering
309+
\includegraphics[width=.75\linewidth]{xyce}
310+
\vfill
311+
\Large
312+
\href{https://ghdl.github.io/ghdl-cosim/vhpidirect/examples/vffi_user.html\#xyce}{\faGlobe~ghdl-cosim: vhpidirect/examples/vffi\_user/Xyce}
313+
\end{frame}
314+
315+
\begin{frame}
316+
\frametitle{Use cases}
317+
\centering
318+
\includegraphics[width=\linewidth]{usecases}
319+
\end{frame}
320+
321+
\end{document}

0 commit comments

Comments
 (0)