88import vtypes
99
1010class Interface (vtypes .VeriloggenNode ):
11- def __init__ (self , module , prefix = '' , postfix = '' , io = False ):
11+ def __init__ (self , module , prefix = '' , postfix = '' ):
1212 self .module = module
1313 self .prefix = prefix
1414 self .postfix = postfix
15- self .io = io
1615
16+ def get_name (self , name ):
17+ return self .prefix + name + self .postfix
18+
19+ def get_basename (self , name ):
20+ return re .sub (r'' + self .postfix + '$' , '' , name .replace (self .prefix , '' , 1 ))
21+
22+
1723 def Input (self , name , width = 1 , length = None , signed = False , value = None ):
18- new_name = self .prefix + name + self . postfix
24+ new_name = self .get_name ( name )
1925 return self .module .Input (name , width , length , signed , value )
2026
2127 def Output (self , name , width = 1 , length = None , signed = False , value = None ):
22- new_name = self .prefix + name + self . postfix
28+ new_name = self .get_name ( name )
2329 return self .module .Output (name , width , length , signed , value )
2430
2531 def OutputReg (self , name , width = 1 , length = None , signed = False , value = None ):
26- new_name = self .prefix + name + self . postfix
32+ new_name = self .get_name ( name )
2733 return self .module .OutputReg (name , width , length , signed , value )
2834
2935 def Inout (self , name , width = 1 , length = None , signed = False , value = None ):
30- new_name = self .prefix + name + self . postfix
36+ new_name = self .get_name ( name )
3137 return self .module .Inout (name , width , length , signed , value )
3238
3339 def Reg (self , name , width = 1 , length = None , signed = False , value = None ):
34- new_name = self .prefix + name + self . postfix
40+ new_name = self .get_name ( name )
3541 return self .module .Reg (name , width , length , signed , value )
3642
3743 def Wire (self , name , width = 1 , length = None , signed = False , value = None ):
38- new_name = self .prefix + name + self . postfix
44+ new_name = self .get_name ( name )
3945 return self .module .Wire (name , width , length , signed , value )
4046
4147 def Parameter (self , name , value , width = None , signed = False ):
42- new_name = self .prefix + name + self . postfix
48+ new_name = self .get_name ( name )
4349 return self .module .Parameter (name , value , width , signed )
4450
4551 def Localparam (self , name , value , width = None , signed = False ):
46- new_name = self .prefix + name + self . postfix
52+ new_name = self .get_name ( name )
4753 return self .module .Localparam (name , value , width , signed )
4854
4955 def connectAllPorts (self , prefix = '' , postfix = '' ):
@@ -54,19 +60,19 @@ def connectAllPorts(self, prefix='', postfix=''):
5460 wires = [ s for s in self .__dir__ () if isinstance (getattr (self , s ), vtypes .Wire ) ]
5561 ret = collections .OrderedDict ()
5662 for p in inputs :
57- name = prefix + re . sub ( r'' + self .postfix + '$' , '' , getattr (self , p ).name . replace ( self . prefix , '' , 1 ) ) + postfix
63+ name = prefix + self .get_basename ( getattr (self , p ).name ) + postfix
5864 ret [name ] = getattr (self , p )
5965 for p in outputs :
60- name = prefix + re . sub ( r'' + self .postfix + '$' , '' , getattr (self , p ).name . replace ( self . prefix , '' , 1 ) ) + postfix
66+ name = prefix + self .get_basename ( getattr (self , p ).name ) + postfix
6167 ret [name ] = getattr (self , p )
6268 for p in inouts :
63- name = prefix + re . sub ( r'' + self .postfix + '$' , '' , getattr (self , p ).name . replace ( self . prefix , '' , 1 ) ) + postfix
69+ name = prefix + self .get_basename ( getattr (self , p ).name ) + postfix
6470 ret [name ] = getattr (self , p )
6571 for p in regs :
66- name = prefix + re . sub ( r'' + self .postfix + '$' , '' , getattr (self , p ).name . replace ( self . prefix , '' , 1 ) ) + postfix
72+ name = prefix + self .get_basename ( getattr (self , p ).name ) + postfix
6773 ret [name ] = getattr (self , p )
6874 for p in wires :
69- name = prefix + re . sub ( r'' + self .postfix + '$' , '' , getattr (self , p ).name . replace ( self . prefix , '' , 1 ) ) + postfix
75+ name = prefix + self .get_basename ( getattr (self , p ).name ) + postfix
7076 ret [name ] = getattr (self , p )
7177 return ret
7278
@@ -75,10 +81,10 @@ def connectAllParameters(self, prefix='', postfix=''):
7581 localparams = [ s for s in self .__dir__ () if isinstance (getattr (self , s ), vtypes .Localparam ) ]
7682 ret = collections .OrderedDict ()
7783 for p in parameters :
78- name = prefix + re . sub ( r'' + self .postfix + '$' , '' , getattr (self , p ).name . replace ( self . prefix , '' , 1 ) ) + postfix
84+ name = prefix + self .get_basename ( getattr (self , p ).name ) + postfix
7985 ret [name ] = getattr (self , p )
8086 for p in localparams :
81- name = prefix + re . sub ( r'' + self .postfix + '$' , '' , getattr (self , p ).name . replace ( self . prefix , '' , 1 ) ) + postfix
87+ name = prefix + self .get_basename ( getattr (self , p ).name ) + postfix
8288 ret [name ] = getattr (self , p )
8389 return ret
8490
0 commit comments