33
44#pragma once
55
6+ #include < cstdint>
7+ #include < limits>
68#include < set>
79#include < string>
810#include < vector>
@@ -51,7 +53,7 @@ class InitFloorplan
5153 const std::vector<odb::dbSite*>& additional_sites = {},
5254 RowParity row_parity = RowParity::NONE,
5355 const std::set<odb::dbSite*>& flipped_sites = {},
54- int gap = - 1 );
56+ int gap = std::numeric_limits<std:: int32_t >::min() );
5557
5658 // The base_site determines the single-height rows. For hybrid rows it is
5759 // a site containing a row pattern.
@@ -61,7 +63,7 @@ class InitFloorplan
6163 const std::vector<odb::dbSite*>& additional_sites = {},
6264 RowParity row_parity = RowParity::NONE,
6365 const std::set<odb::dbSite*>& flipped_sites = {},
64- int gap = - 1 );
66+ int gap = std::numeric_limits<std:: int32_t >::min() );
6567
6668 void insertTiecells (odb::dbMTerm* tie_term,
6769 const std::string& prefix = " TIEOFF_" );
@@ -92,7 +94,7 @@ class InitFloorplan
9294 = {},
9395 RowParity row_parity = RowParity::NONE,
9496 const std::set<odb::dbSite*>& flipped_sites = {},
95- int gap = - 1 );
97+ int gap = std::numeric_limits<std:: int32_t >::min() );
9698
9799 // The base_site determines the single-height rows. For hybrid rows it is
98100 // a site containing a row pattern.
@@ -101,15 +103,15 @@ class InitFloorplan
101103 const std::vector<odb::dbSite*>& additional_sites = {},
102104 RowParity row_parity = RowParity::NONE,
103105 const std::set<odb::dbSite*>& flipped_sites = {},
104- int gap = - 1 );
106+ int gap = std::numeric_limits<std:: int32_t >::min() );
105107
106108 // Create rows for a polygon core area using true polygon-aware generation
107109 void makePolygonRows (const odb::Polygon& core_polygon,
108110 odb::dbSite* base_site,
109111 const std::vector<odb::dbSite*>& additional_sites = {},
110112 RowParity row_parity = RowParity::NONE,
111113 const std::set<odb::dbSite*>& flipped_sites = {},
112- int gap = - 1 );
114+ int gap = std::numeric_limits<std:: int32_t >::min() );
113115
114116 void makeTracks ();
115117 void makeTracks (odb::dbTechLayer* layer,
@@ -178,6 +180,8 @@ class InitFloorplan
178180 // this is a set of sets of all constructed site ids.
179181 std::set<std::set<int >> constructed_patterns_;
180182 std::vector<std::vector<odb::dbSite*>> repeating_row_patterns_;
183+
184+ void checkGap (int gap);
181185};
182186
183187} // namespace ifp
0 commit comments