55sys .path .insert (0 , os .path .dirname (os .path .abspath (__file__ )))
66
77import vtypes
8+ import function
9+
810import to_verilog
911
1012class Module (object ):
@@ -15,9 +17,11 @@ def __init__(self, name=None):
1517 self .io_variable = collections .OrderedDict ()
1618 self .constant = collections .OrderedDict ()
1719 self .global_constant = collections .OrderedDict ()
20+ self .function = []
1821 self .assign = []
1922 self .always = []
2023 self .instance = collections .OrderedDict ()
24+ self .submodule = {}
2125
2226 #---------------------------------------------------------------------------
2327 def Input (self , name , width = None , length = None , signed = False , value = None ):
@@ -52,6 +56,21 @@ def Reg(self, name, width=None, length=None, signed=False, value=None):
5256 self .variable [name ] = t
5357 return t
5458
59+ def Integer (self , name , width = None , length = None , signed = False , value = None ):
60+ t = vtypes .Integer (name , width , length , signed , value )
61+ self .variable [name ] = t
62+ return t
63+
64+ def Real (self , name , width = None , length = None , signed = False , value = None ):
65+ t = vtypes .Real (name , width , length , signed , value )
66+ self .variable [name ] = t
67+ return t
68+
69+ def Genvar (self , name , width = None , length = None , signed = False , value = None ):
70+ t = vtypes .Genvar (name , width , length , signed , value )
71+ self .variable [name ] = t
72+ return t
73+
5574 def Parameter (self , name , value , width = None , signed = False , length = None ):
5675 t = vtypes .Parameter (name , value , width , signed )
5776 self .global_constant [name ] = t
@@ -73,9 +92,17 @@ def Assign(self, statement):
7392 self .assign .append (t )
7493 return t
7594
95+ #---------------------------------------------------------------------------
96+ def Function (self , name , width = 1 ):
97+ t = function .Function (name , width )
98+ self .function .append (t )
99+ return t
100+
101+ #---------------------------------------------------------------------------
76102 def Instance (self , module , instname , params , ports ):
77103 t = vtypes .Instance (module , instname , params , ports )
78104 self .instance [instname ] = t
105+ self .submodule [module .name ] = module
79106 return t
80107
81108 #---------------------------------------------------------------------------
0 commit comments