Represents a grouping of atom blocks that match a pack_pattern, these groups are intended to be placed as a single unit during packing.
More...
Represents a grouping of atom blocks that match a pack_pattern, these groups are intended to be placed as a single unit during packing.
Store in linked list
A chain is a special type of pack pattern. A chain can extend across multiple logic blocks. Must segment the chain to fit in a logic block by identifying the actual atom that forms the root of the new chain. Assumes that the root of a chain is the primitive that starts the chain or is driven from outside the logic block
Data members:
type : either a single atom or more atoms representing a packing pattern
pack_pattern : if not a single atom, this is the pack pattern representing this molecule
atom_block_ids : [0..num_blocks-1] IDs of atom blocks that implements this molecule, indexed by
t_pack_pattern_block->block_id
chain_info : if this is a molecule representing a chained pack pattern, this data structure will
hold the data shared between all molecules forming a chain together.
valid : whether the molecule is still valid for packing or not.
num_blocks : maximum number of atom blocks that can fit in this molecule
root : index of the pack_pattern->root_block in the atom_blocks_ids. root_block_id = atom_block_ids[root]
base_gain : intrinsic "goodness" score for molecule independent of rest of netlist
next : next molecule in the linked list