Verilog to Routing - VPR
Public Member Functions | Data Fields
t_pack_molecule Class Reference

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...

#include <vpr_types.h>

Collaboration diagram for t_pack_molecule:
Collaboration graph
[legend]

Public Member Functions

bool is_chain () const
 

Data Fields

bool valid
 
float base_gain
 
enum e_pack_pattern_molecule_type type
 
t_pack_patterns * pack_pattern
 
int root
 
int num_blocks
 
std::vector< AtomBlockIdatom_block_ids
 
std::shared_ptr< t_chain_infochain_info
 
t_pack_moleculenext
 

Detailed Description

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

Member Function Documentation

◆ is_chain()

bool t_pack_molecule::is_chain ( ) const
inline

Field Documentation

◆ atom_block_ids

std::vector<AtomBlockId> t_pack_molecule::atom_block_ids

◆ base_gain

float t_pack_molecule::base_gain

◆ chain_info

std::shared_ptr<t_chain_info> t_pack_molecule::chain_info

◆ next

t_pack_molecule* t_pack_molecule::next

◆ num_blocks

int t_pack_molecule::num_blocks

◆ pack_pattern

t_pack_patterns* t_pack_molecule::pack_pattern

◆ root

int t_pack_molecule::root

◆ type

enum e_pack_pattern_molecule_type t_pack_molecule::type

◆ valid

bool t_pack_molecule::valid

The documentation for this class was generated from the following file: