1 \documentclass[oneside,
a4paper]{book
}
3 \usepackage[T1]{fontenc} % required for luximono!
5 \usepackage[scaled=
0.8]{luximono
} % typewriter font with bold face
7 % To install the luximono font files:
8 % getnonfreefonts-sys --all or
9 % getnonfreefonts-sys luximono
11 % when there are trouble you might need to:
12 % - Create /etc/texmf/updmap.d/99local-luximono.cfg
13 % containing the single line: Map ul9.map
14 % - Run update-updmap followed by mktexlsr and updmap-sys
16 % This commands must be executed as root with a root environment
17 % (i.e. run "sudo su" and then execute the commands in the root
18 % shell, don't just prefix the commands with "sudo").
20 % formats the text according the set language
21 \usepackage[english
]{babel
}
22 \usepackage[table,usenames
]{xcolor
}
23 % generates indices with the "\index" command
25 % enables import of graphics. We use pdflatex here so do the pdf optimisation.
26 %\usepackage[dvips]{graphicx}
27 \usepackage[pdftex
]{graphicx}
29 % includes floating objects like tables and figures.
31 % for generating subfigures with ohne indented captions
32 \usepackage[hang
]{subfigure
}
33 % redefines and smartens captions of figures and tables (indentation, smaller and boldface)
34 \usepackage[hang,small,bf,center
]{caption
}
35 % enables tabstops and the numeration of lines
37 % enables user defined header and footer lines (former "fancyheadings")
39 % Some smart mathematical stuff
41 % Package for rotating several objects
46 \usepackage[algochapter, boxruled, vlined
]{algorithm2e
}
47 %Activating and setting of character protruding - if you like
48 %\usepackage[activate,DVIoutput]{pdfcprot}
49 % If you really need special chars...
50 \usepackage[latin1]{inputenc}
52 \usepackage[colorlinks,hyperindex,plainpages=false,
%
53 pdftitle=
{Yosys Manual
},
%
54 pdfauthor=
{Claire Xenia Wolf
},
%
55 %pdfkeywords={keyword},%
60 % For the two different reference lists ...
69 % \usepackage{draftwatermark}
73 \usetikzlibrary{arrows
}
74 \usetikzlibrary{scopes
}
75 \usetikzlibrary{through
}
76 \usetikzlibrary{shapes.geometric
}
79 \usepackage[nounderscore
]{syntax
}
81 \lstset{basicstyle=
\ttfamily}
83 \def\B#1{{\tt\textbackslash{}#1}}
84 \def\C#1{\lstinline[language=C++
]{#1}}
85 \def\V#1{\lstinline[language=Verilog
]{#1}}
87 \newsavebox{\fixmebox}
88 \newenvironment{fixme
}%
89 {\newcommand\colboxcolor{FFBBBB
}%
90 \begin{lrbox
}{\fixmebox}%
91 \begin{minipage
}{\dimexpr\columnwidth-
2\fboxsep\relax}}
92 {\end{minipage
}\end{lrbox
}\textbf{FIXME:
}\\%
93 \colorbox[HTML
]{\colboxcolor}{\usebox{\fixmebox}}}
95 \newcites{weblink
}{Internet References
}
97 \setcounter{secnumdepth
}{3}
100 \setlength{\oddsidemargin}{4mm
}
101 \setlength{\evensidemargin}{-
6mm
}
102 \setlength{\textwidth}{162mm
}
103 \setlength{\textheight}{230mm
}
104 \setlength{\topmargin}{-
5mm
}
106 \setlength{\parskip}{1.5ex plus
1ex minus
0.5ex
}
107 \setlength{\parindent}{0pt
}
109 \lstdefinelanguage{liberty
}{
110 morecomment=
[s
]{/*
}{*/
},
111 morekeywords=
{library,cell,area,pin,direction,function,clocked_on,next_state,clock,ff
},
115 \lstdefinelanguage{rtlil
}{
117 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
},
125 \fancypagestyle{mypagestyle
}{%
127 \fancyhead[C
]{\leftmark}%
128 \fancyfoot[C
]{\thepage}%
129 \renewcommand{\headrulewidth}{0pt
}%
130 \renewcommand{\footrulewidth}{0pt
}}
131 \pagestyle{mypagestyle
}
133 \thispagestyle{empty
}
137 \bf\Huge Yosys Manual
140 \large Claire Xenia Wolf
147 Most of today's digital design is done in HDL code (mostly Verilog or VHDL) and
148 with the help of HDL synthesis tools.
150 In special cases such as synthesis for coarse-grain cell libraries or when
151 testing new synthesis algorithms it might be necessary to write a custom HDL
152 synthesis tool or add new features to an existing one. In these cases the
153 availability of a Free and Open Source (FOSS) synthesis tool that can be used
154 as basis for custom tools would be helpful.
156 In the absence of such a tool, the Yosys Open SYnthesis Suite (Yosys) was
157 developed. This
document covers the design and implementation of this tool.
158 At the moment the main focus of Yosys lies on the high-level aspects of
159 digital synthesis. The pre-existing FOSS logic-synthesis tool ABC is used
160 by Yosys to perform advanced gate-level optimizations.
162 An evaluation of Yosys based on real-world designs is included. It is shown
163 that Yosys can be used as-is to synthesize such designs. The results produced
164 by Yosys in this tests where successfully verified using formal verification
165 and are comparable in quality to the results produced by a commercial
170 This
document was originally published as bachelor thesis at the Vienna
171 University of Technology
\cite{BACC
}.
173 \chapter*
{Abbreviations
}
175 AIG & And-Inverter-Graph \\
176 ASIC & Application-Specific Integrated Circuit \\
177 AST & Abstract Syntax Tree \\
178 BDD & Binary Decision Diagram \\
179 BLIF & Berkeley Logic Interchange Format \\
180 EDA & Electronic Design Automation \\
181 EDIF & Electronic Design Interchange Format \\
182 ER Diagram & Entity-Relationship Diagram \\
183 FOSS & Free and Open-Source Software \\
184 FPGA & Field-Programmable Gate Array \\
185 FSM & Finite-state machine \\
186 HDL & Hardware Description Language \\
187 LPM & Library of Parameterized Modules \\
188 RTLIL & RTL Intermediate Language \\
189 RTL & Register Transfer Level \\
190 SAT & Satisfiability Problem \\
191 % SSA & Static Single Assignment Form \\
192 VHDL & VHSIC Hardware Description Language \\
193 VHSIC & Very-High-Speed Integrated Circuit \\
194 YOSYS & Yosys Open SYnthesis Suite \\
199 \include{CHAPTER_Intro
}
200 \include{CHAPTER_Basics
}
201 \include{CHAPTER_Approach
}
202 \include{CHAPTER_Overview
}
203 \include{CHAPTER_CellLib
}
204 \include{CHAPTER_Prog
}
206 \include{CHAPTER_Verilog
}
207 \include{CHAPTER_Optimize
}
208 \include{CHAPTER_Techmap
}
209 % \include{CHAPTER_Eval}
213 \include{CHAPTER_Auxlibs
}
214 \include{CHAPTER_Auxprogs
}
216 \chapter{Command Reference Manual
}
218 \input{command-reference-manual
}
220 \include{CHAPTER_TextRtlil
}
221 \include{CHAPTER_Appnotes
}
222 % \include{CHAPTER_StateOfTheArt}
224 \bibliography{literature
}
225 \bibliographystyle{alphadin
}
227 \bibliographyweblink{weblinks
}
228 \bibliographystyleweblink{abbrv
}