Skip to content

Commit 0cf372a

Browse files
Merge pull request #2891 from verilog-to-routing/feature-prepacker-cleanup
[Prepack] Improved Documentation on Molecule Chains
2 parents 321a0e2 + 035ae0f commit 0cf372a

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

vpr/src/pack/prepack.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,15 @@ enum class e_pack_pattern_molecule_type : bool {
5656
* @brief Represents a grouping of atom blocks that match a pack_pattern,
5757
* these groups are intended to be placed as a single unit during packing
5858
*
59-
* A chain is a special type of pack pattern. A chain can extend across multiple logic blocks.
60-
* Must segment the chain to fit in a logic block by identifying the actual atom that forms the root of the new chain.
61-
* Assumes that the root of a chain is the primitive that starts the chain or is driven from outside the logic block
59+
* A chain is a special type of pack pattern since it can extend across multiple
60+
* logic blocks. The prepacker segments the chain into molecules that each fit
61+
* in a logic block by identifying the atom that forms the root of the chain,
62+
* and starting the first molecule from it. Long chains can lead to multiple
63+
* molecules; a new molecule is created as the chain is traversed every time we
64+
* exceed the maximum number of bits a single logic block can implement. The
65+
* MoleculeChainId can be used to identify the molecules that are part of the
66+
* same chain; it is set to Invalid if a given molecule did not come from a
67+
* chain.
6268
*/
6369
class t_pack_molecule {
6470
public:

0 commit comments

Comments
 (0)