435 lines
21 KiB
HTML
435 lines
21 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="Printable version of this document Stratus.pdf. Contents Class Model Nets Instances Class Model Synopsys class myClass ( Model ) : ... exemple = myClass ( name, param ) Description Every cell made is ...">
|
||
<meta name="keywords" content="">
|
||
<link rel="icon" href="../favicon.ico">
|
||
|
||
<title>Stratus : Developper's Documentation - 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 " href="../pages/homepage.html">Coriolis <span class="sc">vlsi</span> Backend Tools</a></li>
|
||
<li><a class="dropdown-item " href="../pages/install-cases.html">Install Cases</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 " href="../pages/homepage.html">Coriolis <span class="sc">vlsi</span> Backend Tools</a></li>
|
||
<li><a class="dropdown-item " href="../pages/install-cases.html">Install Cases</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">Stratus : Developper's Documentation</h1>
|
||
<div class="header-underline"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- /Header -->
|
||
|
||
</div>
|
||
<!-- /Header -->
|
||
|
||
|
||
<!-- Content -->
|
||
<div class="container content">
|
||
<!-- -*- mode: rst; explicit-buffer-name: "Developper_HTML.rst<pelican>" -*- -->
|
||
<!-- -*- Mode: rst; explicit-buffer-name: "definition.rst<documentation/etc>" -*- -->
|
||
<!-- HTML/LaTeX backends mixed macros. -->
|
||
<!-- Acronyms & names. -->
|
||
<!-- URLs -->
|
||
<!-- Standard CAO/VLSI Concepts. -->
|
||
<!-- Alliance & MBK Concepts -->
|
||
<!-- Hurricane Concepts. -->
|
||
<p>Printable version of this document <a class="reference external" href="../../../pdf/main/Stratus.pdf">Stratus.pdf</a>.</p>
|
||
<div class="contents topic" id="contents">
|
||
<p class="topic-title first">Contents</p>
|
||
<ul class="simple">
|
||
<li><a class="reference internal" href="#class-model" id="id12">Class Model</a></li>
|
||
<li><a class="reference internal" href="#nets" id="id13">Nets</a></li>
|
||
<li><a class="reference internal" href="#instances" id="id14">Instances</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="class-model">
|
||
<h2><a class="toc-backref" href="#id12">Class Model</a></h2>
|
||
<div class="section" id="synopsys">
|
||
<h3>Synopsys</h3>
|
||
<pre class="literal-block">
|
||
class myClass ( Model ) :
|
||
...
|
||
|
||
exemple = myClass ( name, param )
|
||
</pre>
|
||
</div>
|
||
<div class="section" id="description">
|
||
<h3>Description</h3>
|
||
<p>Every cell made is a class herited from class <tt class="docutils literal">Model</tt>.
|
||
Some methods have to be created, like <tt class="docutils literal">Interface</tt>, <tt class="docutils literal">Netlist</tt> ...
|
||
Some methods are inherited from the class <tt class="docutils literal">Model</tt>.</p>
|
||
</div>
|
||
<div class="section" id="parameters">
|
||
<h3>Parameters</h3>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">name</tt> : The name of the cell (which is the name of the files which
|
||
will be created)</li>
|
||
<li><tt class="docutils literal">param</tt> : A dictionnary which gives all the parameters useful in
|
||
order to create the cell</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="attributes">
|
||
<h3>Attributes</h3>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">_name</tt> : Name of the cell</li>
|
||
<li><tt class="docutils literal">_st_insts</tt> : List of all the instances of the cell</li>
|
||
<li><tt class="docutils literal">_st_ports</tt> : List of all the external nets of the cell (except for
|
||
alimentations and clock)</li>
|
||
<li><tt class="docutils literal">_st_sigs</tt> : List of all the internal nets of the cell</li>
|
||
<li><tt class="docutils literal">_st_vdds</tt>, <tt class="docutils literal">_st_vsss</tt> : Two tabs of the nets which are
|
||
instancied as <tt class="docutils literal">VddIn</tt> and <tt class="docutils literal">VssIn</tt></li>
|
||
<li><tt class="docutils literal">_st_cks</tt> : List of all the nets which are instancied as <tt class="docutils literal">CkIn</tt></li>
|
||
<li><tt class="docutils literal">_st_merge</tt> : List of all the internal nets which have to be merged</li>
|
||
<li><tt class="docutils literal">_param</tt> : The map given as argument at the creation of the cell</li>
|
||
<li><tt class="docutils literal">_underCells</tt> : List of all the instances which are cells that have
|
||
to be created</li>
|
||
<li><tt class="docutils literal">_and</tt>, <tt class="docutils literal">_or</tt>, <tt class="docutils literal">_xor</tt>, <tt class="docutils literal">_not</tt>, <tt class="docutils literal">_buff</tt>, <tt class="docutils literal">_mux</tt>, <tt class="docutils literal">_reg</tt>,
|
||
<tt class="docutils literal">_shift</tt>, <tt class="docutils literal">_comp</tt>, <tt class="docutils literal">_add</tt>, <tt class="docutils literal">_mult</tt>, <tt class="docutils literal">_div</tt> : tells which
|
||
generator to use when using overloard</li>
|
||
<li><tt class="docutils literal">_NB_INST</tt> : The number of instances of the cell (useful in order
|
||
to automatically give a name to the instances)</li>
|
||
<li><tt class="docutils literal">_TAB_NETS_OUT</tt> and <tt class="docutils literal">_TAB_NETS_CAT</tt> : Lists of all the nets
|
||
automatically created</li>
|
||
<li><tt class="docutils literal">_insref</tt> : The reference instance (for placement)</li>
|
||
</ul>
|
||
<p>And, in connection with Hurricane :</p>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">_hur_cell</tt> : The hurricane cell (None by default)</li>
|
||
<li><tt class="docutils literal">_db</tt> : The database</li>
|
||
<li><tt class="docutils literal">_lib0</tt> : <tt class="docutils literal">self._db.Get_CATA_LIB ( 0 )</tt></li>
|
||
<li><tt class="docutils literal">_nb_alims_verticales</tt>, <tt class="docutils literal">_nb_pins</tt>, <tt class="docutils literal">_nb_vdd_pins</tt>,
|
||
<tt class="docutils literal">_nb_vss_pins</tt>, <tt class="docutils literal">standard_instances_list</tt>, <tt class="docutils literal">pad_north</tt>,
|
||
<tt class="docutils literal">pad_south</tt>, <tt class="docutils literal">pad_east</tt>, <tt class="docutils literal">pad_west</tt> : all place and route
|
||
stuffs ...</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="methods">
|
||
<h3>Methods</h3>
|
||
<p>Methods of class <tt class="docutils literal">Model</tt> are listed below :</p>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">HurricanePlug</tt> : Creates the Hurricane cell thanks to the
|
||
stratus cell.
|
||
Before calling this method, only the stratus cell is created, after
|
||
this method, both cells are created. This method has to be called
|
||
before View and Save, and before Layout.</li>
|
||
<li><tt class="docutils literal">View</tt> : Opens/Refreshes the editor in order to see the created
|
||
layout</li>
|
||
<li><tt class="docutils literal">Quit</tt> : Finishes a cell without saving</li>
|
||
<li><tt class="docutils literal">Save</tt> : Saves the created cell
|
||
If several cells have been created, they are all going to be saved
|
||
in separated files</li>
|
||
</ul>
|
||
<p>Some of those methods have to be defined in order to create a new cell :</p>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">Interface</tt> : Description of the external ports of the cell</li>
|
||
<li><tt class="docutils literal">Netlist</tt> : Description of the netlist of the cell</li>
|
||
<li><tt class="docutils literal">Layout</tt> : Description of the layout of the cell</li>
|
||
<li><tt class="docutils literal">Vbe</tt> : Description of the behavior of the cell</li>
|
||
<li><tt class="docutils literal">Pattern</tt> : Description of the patterns in order to test the cell</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="nets">
|
||
<h2><a class="toc-backref" href="#id13">Nets</a></h2>
|
||
<div class="section" id="id2">
|
||
<h3>Synopsys</h3>
|
||
<pre class="literal-block">
|
||
netInput = LogicIn ( name, arity )
|
||
</pre>
|
||
</div>
|
||
<div class="section" id="id3">
|
||
<h3>Description</h3>
|
||
<p>Instanciation of net. Differents kind of nets are listed below :</p>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">LogicIn</tt> : Creation of an input port</li>
|
||
<li><tt class="docutils literal">LogicOut</tt> : Creation of an output port</li>
|
||
<li><tt class="docutils literal">LogicInOut</tt> : Creation of an inout port</li>
|
||
<li><tt class="docutils literal">LogicUnknown</tt> : Creation of an input/output port which direction
|
||
is not defined</li>
|
||
<li><tt class="docutils literal">TriState</tt> : Creation of a tristate port</li>
|
||
<li><tt class="docutils literal">CkIn</tt> : Creation of a clock port</li>
|
||
<li><tt class="docutils literal">VddIn</tt> : Creation of the vdd alimentation</li>
|
||
<li><tt class="docutils literal">VssIn</tt> : Creation of the vss alimentation</li>
|
||
<li><tt class="docutils literal">Signal</tt> : Creation of an internal net</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id4">
|
||
<h3>Parameters</h3>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">name</tt> : Name of the net (mandatory argument)</li>
|
||
<li><tt class="docutils literal">arity</tt> : Arity of the net (mandatory argument)</li>
|
||
<li><tt class="docutils literal">indice</tt> : For buses only : the LSB bit (optional argument : set
|
||
to 0 by default)</li>
|
||
</ul>
|
||
<p>Only <tt class="docutils literal">CkIn, ``\ ``VddIn</tt> and <tt class="docutils literal">VssIn</tt> do not have the same parameters: there is only the <tt class="docutils literal">name</tt> parameter (they are 1 bit nets).</p>
|
||
</div>
|
||
<div class="section" id="id5">
|
||
<h3>Attributes</h3>
|
||
<ul>
|
||
<li><p class="first"><tt class="docutils literal">_name</tt> : Name of the net</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">_arity</tt> : Arity of the net (by default set to 0)</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">_ind</tt> : LSB of the net</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">_ext</tt> : Tells if the net is external or not (True/False)</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">_direct</tt> : If the net is external, tells the direction (“IN”,
|
||
“OUT”, “INOUT”, “TRISTATE”, “UNKNOWN”)</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">_h_type</tt> : If the net is an alimentation or a clock, tells the
|
||
type (“POWER”, “GROUND”, “CLOCK”)</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">_type</tt> : The arithmetic type of the net ( “nr” )</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">_st_cell</tt> : The stratus cell which the net is instanciated in</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">_real_net</tt> : If the net is a part of a net (Sig) it is the real
|
||
net corresponding</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">_alias</tt> : [] by default. When the net has an alias, it’s a tab.
|
||
Each element of the tab correspond to a bit of the net (from the LSB
|
||
to the MSB), it’a a dictionnary : the only key is the net which this
|
||
net is an alias from, the value is the bit of the net</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">_to_merge</tt> : [] by default. The same as _alias</p>
|
||
</li>
|
||
<li><div class="first line-block">
|
||
<div class="line"><tt class="docutils literal">_to_cat</tt> : [] by default. The same as _alias</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<p>And, in connection with Hurricane :</p>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">_hur_net</tt> : A tab with all the hurricane nets corresponding to the
|
||
stratus net ; From the LSB to the MSB (for example, with a 1 bit net,
|
||
one gets the hurricane net by doing : <tt class="docutils literal">net._hur_net[0]</tt> ).</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id6">
|
||
<h3>Methods</h3>
|
||
<ul>
|
||
<li><p class="first"><tt class="docutils literal">Buffer</tt> : Instanciation of a Buffer</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">Shift</tt> : Instanciation of a shifter</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">Mux</tt> : Instanciation of a multiplexor</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">Reg</tt> : Instanciation of a register</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">Eq/Ne</tt> : Instanciation of comparison generator</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">Extend</tt> : A net is extended</p>
|
||
</li>
|
||
<li><p class="first"><tt class="docutils literal">Alias</tt> : A net is an alias of another net</p>
|
||
</li>
|
||
<li><div class="first line-block">
|
||
<div class="line"><tt class="docutils literal">Delete</tt> : Deletion of the Hurricane nets</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<p>And the overloards :</p>
|
||
<ul class="simple">
|
||
<li>__init__ : Initialisation of nets</li>
|
||
<li>__le__ : initialisation of a net thanks to <= notation</li>
|
||
<li>__getitem__, __geslice__ : Creation of “Sig” nets : which are
|
||
part of nets (use of <tt class="docutils literal">[]</tt> and <tt class="docutils literal">[:]</tt>)</li>
|
||
<li>__and__, __or__, __xor__, __invert__ : boolean
|
||
operation with &, |, ^ ,</li>
|
||
<li>__add__, __mul__, __div__ : arithmetic operators with +,
|
||
* and /</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="instances">
|
||
<h2><a class="toc-backref" href="#id14">Instances</a></h2>
|
||
<div class="section" id="id7">
|
||
<h3>Synopsys</h3>
|
||
<pre class="literal-block">
|
||
Inst ( model
|
||
, name
|
||
, param = myParam
|
||
, map = myMap
|
||
)
|
||
</pre>
|
||
</div>
|
||
<div class="section" id="id8">
|
||
<h3>Description</h3>
|
||
<p>Instantiation of an instance. The type of the instance is given by the
|
||
<tt class="docutils literal">model</tt> parameter. The connexions are made thanks to the <tt class="docutils literal">map</tt>
|
||
parameters.</p>
|
||
</div>
|
||
<div class="section" id="id9">
|
||
<h3>Parameters</h3>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">model</tt> : Name of the mastercell of the instance to create
|
||
(mandatory argument)</li>
|
||
<li><tt class="docutils literal">name</tt> : Name of the instance (optional)
|
||
When this argument is not defined, the instance has a name created
|
||
by default. This argument is usefull when one wants to create a
|
||
layout as well. Indeed, the placement of the instances is much easier
|
||
when the conceptor has chosen himself the name f the instances.</li>
|
||
<li><tt class="docutils literal">param</tt> : Dictionnary for parameters of the mastercell (optional :
|
||
only for mastercells which require it)</li>
|
||
<li><tt class="docutils literal">map</tt> : Dictionnary for connexions in order to make the netlist</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id10">
|
||
<h3>Attributes</h3>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">_name</tt> : Name of the instance (the name given as parameter if
|
||
there’s one, a name created otherwise)</li>
|
||
<li><tt class="docutils literal">_model</tt> : Name of the model given as argument</li>
|
||
<li><tt class="docutils literal">_real_model</tt> : Name of the model created thanks to <tt class="docutils literal">_model</tt> and
|
||
all the parameters</li>
|
||
<li><tt class="docutils literal">_map</tt> : Dictionnary <tt class="docutils literal">map</tt> given at the instanciation</li>
|
||
<li><tt class="docutils literal">_param</tt> : Dictionnary <tt class="docutils literal">param</tt> given at the instanciation</li>
|
||
<li><tt class="docutils literal">_st_cell</tt> : The stratus cell which the instance is instanciated in</li>
|
||
<li><tt class="docutils literal">_st_masterCell</tt> : The stratus master cell of the instance</li>
|
||
</ul>
|
||
<p>For placement :</p>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">_plac</tt> : tells if the instance is placed or not (UNPLACED by
|
||
default)</li>
|
||
<li><tt class="docutils literal">_x</tt>, <tt class="docutils literal">_y</tt> : the coordinates of the instance (only for placed
|
||
instances)</li>
|
||
<li><tt class="docutils literal">_sym</tt> : the symetry of the instance (only for placed instances)</li>
|
||
</ul>
|
||
<p>And, in connection with Hurricane :</p>
|
||
<ul class="simple">
|
||
<li><tt class="docutils literal">_hur_instance</tt> : The hurricane instance (None by default)</li>
|
||
<li><tt class="docutils literal">_hur_masterCell</tt> : The Hurricane master cell of the instance (None
|
||
by default)</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="id11">
|
||
<h3>Methods</h3>
|
||
<ul class="simple">
|
||
<li>Delete : Deletion of the Hurricane instance</li>
|
||
</ul>
|
||
</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> |