class myClass ( Model ) : ... exemple = myClass ( name, param )
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.
And, in connection with Hurricane :
Methods of class Model are listed below :
Some of those methods have to be defined in order to create a new cell :
netInput = LogicIn ( name, arity )
Instanciation of net. Differents kind of nets are listed below :
Only CkIn, ``\ ``VddIn and VssIn do not have the same parameters: there is only the name parameter (they are 1 bit nets).
_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
And, in connection with Hurricane :
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
And the overloards :
Inst ( model , name , param = myParam , map = myMap )
Instantiation of an instance. The type of the instance is given by the model parameter. The connexions are made thanks to the map parameters.
For placement :
And, in connection with Hurricane :