Skip to content

Commit b05b697

Browse files
committed
Argument order of vtypes._Variable and its related classes is modified: name is replaced at the last of the argument.
1 parent 44bba61 commit b05b697

File tree

5 files changed

+47
-41
lines changed

5 files changed

+47
-41
lines changed

veriloggen/core/function.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@ def __init__(self, name, width=1):
2020

2121
#---------------------------------------------------------------------------
2222
def Input(self, name, width=None, length=None, signed=False, value=None):
23-
t = vtypes.Input(name, width, length, signed, value)
23+
t = vtypes.Input(width, length, signed, value, name=name)
2424
self.io_variable[name] = t
2525
return t
2626

2727
def Reg(self, name, width=None, length=None, signed=False, value=None):
28-
t = vtypes.Reg(name, width, length, signed, value)
28+
t = vtypes.Reg(width, length, signed, value, name=name)
2929
self.variable[name] = t
3030
return t
3131

3232
def Integer(self, name, width=None, length=None, signed=False, value=None):
33-
t = vtypes.Integer(name, width, length, signed, value)
33+
t = vtypes.Integer(width, length, signed, value, name=name)
3434
self.variable[name] = t
3535
return t
3636

veriloggen/core/module.py

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,42 +37,42 @@ def __init__(self, name=None, tmp_prefix='_tmp'):
3737
# User interface for variables
3838
#---------------------------------------------------------------------------
3939
def Input(self, name, width=None, length=None, signed=False, value=None):
40-
t = vtypes.Input(name, width, length, signed, value)
40+
t = vtypes.Input(width, length, signed, value, name=name)
4141
if not isinstance(self.find_identifier(name), (vtypes.AnyType, vtypes.Wire)):
4242
raise ValueError("Object '%s' is already defined." % name)
4343
self.io_variable[name] = t
4444
self.items.append(t)
4545
return t
4646

4747
def Output(self, name, width=None, length=None, signed=False, value=None):
48-
t = vtypes.Output(name, width, length, signed, value)
48+
t = vtypes.Output(width, length, signed, value, name=name)
4949
if not isinstance(self.find_identifier(name), (vtypes.AnyType, vtypes.Wire, vtypes.Reg)):
5050
raise ValueError("Object '%s' is already defined." % name)
5151
self.io_variable[name] = t
5252
self.items.append(t)
5353
return t
5454

5555
def OutputReg(self, name, width=None, length=None, signed=False, value=None, initval=None):
56-
t = vtypes.Output(name, width, length, signed, value)
56+
t = vtypes.Output(width, length, signed, value, name=name)
5757
if not isinstance(self.find_identifier(name), vtypes.AnyType):
5858
raise ValueError("Object '%s' is already defined." % name)
5959
self.io_variable[name] = t
6060
self.items.append(t)
61-
t = vtypes.Reg(name, width, length, signed, value, initval)
61+
t = vtypes.Reg(width, length, signed, value, initval, name=name)
6262
self.variable[name] = t
6363
self.items.append(t)
6464
return t
6565

6666
def Inout(self, name, width=None, length=None, signed=False, value=None):
67-
t = vtypes.Inout(name, width, length, signed, value)
67+
t = vtypes.Inout(width, length, signed, value, name=name)
6868
if not isinstance(self.find_identifier(name), (vtypes.AnyType, vtypes.Wire)):
6969
raise ValueError("Object '%s' is already defined." % name)
7070
self.io_variable[name] = t
7171
self.items.append(t)
7272
return t
7373

7474
def Wire(self, name, width=None, length=None, signed=False, value=None):
75-
t = vtypes.Wire(name, width, length, signed, value)
75+
t = vtypes.Wire(width, length, signed, value, name=name)
7676
if not isinstance(self.find_identifier(name),
7777
(vtypes.AnyType, vtypes.Input, vtypes.Output)) or self.is_reg(name):
7878
raise ValueError("Object '%s' is already defined." % name)
@@ -85,7 +85,7 @@ def TmpWire(self, width=None, length=None, signed=False, value=None):
8585
return self.Wire(name, width, length, signed, value)
8686

8787
def Reg(self, name, width=None, length=None, signed=False, value=None, initval=None):
88-
t = vtypes.Reg(name, width, length, signed, value, initval)
88+
t = vtypes.Reg(width, length, signed, value, initval, name=name)
8989
if not isinstance(self.find_identifier(name), (vtypes.AnyType, vtypes.Output)):
9090
raise ValueError("Object '%s' is already defined." % name)
9191
self.variable[name] = t
@@ -97,7 +97,7 @@ def TmpReg(self, width=None, length=None, signed=False, value=None, initval=None
9797
return self.Reg(name, width, length, signed, value, initval)
9898

9999
def Integer(self, name, width=None, length=None, signed=False, value=None, initval=None):
100-
t = vtypes.Integer(name, width, length, signed, value, initval)
100+
t = vtypes.Integer(width, length, signed, value, initval, name=name)
101101
if not isinstance(self.find_identifier(name), vtypes.AnyType):
102102
raise ValueError("Object '%s' is already defined." % name)
103103
self.variable[name] = t
@@ -109,7 +109,7 @@ def TmpInteger(self, width=None, length=None, signed=False, value=None, initval=
109109
return self.Integer(name, width, length, signed, value, initval)
110110

111111
def Real(self, name, width=None, length=None, signed=False, value=None, initval=None):
112-
t = vtypes.Real(name, width, length, signed, value, initval)
112+
t = vtypes.Real(width, length, signed, value, initval, name=name)
113113
if not isinstance(self.find_identifier(name), vtypes.AnyType):
114114
raise ValueError("Object '%s' is already defined." % name)
115115
self.variable[name] = t
@@ -121,7 +121,7 @@ def TmpReal(self, width=None, length=None, signed=False, value=None, initval=Non
121121
return self.Real(name, width, length, signed, value, initval)
122122

123123
def Genvar(self, name, width=None, length=None, signed=False, value=None):
124-
t = vtypes.Genvar(name, width, length, signed, value)
124+
t = vtypes.Genvar(width, length, signed, value, name=name)
125125
if not isinstance(self.find_identifier(name), vtypes.AnyType):
126126
raise ValueError("Object '%s' is already defined." % name)
127127
self.variable[name] = t
@@ -133,15 +133,15 @@ def TmpGenvar(self, width=None, length=None, signed=False, value=None):
133133
return self.Genvar(name, width, length, signed, value)
134134

135135
def Parameter(self, name, value, width=None, signed=False, length=None):
136-
t = vtypes.Parameter(name, value, width, signed)
136+
t = vtypes.Parameter(value, width, signed, name=name)
137137
if not isinstance(self.find_identifier(name), vtypes.AnyType):
138138
raise ValueError("Object '%s' is already defined." % name)
139139
self.global_constant[name] = t
140140
self.items.append(t)
141141
return t
142142

143143
def Localparam(self, name, value, width=None, signed=False, length=None):
144-
t = vtypes.Localparam(name, value, width, signed)
144+
t = vtypes.Localparam(value, width, signed, name=name)
145145
if not isinstance(self.find_identifier(name), vtypes.AnyType):
146146
raise ValueError("Object '%s' is already defined." % name)
147147
self.local_constant[name] = t
@@ -500,7 +500,7 @@ def copy_sim_ports(self, src, prefix=None, postfix=None, exclude=None):
500500
for ex in exclude:
501501
if re.match(ex, key): skip = True
502502
if skip: continue
503-
copy_obj = self.get_opposite_variable(obj)(key, copy.deepcopy(obj.width))
503+
copy_obj = self.get_opposite_variable(obj)(name=key, width=copy.deepcopy(obj.width))
504504
copy_obj.name = ''.join([prefix, copy_obj.name, postfix])
505505
copy_obj.width = visitor.visit(copy_obj.width)
506506
copy_obj.signed = obj.signed
@@ -563,6 +563,9 @@ def add_hook(self, method, args=None, kwargs=None):
563563

564564
#---------------------------------------------------------------------------
565565
def add_object(self, obj):
566+
if isinstance(obj, vtypes._Variable) and obj.name is None:
567+
raise ValueError("Object must have a name.")
568+
566569
self.items.append(obj)
567570

568571
if isinstance(obj, vtypes.AnyType):
@@ -665,7 +668,7 @@ def find_identifier(self, name):
665668
if name in self.task: return self.task[name]
666669
if name in self.instance: return self.instance[name]
667670
if name in self.generate: return self.generate[name]
668-
return vtypes.AnyType(name)
671+
return vtypes.AnyType(name=name)
669672

670673
#---------------------------------------------------------------------------
671674
def get_tmp(self):
@@ -711,7 +714,7 @@ def get_opposite_variable(self, var, use_wire=False):
711714
if isinstance(var, vtypes.Inout):
712715
return vtypes.Wire
713716
raise TypeError('No corresponding IO type for %s' % str(type(var)))
714-
717+
715718
#---------------------------------------------------------------------------
716719
def to_hook_resolved_obj(self):
717720
# if there is no hooked method, object copy is not required.
@@ -783,6 +786,9 @@ def to_verilog(self, filename=None):
783786
import veriloggen.verilog.to_verilog as to_verilog
784787
return to_verilog.write_verilog(self, filename)
785788

789+
def resolve_hook(self):
790+
pass
791+
786792
def has_hook(self):
787793
return False
788794

@@ -891,7 +897,7 @@ def find_identifier(self, name):
891897
r = self.m.find_identifier(name)
892898
if r:
893899
return r
894-
return vtypes.AnyType(name)
900+
return vtypes.AnyType(name=name)
895901

896902
def get_modules(self):
897903
modules = collections.OrderedDict()

veriloggen/core/task.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@ def __init__(self, name):
1616

1717
#---------------------------------------------------------------------------
1818
def Input(self, name, width=None, length=None, signed=False, value=None):
19-
t = vtypes.Input(name, width, length, signed, value)
19+
t = vtypes.Input(width, length, signed, value, name=name)
2020
self.io_variable[name] = t
2121
return t
2222

2323
def Reg(self, name, width=None, length=None, signed=False, value=None):
24-
t = vtypes.Reg(name, width, length, signed, value)
24+
t = vtypes.Reg(width, length, signed, value, name=name)
2525
self.variable[name] = t
2626
return t
2727

2828
def Integer(self, name, width=None, length=None, signed=False, value=None):
29-
t = vtypes.Integer(name, width, length, signed, value)
29+
t = vtypes.Integer(width, length, signed, value, name=name)
3030
self.variable[name] = t
3131
return t
3232

veriloggen/core/vtypes.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ def bit_length(self):
257257

258258
#-------------------------------------------------------------------------------
259259
class _Variable(_Numeric):
260-
def __init__(self, name, width=1, length=None, signed=False, value=None, initval=None):
260+
def __init__(self, width=1, length=None, signed=False, value=None, initval=None, name=None):
261261
self.name = name
262262
self.width = width
263263
self.width_msb = None
@@ -381,10 +381,10 @@ class AnyType(_Variable): pass
381381

382382
#-------------------------------------------------------------------------------
383383
class _ParameterVairable(_Variable):
384-
def __init__(self, name, value, width=None, signed=False):
384+
def __init__(self, value, width=None, signed=False, name=None):
385385
if isinstance(value, _ParameterVairable):
386386
value = value.value
387-
_Variable.__init__(self, name, width=width, signed=signed, value=value)
387+
_Variable.__init__(self, width=width, signed=signed, value=value, name=name)
388388

389389
class Parameter(_ParameterVairable): pass
390390
class Localparam(_ParameterVairable): pass

veriloggen/verilog/from_verilog.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ def visit_Portlist(self, node):
137137
def visit_Port(self, node):
138138
if node.type is None:
139139
name = node.name
140-
p = vtypes.AnyType(name)
140+
p = vtypes.AnyType(name=name)
141141
self.add_object(p)
142142
return p
143143

@@ -166,7 +166,7 @@ def visit_Identifier(self, node):
166166
labels.append(node.name)
167167
return vtypes.Scope(*labels)
168168
if not isinstance(self.m, module.Module):
169-
return vtypes.AnyType(node.name)
169+
return vtypes.AnyType(name=node.name)
170170
return self.m.find_identifier(node.name)
171171

172172
def visit_IntConst(self, node):
@@ -182,7 +182,7 @@ def visit_Input(self, node):
182182
name = node.name
183183
width = self.visit(node.width) if node.width is not None else None
184184
signed = node.signed
185-
obj = vtypes.Input(name, width, signed=signed)
185+
obj = vtypes.Input(width, signed=signed, name=name)
186186
if node.width is not None:
187187
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
188188
self.add_object(obj)
@@ -192,7 +192,7 @@ def visit_Output(self, node):
192192
name = node.name
193193
width = self.visit(node.width) if node.width is not None else None
194194
signed = node.signed
195-
obj = vtypes.Output(name, width, signed=signed)
195+
obj = vtypes.Output(width, signed=signed, name=name)
196196
if node.width is not None:
197197
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
198198
self.add_object(obj)
@@ -202,7 +202,7 @@ def visit_Inout(self, node):
202202
name = node.name
203203
width = self.visit(node.width) if node.width is not None else None
204204
signed = node.signed
205-
obj = vtypes.Inout(name, width, signed=signed)
205+
obj = vtypes.Inout(width, signed=signed, name=name)
206206
if node.width is not None:
207207
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
208208
self.add_object(obj)
@@ -212,7 +212,7 @@ def visit_Tri(self, node):
212212
name = node.name
213213
width = self.visit(node.width) if node.width is not None else None
214214
signed = node.signed
215-
obj = vtypes.Tri(name, width, signed=signed)
215+
obj = vtypes.Tri(width, signed=signed, name=name)
216216
if node.width is not None:
217217
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
218218
self.add_object(obj)
@@ -222,7 +222,7 @@ def visit_Wire(self, node):
222222
name = node.name
223223
width = self.visit(node.width) if node.width is not None else None
224224
signed = node.signed
225-
obj = vtypes.Wire(name, width, signed=signed)
225+
obj = vtypes.Wire(width, signed=signed, name=name)
226226
if node.width is not None:
227227
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
228228
self.add_object(obj)
@@ -232,7 +232,7 @@ def visit_Reg(self, node):
232232
name = node.name
233233
width = self.visit(node.width) if node.width is not None else None
234234
signed = node.signed
235-
obj = vtypes.Reg(name, width, signed=signed)
235+
obj = vtypes.Reg(width, signed=signed, name=name)
236236
if node.width is not None:
237237
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
238238
self.add_object(obj)
@@ -243,7 +243,7 @@ def visit_WireArray(self, node):
243243
width = self.visit(node.width) if node.width is not None else None
244244
length = self.visit(node.length)
245245
signed = node.signed
246-
obj = vtypes.Wire(name, width, length=length, signed=signed)
246+
obj = vtypes.Wire(width, length=length, signed=signed, name=name)
247247
if node.width is not None:
248248
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
249249
obj.set_raw_length(self.visit(node.length.msb), self.visit(node.length.lsb))
@@ -255,7 +255,7 @@ def visit_RegArray(self, node):
255255
width = self.visit(node.width) if node.width is not None else None
256256
length = self.visit(node.length)
257257
signed = node.signed
258-
obj = vtypes.Reg(name, width, length=length, signed=signed)
258+
obj = vtypes.Reg(width, length=length, signed=signed, name=name)
259259
if node.width is not None:
260260
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
261261
obj.set_raw_length(self.visit(node.length.msb), self.visit(node.length.lsb))
@@ -266,7 +266,7 @@ def visit_Integer(self, node):
266266
name = node.name
267267
width = self.visit(node.width) if node.width is not None else None
268268
signed = node.signed
269-
obj = vtypes.Integer(name, width, signed=signed)
269+
obj = vtypes.Integer(width, signed=signed, name=name)
270270
if node.width is not None:
271271
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
272272
self.add_object(obj)
@@ -275,7 +275,7 @@ def visit_Integer(self, node):
275275
def visit_Real(self, node):
276276
name = node.name
277277
width = self.visit(node.width) if node.width is not None else None
278-
obj = vtypes.Real(name, width)
278+
obj = vtypes.Real(width, name=name)
279279
if node.width is not None:
280280
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
281281
self.add_object(obj)
@@ -284,7 +284,7 @@ def visit_Real(self, node):
284284
def visit_Genvar(self, node):
285285
name = node.name
286286
width = self.visit(node.width) if node.width is not None else None
287-
obj = vtypes.Genvar(name, width)
287+
obj = vtypes.Genvar(width, name=name)
288288
if node.width is not None:
289289
obj.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
290290
self.add_object(obj)
@@ -300,7 +300,7 @@ def visit_Parameter(self, node):
300300
value = self.visit(node.value)
301301
width = self.visit(node.width) if node.width is not None else None
302302
signed = node.signed
303-
param = vtypes.Parameter(name, value, width, signed)
303+
param = vtypes.Parameter(value, width, signed, name=name)
304304
if node.width is not None:
305305
param.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
306306
self.add_object(param)
@@ -311,7 +311,7 @@ def visit_Localparam(self, node):
311311
value = self.visit(node.value)
312312
width = self.visit(node.width) if node.width is not None else None
313313
signed = node.signed
314-
param = vtypes.Localparam(name, value, width, signed)
314+
param = vtypes.Localparam(value, width, signed, name=name)
315315
if node.width is not None:
316316
param.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
317317
self.add_object(param)
@@ -322,7 +322,7 @@ def visit_Supply(self, node):
322322
value = self.visit(node.value)
323323
width = self.visit(node.width) if node.width is not None else None
324324
signed = node.signed
325-
param = vtypes.Supply(name, value, width, signed)
325+
param = vtypes.Supply(value, width, signed, name=name)
326326
if node.width is not None:
327327
param.set_raw_width(self.visit(node.width.msb), self.visit(node.width.lsb))
328328
self.add_object(param)

0 commit comments

Comments
 (0)