biblio_small.bib
FloorSet - a VLSI Floorplanning Dataset with Design Constraints of Real-World SoCs
Abstract.
Floorplanning for systems-on-a-chip (SoCs) and its sub-systems is a crucial and non-trivial step of the physical design flow. It represents a difficult combinatorial optimization problem. A typical large scale SoC with 120 partitions generates a search-space of . As novel machine learning (ML) approaches emerge to tackle such problems, there is a growing need for a modern benchmark that comprises a large training dataset and performance metrics that better reflect real-world constraints and objectives compared to existing benchmarks. To address this need, we present β - two comprehensive datasets of synthetic fixed-outline floorplan layouts that reflect the distribution of real SoCs. Each dataset has training samples and test samples where each sample is a synthetic floorplan. -Prime comprises fully-abutted rectilinear partitions and near-optimal wire-length. A simplified dataset that reflects early design phases, -Lite comprises rectangular partitions, with white-space and near-optimal wire-length. Both datasets define hard constraints seen in modern design flows such as shape constraints, edge-affinity, grou** constraints, and pre-placement constraints. Β is intended to spur fundamental research on large-scale constrained optimization problems. Crucially, Β alleviates the core issue of reproducibility in modern ML driven solutions to such problems. β is available as an open-source repository for the research community111https://anonymous.4open.science/r/Constrained_Floorplans_Dataset-D490/.
1. Introduction
Circuit partitioning is the first step of the back-end physical design flow. It divides a flat, and large circuit netlist into more manageable partitions. This step defines area budgets specific to each partition, inter-partition connectivity constraints, connections to external terminals, and the respective positions of these external terminals. These outcomes define the requirements and constraints of the floorplanning step. Furthermore, the floorplanning task is governed by numerous placement constraints on a subset or all of the partitions. The goal of the floorplanning step is to determine optimal physical positions and shapes of the individual partitions comprising the SoC or a subsystem. The output from the floorplanning step serves as the starting point for the remainder of the physical design flow. Figure 1 shows the typical back-end design steps - our work directly addresses the first two steps of partition and sub-system placement.
Floorplan Constraints: The key challenge of the floorplanning formulation lies in the requirement to satisfy hard design constraints. Some important constraints are:
-
β’
Outline-constraint: Modern ASIC design relies on hierarchical (top-down) floorplanning, with a βfixed-outlineβ constraint for the SoC and its sub-systems. A floorplan optimized for area without accounting for this constraint may fail to fit within the specified outline.
-
β’
Shape-constraints: These specify the acceptable range of width-to-height ratios of each partitionβs bounding box.
-
β’
Boundary-constraints: These specify that a partition must align with a specific edge or corner of the floorplanning outline. This alignment is driven by external interfacing requirements or system-level thermal considerations.
-
β’
Grou**-constraints: These specify a set of partitions that must be physically abutted - e.g., those operating on the same voltage or requiring simultaneous power-off.
-
β’
Multi-instantiation constraints: These define multiple partitions as instances of a shared main partition - e.g., eight instances of a CPU core partition. Thus, all such instances must share the same shape.
-
β’
Pre-placement constraints: These specify pre-defined locations of partitions that are often derived from past designs.
Supervised Learning and Data Paucity: Lately, there has been remarkable advancement in deep learning, that construct large parametric approximators by combining simpler functions. Deep learning demonstrates exceptional performance - particularly in scenarios involving high-dimensional spaces and abundant data points. Therefore, learning-based approaches can serve as promising alternatives for complex combinatorial optimization problems. However, the lack of sufficient training layouts is a major impediment in utilizing supervised learning methods for floorplanning. Due to this, prior learning-based techniques are often restricted to reinforcement learning (RL) (kdd22; learnfp20; gplanner22; gfp22) to yield optimal floorplan layouts. However, such approaches struggle to simultaneously optimize the objectives and respect the hard design constraints for large-scale combinatorial optimization problems. This data paucity stems primarily from intellectual-property (IP) restrictions of the chip-design industry. Our work addresses this gap by generating a large corpus of synthetic layouts that are reflect the optimal placement statistics and design constraints of real, commercial SoCs. This dataset, , can serve as a comprehensive training and test set for ML based floorplanning algorithms.
Overview: The rest of the paper is organized as follows. Section 2 surveys the state of benchmarks and synthetic data in EDA. Section 3 describes our data generation pipeline, and the two dataset variants -Prime and -Lite. Section 4 summarizes the attributes of β and presents the complexity of the generated data. Finally, conclusions are discussed in Section 5.
2. Related Work
In recent years, an increasing number of works have applied ML to complex EDA problems (mleda23; mlcad22; dpan21). These works have targeted geometric problems (binpacking21), graph processing and optimization techniques(timinggnn22; dagsizer23), automated decision making (chipformer23; agnesia20; rlsizer21), vision-based approaches(pdn20; drc20) and natural language models (chipnemo24; chipchat23). Such ML-based solutions in the EDA flow mitigate the need for exhaustive design optimization iterations by judiciously pruning the solution space associated with sub-optimal design quality. The resulting advancements present significant strides in various design stages such as high-level logic design (hls20; hls22), circuit design (ls19; lo18), physical design (gfp22; gancts19; gr19; maskplace22), verification (verif23; fault21), and manufacturing aspects (asml) of conventional chip-design methodologies, offering notable opportunities for improvement.
EDA Benchmarks: There are several examples of open-source benchmarks for physical design tasks. E.g., IWLS 2005 benchmarks (iwls) provide a repository of synthesized RTL netlists that were collected from various public resources (opencores). For discrete gate-sizing contest, ISPD 2012 (ispd12) benchmarks annotate interconnect parasitics and timing constraints for 14 IWLS netlists. ISPD 2015 benchmarks (ispd15) provide a dataset that comprises eight designs with routing constraints and design rules, for the purpose of blockage-aware detailed routing-driven placement task. For the multi-deck standard cell placement legalization problem, ICCAD 2017 (iccad17) provides eight benchmarks in LEF and DEF format, along with soft placement constraints. They are derived from ISPD 2015 dataset. For the detailed routing contest of ISPD, ISPD 2018 benchmarks (ispd18) provide test designs in and nodes, extracted from two real designs. It also defines design rules such as spacing tables, end-of-line spacing rules, cut spacing rules, min-area rules, and routing preference rules. For the macro-placement task, the ISPD02 IBM-MS mixed-size placement dataset (ispd02) contains designs with both hard macros and standard cells. The TILOS-AI-Institute added four more designs to reproduce the results of the RL-based MacroPlacement algorithm (ct2021). Though these efforts help in reproducibility, the scale of these benchmarks make it unusable to train modern ML models for physical design.
Floorplanning Benchmarks: For the floorplanning task, prior datasets GSRC (gsrc) (n10, n30, n50, n100, n200, and n300), and MCNC (mcnc) (ami33, ami49, apte, xp, and xerox) offer a standardized way to validate floorplan optimization algorithms. However, these benchmarks also suffer from being small scale, making them unusable for ML applications. In addition, the constraints used in these benchmarks do not capture many modern SoC floorplan constraints such as pre-placed constraints, boundary constraints, multi-instantiated partitions, and pin and net topologies.
Synthetic Data in EDA: IP issues often make it difficult for commercial design companies to distribute their historical EDA data. Synthetic data offers a practical solution to this data paucity problem. However, for it to be usable, it needs to reflect the structural characteristics of real designs. Gupta et al. (eyecharts) proposed benchmark circuits (called eyecharts) of arbitrary size, to diagnose the weaknesses of existing gate-sizing algorithms, and to enable a systematic and quantitative comparison of sizing algorithms. In later works, Han et al. (gt14) use artificial combinational paths to extract the sign-off timing values for ground truths. The artificial circuits in their work are created by swee** the number of stages, fan-outs and segments, and cell types in timing paths. Kahng et al. (cornerpred) also use artificial circuits to train a regression model, to predict timing values at unobserved corners. Recently, PROBE2.0 (probe2) proposed an artificial circuit with a mesh-like netlist topology as a place-and-route (P&R) benchmark, for routability assessment. However, these artificial circuit timing paths do not reflect the distribution present in real circuits and, thus, do not capture the full complexity of real circuits. Kim et al. (kim23) address the aforementioned issues and introduce an artificial netlist generator (ANG) framework for constructing authentic P&R benchmarks suitable for ML. This framework generates gate-level netlists based on user-defined input parameters representing the topological attributes of realistic circuit. Our work shares a close affinity with the ANG framework, although we address the floorplanning task. To the best of our knowledge, we are the first to propose a large-scale dataset to enable ML techniques for floorplanning..
3. Methodology
3.1. Problem Formulation
The β benchmarks specifically target the first step of the floorplanning task within SoC and sub-system hierarchies, aiming to identify optimal shapes and positions for sub-systems and partitions while adhering to certain placement constraints. The inputs to perform floorplanning task at SoC and sub-system hierarchies constitute:
-
β’
area budgets of partitions or sub-systems.
-
β’
locations of external terminals of the system.
-
β’
netlist connectivity that define the connections between various components of the system.
-
β’
placement constraints that define pre-determined positions for some components of the system.
The bookshelf format (bookshelf) is a widely adopted, open-source, and standardized representation of VLSI design data. The components of a floorplanning problem are captured in the *.blocks, *.nets and *.pl file formats of the bookshelf format. As shown in Figure 2, we modify the *.blocks to include component-wise placement constraints, area budgets, and fixed-outline dimensions. We include net weights in the *.nets file, shown in Figure 3. The *.pl file is unchanged and contains the locations of terminals.
3.2. Distribution of Real Layouts
In this section, we outline the topological statistics derived from real industrial floorplans extracted from heterogeneous SoCs and their sub-systems, with configurations upto 100 partitions. These real floorplan layouts capture modern human-designed heterogeneous SoC and sub-system implementations in the industry. Due to the necessity of preserving the IP rights of these SoCs and their implementations, we are unable to disclose the exact layouts and their associated statistics. However, we provide the details of statistics that represent these realistic floorplan layouts. We extract parameters, listed in Table 1. These distributions allow us to systematically explore the design space and produce synthetic layouts that closely mimic real-world layouts.
The rationale for extracting these statistics is listed below:
-
β’
: The aspect ratio range defines the acceptable width-to-height ratio of a component (partition or sub-system based on the hierarchy). For rectilinear partitions, we derive the aspect ratio from the bounding box of the rectilinear polygon. This parameter guarantees that the generated synthetic layouts exhibit realistic shapes.
-
β’
: The ratio of terminal count to partition count captures the proportion of terminals relative to partitions within a hierarchy. This offers a method to represent the proportional distribution of partitions and terminals in the floorplan netlists, without biasing towards the absolute scale of terminal count.
-
β’
: To quantify the complexity of connectivity structure in layouts at SoC and sub-system hierarchies, we use density (complement of sparsity) parameters of the connectivity matrices (or adjacency matrices).
and : These parameters capture the interconnection complexity of the floorplan netlists and provide a scale-independent mechanism to capture inter-partition and partition-terminal net connectivity. It is common to have multiple net connections (up to few thousands) between a partition pair, and weighted nets capture the strength of such connections. To account for weights on nets, we also extract the net-weight distribution,, as a function of net-length. The net-lengths are normalized to the fixed-outlineβs circumference, and net-weights are scaled to a range of 0-1.
-
β’
: This captures the relative distribution of components (or partitions) with edge-affinity (or boundary affinity). These components typically represent the input-output (IO) constrained partitions or sub-systems.
-
β’
These capture the number of voltage islands and the number of components in these island regions.
-
β’
: The percentage of pre-placed partitions capture the relative distribution of partitions with pre-placement constraints. These are hard constraints on the positions of partitions that are either derived from prior design knowledge or known-optimal decisions.
-
β’
: The percentage of multi-instantiation constraints represents the proportion of partitions enforcing shape-sharing constraints in modular design flows. E.g., in a hierarchy, if four instances of a CPU core exist, they all share the same shape and area.
3.3. -Prime: Rectilinear Partitions
In this section, we present the mechanism to generate synthetic layouts, using the floorplan statistics extracted from real layouts. Figure 4 provides an overview of the generation framework at a high-level. The circuit statistics extracted are utilized as an input for our data generation framework. In addition, the second input to the data generation pipeline is a custom input configuration file (shown in Figure 4), that contains the following settings:
-
β’
num_layouts: to specify the number of floorplan layouts to be generated.
-
β’
foutline_shape: to sweep the desired shape of the fixed-outline.
-
β’
num_partitions: to sweep the target partition count.
-
β’
rectilinear_flag: to enable or disable rectilinear partitions in the layout.
-
β’
placement_constraints_flag: to enable or disable annotation of hard placement constraints.
-
β’
dataset_mode flag: to select between the available dataset pipelines (-Prime and -Lite).
The output of this data generation framework comprises layouts in Bookshelf and Pytorch tensor formats, representing diverse instances of floorplan problems. Expanding on the previous Figure 4, Figure 5 explains the β data generation framework using the following five important steps that are described below: Parameter Extraction, Partition Sampling, Terminal Sampling, Connectivity Sampling and Constraints Sampling.
The pseudocode of β data generation pipeline is presented in Algorithm 1. To recap, the inputs to the framework are target distributions extracted from real floorplan circuits, and input configuration file to sample the design parameters. The output of the Algorithm 1 is a repository of synthetic floorplan layouts in the Bookshelf format and a tensor-based representation that is compatible with data loader libraries commonly used in ML applications.
1. Parameter Extraction: From a repository of several industrial floorplan layouts sourced from diverse SoC and subsystem implementations, we extract statistical metrics (listed in Table 1) representative of the circuit characteristics inherent to modern SoC and sub-system layouts. These metrics establish the target distribution from which we sample to produce synthetic floorplan layouts. To capture connectivity characteristics, we extract the density (complement of sparsity) distribution of inter-partition () and partition-terminal () adjacency matrices. In addition, we extract the relative proportion of terminal-count () to represent the scale of terminal count as a function of partition count in a hierarchy, and the the distribution of net-weights as a function of net-lengths (). Moreover, statistics regarding partition-specific aspect ratios () and placement constraints (, , , , ) are also extracted from real layouts. The extracted statistics serve as the input to Algorithm 1. Lines 1-2 initialize the βLayoutsβ database and index variables. Line 3 is a loop for generating . We use tensor F representation internally, to store the layout information (line 4).
2. Partition Sampling: Following step 1, the next step (line 5) involves swee** (or extracting) the desired fixed-outline dimensions from the input configuration file. Using this sampled outline, the synthetic layout undergoes decomposition into individual partitions or subsystems. To introduce variability, a mesh-layout (line 7 of Algorithm 1) is created by employing a sequence of randomly sampled vertical and horizontal lines (line 6 of Algorithm 1). These randomly positioned vertical and horizontal lines segment the fixed-outline layout into rectangles, forming the initial partition grid. Subsequently, adjacent polygons are merged, to create partition shapes that match the desired target distribution of partition shapes. To ensure sufficient room for the creation of desired shapes and area budgets, we start with a large partition count ( of the desired partition count) on the initial grid (line 6 of of Algorithm 1). The randomized selection of merging candidates and randomized initial grid creation offer a systematic approach to sampling numerous potential fully-abutted divisions of the fixed-outline layout, exposing complex but realistic use-cases. The details of the merging process is elaborated in Algorithm 2. As shown in line 2 and line 9 of Algorithm 2, polygons on the layout are iteratively merged until the desired shapes and partition count are achieved. If rectilinear_flag = 0 (line 4), the merging operation ensures that generated partitions are always rectangles. Conversely, when the flag is set to 1, there are no restrictions on the rectilinearity of the shapes. Each merging operation is committed if the merged partition operation improves the alignment between the current shape distribution and the target shape distribution (lines 7 and 8).
3. Terminal Sampling: After the creation of the fully-abutted layout, we annotate the terminal positions on the outline (line 9 of Algorithm 1). Illustrated in Figure 7 and Algorithm 3, this terminal annotation process involves first placing a terminal at a random location along the outline (line 3 of Algorithm 3). Subsequently, other terminals are incrementally placed (line 6 of Algorithm 3), while adhering to the normalized-pitch considerations (line 8 of Algorithm 3) and meeting the total terminal-count quota.
4. Connectivity Sampling: Following the placement of desired partition shapes (or sub-systems), and terminal locations, we create the connectivity between partitions and terminals (line 10 of Algorithm 4). The details of connectivity annotation are explained in Algorithm 4. While decomposing the fixed outline into individual partitions implicitly ensures area-optimal layouts, a optimal-by-construct annotation of connectivity is necessary to generate an optimal or near-optimal connectivity matrix. To achieve this, we utilize the pair-wise distance matrix among all partition pairs, as well as partition and terminal combinations (lines 4-5 of Algorithm 4). The inverse of the distance matrix yields the βsimilarity matrix,β which denotes the proximity of modules in D Manhattan space (lines 6-7 of Algorithm 4). Since the optimal layouts tend to place heavily connected partitions closer, annotating connections using the similarity matrix as the probabilities (line 8-9 of Algorithm 4) offers a rational approach to ensuring the near-optimality of generated connections. In addition, we also sample inter-partition net-weights from the target distribution that captures net-weights as a function of inter-partition distance. using the similarity matrix. Figure 8 visually explain the annotation of weighted inter-partition nets and partition-terminal nets, that meet the target sparsity for inter-partition and partition-net connections.
5. Constraint Sampling:
The output from Step 4 embodies the circuit characteristics of real layouts in terms of near-optimal connectivity and optimal area. Line 11 of Algorithm 1 is the constraint annotation step, where the desired placement constraints are annotated on the area and wire-length optimal layouts. The resulting layout manifests as a hard-constrained floorplanning instance with optimal area and nearly optimal wire-length characteristics. Further details on constraint annotation are provided in Algorithm 5. Utilizing the connectivity information and the optimal positions of individual partitions, boundary constraints such as corner partitions and edge partitions are annotated (line 7 of Algorithm 5). In real circuits, it is commonly observed that the majority of pre-placed partitions reside towards the periphery, and therefore we annotate pre-placed constraint, with a higher affinity for partitions that are placed on the periphery of the layout (line 8 of Algorithm 5). Line 9 of Algorithm 5 annotates the clustering constraint on a subset of partitions that are strongly connected (physical-adjacency requirement). Finally, multi-instantiated constraints are enforced on a subset of partitions that share identical shape and area values (line 10 of Algorithm 5). Figure 9 illustrates the process of constraint annotation.
Special case of -Prime (rectilinear_flag = 0): Although we observe that partition shapes or sub-system shapes in real circuits are rectilinear, the current literature is far from handing arbitrarily rectilinear partitions under hard constraints. Therefore, we provide a mechanism to generate a simpler case of the-Prime dataset by setting rectilinear_flag to . The layouts thus generated will be fully abutted rectangular shapes. The near-optimal connectivity and annotation of hard constraints remain unchanged.
3.4. -Lite: Rectangular Partitions
Fully abutted, rectilinear shapes of partitions in a SoC or a sub-system typically emerge in the later stages of floorplanning. Such rectilinear shapes truly capture the complexity of industrial floorplanning formulation. However, in the initial design exploration stages, designers commonly begin with rectangular partitions, prioritizing finding optimal locations and early design goals (e.g., timing budgets and area requirements). At this stage, the assumption of rectangular partitions often results in the formation of channels or white-spaces. This use-case is also an important problem for design-space exploration, although less challenging than the fully-rectilinear counterpart. Therefore, we introduce an additional dataset, -Lite, to reflect such scenarios. The pseudocode of -Lite pipeline is shown in Algorithm 6. While -Prime decomposes the fixed-outline layout into fully-abutted rectilinear partitions, -Lite allows for gaps or whites-paces on the layout, to accommodate the rectangular assumption of partitions. As a result, we employ a slight change in the data generation pipeline to generate layouts with white-space while maintaining near-optimal characteristics of area and wire-length. It is well established that heuristic search algorithms such as Simulated Annealing (SA) excel at the unconstrained floorplanning problem (adya01; adya03), particularly when the joint objective of wire-length and area is removed. When the focus shifts solely to minimizing white-space, SA demonstrates exceptional performance. Therefore, as shown in line 6 of Algorithm 6, we use SA to generate a packing solution for rectangular partitions while respecting the provided fixed-outline aspect ratio. This solution is near-optimal by construction in terms of area, with some white-space (primarily because of the rectangular assumption). As shown in lines 7-11, the rest of the process (terminal annotation, connectivity annotation and placement-constraint annotation) is identical to that of -Prime. Similar to the -Prime flow, -Lite uses the configuration file (Figure 4) to generate 1M training samples and 100 validation test cases.
4. Experiments
4.1. Analysis of FloorSet
While the M synthetic training layouts in -Prime and -Lite are intended for training ML models, we reserve the test cases in each dataset to be used as a standard benchmark. In each dataset, the following labels serve as performance metrics: (a) area, (b) weighted wire-lengths (inter-partition and partition-to-terminal), and (c) violation count for each of the five placement constraints. E.g., if tensor F represents the validation dataset, one can retrieve the metric list of test-case using F[][βlabelsβ]. The metric list has three components, in a list format [area, inter-partition wire-length, terminal-to-partition wire-length]. Since the dataset is devoid of constraint violations by construction, we do not explicitly store the violation count.
To underscore the complexity of , we run classical SA (btree06) with a constraint-penalty on the β validation set. Figure 10 presents scatter plots (left) for one data-point from the validation sets of -Prime (top) and -Lite (bottom). The relative area and wire-length are derived using the corresponding metrics from Β as the baseline; the golden layout on this relative scale is indicated by the green dot at (, ). For -Prime, we observe that the solutions are significantly sub-optimal in terms of wire-length and area. Crucially, all solutions exhibit constraint violations. While solutions obtained on -Liteβs problem are closer to the optimal in terms of area, minimizing wire-length and fixing constraint violations remain a big challenge. The desired behavior of any future baseline is to approach the green dots, while respecting the hard-constraints. Figure 10 also shows the layout images of the corresponding golden data. The top-right figure shows an example 25-partition -Prime layout (corresponding to the green dot on top-left figure). The bottom-right figure shows an example 65-partition -Lite layout (corresponding to the green dot on bottom-left figure). The synthetic layout of -Prime (top-right) closely resembles partition shapes in real-word layouts.
4.2. Distributions of Β Characteristics
While Section 4.1 underscores the complexity of -Prime benchmarks and highlights the sub-optimal performance of existing methods, it remains essential to establish the resemblance between these complex synthetic layouts and real-world counterparts in terms of their circuit characteristics. Figure 11 compares the probability density function (PDF) of synthetic and real layouts using their shape and connectivity metrics. The left plot depicts the partition-level shape distribution by plotting the PDF with respect to the aspect ratios of individual partitions. The proximity of real PDF (red) and the -Prime PDF (black) is a clear indication of the resemblance between the shapes of synthetic and real layouts. Similarly, the plot on the right shows the PDF of inter-partition wire-length. The normalization of wire-length allows for a direct comparison. The closeness of the red and black curves illustrates that the synthetic layouts closely reflect the inherent connectivity distribution observed in real-world layouts.
5. Conclusions
This paper introduces FloorSet, a VLSI floorplanning dataset that reflects the complexities and constraints of modern SoC design. Crucially, it provides large-scale training data that is necessary to develop modern ML techniques to solve floorplanning problems. -Lite, with near-optimal packing and wire-length for rectangular partitions, represents early stages of design. -Prime, with the added complexity of fully-abutted rectilinear blocks, represents the final stages of design. Β is constructed by sampling outline and wire-length values from distributions derived from real, commercial SoC designs. We hope that Β spurs novel solutions in the area of complex combinatorial optimization that significantly advance the field of EDA.