66
77import veriloggen .core .vtypes as vtypes
88
9- #-------------------------------------------------------------------------------
9+
1010class Function (vtypes .VeriloggenNode ):
11+
1112 def __init__ (self , name , width = 1 ):
1213 vtypes .VeriloggenNode .__init__ (self )
1314 self .name = name
@@ -19,22 +20,21 @@ def __init__(self, name, width=1):
1920 self .statement = None
2021 self .subst = []
2122
22- #---------------------------------------------------------------------------
2323 def Input (self , name , width = None , length = None , signed = False , value = None ):
2424 t = vtypes .Input (width , length , signed , value , name = name )
2525 self .io_variable [name ] = t
2626 return t
27-
27+
2828 def Reg (self , name , width = None , length = None , signed = False , value = None ):
2929 t = vtypes .Reg (width , length , signed , value , name = name )
3030 self .variable [name ] = t
3131 return t
32-
32+
3333 def Integer (self , name , width = None , length = None , signed = False , value = None ):
3434 t = vtypes .Integer (width , length , signed , value , name = name )
3535 self .variable [name ] = t
3636 return t
37-
37+
3838 def Body (self , * statement ):
3939 if self .statement is not None :
4040 raise ValueError ("Statement is already assigned." )
@@ -47,10 +47,10 @@ def call(self, *args):
4747
4848 def write (self , value ):
4949 return vtypes .Subst (self , value )
50-
50+
5151 def read (self ):
5252 return self
53-
53+
5454 def bit_length (self ):
5555 return self .width
5656
@@ -59,22 +59,24 @@ def _add_subst(self, s):
5959
6060 def _get_subst (self ):
6161 return self .subst
62-
62+
6363 def _set_raw_width (self , msb , lsb ):
6464 self .width_msb = msb
6565 self .width_lsb = lsb
66-
66+
6767 def __setattr__ (self , attr , value ):
6868 # when width or length is overwritten, msb and lsb values are reset.
6969 if attr == 'width' :
7070 object .__setattr__ (self , 'width_msb' , None )
7171 object .__setattr__ (self , 'width_lsb' , None )
7272 object .__setattr__ (self , attr , value )
73-
73+
7474 def __call__ (self , value ):
7575 return self .write (value )
7676
77+
7778class FunctionCall (vtypes ._Numeric ):
79+
7880 def __init__ (self , func , * args ):
7981 vtypes ._Numeric .__init__ (self )
8082 self .func = func
0 commit comments