Merge pull request #3310 from robinsonb5-PRs/master
[yosys.git] / manual / presentation.tex
1 \documentclass{beamer}
2 \hypersetup{bookmarksdepth=5}
3
4 \usepackage[T1]{fontenc} % required for luximono!
5 \usepackage{lmodern}
6 \usepackage[scaled=0.8]{luximono} % typewriter font with bold face
7
8 % To install the luximono font files:
9 % getnonfreefonts-sys --all or
10 % getnonfreefonts-sys luximono
11 %
12 % when there are trouble you might need to:
13 % - Create /etc/texmf/updmap.d/99local-luximono.cfg
14 % containing the single line: Map ul9.map
15 % - Run update-updmap followed by mktexlsr and updmap-sys
16 %
17 % This commands must be executed as root with a root environment
18 % (i.e. run "sudo su" and then execute the commands in the root
19 % shell, don't just prefix the commands with "sudo").
20
21 % formats the text according the set language
22 \usepackage[english]{babel}
23 \usepackage{amsmath}
24 \usepackage{multirow}
25 \usepackage{booktabs}
26 \usepackage{listings}
27 \usepackage{setspace}
28 \usepackage{skull}
29 \usepackage{units}
30
31 \usepackage{tikz}
32 \usetikzlibrary{calc}
33 \usetikzlibrary{arrows}
34 \usetikzlibrary{scopes}
35 \usetikzlibrary{through}
36 \usetikzlibrary{shapes.geometric}
37
38 \lstset{basicstyle=\ttfamily}
39
40 \def\B#1{{\tt\textbackslash{}#1}}
41 \def\C#1{\lstinline[language=C++]{#1}}
42 \def\V#1{\lstinline[language=Verilog]{#1}}
43
44 \lstdefinelanguage{liberty}{
45 morecomment=[s]{/*}{*/},
46 morekeywords={library,cell,area,pin,direction,function,clocked_on,next_state,clock,ff},
47 morestring=[b]",
48 }
49
50 \lstdefinelanguage{rtlil}{
51 morecomment=[l]{\#},
52 morekeywords={module,attribute,parameter,wire,memory,auto,width,offset,size,input,output,inout,cell,connect,switch,case,assign,sync,low,high,posedge,negedge,edge,always,update,process,end},
53 morestring=[b]",
54 }
55
56 \lstdefinelanguage{ys}{
57 morecomment=[l]{\#},
58 }
59
60 \lstset{
61 commentstyle=\color{YosysGreen},
62 }
63
64 \newenvironment{boxalertenv}{\begin{altenv}%
65 {\usebeamertemplate{alerted text begin}\usebeamercolor[fg]{alerted text}\usebeamerfont{alerted text}\setlength{\fboxsep}{1pt}\colorbox{bg}}
66 {\usebeamertemplate{alerted text end}}{\color{.}}{}}{\end{altenv}}
67
68 \newcommand<>{\boxalert}[1]{{%
69 \begin{boxalertenv}#2{#1}\end{boxalertenv}%
70 }}
71
72 \newcommand{\subsectionpagesuffix}{
73 \vfill\begin{centering}
74 {\usebeamerfont{subsection name}\usebeamercolor[fg]{subsection name}of \sectionname~\insertsectionnumber}
75 \vskip1em\par
76 \setbeamercolor{graybox}{bg=gray}
77 \begin{beamercolorbox}[sep=8pt,center]{graybox}
78 \usebeamerfont{subsection title}\insertsection\par
79 \end{beamercolorbox}
80 \end{centering}}
81
82 \title{Yosys Open SYnthesis Suite}
83 \author{Claire Xenia Wolf}
84 \institute{https://yosyshq.net/yosys/}
85
86 \usetheme{Madrid}
87 \usecolortheme{seagull}
88 \beamertemplatenavigationsymbolsempty
89
90 \definecolor{YosysGreen}{RGB}{85,136,102}
91 \definecolor{MyBlue}{RGB}{85,130,180}
92
93 \setbeamercolor{title}{fg=black,bg=YosysGreen!70}
94 \setbeamercolor{titlelike}{fg=black,bg=YosysGreen!70}
95 \setbeamercolor{frametitle}{fg=black,bg=YosysGreen!70}
96 \setbeamercolor{block title}{fg=black,bg=YosysGreen!70}
97 \setbeamercolor{item projected}{fg=black,bg=YosysGreen}
98
99 \begin{document}
100
101 \begin{frame}
102 \titlepage
103 \end{frame}
104
105 \setcounter{section}{-3}
106
107 \section{Abstract}
108 \begin{frame}{Abstract}
109 Yosys is the first full-featured open source software for Verilog HDL
110 synthesis. It supports most of Verilog-2005 and is well tested with
111 real-world designs from the ASIC and FPGA world.
112
113 \bigskip
114 Learn how to use Yosys to create your own custom synthesis flows and
115 discover why open source HDL synthesis is important for researchers,
116 hobbyists, educators and engineers alike.
117
118 \bigskip
119 This presentation covers basic concepts of Yosys, writing synthesis scripts
120 for a wide range of applications, creating Yosys scripts for various
121 non-synthesis applications (such as formal equivalence checking) and
122 writing extensions to Yosys using the C++ API.
123 \end{frame}
124
125 \section{About me}
126 \begin{frame}{About me}
127 Hi! I'm Claire Xenia Wolf.
128
129 \bigskip
130 I like writing open source software. For example:
131 \begin{itemize}
132 \item Yosys
133 \item OpenSCAD (now maintained by Marius Kintel)
134 \item SPL (a not very popular scripting language)
135 \item EmbedVM (a very simple compiler+vm for 8 bit micros)
136 \item Lib(X)SVF (a library to play SVF/XSVF files over JTAG)
137 \item ROCK Linux (discontinued since 2010)
138 \end{itemize}
139 \end{frame}
140
141 \section{Outline}
142 \begin{frame}{Outline}
143 Yosys is an Open Source Verilog synthesis tool, and more.
144
145 \bigskip
146 Outline of this presentation:
147 \begin{itemize}
148 \item Introduction to the field and Yosys
149 \item Yosys by example: synthesis
150 \item Yosys by example: advanced synthesis
151 \item Yosys by example: beyond synthesis
152 \item Writing Yosys extensions in C++
153 \end{itemize}
154 \end{frame}
155
156 \include{PRESENTATION_Intro}
157 \include{PRESENTATION_ExSyn}
158 \include{PRESENTATION_ExAdv}
159 \include{PRESENTATION_ExOth}
160 \include{PRESENTATION_Prog}
161
162 \end{document}