record: compatibility check
This commit is contained in:
parent
588f1a259e
commit
3c1dada9cf
|
@ -19,7 +19,7 @@ class Record:
|
|||
|
||||
def template(self):
|
||||
l = []
|
||||
for key in self.__dict__:
|
||||
for key in sorted(self.__dict__):
|
||||
e = self.__dict__[key]
|
||||
if isinstance(e, Signal):
|
||||
l.append((key, e.bv))
|
||||
|
@ -59,6 +59,11 @@ class Record:
|
|||
return l
|
||||
return Record(dict_to_list(fields), "subrecord")
|
||||
|
||||
def compatible(self, other):
|
||||
tpl1 = self.template()
|
||||
tpl2 = other.template()
|
||||
return tpl1 == tpl2
|
||||
|
||||
def flatten(self):
|
||||
l = []
|
||||
for key in sorted(self.__dict__):
|
||||
|
|
|
@ -23,6 +23,9 @@ class BV:
|
|||
r += "d"
|
||||
return r
|
||||
|
||||
def __eq__(self, other):
|
||||
return self.width == other.width and self.signed == other.signed
|
||||
|
||||
class Value:
|
||||
def __invert__(self):
|
||||
return _Operator("~", [self])
|
||||
|
|
Loading…
Reference in New Issue