2014-01-27 10:08:19 -06:00
|
|
|
\documentclass{beamer}
|
2014-02-05 13:06:34 -06:00
|
|
|
\hypersetup{bookmarksdepth=5}
|
2014-01-27 10:08:19 -06:00
|
|
|
|
2014-01-27 23:51:50 -06:00
|
|
|
\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 accourding the set language
|
|
|
|
\usepackage[english]{babel}
|
|
|
|
\usepackage{amsmath}
|
|
|
|
\usepackage{multirow}
|
|
|
|
\usepackage{booktabs}
|
|
|
|
\usepackage{listings}
|
2014-01-29 05:15:38 -06:00
|
|
|
\usepackage{setspace}
|
2014-01-27 23:51:50 -06:00
|
|
|
\usepackage{skull}
|
2014-01-31 05:48:31 -06:00
|
|
|
\usepackage{units}
|
2014-01-27 23:51:50 -06:00
|
|
|
|
|
|
|
\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]",
|
|
|
|
}
|
|
|
|
|
2014-02-05 13:06:34 -06:00
|
|
|
\lstdefinelanguage{ys}{
|
|
|
|
morecomment=[l]{\#},
|
|
|
|
}
|
|
|
|
|
|
|
|
\lstset{
|
|
|
|
commentstyle=\color{YosysGreen},
|
|
|
|
}
|
|
|
|
|
2014-01-28 13:28:22 -06:00
|
|
|
\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}%
|
|
|
|
}}
|
|
|
|
|
2014-02-05 08:06:13 -06:00
|
|
|
\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,bg=gray]{graybox}
|
|
|
|
\usebeamerfont{subsection title}\insertsection\par
|
|
|
|
\end{beamercolorbox}
|
|
|
|
\end{centering}}
|
|
|
|
|
2014-01-27 10:08:19 -06:00
|
|
|
\title{Yosys Open SYnthesis Suite}
|
|
|
|
\author{Clifford Wolf}
|
2014-06-26 15:05:39 -05:00
|
|
|
\institute{http://www.clifford.at/yosys/}
|
2014-01-27 10:08:19 -06:00
|
|
|
|
2014-01-27 13:42:35 -06:00
|
|
|
\usetheme{Madrid}
|
|
|
|
\usecolortheme{seagull}
|
2014-01-27 10:08:19 -06:00
|
|
|
\beamertemplatenavigationsymbolsempty
|
|
|
|
|
2014-01-27 13:42:35 -06:00
|
|
|
\definecolor{YosysGreen}{RGB}{85,136,102}
|
2014-01-28 13:28:22 -06:00
|
|
|
\definecolor{MyBlue}{RGB}{85,130,180}
|
|
|
|
|
2014-01-27 13:42:35 -06:00
|
|
|
\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}
|
|
|
|
|
2014-01-27 10:08:19 -06:00
|
|
|
\begin{document}
|
|
|
|
|
|
|
|
\begin{frame}
|
|
|
|
\titlepage
|
|
|
|
\end{frame}
|
|
|
|
|
2014-06-29 02:27:03 -05:00
|
|
|
\setcounter{section}{-3}
|
2014-02-02 06:30:49 -06:00
|
|
|
|
|
|
|
\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
|
2014-02-03 17:57:11 -06:00
|
|
|
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.
|
2014-01-27 23:51:50 -06:00
|
|
|
|
2014-02-02 06:30:49 -06:00
|
|
|
\bigskip
|
2014-02-03 17:57:11 -06:00
|
|
|
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 equivialence checking) and
|
|
|
|
writing extensions to Yosys using the C++ API.
|
2014-02-02 06:30:49 -06:00
|
|
|
\end{frame}
|
|
|
|
|
2014-06-29 02:14:49 -05:00
|
|
|
\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)
|
2014-07-01 23:16:31 -05:00
|
|
|
\item EmbedVM (a very simple compiler+vm for 8 bit micros)
|
2014-06-29 02:14:49 -05:00
|
|
|
\item Lib(X)SVF (a library to play SVF/XSVF files over JTAG, used at LHC)
|
2014-07-01 23:16:31 -05:00
|
|
|
\item ROCK Linux (discontinued since 2010)
|
2014-06-29 02:14:49 -05:00
|
|
|
\end{itemize}
|
|
|
|
\end{frame}
|
|
|
|
|
2014-02-02 06:30:49 -06:00
|
|
|
\section{Outline}
|
2014-01-27 23:51:50 -06:00
|
|
|
\begin{frame}{Outline}
|
2014-01-27 13:42:35 -06:00
|
|
|
Yosys is an Open Source Verilog synthesis tool, and more.
|
|
|
|
|
|
|
|
\bigskip
|
|
|
|
Outline of this presentation:
|
|
|
|
\begin{itemize}
|
|
|
|
\item Introduction to the field and Yosys
|
2014-01-30 08:25:09 -06:00
|
|
|
\item Yosys by example: synthesis
|
|
|
|
\item Yosys by example: advanced synthesis
|
|
|
|
\item Yosys by example: beyond synthesis
|
2014-06-26 15:05:39 -05:00
|
|
|
\item Writing Yosys extensions in C++
|
2014-01-27 13:42:35 -06:00
|
|
|
\end{itemize}
|
|
|
|
\end{frame}
|
|
|
|
|
2014-01-27 10:08:19 -06:00
|
|
|
\include{PRESENTATION_Intro}
|
2014-01-31 05:48:31 -06:00
|
|
|
\include{PRESENTATION_ExSyn}
|
2014-02-03 09:26:27 -06:00
|
|
|
\include{PRESENTATION_ExAdv}
|
|
|
|
\include{PRESENTATION_ExOth}
|
|
|
|
\include{PRESENTATION_Prog}
|
2014-01-27 10:08:19 -06:00
|
|
|
|
|
|
|
\end{document}
|