* a list of synchronous statements.
* a list of instances.
* a list of memories.
-* a set of pads, which are signals intended to be connected to off-chip devices.
* a list of simulation functions (see :ref:`simulating`).
Fragments can reference arbitrary signals, including signals that are referenced in other fragments. Fragments can be combined using the "+" operator, which returns a new fragment containing the concatenation of each pair of lists.
self.init = init
class Fragment:
- def __init__(self, comb=None, sync=None, instances=None, memories=None, pads=set(), sim=None):
+ def __init__(self, comb=None, sync=None, instances=None, memories=None, sim=None):
if comb is None: comb = []
if sync is None: sync = []
if instances is None: instances = []
self.sync = _sl(sync)
self.instances = instances
self.memories = memories
- self.pads = pads
self.sim = sim
def __add__(self, other):
self.sync.l + other.sync.l,
self.instances + other.instances,
self.memories + other.memories,
- self.pads | other.pads,
self.sim + other.sim)
def call_sim(self, simulator):
if rst_signal is None:
rst_signal = Signal(name_override="sys_rst")
ios.add(rst_signal)
- ios |= f.pads
ns = build_namespace(list_signals(f) \
| list_inst_ios(f, True, True, True) \