Change Stratus documentation to reST
|
@ -73,10 +73,6 @@ install: FORCE
|
||||||
cd build.dir/$$tool; \
|
cd build.dir/$$tool; \
|
||||||
makeArgs=""; \
|
makeArgs=""; \
|
||||||
cmakeArgs="$$commonCMakeArgs -D BUILD_DOC:STRING=OFF"; \
|
cmakeArgs="$$commonCMakeArgs -D BUILD_DOC:STRING=OFF"; \
|
||||||
if [ "$$tool" = "stratus1" ]; then \
|
|
||||||
makeArgs="dvi safepdf html"; \
|
|
||||||
cmakeArgs="$$commonCMakeArgs -D BUILD_DOC:STRING=ON"; \
|
|
||||||
fi; \
|
|
||||||
if [ "$$tool" = "hurricane" \
|
if [ "$$tool" = "hurricane" \
|
||||||
-o "$$tool" = "crlcore" \
|
-o "$$tool" = "crlcore" \
|
||||||
-o "$$tool" = "unicorn" ]; then \
|
-o "$$tool" = "unicorn" ]; then \
|
||||||
|
|
|
@ -214,10 +214,6 @@ class Builder:
|
||||||
if self._ninja:
|
if self._ninja:
|
||||||
command = [ "ninja-build" ]
|
command = [ "ninja-build" ]
|
||||||
#command += [ "DESTDIR=%s" % self.installDir ]
|
#command += [ "DESTDIR=%s" % self.installDir ]
|
||||||
if self._enableDoc == "ON":
|
|
||||||
#if tool.name == "crlcore" or tool.name == "stratus1":
|
|
||||||
if tool.name == "stratus1":
|
|
||||||
command += [ "dvi", "safepdf", "html" ]
|
|
||||||
command += self._makeArguments
|
command += self._makeArguments
|
||||||
print "Make/Ninja command:", command
|
print "Make/Ninja command:", command
|
||||||
sys.stdout.flush ()
|
sys.stdout.flush ()
|
||||||
|
|
|
@ -42,6 +42,12 @@
|
||||||
|
|
||||||
set ( rdsRst RDS/pdfHeader.rst
|
set ( rdsRst RDS/pdfHeader.rst
|
||||||
RDS/RDSpage.rst )
|
RDS/RDSpage.rst )
|
||||||
|
|
||||||
|
set (stratusRst Stratus/pdfHeader.rst
|
||||||
|
Stratus/Developper.rst
|
||||||
|
Stratus/Language.rst
|
||||||
|
Stratus/DpGen.rst
|
||||||
|
Stratus/Patterns.rst )
|
||||||
|
|
||||||
add_custom_target ( doc_HTML ALL
|
add_custom_target ( doc_HTML ALL
|
||||||
cd ${DOCUMENTATION_SOURCE_DIR}
|
cd ${DOCUMENTATION_SOURCE_DIR}
|
||||||
|
@ -53,15 +59,13 @@
|
||||||
../_static/SoC-ReST.css
|
../_static/SoC-ReST.css
|
||||||
../_static/pygments.css
|
../_static/pygments.css
|
||||||
CrlCore/CrlCore.rst
|
CrlCore/CrlCore.rst
|
||||||
DpGen/DpGen.rst
|
|
||||||
Hurricane/Hurricane.rst
|
Hurricane/Hurricane.rst
|
||||||
Patterns/Patterns.rst
|
|
||||||
Stratus/Stratus.rst
|
|
||||||
Unicorn/Unicorn.rst
|
Unicorn/Unicorn.rst
|
||||||
Viewer/Viewer.rst
|
Viewer/Viewer.rst
|
||||||
${usersGuideRst} UsersGuide/index.rst
|
${usersGuideRst} UsersGuide/index.rst
|
||||||
${pythonCppRst} PythonCpp/index.rst
|
${pythonCppRst} PythonCpp/index.rst
|
||||||
${rdsRst} RDS/index.rst
|
${rdsRst} RDS/index.rst
|
||||||
|
${stratusRst} stratus/index.rst
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target ( pdf_UsersGuide ALL
|
add_custom_target ( pdf_UsersGuide ALL
|
||||||
|
@ -86,10 +90,19 @@
|
||||||
add_dependencies ( pdf_RDS ../etc/definitions.rst
|
add_dependencies ( pdf_RDS ../etc/definitions.rst
|
||||||
../etc/SoC-ReST.tex
|
../etc/SoC-ReST.tex
|
||||||
${pythonCppRst} )
|
${pythonCppRst} )
|
||||||
|
|
||||||
|
add_custom_target ( pdf_Stratus ALL
|
||||||
|
cd ${DOCUMENTATION_SOURCE_DIR}/Stratus
|
||||||
|
&& ../etc/doPdf.sh ${stratusRst} Stratus.rst
|
||||||
|
)
|
||||||
|
add_dependencies ( pdf_Stratus ../etc/definitions.rst
|
||||||
|
../etc/SoC-ReST.tex
|
||||||
|
${StratusRst} )
|
||||||
|
|
||||||
install ( DIRECTORY _build/html/ DESTINATION ${htmlInstallDir} )
|
install ( DIRECTORY _build/html/ DESTINATION ${htmlInstallDir} )
|
||||||
install ( FILES RDS/RDS.pdf
|
install ( FILES RDS/RDS.pdf
|
||||||
PythonCpp/PythonCpp.pdf
|
PythonCpp/PythonCpp.pdf
|
||||||
|
Stratus/Stratus.pdf
|
||||||
UsersGuide/UsersGuide.pdf DESTINATION ${pdfInstallDir} )
|
UsersGuide/UsersGuide.pdf DESTINATION ${pdfInstallDir} )
|
||||||
|
|
||||||
endif(BUILD_DOC)
|
endif(BUILD_DOC)
|
||||||
|
|
|
@ -9,9 +9,7 @@ Comprenhensive Table of Contents
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
|
||||||
UsersGuide/index.rst
|
UsersGuide/index.rst
|
||||||
Stratus/Stratus.rst
|
Stratus/index.rst
|
||||||
DpGen/DpGen.rst
|
|
||||||
Patterns/Patterns.rst
|
|
||||||
Hurricane/Hurricane.rst
|
Hurricane/Hurricane.rst
|
||||||
Viewer/Viewer.rst
|
Viewer/Viewer.rst
|
||||||
CrlCore/CrlCore.rst
|
CrlCore/CrlCore.rst
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
.. -*- Mode: rst -*-
|
|
||||||
|
|
||||||
.. include:: ../etc/definitions.rst
|
|
||||||
|
|
||||||
|
|
||||||
=================
|
|
||||||
DpGen Reference
|
|
||||||
=================
|
|
||||||
|
|
||||||
The DpGen extension of the Stratus Language reference is generated by LaTeX2HTML_ and is
|
|
||||||
available here: `DpGen <file:../../dpgen/index.html>`_
|
|
|
@ -1,11 +0,0 @@
|
||||||
.. -*- Mode: rst -*-
|
|
||||||
|
|
||||||
.. include:: ../etc/definitions.rst
|
|
||||||
|
|
||||||
|
|
||||||
====================
|
|
||||||
Patterns Reference
|
|
||||||
====================
|
|
||||||
|
|
||||||
The Patterns extension of the Stratus Language reference is generated by LaTeX2HTML_ and is
|
|
||||||
available here: `Patterns <file:../../patterns/index.html>`_
|
|
|
@ -0,0 +1,318 @@
|
||||||
|
==========================
|
||||||
|
Stratus Developper's Guide
|
||||||
|
==========================
|
||||||
|
Sophie Belloeil
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
|
||||||
|
Class Model
|
||||||
|
===========
|
||||||
|
|
||||||
|
Synopsys
|
||||||
|
--------
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
class myClass ( Model ) :
|
||||||
|
...
|
||||||
|
|
||||||
|
exemple = myClass ( name, param )
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Every cell made is a class herited from class ``Model``.
|
||||||
|
Some methods have to be created, like ``Interface``, ``Netlist`` ...
|
||||||
|
Some methods are inherited from the class ``Model``.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
|
||||||
|
- ``name`` : The name of the cell (which is the name of the files which
|
||||||
|
will be created)
|
||||||
|
|
||||||
|
- ``param`` : A dictionnary which gives all the parameters useful in
|
||||||
|
order to create the cell
|
||||||
|
|
||||||
|
Attributes
|
||||||
|
----------
|
||||||
|
|
||||||
|
- ``_name`` : Name of the cell
|
||||||
|
|
||||||
|
- ``_st_insts`` : List of all the instances of the cell
|
||||||
|
|
||||||
|
- ``_st_ports`` : List of all the external nets of the cell (except for
|
||||||
|
alimentations and clock)
|
||||||
|
|
||||||
|
- ``_st_sigs`` : List of all the internal nets of the cell
|
||||||
|
|
||||||
|
- ``_st_vdds``, ``_st_vsss`` : Two tabs of the nets which are
|
||||||
|
instancied as ``VddIn`` and ``VssIn``
|
||||||
|
|
||||||
|
- ``_st_cks`` : List of all the nets which are instancied as ``CkIn``
|
||||||
|
|
||||||
|
- ``_st_merge`` : List of all the internal nets which have to be merged
|
||||||
|
|
||||||
|
- ``_param`` : The map given as argument at the creation of the cell
|
||||||
|
|
||||||
|
- ``_underCells`` : List of all the instances which are cells that have
|
||||||
|
to be created
|
||||||
|
|
||||||
|
- ``_and``, ``_or``, ``_xor``, ``_not``, ``_buff``, ``_mux``, ``_reg``,
|
||||||
|
``_shift``, ``_comp``, ``_add``, ``_mult``, ``_div`` : tells which
|
||||||
|
generator to use when using overloard
|
||||||
|
|
||||||
|
- ``_NB_INST`` : The number of instances of the cell (useful in order
|
||||||
|
to automatically give a name to the instances)
|
||||||
|
|
||||||
|
- ``_TAB_NETS_OUT`` and ``_TAB_NETS_CAT`` : Lists of all the nets
|
||||||
|
automatically created
|
||||||
|
|
||||||
|
- ``_insref`` : The reference instance (for placement)
|
||||||
|
|
||||||
|
And, in connection with Hurricane :
|
||||||
|
|
||||||
|
- ``_hur_cell`` : The hurricane cell (None by default)
|
||||||
|
|
||||||
|
- ``_db`` : The database
|
||||||
|
|
||||||
|
- ``_lib0`` : ``self._db.Get_CATA_LIB ( 0 )``
|
||||||
|
|
||||||
|
- ``_nb_alims_verticales``, ``_nb_pins``, ``_nb_vdd_pins``,
|
||||||
|
``_nb_vss_pins``, ``standard_instances_list``, ``pad_north``,
|
||||||
|
``pad_south``, ``pad_east``, ``pad_west`` : all place and route
|
||||||
|
stuffs ...
|
||||||
|
|
||||||
|
Methods
|
||||||
|
-------
|
||||||
|
|
||||||
|
Methods of class ``Model`` are listed below :
|
||||||
|
|
||||||
|
- ``HurricanePlug`` : 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.
|
||||||
|
|
||||||
|
- ``View`` : Opens/Refreshes the editor in order to see the created
|
||||||
|
layout
|
||||||
|
|
||||||
|
- ``Quit`` : Finishes a cell without saving
|
||||||
|
|
||||||
|
- ``Save`` : Saves the created cell
|
||||||
|
If several cells have been created, they are all going to be saved
|
||||||
|
in separated files
|
||||||
|
|
||||||
|
Some of those methods have to be defined in order to create a new cell :
|
||||||
|
|
||||||
|
- ``Interface`` : Description of the external ports of the cell
|
||||||
|
|
||||||
|
- ``Netlist`` : Description of the netlist of the cell
|
||||||
|
|
||||||
|
- ``Layout`` : Description of the layout of the cell
|
||||||
|
|
||||||
|
- ``Vbe`` : Description of the behavior of the cell
|
||||||
|
|
||||||
|
- ``Pattern`` : Description of the patterns in order to test the cell
|
||||||
|
|
||||||
|
Nets
|
||||||
|
====
|
||||||
|
|
||||||
|
Synopsys
|
||||||
|
--------
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
netInput = LogicIn ( name, arity )
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Instanciation of net. Differents kind of nets are listed below :
|
||||||
|
|
||||||
|
- ``LogicIn`` : Creation of an input port
|
||||||
|
|
||||||
|
- ``LogicOut`` : Creation of an output port
|
||||||
|
|
||||||
|
- ``LogicInOut`` : Creation of an inout port
|
||||||
|
|
||||||
|
- ``LogicUnknown`` : Creation of an input/output port which direction
|
||||||
|
is not defined
|
||||||
|
|
||||||
|
- ``TriState`` : Creation of a tristate port
|
||||||
|
|
||||||
|
- ``CkIn`` : Creation of a clock port
|
||||||
|
|
||||||
|
- ``VddIn`` : Creation of the vdd alimentation
|
||||||
|
|
||||||
|
- ``VssIn`` : Creation of the vss alimentation
|
||||||
|
|
||||||
|
- ``Signal`` : Creation of an internal net
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
|
||||||
|
- ``name`` : Name of the net (mandatory argument)
|
||||||
|
|
||||||
|
- ``arity`` : Arity of the net (mandatory argument)
|
||||||
|
|
||||||
|
- ``indice`` : For buses only : the LSB bit (optional argument : set
|
||||||
|
to 0 by default)
|
||||||
|
|
||||||
|
Only ``CkIn, ``\ ``VddIn`` and ``VssIn`` do not have the same parameters: there is only the ``name`` parameter (they are 1 bit nets).
|
||||||
|
|
||||||
|
Attributes
|
||||||
|
----------
|
||||||
|
|
||||||
|
- ``_name`` : Name of the net
|
||||||
|
|
||||||
|
- ``_arity`` : Arity of the net (by default set to 0)
|
||||||
|
|
||||||
|
- ``_ind`` : LSB of the net
|
||||||
|
|
||||||
|
- ``_ext`` : Tells if the net is external or not (True/False)
|
||||||
|
|
||||||
|
- ``_direct`` : If the net is external, tells the direction (“IN”,
|
||||||
|
“OUT”, “INOUT”, “TRISTATE”, “UNKNOWN”)
|
||||||
|
|
||||||
|
- ``_h_type`` : If the net is an alimentation or a clock, tells the
|
||||||
|
type (“POWER”, “GROUND”, “CLOCK”)
|
||||||
|
|
||||||
|
- ``_type`` : The arithmetic type of the net ( “nr” )
|
||||||
|
|
||||||
|
- ``_st_cell`` : The stratus cell which the net is instanciated in
|
||||||
|
|
||||||
|
- ``_real_net`` : If the net is a part of a net (Sig) it is the real
|
||||||
|
net corresponding
|
||||||
|
|
||||||
|
- ``_alias`` : [] 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
|
||||||
|
|
||||||
|
- ``_to_merge`` : [] by default. The same as \_alias
|
||||||
|
|
||||||
|
- | ``_to_cat`` : [] by default. The same as \_alias
|
||||||
|
|
||||||
|
And, in connection with Hurricane :
|
||||||
|
|
||||||
|
- ``_hur_net`` : 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 : ``net._hur_net[0]`` ).
|
||||||
|
|
||||||
|
Methods
|
||||||
|
-------
|
||||||
|
|
||||||
|
- ``Buffer`` : Instanciation of a Buffer
|
||||||
|
|
||||||
|
- ``Shift`` : Instanciation of a shifter
|
||||||
|
|
||||||
|
- ``Mux`` : Instanciation of a multiplexor
|
||||||
|
|
||||||
|
- ``Reg`` : Instanciation of a register
|
||||||
|
|
||||||
|
- ``Eq/Ne`` : Instanciation of comparison generator
|
||||||
|
|
||||||
|
- ``Extend`` : A net is extended
|
||||||
|
|
||||||
|
- ``Alias`` : A net is an alias of another net
|
||||||
|
|
||||||
|
- | ``Delete`` : Deletion of the Hurricane nets
|
||||||
|
|
||||||
|
And the overloards :
|
||||||
|
|
||||||
|
- \_\_init\_\_ : Initialisation of nets
|
||||||
|
|
||||||
|
- \_\_le\_\_ : initialisation of a net thanks to <= notation
|
||||||
|
|
||||||
|
- \_\_getitem\_\_, \_\_geslice\_\_ : Creation of “Sig” nets : which are
|
||||||
|
part of nets (use of ``[]`` and ``[:]``)
|
||||||
|
|
||||||
|
- \_\_and\_\_, \_\_or\_\_, \_\_xor\_\_, \_\_invert\_\_ : boolean
|
||||||
|
operation with &, \|, ^ ,
|
||||||
|
|
||||||
|
- \_\_add\_\_, \_\_mul\_\_, \_\_div\_\_ : arithmetic operators with +,
|
||||||
|
\* and /
|
||||||
|
|
||||||
|
Instances
|
||||||
|
=========
|
||||||
|
|
||||||
|
Synopsys
|
||||||
|
--------
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
Inst ( model
|
||||||
|
, name
|
||||||
|
, param = myParam
|
||||||
|
, map = myMap
|
||||||
|
)
|
||||||
|
|
||||||
|
Description
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Instantiation of an instance. The type of the instance is given by the
|
||||||
|
``model`` parameter. The connexions are made thanks to the ``map``
|
||||||
|
parameters.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
|
||||||
|
- ``model`` : Name of the mastercell of the instance to create
|
||||||
|
(mandatory argument)
|
||||||
|
|
||||||
|
- ``name`` : 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.
|
||||||
|
|
||||||
|
- ``param`` : Dictionnary for parameters of the mastercell (optional :
|
||||||
|
only for mastercells which require it)
|
||||||
|
|
||||||
|
- ``map`` : Dictionnary for connexions in order to make the netlist
|
||||||
|
|
||||||
|
Attributes
|
||||||
|
----------
|
||||||
|
|
||||||
|
- ``_name`` : Name of the instance (the name given as parameter if
|
||||||
|
there’s one, a name created otherwise)
|
||||||
|
|
||||||
|
- ``_model`` : Name of the model given as argument
|
||||||
|
|
||||||
|
- ``_real_model`` : Name of the model created thanks to ``_model`` and
|
||||||
|
all the parameters
|
||||||
|
|
||||||
|
- ``_map`` : Dictionnary ``map`` given at the instanciation
|
||||||
|
|
||||||
|
- ``_param`` : Dictionnary ``param`` given at the instanciation
|
||||||
|
|
||||||
|
- ``_st_cell`` : The stratus cell which the instance is instanciated in
|
||||||
|
|
||||||
|
- ``_st_masterCell`` : The stratus master cell of the instance
|
||||||
|
|
||||||
|
For placement :
|
||||||
|
|
||||||
|
- ``_plac`` : tells if the instance is placed or not (UNPLACED by
|
||||||
|
default)
|
||||||
|
|
||||||
|
- ``_x``, ``_y`` : the coordinates of the instance (only for placed
|
||||||
|
instances)
|
||||||
|
|
||||||
|
- ``_sym`` : the symetry of the instance (only for placed instances)
|
||||||
|
|
||||||
|
And, in connection with Hurricane :
|
||||||
|
|
||||||
|
- ``_hur_instance`` : The hurricane instance (None by default)
|
||||||
|
|
||||||
|
- ``_hur_masterCell`` : The Hurricane master cell of the instance (None
|
||||||
|
by default)
|
||||||
|
|
||||||
|
Methods
|
||||||
|
-------
|
||||||
|
|
||||||
|
- Delete : Deletion of the Hurricane instance
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,260 @@
|
||||||
|
============================
|
||||||
|
Patterns module User's Guide
|
||||||
|
============================
|
||||||
|
Roselyne Chotin-Avot
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
|
||||||
|
Description
|
||||||
|
===========
|
||||||
|
|
||||||
|
The patterns module of *Stratus* is a set of *Python* classes and
|
||||||
|
methods that allows a procedural description of input pattern file for
|
||||||
|
the logic simulator. The *Stratus* ``Pattern`` method produces a pattern
|
||||||
|
description file as output. The file generated by ``Pattern`` method is
|
||||||
|
in pat format, so IT IS STRONGLY RECOMMENDED TO SEE pat(5) manual BEFORE
|
||||||
|
TO USE IT.
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
======
|
||||||
|
|
||||||
|
From a user point of view, ``Pattern`` method is a pattern description
|
||||||
|
language using all standard *Python* facilities. Here follows the
|
||||||
|
description of the ``Pattern`` method.
|
||||||
|
A pat format file can be divided in two parts : declaration and
|
||||||
|
description part.
|
||||||
|
The declaration part is the list of inputs, outputs, internal signals
|
||||||
|
and registers. Inputs are to be forced to a certain value and all the
|
||||||
|
others are to be observed during simulation.
|
||||||
|
The description part is a set of patterns, where each pattern defines
|
||||||
|
the value of inputs and outputs. The pattern number represents actually
|
||||||
|
the absolute time for the simulator.
|
||||||
|
Similarly, a ``Pattern`` method can be divided in two parts :
|
||||||
|
declaration and description part. Methods related to the declaration
|
||||||
|
must be called before any function related to the description part.
|
||||||
|
|
||||||
|
Declaration part
|
||||||
|
----------------
|
||||||
|
|
||||||
|
The first thing you should do in this part is to instantiate the class
|
||||||
|
``Patwrite`` to have access to all patterns declaration and description
|
||||||
|
methods. The constructor of this class take as parameters the name of
|
||||||
|
pattern output file and the *Stratus* cell that is described (see
|
||||||
|
``PatWrite`` [patwrite]).
|
||||||
|
Then, this part allows you to declare the inputs, the outputs, and
|
||||||
|
internal observing points (see ``declar``\ [declar] and
|
||||||
|
``declar_interface`` [declar:sub:`i`\ nterface]).
|
||||||
|
|
||||||
|
Description part
|
||||||
|
----------------
|
||||||
|
|
||||||
|
After all signals are declared, you can begin the description part (see
|
||||||
|
``pattern_begin`` [pattern:sub:`b`\ egin]). In this part you have to
|
||||||
|
define input values which are to be applied to the inputs of the circuit
|
||||||
|
or output values which are to be compare with the values produced during
|
||||||
|
the simulation. (see ``affect`` [affect], ``affect_any``
|
||||||
|
[affect:sub:`a`\ ny], ``affect_int`` [affect:sub:`i`\ nt] and
|
||||||
|
``affect_fix`` [affect:sub:`f`\ ix]). ``Pattern`` method describes the
|
||||||
|
stimulus by event : only signal transitions are described. After each
|
||||||
|
event there is a new input in the pattern file (see ``addpat``
|
||||||
|
[addpat]). Last thing you should do in this part is to generate the
|
||||||
|
output file (see ``pattern_end`` [pattern:sub:`e`\ nd]).
|
||||||
|
|
||||||
|
Methods
|
||||||
|
=======
|
||||||
|
|
||||||
|
PatWrite
|
||||||
|
--------
|
||||||
|
|
||||||
|
This class is used to create patterns for *Stratus* models. Currently it
|
||||||
|
only supports Alliance “.pat” pattern format. Patterns time stamps are
|
||||||
|
in the “absolute date” format, “relative date” isn’t allowed. Legal time
|
||||||
|
unit are ps (default), ns, us and ms. The constructor takes as
|
||||||
|
parameters the pattern output filename and an optional reference to
|
||||||
|
Stratus cell.
|
||||||
|
|
||||||
|
declar
|
||||||
|
------
|
||||||
|
|
||||||
|
Adds a connector from a Stratus model to the pattern interface. Writes
|
||||||
|
the corresponding connector declaration in the pattern file with name,
|
||||||
|
arity and direction automatically extracted from the connector
|
||||||
|
properties.
|
||||||
|
Supported Stratus connectors are:
|
||||||
|
|
||||||
|
- SignalIn,
|
||||||
|
|
||||||
|
- SignalOut (only supported if used as an output),
|
||||||
|
|
||||||
|
- VddIn,
|
||||||
|
|
||||||
|
- VssIn,
|
||||||
|
|
||||||
|
- CkIn,
|
||||||
|
|
||||||
|
- SignalInOut,
|
||||||
|
|
||||||
|
- TriState (always an output),
|
||||||
|
|
||||||
|
- Signals.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
- connector : can either be a reference to a stratus net or a string
|
||||||
|
containing the name of the stratus net.
|
||||||
|
|
||||||
|
- format : optional format for the connectors values into the pattern
|
||||||
|
file, accepted values are :
|
||||||
|
|
||||||
|
- ’B’: binary (default),
|
||||||
|
|
||||||
|
- ’X’: hexadecimal,
|
||||||
|
|
||||||
|
- ’O’: octal.
|
||||||
|
|
||||||
|
declar\_interface
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Adds all the connectors from a Stratus model to the pattern interface.
|
||||||
|
Write the corresponding connector declaration in the pattern file with
|
||||||
|
name, arity and direction directly taken from the connector proprieties.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
- cell : the tested Stratus model reference. Optional if a reference to
|
||||||
|
the tested Stratus model was given during instanciation[patwrite].
|
||||||
|
|
||||||
|
- format : optional format for the connectors values into the pattern
|
||||||
|
file, accepted values are :
|
||||||
|
|
||||||
|
- ’B’: binary (default),
|
||||||
|
|
||||||
|
- ’X’: hexadecimal,
|
||||||
|
|
||||||
|
- ’O’: octal.
|
||||||
|
|
||||||
|
declar
|
||||||
|
------
|
||||||
|
|
||||||
|
Affect a string value to a connector.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
- connector : *Stratus* connector
|
||||||
|
|
||||||
|
- value : string to affect to connector
|
||||||
|
|
||||||
|
affect\_int
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Affect an integer (CA2) value to a connector. Convert the 2’s complement
|
||||||
|
value to the corresponding binary value. The binary size is taken from
|
||||||
|
the connector arity. If the connector is an output, the binary value is
|
||||||
|
preceded by “?”.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
- connector : *Stratus* connector.
|
||||||
|
|
||||||
|
- value : 2’s complement value to affect to the connector.
|
||||||
|
|
||||||
|
affect\_fix
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Affect a fixed point value to a connector. Convert the floating point
|
||||||
|
input value to the corresponding fixed point value with
|
||||||
|
word\_length=connector.arity() and integer\_word\_length=iwl. If the
|
||||||
|
connector is an output, the binary value is preceded by “?”.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
- connector : *Stratus* connector.
|
||||||
|
|
||||||
|
- value : floating point value to convert and asign to connector.
|
||||||
|
|
||||||
|
- iwl : integer word length
|
||||||
|
|
||||||
|
affect\_any
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Disable comparison between this connector value and the one calculated
|
||||||
|
during simulation.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
- connector : *Stratus* connector.
|
||||||
|
|
||||||
|
addpat
|
||||||
|
------
|
||||||
|
|
||||||
|
Adds a pattern in the pattern file.
|
||||||
|
|
||||||
|
pattern\_begin
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Mark the end of the interface declaration and the beginning of the test
|
||||||
|
vectors.
|
||||||
|
|
||||||
|
pattern\_end
|
||||||
|
------------
|
||||||
|
|
||||||
|
Mark the end of the test vectors and of the patterns file.
|
||||||
|
|
||||||
|
Example
|
||||||
|
=======
|
||||||
|
|
||||||
|
``Pattern`` method for an addaccu
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
def Pattern(self):
|
||||||
|
# initialisation
|
||||||
|
pat = PatWrite(self._name+'.pat',self)
|
||||||
|
|
||||||
|
# declaration of ports
|
||||||
|
pat.declar(self.ck, 'B')
|
||||||
|
pat.declar(self.load, 'B')
|
||||||
|
pat.declar(self.input, 'X')
|
||||||
|
pat.declar(self.output, 'X')
|
||||||
|
pat.declar(self.vdd, 'B')
|
||||||
|
pat.declar(self.vss, 'B')
|
||||||
|
|
||||||
|
# use of pat.declar_interface(self) has the same effect
|
||||||
|
|
||||||
|
# description beginning
|
||||||
|
pat.pattern_begin()
|
||||||
|
|
||||||
|
# affect vdd and vss values
|
||||||
|
pat.affect_int(self.vdd,1)
|
||||||
|
pat.affect_int(self.vss,0)
|
||||||
|
|
||||||
|
# first pattern : load an initial value
|
||||||
|
pat.affect_int(self.input,5)
|
||||||
|
pat.affect_int(self.load,1)
|
||||||
|
pat.affect_int(self.ck,0)
|
||||||
|
# add the pattern in the pattern file
|
||||||
|
pat.addpat()
|
||||||
|
# compute next event
|
||||||
|
pat.affect_int(self.ck,1)
|
||||||
|
pat.addpat()
|
||||||
|
|
||||||
|
# compute 22 cycle of accumulation
|
||||||
|
pat.affect_int(self.load,0)
|
||||||
|
for i in range(1,22):
|
||||||
|
pat.affect_int(self.ck,0)
|
||||||
|
pat.addpat()
|
||||||
|
pat.affect_int(self.ck,1)
|
||||||
|
pat.affect_int(self.output,i+5)
|
||||||
|
pat.addpat()
|
||||||
|
|
||||||
|
# end of the description
|
||||||
|
pat.pattern_end()
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
.. -*- Mode: rst -*-
|
|
||||||
|
|
||||||
.. include:: ../etc/definitions.rst
|
|
||||||
|
|
||||||
|
|
||||||
===================
|
|
||||||
Stratus Reference
|
|
||||||
===================
|
|
||||||
|
|
||||||
The Stratus Language reference is generated by LaTeX2HTML_ and is
|
|
||||||
available here: `Stratus <file:../../stratus/index.html>`_
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
doc_en_latex_imagesdir = $(datadir)/doc/en/latex/stratus/images
|
||||||
|
|
||||||
|
doc_en_latex_images_DATA = add1.png \
|
||||||
|
add2.png \
|
||||||
|
addaccu.png \
|
||||||
|
editor.png \
|
||||||
|
test.png \
|
||||||
|
xml.png
|
||||||
|
|
||||||
|
EXTRA_DIST = $(doc_en_latex_images_DATA)
|
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 949 B |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 43 KiB |
|
@ -0,0 +1,20 @@
|
||||||
|
.. -*- mode: rst; explicit-buffer-name: "index.rst<Stratus>" -*-
|
||||||
|
|
||||||
|
.. include:: ../etc/definitions.rst
|
||||||
|
|
||||||
|
|
||||||
|
==================================
|
||||||
|
Stratus : Netlist Capture Language
|
||||||
|
==================================
|
||||||
|
|
||||||
|
Printable version of this document `Stratus.pdf <../../../pdf/main/Stratus.pdf>`_.
|
||||||
|
|
||||||
|
Stratus – Procedural design language based upon *Python*
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
Language.rst
|
||||||
|
Developper.rst
|
||||||
|
Pattern.rst
|
||||||
|
DpGen.rst
|
|
@ -0,0 +1,15 @@
|
||||||
|
.. -*- Mode: rst -*-
|
||||||
|
|
||||||
|
.. include:: ../etc/definitions.rst
|
||||||
|
|
||||||
|
|
||||||
|
=======================
|
||||||
|
Stratus User's Guide
|
||||||
|
=======================
|
||||||
|
|
||||||
|
|pagestylefancy|
|
||||||
|
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
||||||
|
|newpage|
|
|
@ -17,15 +17,11 @@
|
||||||
<span class="linkdescr">Graphical Interface C++ API</span></p>
|
<span class="linkdescr">Graphical Interface C++ API</span></p>
|
||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td width="50%">
|
<tr><td width="50%">
|
||||||
<p class="biglink"><a class="biglink" href="{{ pathto("DpGen/DpGen") }}">DpGen Extension (Stratus)</a><br/>
|
|
||||||
<span class="linkdescr">Netlist Capture extension for Datapathes</span></p>
|
|
||||||
</td><td width="50%">
|
</td><td width="50%">
|
||||||
<p class="biglink"><a class="biglink" href="{{ pathto("CrlCore/CrlCore") }}">CRL Core Reference</a><br/>
|
<p class="biglink"><a class="biglink" href="{{ pathto("CrlCore/CrlCore") }}">CRL Core Reference</a><br/>
|
||||||
<span class="linkdescr">Parser/Drivers (I/O) C++ API</span></p>
|
<span class="linkdescr">Parser/Drivers (I/O) C++ API</span></p>
|
||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td width="50%">
|
<tr><td width="50%">
|
||||||
<p class="biglink"><a class="biglink" href="{{ pathto("Patterns/Patterns") }}">Patterns Extension (Stratus)</a><br/>
|
|
||||||
<span class="linkdescr">Patterns generation extension</span></p>
|
|
||||||
</td><td width="50%">
|
</td><td width="50%">
|
||||||
<p class="biglink"><a class="biglink" href="{{ pathto("Unicorn/Unicorn") }}">Unicorn Reference</a><br/>
|
<p class="biglink"><a class="biglink" href="{{ pathto("Unicorn/Unicorn") }}">Unicorn Reference</a><br/>
|
||||||
<span class="linkdescr">Main GUI C++ API</span></p>
|
<span class="linkdescr">Main GUI C++ API</span></p>
|
||||||
|
|
|
@ -66,6 +66,7 @@ release = '2'
|
||||||
# directories to ignore when looking for source files.
|
# directories to ignore when looking for source files.
|
||||||
exclude_patterns = ['_build', 'UsersGuide/UsersGuide.rst', 'UsersGuide/pdfHeader.rst'
|
exclude_patterns = ['_build', 'UsersGuide/UsersGuide.rst', 'UsersGuide/pdfHeader.rst'
|
||||||
, 'PythonCpp/PythonCpp.rst' , 'PythonCpp/pdfHeader.rst'
|
, 'PythonCpp/PythonCpp.rst' , 'PythonCpp/pdfHeader.rst'
|
||||||
|
, 'Stratus/Stratus.rst' , 'Stratus/pdfHeader.rst'
|
||||||
, 'RDS/RDS.rst' , 'RDS/pdfHeader.rst' ]
|
, 'RDS/RDS.rst' , 'RDS/pdfHeader.rst' ]
|
||||||
|
|
||||||
# The reST default role (used for this markup: `text`) to use for all documents.
|
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||||
|
|
|
@ -13,9 +13,7 @@ Contents:
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
|
||||||
UsersGuide/index.rst
|
UsersGuide/index.rst
|
||||||
Stratus/Stratus.rst
|
Stratus/index.rst
|
||||||
DpGen/DpGen.rst
|
|
||||||
Patterns/Patterns.rst
|
|
||||||
Hurricane/Hurricane.rst
|
Hurricane/Hurricane.rst
|
||||||
Viewer/Viewer.rst
|
Viewer/Viewer.rst
|
||||||
CrlCore/CrlCore.rst
|
CrlCore/CrlCore.rst
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
|
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
|
||||||
project(STRATUS1)
|
project(STRATUS1)
|
||||||
|
|
||||||
option(BUILD_DOC "Build the documentation (latex2html)" OFF)
|
# option(BUILD_DOC "Build the documentation (latex2html)" OFF)
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.4.0)
|
cmake_minimum_required(VERSION 2.4.0)
|
||||||
list(INSERT CMAKE_MODULE_PATH 0 "${DESTDIR}$ENV{CORIOLIS_TOP}/share/cmake/Modules/")
|
list(INSERT CMAKE_MODULE_PATH 0 "${DESTDIR}$ENV{CORIOLIS_TOP}/share/cmake/Modules/")
|
||||||
|
@ -22,12 +22,12 @@
|
||||||
find_package(VLSISAPD REQUIRED)
|
find_package(VLSISAPD REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
find_package(HURRICANE REQUIRED)
|
||||||
find_package(CORIOLIS REQUIRED)
|
find_package(CORIOLIS REQUIRED)
|
||||||
if(BUILD_DOC)
|
#if(BUILD_DOC)
|
||||||
include(UseLATEX)
|
# include(UseLATEX)
|
||||||
endif(BUILD_DOC)
|
#endif(BUILD_DOC)
|
||||||
|
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
add_subdirectory(etc)
|
add_subdirectory(etc)
|
||||||
if(BUILD_DOC)
|
#if(BUILD_DOC)
|
||||||
add_subdirectory(doc)
|
# add_subdirectory(doc)
|
||||||
endif(BUILD_DOC)
|
#endif(BUILD_DOC)
|
||||||
|
|
|
@ -16,12 +16,12 @@ Makefile
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/lib/Makefile
|
src/lib/Makefile
|
||||||
src/dpgen/Makefile
|
src/dpgen/Makefile
|
||||||
doc/Makefile
|
#doc/Makefile
|
||||||
doc/stratus/Makefile
|
#doc/stratus/Makefile
|
||||||
doc/stratus/images/Makefile
|
#doc/stratus/images/Makefile
|
||||||
doc/developper/Makefile
|
#doc/developper/Makefile
|
||||||
doc/dpgen/Makefile
|
#doc/dpgen/Makefile
|
||||||
doc/patterns/Makefile
|
#doc/patterns/Makefile
|
||||||
etc/Makefile
|
etc/Makefile
|
||||||
modules/Makefile
|
modules/Makefile
|
||||||
modules/patterns/Makefile
|
modules/patterns/Makefile
|
||||||
|
|