examples: new namer
This commit is contained in:
parent
b45c9546eb
commit
2a7d2908d1
|
@ -0,0 +1,40 @@
|
|||
from migen.fhdl.structure import *
|
||||
from migen.fhdl import verilog
|
||||
from migen.corelogic.misc import optree
|
||||
|
||||
def gen_list(n):
|
||||
s = [Signal() for i in range(n)]
|
||||
return s
|
||||
|
||||
def gen_2list(n):
|
||||
s = [Signal(BV(2)) for i in range(n)]
|
||||
return s
|
||||
|
||||
class Foo:
|
||||
def __init__(self):
|
||||
la = gen_list(3)
|
||||
lb = gen_2list(2)
|
||||
self.sigs = la + lb
|
||||
|
||||
class Bar:
|
||||
def __init__(self):
|
||||
self.sigs = gen_list(2)
|
||||
|
||||
class Toto:
|
||||
def __init__(self):
|
||||
self.sigs = gen_list(2)
|
||||
|
||||
a = [Bar() for x in range(3)]
|
||||
b = [Foo() for x in range(3)]
|
||||
c = b
|
||||
b = [Bar() for x in range(2)]
|
||||
|
||||
output = Signal()
|
||||
allsigs = []
|
||||
for lst in [a, b, c]:
|
||||
for obj in lst:
|
||||
allsigs.extend(obj.sigs)
|
||||
comb = [output.eq(optree("|", allsigs))]
|
||||
|
||||
f = Fragment(comb)
|
||||
print(verilog.convert(f))
|
Loading…
Reference in New Issue