| \documentclass{beamer} |
| \hypersetup{bookmarksdepth=5} |
| |
| \usepackage[T1]{fontenc} % required for luximono! |
| \usepackage{lmodern} |
| \usepackage[scaled=0.8]{luximono} % typewriter font with bold face |
| |
| % To install the luximono font files: |
| % getnonfreefonts-sys --all or |
| % getnonfreefonts-sys luximono |
| % |
| % when there are trouble you might need to: |
| % - Create /etc/texmf/updmap.d/99local-luximono.cfg |
| % containing the single line: Map ul9.map |
| % - Run update-updmap followed by mktexlsr and updmap-sys |
| % |
| % This commands must be executed as root with a root environment |
| % (i.e. run "sudo su" and then execute the commands in the root |
| % shell, don't just prefix the commands with "sudo"). |
| |
| % formats the text according the set language |
| \usepackage[english]{babel} |
| \usepackage{amsmath} |
| \usepackage{multirow} |
| \usepackage{booktabs} |
| \usepackage{listings} |
| \usepackage{setspace} |
| \usepackage{skull} |
| \usepackage{units} |
| |
| \usepackage{tikz} |
| \usetikzlibrary{calc} |
| \usetikzlibrary{arrows} |
| \usetikzlibrary{scopes} |
| \usetikzlibrary{through} |
| \usetikzlibrary{shapes.geometric} |
| |
| \lstset{basicstyle=\ttfamily} |
| |
| \def\B#1{{\tt\textbackslash{}#1}} |
| \def\C#1{\lstinline[language=C++]{#1}} |
| \def\V#1{\lstinline[language=Verilog]{#1}} |
| |
| \lstdefinelanguage{liberty}{ |
| morecomment=[s]{/*}{*/}, |
| morekeywords={library,cell,area,pin,direction,function,clocked_on,next_state,clock,ff}, |
| morestring=[b]", |
| } |
| |
| \lstdefinelanguage{rtlil}{ |
| morecomment=[l]{\#}, |
| 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}, |
| morestring=[b]", |
| } |
| |
| \lstdefinelanguage{ys}{ |
| morecomment=[l]{\#}, |
| } |
| |
| \lstset{ |
| commentstyle=\color{YosysGreen}, |
| } |
| |
| \newenvironment{boxalertenv}{\begin{altenv}% |
| {\usebeamertemplate{alerted text begin}\usebeamercolor[fg]{alerted text}\usebeamerfont{alerted text}\setlength{\fboxsep}{1pt}\colorbox{bg}} |
| {\usebeamertemplate{alerted text end}}{\color{.}}{}}{\end{altenv}} |
| |
| \newcommand<>{\boxalert}[1]{{% |
| \begin{boxalertenv}#2{#1}\end{boxalertenv}% |
| }} |
| |
| \newcommand{\subsectionpagesuffix}{ |
| \vfill\begin{centering} |
| {\usebeamerfont{subsection name}\usebeamercolor[fg]{subsection name}of \sectionname~\insertsectionnumber} |
| \vskip1em\par |
| \setbeamercolor{graybox}{bg=gray} |
| \begin{beamercolorbox}[sep=8pt,center]{graybox} |
| \usebeamerfont{subsection title}\insertsection\par |
| \end{beamercolorbox} |
| \end{centering}} |
| |
| \title{Yosys Open SYnthesis Suite} |
| \author{Clifford Wolf} |
| \institute{http://www.clifford.at/yosys/} |
| |
| \usetheme{Madrid} |
| \usecolortheme{seagull} |
| \beamertemplatenavigationsymbolsempty |
| |
| \definecolor{YosysGreen}{RGB}{85,136,102} |
| \definecolor{MyBlue}{RGB}{85,130,180} |
| |
| \setbeamercolor{title}{fg=black,bg=YosysGreen!70} |
| \setbeamercolor{titlelike}{fg=black,bg=YosysGreen!70} |
| \setbeamercolor{frametitle}{fg=black,bg=YosysGreen!70} |
| \setbeamercolor{block title}{fg=black,bg=YosysGreen!70} |
| \setbeamercolor{item projected}{fg=black,bg=YosysGreen} |
| |
| \begin{document} |
| |
| \begin{frame} |
| \titlepage |
| \end{frame} |
| |
| \setcounter{section}{-3} |
| |
| \section{Abstract} |
| \begin{frame}{Abstract} |
| Yosys is the first full-featured open source software for Verilog HDL |
| synthesis. It supports most of Verilog-2005 and is well tested with |
| real-world designs from the ASIC and FPGA world. |
| |
| \bigskip |
| Learn how to use Yosys to create your own custom synthesis flows and |
| discover why open source HDL synthesis is important for researchers, |
| hobbyists, educators and engineers alike. |
| |
| \bigskip |
| This presentation covers basic concepts of Yosys, writing synthesis scripts |
| for a wide range of applications, creating Yosys scripts for various |
| non-synthesis applications (such as formal equivalence checking) and |
| writing extensions to Yosys using the C++ API. |
| \end{frame} |
| |
| \section{About me} |
| \begin{frame}{About me} |
| Hi! I'm Clifford Wolf. |
| |
| \bigskip |
| I like writing open source software. For example: |
| \begin{itemize} |
| \item Yosys |
| \item OpenSCAD (now maintained by Marius Kintel) |
| \item SPL (a not very popular scripting language) |
| \item EmbedVM (a very simple compiler+vm for 8 bit micros) |
| \item Lib(X)SVF (a library to play SVF/XSVF files over JTAG) |
| \item ROCK Linux (discontinued since 2010) |
| \end{itemize} |
| \end{frame} |
| |
| \section{Outline} |
| \begin{frame}{Outline} |
| Yosys is an Open Source Verilog synthesis tool, and more. |
| |
| \bigskip |
| Outline of this presentation: |
| \begin{itemize} |
| \item Introduction to the field and Yosys |
| \item Yosys by example: synthesis |
| \item Yosys by example: advanced synthesis |
| \item Yosys by example: beyond synthesis |
| \item Writing Yosys extensions in C++ |
| \end{itemize} |
| \end{frame} |
| |
| \include{PRESENTATION_Intro} |
| \include{PRESENTATION_ExSyn} |
| \include{PRESENTATION_ExAdv} |
| \include{PRESENTATION_ExOth} |
| \include{PRESENTATION_Prog} |
| |
| \end{document} |