@@ -706,7 +706,69 @@ enum e_stage_action {
706
706
/* *
707
707
* @brief Options for packing
708
708
*
709
- * TODO: document each packing parameter
709
+ * @param circuit_file_name
710
+ * Path to technology mapped user circuit in BLIF format.
711
+ * @param output_file
712
+ * Path to packed user circuit in net format.
713
+ * @param global_clocks
714
+ * ALWAYS TRUE. (Default: True)
715
+ * @param timing_driven
716
+ * Whether or not to do timing driven clustering. (Default: on)
717
+ * @param cluster_seed_type
718
+ * Selection algorithm for selecting next seed. (Default: blend2 if
719
+ * timing_driven is on; max_inputs otherwise)
720
+ * @param inter_cluster_net_delay
721
+ * ALWAYS 1.0 (Default: 1.0)
722
+ * @param target_device_utilization
723
+ * Sets the target device utilization. (Default: 1.0)
724
+ * @param auto_compute_inter_cluster_net_delay
725
+ * ALWAYS TRUE
726
+ * @param allow_unrelated_clustering
727
+ * Allows primitives which have no attraction to the given cluster
728
+ * to be packed into it. (Default: auto)
729
+ * @param connection_driven
730
+ * Controls whether or not packing prioritizes the absorption of nets
731
+ * with fewer connections into a complex logic block over nets with
732
+ * more connections. (Default: on)
733
+ * @param pack_verbosity
734
+ * Controls how verbose clustering's output is. (Default: 2)
735
+ * @param enable_pin_feasibility_filter
736
+ * Counts the number of available pins in groups/classes of mutually
737
+ * connected pins within a cluster, then filters out candidate
738
+ * primitives/atoms/molecules for which the cluster has insufficient
739
+ * pins to route (without performing a full routing). (Default: on)
740
+ * @param balance_block_type_utilization
741
+ * If enabled, when a primitive can potentially be mapped to multiple
742
+ * block types the packer will pick the block type which (currently)
743
+ * has the lowest utilization. (Default: auto)
744
+ * @param target_external_pin_util
745
+ * Sets the external pin utilization target. (Default: auto)
746
+ * @param prioritize_transitive_connectivity
747
+ * Whether transitive connectivity is prioritized over high-fanout
748
+ * connectivity. (Default: on)
749
+ * @param feasible_block_array_size
750
+ * Max size of the priority queue for candidates that pass the early
751
+ * filter legality test, but not the more detailed routing test.
752
+ * (Default: 30)
753
+ * @param doPacking
754
+ * Run packing stage.
755
+ * @param device_layout
756
+ * Controls which device layout/floorplan is used from the
757
+ * architecture file. (Default: smallest device which satisfies the
758
+ * circuit's resource requirements)
759
+ * @param timing_update_type
760
+ * Controls how timing analysis updates are performed. (Default: auto)
761
+ * @param use_attraction_groups
762
+ * Whether attraction groups are used to pack primitives in the same
763
+ * floorplan region together.
764
+ * @param pack_num_moves
765
+ * The number of moves that can be tried in packing stage.
766
+ * (Default: 100000)
767
+ * @param pack_move_type
768
+ * The move type used in packing. (Default: semiDirectedSwap)
769
+ * @param load_flat_placement
770
+ * Whether to reconstruct a packing solution from a flat placement
771
+ * file. (Default: off; on if <stage option: --legalize> is on)
710
772
*/
711
773
struct t_packer_opts {
712
774
std::string circuit_file_name;
0 commit comments