602 lines
49 KiB
HTML
602 lines
49 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="description" content="1. Introduction The goal of the DesignFlow Python tool is to provide a replacement for Makefiles, especially the complex system that has been developped for alliance-check-toolkit. It is build...">
|
|
<meta name="keywords" content="">
|
|
<link rel="icon" href="../favicon.ico">
|
|
|
|
<title> - Coriolis VLSI CAD Tools [offline]</title>
|
|
|
|
<!-- Stylesheets -->
|
|
<link href="../theme/css/bootstrap.css" rel="stylesheet">
|
|
<link href="../theme/css/fonts.css" rel="stylesheet">
|
|
<link href="../theme/css/nest.css" rel="stylesheet">
|
|
<link href="../theme/css/pygment.css" rel="stylesheet">
|
|
<link href="../theme/css/coriolis.css" rel="stylesheet">
|
|
<!-- /Stylesheets -->
|
|
|
|
<script src="../theme/js/jquery.min.js"></script>
|
|
<script src="../theme/js/bootstrap.min.js"></script>
|
|
|
|
<!-- RSS Feeds -->
|
|
<!-- /RSS Feeds -->
|
|
|
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
|
<!--[if lt IE 9]>
|
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
|
<![endif]-->
|
|
|
|
|
|
|
|
</head>
|
|
|
|
<body>
|
|
<!-- Header -->
|
|
<div class="header-container" style="background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url('../images/common/layout-motif-faded-4.png'); background-position: center; ">
|
|
|
|
|
|
<!--
|
|
<div class="container">
|
|
<nav class="navbar navbar-default">
|
|
<div class="container-fluid">
|
|
<div class="navbar-header">
|
|
<a class="navbar-brand" href="../"><img class="mr20" src="../images/common/Coriolis-logo-white-4-small.png" alt="logo">Coriolis VLSI CAD Tools [offline]</a>
|
|
</div>
|
|
<ul class="nav navbar-nav">
|
|
<li><a href="../pages/gitlab.html">Git</a></li>
|
|
<li><a href="../pages/documentation.html">Documentation</a></li>
|
|
<li class="dropdown">
|
|
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
|
<span class="caret"></span>Topics
|
|
</button>
|
|
<ul class="dropdown-menu">
|
|
<li><a class="dropdown-item active" href="../pages/.html"></a></li>
|
|
<li><a class="dropdown-item " href="../pages/homepage.html">Coriolis <span class="sc">vlsi</span> Backend Tools</a></li>
|
|
<li><a class="dropdown-item " href="../pages/symbolic-layout.html">Symbolic Layout</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
</div> <!-- navbar container -->
|
|
-->
|
|
|
|
<!-- Static navbar -->
|
|
<div class="container">
|
|
<div class="header-nav">
|
|
<div class="header-logo">
|
|
<a class="pull-left" href="../"><img class="mr20" src="../images/common/Coriolis-logo-white-4-small.png" alt="logo">Coriolis VLSI CAD Tools [offline]</a>
|
|
</div>
|
|
<div class="nav pull-right">
|
|
<a href="../pages/gitlab.html">Git</a>
|
|
<a href="../pages/documentation.html">Documentation</a>
|
|
</div>
|
|
<div class="nav pull-right">
|
|
<div class="dropdown">
|
|
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
|
<span class="caret"></span>Topics
|
|
</button>
|
|
<ul class="dropdown-menu">
|
|
<li><a class="dropdown-item active" href="../pages/.html"></a></li>
|
|
<li><a class="dropdown-item " href="../pages/homepage.html">Coriolis <span class="sc">vlsi</span> Backend Tools</a></li>
|
|
<li><a class="dropdown-item " href="../pages/symbolic-layout.html">Symbolic Layout</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /Static navbar -->
|
|
|
|
<!-- Header -->
|
|
<div class="container header-wrapper">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="header-content">
|
|
<a href="https://www.lip6.fr/"><img class="mr20" height="60px" src="../images/common/LogoLIP6Blanc.png" alt="LIP6"></a>
|
|
<a href="https://www.sorbonne-universite.fr/"><img class="mr20" height="60px" src="../images/common/logo-SU-blanc-700px.png" alt="Sorbonne Universite"></a>
|
|
<a href="https://www.cnrs.fr/"><img class="mr20" height="60px" src="../images/common/LOGO-cnrs-white-large.png" alt="CNRS"></a>
|
|
<h1 class="header-title text-uppercase"></h1>
|
|
<div class="header-underline"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /Header -->
|
|
|
|
</div>
|
|
<!-- /Header -->
|
|
|
|
|
|
<!-- Content -->
|
|
<div class="container content">
|
|
<!-- -*- Mode: rst -*- -->
|
|
<div class="section" id="introduction">
|
|
<h2>1. Introduction</h2>
|
|
<p>The goal of the DesignFlow Python tool is to provide a replacement for
|
|
Makefiles, especially the complex system that has been developped for
|
|
alliance-check-toolkit. It is build upon <a href="#id1"><span class="problematic" id="id2">|DoIt|</span></a> (<a href="#id111"><span class="problematic" id="id112">DoIt_</span></a>).</p>
|
|
<div class="section" id="task-vs-rules">
|
|
<h3>1.1 Task vs. Rules</h3>
|
|
<p>Both as a tribute to <a href="#id3"><span class="problematic" id="id4">|Makefile|</span></a>, to avoid ambiguties with <a href="#id5"><span class="problematic" id="id6">|DoIt|</span></a> and to remember
|
|
that they are task <em>generators</em>, the classes defined to create tasks for the design
|
|
flow are called <tt class="docutils literal">rules</tt>.</p>
|
|
</div>
|
|
<div class="section" id="a-warning-about-determinism">
|
|
<h3>1.2 A Warning About Determinism</h3>
|
|
<p>There is a very important execution difference from a <a href="#id7"><span class="problematic" id="id8">|Makefile|</span></a>. In a
|
|
<a href="#id9"><span class="problematic" id="id10">|Makefile|</span></a> each rule command is executed in a a separated process, so
|
|
information is effectively passed through files which are written then read
|
|
from disk. But in <a href="#id11"><span class="problematic" id="id12">|DoIt|</span></a> we are running inside <em>one</em> <a href="#id13"><span class="problematic" id="id14">|Python|</span></a> process, so while
|
|
using Coriolis and the <a href="#id15"><span class="problematic" id="id16">|Hurricane|</span></a> database, all informations stays <em>in
|
|
memory</em>. Files are driven, but <em>not re-read</em> as the database will use the datas
|
|
already present in memory.</p>
|
|
<p>This is not whitout consequences about determism. Let's look at two different
|
|
scenarii.</p>
|
|
<ol class="arabic">
|
|
<li><p class="first">We run straight from the RTL to the layout, using the rule/task sequence:</p>
|
|
<pre class="literal-block">
|
|
Yosys => design.blif => blif2vst => design.vst => PnR => design.gds
|
|
</pre>
|
|
<p>In this case, while <tt class="docutils literal">design.vst</tt> is written on disk, the <tt class="docutils literal">PnR</tt> stage
|
|
will not re-read the <tt class="docutils literal">vst</tt> file and directly access the data in memory.</p>
|
|
</li>
|
|
<li><p class="first">Run in two separated steps, first we create the <tt class="docutils literal">vst</tt> file:</p>
|
|
<pre class="literal-block">
|
|
Yosys => design.blif => blif2vst => design.vst
|
|
</pre>
|
|
<p>Then, we perform the <tt class="docutils literal">PnR</tt>:</p>
|
|
<pre class="literal-block">
|
|
design.vst => PnR => design.gds
|
|
</pre>
|
|
<p>In this case, as the <a href="#id17"><span class="problematic" id="id18">|DoIt|</span></a> processess has been restarted between the two
|
|
tasks, the <tt class="docutils literal">PnR</tt> stage <em>will</em> read the <tt class="docutils literal">vst</tt> file.</p>
|
|
</li>
|
|
</ol>
|
|
<p>The determism in <a href="#id19"><span class="problematic" id="id20">|Coriolis|</span></a> is ensured through the unique identifiers of the
|
|
objects, attributed in creation order. So between thoses two scenarii, the
|
|
identifiers will change and so the algorithm results. The differences should
|
|
be minor as the identifiers are used as a <em>last ditch</em> test to sort between
|
|
two objects which cost functions are exactly equal, nevertheless, it will
|
|
occur.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last"><a href="#id21"><span class="problematic" id="id22">|Coriolis|</span></a> is deterministic, meaning that each scenario will always
|
|
give the same result. The difference is truly <em>between</em> scenarii.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="using-the-design-flow">
|
|
<h2>2. Using The Design Flow</h2>
|
|
<div class="section" id="locating-the-various-parts">
|
|
<h3>2.1 Locating the Various Parts</h3>
|
|
<p>One of the most tricky part of setting up the design flow is to locate where
|
|
the various components are. The script needs to be able to find:</p>
|
|
<ol class="arabic">
|
|
<li><p class="first">Coriolis, binaries & libraries. This depends widely of your kind of
|
|
installation and system. The helper script <tt class="docutils literal">crlenv.py</tt> supplied
|
|
both in <a href="#id23"><span class="problematic" id="id24">|alliance-check-toolkit|</span></a> and <a href="#id25"><span class="problematic" id="id26">|Coriolis|</span></a> may help you there.
|
|
It looks in all the standard locations (that it is aware of) to try
|
|
to find it.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Usually, <a href="#id27"><span class="problematic" id="id28">|Alliance|</span></a> is installed in the same tree as
|
|
<a href="#id29"><span class="problematic" id="id30">|Coriolis|</span></a>, so it's setup can be deduced from it.</p>
|
|
</div>
|
|
</li>
|
|
<li><p class="first">The configurations files for the technology to be used. Here again,
|
|
the <tt class="docutils literal">designflow.technos</tt> module provides you with a set of
|
|
pre-defined configurations for open sources technologie shipped
|
|
with <a href="#id31"><span class="problematic" id="id32">|Coriolis|</span></a>. For unsupported ones, you may write your own,
|
|
it should perform the whole initialization of the <a href="#id33"><span class="problematic" id="id34">|Coriolis|</span></a> and
|
|
<a href="#id35"><span class="problematic" id="id36">|Hurricane|</span></a> database.</p>
|
|
</li>
|
|
<li><p class="first">Optionnaly the <a href="#id37"><span class="problematic" id="id38">|alliance-check-toolkit|</span></a>.</p>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
<div class="section" id="basic-example-of-dodo-file">
|
|
<h3>2.2 Basic Example of <a href="#id39"><span class="problematic" id="id40">|dodo|</span></a> File</h3>
|
|
<p>This example can be found in <a href="#id41"><span class="problematic" id="id42">|alliance-check-toolkit|</span></a>, under <tt class="docutils literal">benchs/arlet6502/sky130_c4m</tt>.</p>
|
|
<p>Here</p>
|
|
<pre class="code Python literal-block">
|
|
<span class="kn">from</span> <span class="nn">designflow.technos</span> <span class="kn">import</span> <span class="n">setupSky130_c4m</span>
|
|
|
|
<span class="n">setupSky130_c4m</span><span class="p">(</span> <span class="n">checkToolkit</span><span class="o">=</span><span class="s1">'../../..'</span>
|
|
<span class="p">,</span> <span class="n">pdkMasterTop</span><span class="o">=</span><span class="s1">'../../../pdkmaster/C4M.Sky130'</span> <span class="p">)</span>
|
|
|
|
<span class="n">DOIT_CONFIG</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">'verbosity'</span> <span class="p">:</span> <span class="mi">2</span> <span class="p">}</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">designflow.pnr</span> <span class="kn">import</span> <span class="n">PnR</span>
|
|
<span class="kn">from</span> <span class="nn">designflow.yosys</span> <span class="kn">import</span> <span class="n">Yosys</span>
|
|
<span class="kn">from</span> <span class="nn">designflow.blif2vst</span> <span class="kn">import</span> <span class="n">Blif2Vst</span>
|
|
<span class="kn">from</span> <span class="nn">designflow.alias</span> <span class="kn">import</span> <span class="n">Alias</span>
|
|
<span class="kn">from</span> <span class="nn">designflow.clean</span> <span class="kn">import</span> <span class="n">Clean</span>
|
|
<span class="n">PnR</span><span class="o">.</span><span class="n">textMode</span> <span class="o">=</span> <span class="kc">True</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">doDesign</span> <span class="kn">import</span> <span class="n">scriptMain</span>
|
|
|
|
<span class="n">ruleYosys</span> <span class="o">=</span> <span class="n">Yosys</span> <span class="o">.</span><span class="n">mkRule</span><span class="p">(</span> <span class="s1">'yosys'</span><span class="p">,</span> <span class="s1">'Arlet6502.v'</span> <span class="p">)</span>
|
|
<span class="n">ruleB2V</span> <span class="o">=</span> <span class="n">Blif2Vst</span><span class="o">.</span><span class="n">mkRule</span><span class="p">(</span> <span class="s1">'b2v'</span> <span class="p">,</span> <span class="p">[</span> <span class="s1">'arlet6502.vst'</span>
|
|
<span class="p">,</span> <span class="s1">'Arlet6502.spi'</span> <span class="p">]</span>
|
|
<span class="p">,</span> <span class="p">[</span><span class="n">ruleYosys</span><span class="p">]</span>
|
|
<span class="p">,</span> <span class="n">flags</span><span class="o">=</span><span class="mi">0</span> <span class="p">)</span>
|
|
<span class="n">rulePnR</span> <span class="o">=</span> <span class="n">PnR</span> <span class="o">.</span><span class="n">mkRule</span><span class="p">(</span> <span class="s1">'pnr'</span> <span class="p">,</span> <span class="p">[</span> <span class="s1">'arlet6502_cts_r.gds'</span>
|
|
<span class="p">,</span> <span class="s1">'arlet6502_cts_r.spi'</span>
|
|
<span class="p">,</span> <span class="s1">'arlet6502_cts_r.vst'</span> <span class="p">]</span>
|
|
<span class="p">,</span> <span class="p">[</span><span class="n">ruleB2V</span><span class="p">]</span>
|
|
<span class="p">,</span> <span class="n">scriptMain</span> <span class="p">)</span>
|
|
<span class="n">ruleCgt</span> <span class="o">=</span> <span class="n">PnR</span> <span class="o">.</span><span class="n">mkRule</span><span class="p">(</span> <span class="s1">'cgt'</span> <span class="p">)</span>
|
|
<span class="n">ruleGds</span> <span class="o">=</span> <span class="n">Alias</span> <span class="o">.</span><span class="n">mkRule</span><span class="p">(</span> <span class="s1">'gds'</span><span class="p">,</span> <span class="p">[</span><span class="n">rulePnR</span><span class="p">]</span> <span class="p">)</span>
|
|
<span class="n">ruleClean</span> <span class="o">=</span> <span class="n">Clean</span> <span class="o">.</span><span class="n">mkRule</span><span class="p">()</span>
|
|
</pre>
|
|
<p>You can run it with:</p>
|
|
<pre class="code bash literal-block">
|
|
ego@home:sky130_c4m> ../../../bin/crlenv.py -- doit list
|
|
b2v Run <blif2vst arlet6502 <span class="nv">depends</span><span class="o">=[</span>Arlet6502.blif<span class="o">]</span>>.
|
|
cgt Run plain CGT <span class="o">(</span>no loaded design<span class="o">)</span>
|
|
clean_flow Clean all generated <span class="o">(</span>targets<span class="o">)</span> files.
|
|
gds Run <Alias <span class="s2">"gds"</span> <span class="k">for</span> <span class="s2">"pnr"</span>>.
|
|
pnr Run <pnr arlet6502_cts_r.gds <span class="nv">depends</span><span class="o">=[</span>arlet6502.vst,Arlet6502.spi<span class="o">]</span>>.
|
|
yosys Run <yosys Arlet6502.v <span class="nv">top</span><span class="o">=</span>Arlet6502 <span class="nv">blackboxes</span><span class="o">=[]</span> <span class="nv">flattens</span><span class="o">=[]</span>>.
|
|
ego@home:sky130_c4m> ../../../bin/crlenv.py -- doit pnr
|
|
ego@home:sky130_c4m> ../../../bin/crlenv.py -- doit clean_flow
|
|
</pre>
|
|
<p>Let's have a detailed look on the various parts of the script.</p>
|
|
<ol class="upperalpha">
|
|
<li><p class="first"><strong>Choosing the technology</strong> Here, we load the predefined configuration for
|
|
SkyWater 130nm. We also have to give the location of the
|
|
<a href="#id43"><span class="problematic" id="id44">|alliance-check-toolkit|</span></a>, it may be relative or absolute.</p>
|
|
<p>If you want to use another one, it up to you to configure <a href="#id45"><span class="problematic" id="id46">|Coriolis|</span></a> at
|
|
this point by any means you see fit.</p>
|
|
<pre class="code Python literal-block">
|
|
<span class="kn">from</span> <span class="nn">designflow.technos</span> <span class="kn">import</span> <span class="n">setupSky130_c4m</span>
|
|
|
|
<span class="n">setupSky130_c4m</span><span class="p">(</span> <span class="n">checkToolkit</span><span class="o">=</span><span class="s1">'../../..'</span>
|
|
<span class="p">,</span> <span class="n">pdkMasterTop</span><span class="o">=</span><span class="s1">'../../../pdkmaster/C4M.Sky130'</span> <span class="p">)</span>
|
|
</pre>
|
|
</li>
|
|
<li><p class="first"><strong>Loading the various task/rule generators that we will use</strong>, from the
|
|
<tt class="docutils literal">designflow</tt> namespace. The rules are named from the tool they
|
|
encapsulate.</p>
|
|
<pre class="code Python literal-block">
|
|
<span class="kn">from</span> <span class="nn">designflow.pnr</span> <span class="kn">import</span> <span class="n">PnR</span>
|
|
<span class="kn">from</span> <span class="nn">designflow.yosys</span> <span class="kn">import</span> <span class="n">Yosys</span>
|
|
<span class="kn">from</span> <span class="nn">designflow.blif2vst</span> <span class="kn">import</span> <span class="n">Blif2Vst</span>
|
|
<span class="kn">from</span> <span class="nn">designflow.alias</span> <span class="kn">import</span> <span class="n">Alias</span>
|
|
<span class="kn">from</span> <span class="nn">designflow.clean</span> <span class="kn">import</span> <span class="n">Clean</span>
|
|
<span class="n">PnR</span><span class="o">.</span><span class="n">textMode</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</pre>
|
|
</li>
|
|
<li><p class="first"><strong>Creating the rule set.</strong> Each rule generator as a static method <tt class="docutils literal">mkRule()</tt>
|
|
to create a new task. The three first parameters are always:</p>
|
|
<ol class="arabic simple">
|
|
<li>The name of the task (the <tt class="docutils literal">basename</tt> for <a href="#id47"><span class="problematic" id="id48">|DoIt|</span></a>).</li>
|
|
<li>A target or list of targets, must be files or <tt class="docutils literal">pathlib.Path</tt> objects.</li>
|
|
<li>A dependency or list of dependencies, they can be files, <tt class="docutils literal">pathlib.Path</tt>
|
|
objects, or other tasks. We can see that the <tt class="docutils literal">Blif2Vst</tt> rule uses
|
|
directly the <tt class="docutils literal">Yosys</tt> one (the input file will be the <em>first</em> target
|
|
of the <tt class="docutils literal">Yosys</tt> rule).</li>
|
|
<li>Any extra parameters. A set of flag for <tt class="docutils literal">Blif2Vst</tt>. The <tt class="docutils literal">PnR</tt> rule takes
|
|
an optional callable argument, <em>any</em> callable. In this case we import the
|
|
<tt class="docutils literal">scriptMain()</tt> function from <tt class="docutils literal">doDesign()</tt>.</li>
|
|
</ol>
|
|
<p>There are two more special rules:</p>
|
|
<ul>
|
|
<li><p class="first"><tt class="docutils literal">Alias</tt>, to rename a rule. It this case <tt class="docutils literal">gds</tt> is defined as an alias to
|
|
<tt class="docutils literal">PnR</tt> (because it generate the <a href="#id49"><span class="problematic" id="id50">|gds|</span></a> file).</p>
|
|
</li>
|
|
<li><p class="first"><tt class="docutils literal">Clean</tt> to create a rule that will remove all the generated targets.</p>
|
|
<div class="admonition note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">The clean rule is named <tt class="docutils literal">clean_flow</tt> because <a href="#id51"><span class="problematic" id="id52">|DoIt|</span></a> already have
|
|
a <tt class="docutils literal">clean</tt> arguments which would shadow it.</p>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
<pre class="code Python literal-block">
|
|
<span class="n">PnR</span><span class="o">.</span><span class="n">textMode</span> <span class="o">=</span> <span class="kc">True</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">doDesign</span> <span class="kn">import</span> <span class="n">scriptMain</span>
|
|
|
|
<span class="n">ruleYosys</span> <span class="o">=</span> <span class="n">Yosys</span> <span class="o">.</span><span class="n">mkRule</span><span class="p">(</span> <span class="s1">'yosys'</span><span class="p">,</span> <span class="s1">'Arlet6502.v'</span> <span class="p">)</span>
|
|
<span class="n">ruleB2V</span> <span class="o">=</span> <span class="n">Blif2Vst</span><span class="o">.</span><span class="n">mkRule</span><span class="p">(</span> <span class="s1">'b2v'</span> <span class="p">,</span> <span class="p">[</span> <span class="s1">'arlet6502.vst'</span>
|
|
<span class="p">,</span> <span class="s1">'Arlet6502.spi'</span> <span class="p">]</span>
|
|
<span class="p">,</span> <span class="p">[</span><span class="n">ruleYosys</span><span class="p">]</span>
|
|
<span class="p">,</span> <span class="n">flags</span><span class="o">=</span><span class="mi">0</span> <span class="p">)</span>
|
|
<span class="n">rulePnR</span> <span class="o">=</span> <span class="n">PnR</span> <span class="o">.</span><span class="n">mkRule</span><span class="p">(</span> <span class="s1">'pnr'</span> <span class="p">,</span> <span class="p">[</span> <span class="s1">'arlet6502_cts_r.gds'</span>
|
|
<span class="p">,</span> <span class="s1">'arlet6502_cts_r.spi'</span>
|
|
<span class="p">,</span> <span class="s1">'arlet6502_cts_r.vst'</span> <span class="p">]</span>
|
|
<span class="p">,</span> <span class="p">[</span><span class="n">ruleB2V</span><span class="p">]</span>
|
|
<span class="p">,</span> <span class="n">scriptMain</span> <span class="p">)</span>
|
|
<span class="n">ruleCgt</span> <span class="o">=</span> <span class="n">PnR</span> <span class="o">.</span><span class="n">mkRule</span><span class="p">(</span> <span class="s1">'cgt'</span> <span class="p">)</span>
|
|
<span class="n">ruleGds</span> <span class="o">=</span> <span class="n">Alias</span> <span class="o">.</span><span class="n">mkRule</span><span class="p">(</span> <span class="s1">'gds'</span><span class="p">,</span> <span class="p">[</span><span class="n">rulePnR</span><span class="p">]</span> <span class="p">)</span>
|
|
<span class="n">ruleClean</span> <span class="o">=</span> <span class="n">Clean</span> <span class="o">.</span><span class="n">mkRule</span><span class="p">()</span>
|
|
</pre>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="rules-s-catalog">
|
|
<h2>3. Rules's Catalog</h2>
|
|
<div class="section" id="alliance-legacy-tools">
|
|
<h3>3.1 Alliance Legacy Tools</h3>
|
|
<p>Support for the <a href="#id53"><span class="problematic" id="id54">|Alliance|</span></a> legacy tools. They are run through sub-processes.
|
|
For more detailed documentation about those tools, refer to their <a href="#id55"><span class="problematic" id="id56">|man|</span></a> pages.</p>
|
|
<ol class="arabic simple">
|
|
<li><tt class="docutils literal">Asimut</tt>, <a href="#id57"><span class="problematic" id="id58">|VHDL|</span></a> simulator.</li>
|
|
<li><tt class="docutils literal">Boog</tt>, logical synthesys. Map a <a href="#id59"><span class="problematic" id="id60">|VHDL|</span></a> behavioral description to a standard
|
|
cell library (works with <tt class="docutils literal">boom</tt> & <tt class="docutils literal">loon</tt>).</li>
|
|
<li><tt class="docutils literal">Boom</tt>, behavioral description optimizer (works with <tt class="docutils literal">boog</tt> & <tt class="docutils literal">loon</tt>).</li>
|
|
<li><tt class="docutils literal">Cougar</tt>, symbolic layout extractor.</li>
|
|
<li><tt class="docutils literal">Dreal</tt>, real layout (<a href="#id61"><span class="problematic" id="id62">|GDS|</span></a>, <a href="#id63"><span class="problematic" id="id64">|CIF|</span></a>) editor.</li>
|
|
<li><tt class="docutils literal">Druc</tt>, symbolic layout <a href="#id65"><span class="problematic" id="id66">|DRC|</span></a>.</li>
|
|
<li><tt class="docutils literal">Flatph</tt>, flatten a layout, fully or in part.</li>
|
|
<li><tt class="docutils literal">Genpat</tt>, pattern generator (for use with <tt class="docutils literal">Asimut</tt>).</li>
|
|
<li><tt class="docutils literal">Graal</tt>, symbolic layout editor.</li>
|
|
<li><tt class="docutils literal">Loon</tt>, netlist optimizer for surface and/or delay (works with <tt class="docutils literal">boom</tt> & <tt class="docutils literal">boog</tt>).</li>
|
|
<li><tt class="docutils literal">Lvx</tt>, netlist comparator (<em>Layout</em> <em>Versus</em> <em>Extracted</em>).</li>
|
|
<li><tt class="docutils literal">S2R</tt>, symbolic to real translator (to <a href="#id67"><span class="problematic" id="id68">|GDS|</span></a> or <a href="#id69"><span class="problematic" id="id70">|CIF|</span></a>).</li>
|
|
<li><tt class="docutils literal">Vasy</tt>, Alliance <a href="#id71"><span class="problematic" id="id72">|VHDL|</span></a> subset translator towards standard <a href="#id73"><span class="problematic" id="id74">|VHDL|</span></a> or <a href="#id75"><span class="problematic" id="id76">|Verilog|</span></a>.</li>
|
|
</ol>
|
|
</div>
|
|
<div class="section" id="current-tools">
|
|
<h3>3.2 Current Tools</h3>
|
|
<ol class="arabic simple">
|
|
<li><tt class="docutils literal">Blif2Vst</tt>, translate a <a href="#id77"><span class="problematic" id="id78">|blif|</span></a> netlist (<a href="#id79"><span class="problematic" id="id80">|Yosys|</span></a> output) into the <a href="#id81"><span class="problematic" id="id82">|Alliance|</span></a>
|
|
netlist format <a href="#id83"><span class="problematic" id="id84">|vst|</span></a>. This is a <a href="#id85"><span class="problematic" id="id86">|Python|</span></a> script calling <a href="#id87"><span class="problematic" id="id88">|Coriolis|</span></a> directly
|
|
integrated inside the task.</li>
|
|
<li><tt class="docutils literal">PnR</tt>, maybe a bit of a misnomer. This is a caller to function that the user have
|
|
to write to perform the P&R as he sees fit for it's particular design.</li>
|
|
<li><tt class="docutils literal">Yosys</tt>, call the <a href="#id89"><span class="problematic" id="id90">|Yosys|</span></a> logical synthesyser. Provide an off the shelf subset
|
|
of functionalities to perform classic use cases.</li>
|
|
</ol>
|
|
</div>
|
|
<div class="section" id="utility-rules">
|
|
<h3>3.3 Utility Rules</h3>
|
|
<ol class="arabic">
|
|
<li><p class="first"><tt class="docutils literal">Alias</tt>, create a name alias for a rule.</p>
|
|
</li>
|
|
<li><p class="first"><tt class="docutils literal">Clean</tt>, remove all the generated targets of all the rules. The name of the
|
|
rule is <tt class="docutils literal">clean_flow` to not interfer with the |DoIt| clean arguments.
|
|
Files not part of any rules targets can be added to be removeds. Then,
|
|
to actually remove them, add the <span class="pre">``--extras</span></tt> flag to the command line.</p>
|
|
<pre class="code bash literal-block">
|
|
ego@home:sky130_c4m> ../../../bin/crlenv.py -- doit clean_flow --extras
|
|
</pre>
|
|
</li>
|
|
<li><p class="first"><tt class="docutils literal">Copy</tt>, copy a file into the current directory.</p>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
<div class="section" id="rule-sets">
|
|
<h3>3.4 Rule Sets</h3>
|
|
<p>For commonly used sequences of rules, some predefined sets are defined.</p>
|
|
<ol class="arabic">
|
|
<li><p class="first"><tt class="docutils literal">alliancesynth</tt>, to apply the logical <a href="#id91"><span class="problematic" id="id92">|Alliance|</span></a> logical synthesis
|
|
set of tools. From <a href="#id93"><span class="problematic" id="id94">|VHDL|</span></a> to optimized <a href="#id95"><span class="problematic" id="id96">|vst|</span></a>. The set is as follow:</p>
|
|
<pre class="literal-block">
|
|
x.vbe => boom => x_boom.vbe => boog => x_boog.vst => loon => x.vst
|
|
</pre>
|
|
<p>An additional rule using <tt class="docutils literal">vasy</tt> is triggered if the input format
|
|
is standard <a href="#id97"><span class="problematic" id="id98">|VHDL|</span></a>.</p>
|
|
</li>
|
|
<li><p class="first"><tt class="docutils literal">pnrcheck</tt>, complete flow from <a href="#id99"><span class="problematic" id="id100">|Verilog|</span></a> to symbolic layout, with
|
|
<a href="#id101"><span class="problematic" id="id102">|DRC|</span></a> and <a href="#id103"><span class="problematic" id="id104">|LVX|</span></a> checks. Uses <a href="#id105"><span class="problematic" id="id106">|Yosys|</span></a> for synthesis.</p>
|
|
</li>
|
|
<li><p class="first"><tt class="docutils literal">routecheck</tt>, perform the routing, the <a href="#id107"><span class="problematic" id="id108">|DRC|</span></a> and <a href="#id109"><span class="problematic" id="id110">|LVX|</span></a> check on an
|
|
already placed design. Use symbolic layout.</p>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
<div class="system-messages section">
|
|
<h2>Docutils System Messages</h2>
|
|
<div class="system-message" id="id1">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 7); <em><a href="#id2">backlink</a></em></p>
|
|
Undefined substitution referenced: "DoIt".</div>
|
|
<div class="system-message" id="id3">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 15); <em><a href="#id4">backlink</a></em></p>
|
|
Undefined substitution referenced: "Makefile".</div>
|
|
<div class="system-message" id="id5">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 15); <em><a href="#id6">backlink</a></em></p>
|
|
Undefined substitution referenced: "DoIt".</div>
|
|
<div class="system-message" id="id7">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 24); <em><a href="#id8">backlink</a></em></p>
|
|
Undefined substitution referenced: "Makefile".</div>
|
|
<div class="system-message" id="id9">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 24); <em><a href="#id10">backlink</a></em></p>
|
|
Undefined substitution referenced: "Makefile".</div>
|
|
<div class="system-message" id="id11">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 24); <em><a href="#id12">backlink</a></em></p>
|
|
Undefined substitution referenced: "DoIt".</div>
|
|
<div class="system-message" id="id13">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 24); <em><a href="#id14">backlink</a></em></p>
|
|
Undefined substitution referenced: "Python".</div>
|
|
<div class="system-message" id="id15">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 24); <em><a href="#id16">backlink</a></em></p>
|
|
Undefined substitution referenced: "Hurricane".</div>
|
|
<div class="system-message" id="id17">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 50); <em><a href="#id18">backlink</a></em></p>
|
|
Undefined substitution referenced: "DoIt".</div>
|
|
<div class="system-message" id="id19">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 53); <em><a href="#id20">backlink</a></em></p>
|
|
Undefined substitution referenced: "Coriolis".</div>
|
|
<div class="system-message" id="id21">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 60); <em><a href="#id22">backlink</a></em></p>
|
|
Undefined substitution referenced: "Coriolis".</div>
|
|
<div class="system-message" id="id23">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 74); <em><a href="#id24">backlink</a></em></p>
|
|
Undefined substitution referenced: "alliance-check-toolkit".</div>
|
|
<div class="system-message" id="id25">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 74); <em><a href="#id26">backlink</a></em></p>
|
|
Undefined substitution referenced: "Coriolis".</div>
|
|
<div class="system-message" id="id27">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 80); <em><a href="#id28">backlink</a></em></p>
|
|
Undefined substitution referenced: "Alliance".</div>
|
|
<div class="system-message" id="id29">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 80); <em><a href="#id30">backlink</a></em></p>
|
|
Undefined substitution referenced: "Coriolis".</div>
|
|
<div class="system-message" id="id31">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 83); <em><a href="#id32">backlink</a></em></p>
|
|
Undefined substitution referenced: "Coriolis".</div>
|
|
<div class="system-message" id="id33">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 83); <em><a href="#id34">backlink</a></em></p>
|
|
Undefined substitution referenced: "Coriolis".</div>
|
|
<div class="system-message" id="id35">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 83); <em><a href="#id36">backlink</a></em></p>
|
|
Undefined substitution referenced: "Hurricane".</div>
|
|
<div class="system-message" id="id37">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 90); <em><a href="#id38">backlink</a></em></p>
|
|
Undefined substitution referenced: "alliance-check-toolkit".</div>
|
|
<div class="system-message" id="id39">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 94); <em><a href="#id40">backlink</a></em></p>
|
|
Undefined substitution referenced: "dodo".</div>
|
|
<div class="system-message" id="id41">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 96); <em><a href="#id42">backlink</a></em></p>
|
|
Undefined substitution referenced: "alliance-check-toolkit".</div>
|
|
<div class="system-message" id="id43">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 150); <em><a href="#id44">backlink</a></em></p>
|
|
Undefined substitution referenced: "alliance-check-toolkit".</div>
|
|
<div class="system-message" id="id45">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 154); <em><a href="#id46">backlink</a></em></p>
|
|
Undefined substitution referenced: "Coriolis".</div>
|
|
<div class="system-message" id="id47">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 182); <em><a href="#id48">backlink</a></em></p>
|
|
Undefined substitution referenced: "DoIt".</div>
|
|
<div class="system-message" id="id49">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 197); <em><a href="#id50">backlink</a></em></p>
|
|
Undefined substitution referenced: "gds".</div>
|
|
<div class="system-message" id="id51">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 202); <em><a href="#id52">backlink</a></em></p>
|
|
Undefined substitution referenced: "DoIt".</div>
|
|
<div class="system-message" id="id53">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 233); <em><a href="#id54">backlink</a></em></p>
|
|
Undefined substitution referenced: "Alliance".</div>
|
|
<div class="system-message" id="id55">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 233); <em><a href="#id56">backlink</a></em></p>
|
|
Undefined substitution referenced: "man".</div>
|
|
<div class="system-message" id="id57">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 236); <em><a href="#id58">backlink</a></em></p>
|
|
Undefined substitution referenced: "VHDL".</div>
|
|
<div class="system-message" id="id59">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 238); <em><a href="#id60">backlink</a></em></p>
|
|
Undefined substitution referenced: "VHDL".</div>
|
|
<div class="system-message" id="id61">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 245); <em><a href="#id62">backlink</a></em></p>
|
|
Undefined substitution referenced: "GDS".</div>
|
|
<div class="system-message" id="id63">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 245); <em><a href="#id64">backlink</a></em></p>
|
|
Undefined substitution referenced: "CIF".</div>
|
|
<div class="system-message" id="id65">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 247); <em><a href="#id66">backlink</a></em></p>
|
|
Undefined substitution referenced: "DRC".</div>
|
|
<div class="system-message" id="id67">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 259); <em><a href="#id68">backlink</a></em></p>
|
|
Undefined substitution referenced: "GDS".</div>
|
|
<div class="system-message" id="id69">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 259); <em><a href="#id70">backlink</a></em></p>
|
|
Undefined substitution referenced: "CIF".</div>
|
|
<div class="system-message" id="id71">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 261); <em><a href="#id72">backlink</a></em></p>
|
|
Undefined substitution referenced: "VHDL".</div>
|
|
<div class="system-message" id="id73">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 261); <em><a href="#id74">backlink</a></em></p>
|
|
Undefined substitution referenced: "VHDL".</div>
|
|
<div class="system-message" id="id75">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 261); <em><a href="#id76">backlink</a></em></p>
|
|
Undefined substitution referenced: "Verilog".</div>
|
|
<div class="system-message" id="id77">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 267); <em><a href="#id78">backlink</a></em></p>
|
|
Undefined substitution referenced: "blif".</div>
|
|
<div class="system-message" id="id79">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 267); <em><a href="#id80">backlink</a></em></p>
|
|
Undefined substitution referenced: "Yosys".</div>
|
|
<div class="system-message" id="id81">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 267); <em><a href="#id82">backlink</a></em></p>
|
|
Undefined substitution referenced: "Alliance".</div>
|
|
<div class="system-message" id="id83">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 267); <em><a href="#id84">backlink</a></em></p>
|
|
Undefined substitution referenced: "vst".</div>
|
|
<div class="system-message" id="id85">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 267); <em><a href="#id86">backlink</a></em></p>
|
|
Undefined substitution referenced: "Python".</div>
|
|
<div class="system-message" id="id87">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 267); <em><a href="#id88">backlink</a></em></p>
|
|
Undefined substitution referenced: "Coriolis".</div>
|
|
<div class="system-message" id="id89">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 274); <em><a href="#id90">backlink</a></em></p>
|
|
Undefined substitution referenced: "Yosys".</div>
|
|
<div class="system-message" id="id91">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 301); <em><a href="#id92">backlink</a></em></p>
|
|
Undefined substitution referenced: "Alliance".</div>
|
|
<div class="system-message" id="id93">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 301); <em><a href="#id94">backlink</a></em></p>
|
|
Undefined substitution referenced: "VHDL".</div>
|
|
<div class="system-message" id="id95">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 301); <em><a href="#id96">backlink</a></em></p>
|
|
Undefined substitution referenced: "vst".</div>
|
|
<div class="system-message" id="id97">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 306); <em><a href="#id98">backlink</a></em></p>
|
|
Undefined substitution referenced: "VHDL".</div>
|
|
<div class="system-message" id="id99">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 309); <em><a href="#id100">backlink</a></em></p>
|
|
Undefined substitution referenced: "Verilog".</div>
|
|
<div class="system-message" id="id101">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 309); <em><a href="#id102">backlink</a></em></p>
|
|
Undefined substitution referenced: "DRC".</div>
|
|
<div class="system-message" id="id103">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 309); <em><a href="#id104">backlink</a></em></p>
|
|
Undefined substitution referenced: "LVX".</div>
|
|
<div class="system-message" id="id105">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 309); <em><a href="#id106">backlink</a></em></p>
|
|
Undefined substitution referenced: "Yosys".</div>
|
|
<div class="system-message" id="id107">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 312); <em><a href="#id108">backlink</a></em></p>
|
|
Undefined substitution referenced: "DRC".</div>
|
|
<div class="system-message" id="id109">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 312); <em><a href="#id110">backlink</a></em></p>
|
|
Undefined substitution referenced: "LVX".</div>
|
|
<div class="system-message" id="id111">
|
|
<p class="system-message-title">System Message: ERROR/3 (<tt class="docutils">/dsk/l1/jpc/coriolis-2.x/src/coriolis/documentation/content/pages/design-flow/QuickStart.rst</tt>, line 7); <em><a href="#id112">backlink</a></em></p>
|
|
Unknown target name: "doit".</div>
|
|
</div>
|
|
|
|
</div>
|
|
<!-- /Content -->
|
|
|
|
<!-- Footer -->
|
|
<div class="footer gradient-2">
|
|
<div class="container footer-container ">
|
|
<div class="row">
|
|
<div class="col-xs-4 col-sm-3 col-md-3 col-lg-3">
|
|
<div class="footer-title">Social</div>
|
|
<ul class="list-unstyled">
|
|
</ul>
|
|
</div>
|
|
<div class="col-xs-4 col-sm-3 col-md-3 col-lg-2">
|
|
</div>
|
|
<div class="col-xs-4 col-sm-3 col-md-3 col-lg-3">
|
|
<div class="footer-title">Links</div>
|
|
<ul class="list-unstyled">
|
|
<li><a href="https://coriolis.lip6.fr/" target="_blank">Alliance/Coriolis</a></li>
|
|
<li><a href="https://www-soc.lip6.fr/" target="_blank">CIAN Team Website</a></li>
|
|
<li><a href="https://f-si.org" target="_blank">Free Silicon Foundation</a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-3 col-md-3 col-lg-4">
|
|
<p class="pull-right text-right">
|
|
<small><em>Proudly powered by <a href="http://docs.getpelican.com/" target="_blank">pelican</a></em></small><br/>
|
|
<small><em><span class="sc">NEST</span> theme by <a href="https://github.com/molivier" target="_blank">molivier</a></em></small><br/>
|
|
<small>Copyright © 2020-2020 Sorbonne Universite</small>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /Footer -->
|
|
</body>
|
|
</html> |