Пример #1
0
 def visit_RegArray(self, node):
     name = node.name
     width = self.visit(node.width) if node.width is not None else None
     length = self.visit(node.length)
     signed = node.signed
     obj = vtypes.Reg(width, length=length, signed=signed, name=name)
     if node.width is not None:
         obj._set_raw_width(self.visit(node.width.msb),
                            self.visit(node.width.lsb))
     obj._set_raw_length(self.visit(node.length.msb),
                         self.visit(node.length.lsb))
     self.add_object(obj)
     return obj
Пример #2
0
 def OutputReg(self,
               name,
               width=None,
               length=None,
               signed=False,
               value=None,
               initval=None):
     t = vtypes.Output(width, length, signed, value, name=name, module=self)
     self.check_existing_identifier(name)
     self.io_variable[name] = t
     self.items.append(t)
     t = vtypes.Reg(width, length, signed, value, initval, name=name)
     self.variable[name] = t
     self.items.append(t)
     return t
Пример #3
0
 def visit_Reg(self, node):
     name = node.name
     raw_width = self.visit(node.width) if node.width is not None else None
     width = to_width(raw_width)
     raw_dims = self.visit(
         node.dimensions) if node.dimensions is not None else None
     dims = to_dims(raw_dims)
     signed = node.signed
     obj = vtypes.Reg(width,
                      dims,
                      signed=signed,
                      name=name,
                      raw_width=raw_width,
                      raw_dims=raw_dims)
     self.add_object(obj)
     return obj
Пример #4
0
 def Reg(self, name, width=None, dims=None, signed=False, value=None):
     t = vtypes.Reg(width, dims, signed, value, name=name)
     self.variable[name] = t
     return t