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