From b3a4462cae66d9f926ef7425d7bc493420a081c1 Mon Sep 17 00:00:00 2001 From: Mohamed Gaber Date: Thu, 10 Oct 2024 10:41:28 +0300 Subject: [PATCH] ifp: add option to flip sites * `ifp::initialize_floorplan`: new key `-flip_sites` allows listing sites to flip in the floorplan, i.e., use FS on even rows and N on odd rows. * + test case * `src/ifp/src/InitFloorplan.i`: More consistent indentation * `default.nix`: added handy alias to format changed c/cxx files Signed-off-by: Mohamed Gaber --- default.nix | 5 + src/ifp/include/ifp/InitFloorplan.hh | 9 +- src/ifp/src/InitFloorplan.cc | 27 +- src/ifp/src/InitFloorplan.i | 35 +- src/ifp/src/InitFloorplan.tcl | 18 +- src/ifp/test/init_floorplan_flip_sites.defok | 604 +++++++++++++++++++ src/ifp/test/init_floorplan_flip_sites.ok | 6 + src/ifp/test/init_floorplan_flip_sites.tcl | 14 + src/ifp/test/regression_tests.tcl | 3 +- 9 files changed, 689 insertions(+), 32 deletions(-) create mode 100644 src/ifp/test/init_floorplan_flip_sites.defok create mode 100644 src/ifp/test/init_floorplan_flip_sites.ok create mode 100644 src/ifp/test/init_floorplan_flip_sites.tcl diff --git a/default.nix b/default.nix index 4db21cb81eb..73c8f2f319c 100644 --- a/default.nix +++ b/default.nix @@ -67,6 +67,7 @@ # or-tools stdenv, overrideSDK, + git, }: let or-tools' = (or-tools.override { @@ -102,6 +103,10 @@ patchShebangs . ''; + shellHook = '' + alias ord-format-changed="${git}/bin/git diff --name-only | grep -E '\.(cpp|cc|c|h|hh)$' | xargs clang-format -i -style=file:.clang-format"; + ''; + qt5Libs = [ libsForQt5.qt5.qtbase libsForQt5.qt5.qtcharts diff --git a/src/ifp/include/ifp/InitFloorplan.hh b/src/ifp/include/ifp/InitFloorplan.hh index f280592c199..082bf473def 100644 --- a/src/ifp/include/ifp/InitFloorplan.hh +++ b/src/ifp/include/ifp/InitFloorplan.hh @@ -78,7 +78,8 @@ class InitFloorplan int core_space_right, odb::dbSite* base_site, const std::vector& additional_sites = {}, - RowParity row_parity = RowParity::NONE); + RowParity row_parity = RowParity::NONE, + const std::vector& flipped_sites = {}); // The base_site determines the single-height rows. For hybrid rows it is // a site containing a row pattern. @@ -86,7 +87,8 @@ class InitFloorplan const odb::Rect& core, odb::dbSite* base_site, const std::vector& additional_sites = {}, - RowParity row_parity = RowParity::NONE); + RowParity row_parity = RowParity::NONE, + const std::vector& flipped_sites = {}); void insertTiecells(odb::dbMTerm* tie_term, const std::string& prefix = "TIEOFF_"); @@ -115,7 +117,8 @@ class InitFloorplan void makeUniformRows(odb::dbSite* base_site, const SitesByName& sites_by_name, const odb::Rect& core, - RowParity row_parity); + RowParity row_parity, + const std::set& flipped_sites); void makeHybridRows(odb::dbSite* base_hybrid_site, const SitesByName& sites_by_name, const odb::Rect& core); diff --git a/src/ifp/src/InitFloorplan.cc b/src/ifp/src/InitFloorplan.cc index 1bc0da85b75..61ddd89b495 100644 --- a/src/ifp/src/InitFloorplan.cc +++ b/src/ifp/src/InitFloorplan.cc @@ -107,7 +107,8 @@ void InitFloorplan::initFloorplan( int core_space_right, odb::dbSite* base_site, const std::vector& additional_sites, - RowParity row_parity) + RowParity row_parity, + const std::vector& flipped_sites) { utl::Validator v(logger_, IFP); v.check_non_negative("utilization", utilization, 12); @@ -135,7 +136,8 @@ void InitFloorplan::initFloorplan( {core_lx, core_ly, core_ux, core_uy}, base_site, additional_sites, - row_parity); + row_parity, + flipped_sites); } double InitFloorplan::designArea() @@ -160,7 +162,8 @@ void InitFloorplan::initFloorplan( const odb::Rect& core, odb::dbSite* base_site, const std::vector& additional_sites, - RowParity row_parity) + RowParity row_parity, + const std::vector& flipped_sites) { Rect die_area(snapToMfgGrid(die.xMin()), snapToMfgGrid(die.yMin()), @@ -227,7 +230,12 @@ void InitFloorplan::initFloorplan( } makeHybridRows(base_site, sites_by_name, snapped_core); } else { - makeUniformRows(base_site, sites_by_name, snapped_core, row_parity); + makeUniformRows( + base_site, + sites_by_name, + snapped_core, + row_parity, + std::set(flipped_sites.begin(), flipped_sites.end())); } updateVoltageDomain(clx, cly, cux, cuy); @@ -417,7 +425,8 @@ void InitFloorplan::addUsedSites( void InitFloorplan::makeUniformRows(odb::dbSite* base_site, const SitesByName& sites_by_name, const odb::Rect& core, - RowParity row_parity) + RowParity row_parity, + const std::set& flipped_sites) { const int core_dx = core.dx(); const int core_dy = core.dy(); @@ -427,7 +436,8 @@ void InitFloorplan::makeUniformRows(odb::dbSite* base_site, auto make_rows = [&](dbSite* site) { const uint site_dy = site->getHeight(); int rows_y = core_dy / site_dy; - + bool flip = flipped_sites.find(site) != flipped_sites.end(); + bool flipNum = flip ? 1 : 0; switch (row_parity) { case RowParity::NONE: break; @@ -445,8 +455,9 @@ void InitFloorplan::makeUniformRows(odb::dbSite* base_site, int y = core.yMin(); for (int row = 0; row < rows_y; row++) { - dbOrientType orient = (row % 2 == 0) ? dbOrientType::R0 // N - : dbOrientType::MX; // FS + dbOrientType orient = ((row + flipNum) % 2 == 0) + ? dbOrientType::R0 // N + : dbOrientType::MX; // FS string row_name = fmt::format("ROW_{}", block_->getRows().size()); dbRow::create(block_, row_name.c_str(), diff --git a/src/ifp/src/InitFloorplan.i b/src/ifp/src/InitFloorplan.i index 1673033990c..ef9506abfc3 100644 --- a/src/ifp/src/InitFloorplan.i +++ b/src/ifp/src/InitFloorplan.i @@ -102,37 +102,40 @@ namespace ifp { void init_floorplan_core(int die_lx, - int die_ly, - int die_ux, - int die_uy, - int core_lx, - int core_ly, - int core_ux, - int core_uy, - odb::dbSite* site, - const std::vector& additional_sites, - ifp::RowParity row_parity) + int die_ly, + int die_ux, + int die_uy, + int core_lx, + int core_ly, + int core_ux, + int core_uy, + odb::dbSite* site, + const std::vector& additional_sites, + ifp::RowParity row_parity, + const std::vector& flipped_sites) { get_floorplan().initFloorplan({die_lx, die_ly, die_ux, die_uy}, {core_lx, core_ly, core_ux, core_uy}, - site, additional_sites, row_parity); + site, additional_sites, row_parity, flipped_sites); } void init_floorplan_util(double util, double aspect_ratio, int core_space_bottom, - int core_space_top, + int core_space_top, int core_space_left, int core_space_right, - odb::dbSite* site, - const std::vector& additional_sites, - ifp::RowParity row_parity) + odb::dbSite* site, + const std::vector& additional_sites, + ifp::RowParity row_parity, + const std::vector& flipped_sites) { get_floorplan().initFloorplan(util, aspect_ratio, core_space_bottom, core_space_top, core_space_left, core_space_right, - site, additional_sites, row_parity); + site, additional_sites, row_parity, + flipped_sites); } void diff --git a/src/ifp/src/InitFloorplan.tcl b/src/ifp/src/InitFloorplan.tcl index f6b7e7334e7..67eed874423 100644 --- a/src/ifp/src/InitFloorplan.tcl +++ b/src/ifp/src/InitFloorplan.tcl @@ -40,12 +40,13 @@ sta::define_cmd_args "initialize_floorplan" {[-utilization util]\ [-core_area {lx ly ux uy}]\ [-additional_sites site_names]\ [-site site_name]\ - [-row_parity NONE|ODD|EVEN]} + [-row_parity NONE|ODD|EVEN]\ + [-flip_sites site_names]} proc initialize_floorplan { args } { sta::parse_key_args "initialize_floorplan" args \ keys {-utilization -aspect_ratio -core_space \ - -die_area -core_area -site -additional_sites -row_parity} \ + -die_area -core_area -site -additional_sites -row_parity -flip_sites} \ flags {} sta::check_argc_eq0 "initialize_floorplan" $args @@ -64,6 +65,13 @@ proc initialize_floorplan { args } { } } + set flipped_sites {} + if { [info exists keys(-flip_sites)] } { + foreach sitename $keys(-flip_sites) { + lappend flipped_sites [ifp::find_site $sitename] + } + } + set row_parity "NONE" if { [info exists keys(-row_parity)] } { set row_parity $keys(-row_parity) @@ -111,7 +119,8 @@ proc initialize_floorplan { args } { [ord::microns_to_dbu $core_sp_right] \ $site \ $additional_sites \ - $row_parity + $row_parity \ + $flipped_sites } elseif { [info exists keys(-die_area)] } { set die_area $keys(-die_area) if { [llength $die_area] != 4 } { @@ -143,7 +152,8 @@ proc initialize_floorplan { args } { [ord::microns_to_dbu $core_ux] [ord::microns_to_dbu $core_uy] \ $site \ $additional_sites \ - $row_parity + $row_parity \ + $flipped_sites } else { utl::error IFP 17 "no -core_area specified." } diff --git a/src/ifp/test/init_floorplan_flip_sites.defok b/src/ifp/test/init_floorplan_flip_sites.defok new file mode 100644 index 00000000000..e7ffd6dfc39 --- /dev/null +++ b/src/ifp/test/init_floorplan_flip_sites.defok @@ -0,0 +1,604 @@ +VERSION 5.8 ; +DIVIDERCHAR "/" ; +BUSBITCHARS "[]" ; +DESIGN top ; +UNITS DISTANCE MICRONS 2000 ; +DIEAREA ( 0 0 ) ( 2000000 2000000 ) ; +ROW ROW_0 FreePDK45_38x28_10R_NP_162NW_34O 200260 201600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_1 FreePDK45_38x28_10R_NP_162NW_34O 200260 204400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_2 FreePDK45_38x28_10R_NP_162NW_34O 200260 207200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_3 FreePDK45_38x28_10R_NP_162NW_34O 200260 210000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_4 FreePDK45_38x28_10R_NP_162NW_34O 200260 212800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_5 FreePDK45_38x28_10R_NP_162NW_34O 200260 215600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_6 FreePDK45_38x28_10R_NP_162NW_34O 200260 218400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_7 FreePDK45_38x28_10R_NP_162NW_34O 200260 221200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_8 FreePDK45_38x28_10R_NP_162NW_34O 200260 224000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_9 FreePDK45_38x28_10R_NP_162NW_34O 200260 226800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_10 FreePDK45_38x28_10R_NP_162NW_34O 200260 229600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_11 FreePDK45_38x28_10R_NP_162NW_34O 200260 232400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_12 FreePDK45_38x28_10R_NP_162NW_34O 200260 235200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_13 FreePDK45_38x28_10R_NP_162NW_34O 200260 238000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_14 FreePDK45_38x28_10R_NP_162NW_34O 200260 240800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_15 FreePDK45_38x28_10R_NP_162NW_34O 200260 243600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_16 FreePDK45_38x28_10R_NP_162NW_34O 200260 246400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_17 FreePDK45_38x28_10R_NP_162NW_34O 200260 249200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_18 FreePDK45_38x28_10R_NP_162NW_34O 200260 252000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_19 FreePDK45_38x28_10R_NP_162NW_34O 200260 254800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_20 FreePDK45_38x28_10R_NP_162NW_34O 200260 257600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_21 FreePDK45_38x28_10R_NP_162NW_34O 200260 260400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_22 FreePDK45_38x28_10R_NP_162NW_34O 200260 263200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_23 FreePDK45_38x28_10R_NP_162NW_34O 200260 266000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_24 FreePDK45_38x28_10R_NP_162NW_34O 200260 268800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_25 FreePDK45_38x28_10R_NP_162NW_34O 200260 271600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_26 FreePDK45_38x28_10R_NP_162NW_34O 200260 274400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_27 FreePDK45_38x28_10R_NP_162NW_34O 200260 277200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_28 FreePDK45_38x28_10R_NP_162NW_34O 200260 280000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_29 FreePDK45_38x28_10R_NP_162NW_34O 200260 282800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_30 FreePDK45_38x28_10R_NP_162NW_34O 200260 285600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_31 FreePDK45_38x28_10R_NP_162NW_34O 200260 288400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_32 FreePDK45_38x28_10R_NP_162NW_34O 200260 291200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_33 FreePDK45_38x28_10R_NP_162NW_34O 200260 294000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_34 FreePDK45_38x28_10R_NP_162NW_34O 200260 296800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_35 FreePDK45_38x28_10R_NP_162NW_34O 200260 299600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_36 FreePDK45_38x28_10R_NP_162NW_34O 200260 302400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_37 FreePDK45_38x28_10R_NP_162NW_34O 200260 305200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_38 FreePDK45_38x28_10R_NP_162NW_34O 200260 308000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_39 FreePDK45_38x28_10R_NP_162NW_34O 200260 310800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_40 FreePDK45_38x28_10R_NP_162NW_34O 200260 313600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_41 FreePDK45_38x28_10R_NP_162NW_34O 200260 316400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_42 FreePDK45_38x28_10R_NP_162NW_34O 200260 319200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_43 FreePDK45_38x28_10R_NP_162NW_34O 200260 322000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_44 FreePDK45_38x28_10R_NP_162NW_34O 200260 324800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_45 FreePDK45_38x28_10R_NP_162NW_34O 200260 327600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_46 FreePDK45_38x28_10R_NP_162NW_34O 200260 330400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_47 FreePDK45_38x28_10R_NP_162NW_34O 200260 333200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_48 FreePDK45_38x28_10R_NP_162NW_34O 200260 336000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_49 FreePDK45_38x28_10R_NP_162NW_34O 200260 338800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_50 FreePDK45_38x28_10R_NP_162NW_34O 200260 341600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_51 FreePDK45_38x28_10R_NP_162NW_34O 200260 344400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_52 FreePDK45_38x28_10R_NP_162NW_34O 200260 347200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_53 FreePDK45_38x28_10R_NP_162NW_34O 200260 350000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_54 FreePDK45_38x28_10R_NP_162NW_34O 200260 352800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_55 FreePDK45_38x28_10R_NP_162NW_34O 200260 355600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_56 FreePDK45_38x28_10R_NP_162NW_34O 200260 358400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_57 FreePDK45_38x28_10R_NP_162NW_34O 200260 361200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_58 FreePDK45_38x28_10R_NP_162NW_34O 200260 364000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_59 FreePDK45_38x28_10R_NP_162NW_34O 200260 366800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_60 FreePDK45_38x28_10R_NP_162NW_34O 200260 369600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_61 FreePDK45_38x28_10R_NP_162NW_34O 200260 372400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_62 FreePDK45_38x28_10R_NP_162NW_34O 200260 375200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_63 FreePDK45_38x28_10R_NP_162NW_34O 200260 378000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_64 FreePDK45_38x28_10R_NP_162NW_34O 200260 380800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_65 FreePDK45_38x28_10R_NP_162NW_34O 200260 383600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_66 FreePDK45_38x28_10R_NP_162NW_34O 200260 386400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_67 FreePDK45_38x28_10R_NP_162NW_34O 200260 389200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_68 FreePDK45_38x28_10R_NP_162NW_34O 200260 392000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_69 FreePDK45_38x28_10R_NP_162NW_34O 200260 394800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_70 FreePDK45_38x28_10R_NP_162NW_34O 200260 397600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_71 FreePDK45_38x28_10R_NP_162NW_34O 200260 400400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_72 FreePDK45_38x28_10R_NP_162NW_34O 200260 403200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_73 FreePDK45_38x28_10R_NP_162NW_34O 200260 406000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_74 FreePDK45_38x28_10R_NP_162NW_34O 200260 408800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_75 FreePDK45_38x28_10R_NP_162NW_34O 200260 411600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_76 FreePDK45_38x28_10R_NP_162NW_34O 200260 414400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_77 FreePDK45_38x28_10R_NP_162NW_34O 200260 417200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_78 FreePDK45_38x28_10R_NP_162NW_34O 200260 420000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_79 FreePDK45_38x28_10R_NP_162NW_34O 200260 422800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_80 FreePDK45_38x28_10R_NP_162NW_34O 200260 425600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_81 FreePDK45_38x28_10R_NP_162NW_34O 200260 428400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_82 FreePDK45_38x28_10R_NP_162NW_34O 200260 431200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_83 FreePDK45_38x28_10R_NP_162NW_34O 200260 434000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_84 FreePDK45_38x28_10R_NP_162NW_34O 200260 436800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_85 FreePDK45_38x28_10R_NP_162NW_34O 200260 439600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_86 FreePDK45_38x28_10R_NP_162NW_34O 200260 442400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_87 FreePDK45_38x28_10R_NP_162NW_34O 200260 445200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_88 FreePDK45_38x28_10R_NP_162NW_34O 200260 448000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_89 FreePDK45_38x28_10R_NP_162NW_34O 200260 450800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_90 FreePDK45_38x28_10R_NP_162NW_34O 200260 453600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_91 FreePDK45_38x28_10R_NP_162NW_34O 200260 456400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_92 FreePDK45_38x28_10R_NP_162NW_34O 200260 459200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_93 FreePDK45_38x28_10R_NP_162NW_34O 200260 462000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_94 FreePDK45_38x28_10R_NP_162NW_34O 200260 464800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_95 FreePDK45_38x28_10R_NP_162NW_34O 200260 467600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_96 FreePDK45_38x28_10R_NP_162NW_34O 200260 470400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_97 FreePDK45_38x28_10R_NP_162NW_34O 200260 473200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_98 FreePDK45_38x28_10R_NP_162NW_34O 200260 476000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_99 FreePDK45_38x28_10R_NP_162NW_34O 200260 478800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_100 FreePDK45_38x28_10R_NP_162NW_34O 200260 481600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_101 FreePDK45_38x28_10R_NP_162NW_34O 200260 484400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_102 FreePDK45_38x28_10R_NP_162NW_34O 200260 487200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_103 FreePDK45_38x28_10R_NP_162NW_34O 200260 490000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_104 FreePDK45_38x28_10R_NP_162NW_34O 200260 492800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_105 FreePDK45_38x28_10R_NP_162NW_34O 200260 495600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_106 FreePDK45_38x28_10R_NP_162NW_34O 200260 498400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_107 FreePDK45_38x28_10R_NP_162NW_34O 200260 501200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_108 FreePDK45_38x28_10R_NP_162NW_34O 200260 504000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_109 FreePDK45_38x28_10R_NP_162NW_34O 200260 506800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_110 FreePDK45_38x28_10R_NP_162NW_34O 200260 509600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_111 FreePDK45_38x28_10R_NP_162NW_34O 200260 512400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_112 FreePDK45_38x28_10R_NP_162NW_34O 200260 515200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_113 FreePDK45_38x28_10R_NP_162NW_34O 200260 518000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_114 FreePDK45_38x28_10R_NP_162NW_34O 200260 520800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_115 FreePDK45_38x28_10R_NP_162NW_34O 200260 523600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_116 FreePDK45_38x28_10R_NP_162NW_34O 200260 526400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_117 FreePDK45_38x28_10R_NP_162NW_34O 200260 529200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_118 FreePDK45_38x28_10R_NP_162NW_34O 200260 532000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_119 FreePDK45_38x28_10R_NP_162NW_34O 200260 534800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_120 FreePDK45_38x28_10R_NP_162NW_34O 200260 537600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_121 FreePDK45_38x28_10R_NP_162NW_34O 200260 540400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_122 FreePDK45_38x28_10R_NP_162NW_34O 200260 543200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_123 FreePDK45_38x28_10R_NP_162NW_34O 200260 546000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_124 FreePDK45_38x28_10R_NP_162NW_34O 200260 548800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_125 FreePDK45_38x28_10R_NP_162NW_34O 200260 551600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_126 FreePDK45_38x28_10R_NP_162NW_34O 200260 554400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_127 FreePDK45_38x28_10R_NP_162NW_34O 200260 557200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_128 FreePDK45_38x28_10R_NP_162NW_34O 200260 560000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_129 FreePDK45_38x28_10R_NP_162NW_34O 200260 562800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_130 FreePDK45_38x28_10R_NP_162NW_34O 200260 565600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_131 FreePDK45_38x28_10R_NP_162NW_34O 200260 568400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_132 FreePDK45_38x28_10R_NP_162NW_34O 200260 571200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_133 FreePDK45_38x28_10R_NP_162NW_34O 200260 574000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_134 FreePDK45_38x28_10R_NP_162NW_34O 200260 576800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_135 FreePDK45_38x28_10R_NP_162NW_34O 200260 579600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_136 FreePDK45_38x28_10R_NP_162NW_34O 200260 582400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_137 FreePDK45_38x28_10R_NP_162NW_34O 200260 585200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_138 FreePDK45_38x28_10R_NP_162NW_34O 200260 588000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_139 FreePDK45_38x28_10R_NP_162NW_34O 200260 590800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_140 FreePDK45_38x28_10R_NP_162NW_34O 200260 593600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_141 FreePDK45_38x28_10R_NP_162NW_34O 200260 596400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_142 FreePDK45_38x28_10R_NP_162NW_34O 200260 599200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_143 FreePDK45_38x28_10R_NP_162NW_34O 200260 602000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_144 FreePDK45_38x28_10R_NP_162NW_34O 200260 604800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_145 FreePDK45_38x28_10R_NP_162NW_34O 200260 607600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_146 FreePDK45_38x28_10R_NP_162NW_34O 200260 610400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_147 FreePDK45_38x28_10R_NP_162NW_34O 200260 613200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_148 FreePDK45_38x28_10R_NP_162NW_34O 200260 616000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_149 FreePDK45_38x28_10R_NP_162NW_34O 200260 618800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_150 FreePDK45_38x28_10R_NP_162NW_34O 200260 621600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_151 FreePDK45_38x28_10R_NP_162NW_34O 200260 624400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_152 FreePDK45_38x28_10R_NP_162NW_34O 200260 627200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_153 FreePDK45_38x28_10R_NP_162NW_34O 200260 630000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_154 FreePDK45_38x28_10R_NP_162NW_34O 200260 632800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_155 FreePDK45_38x28_10R_NP_162NW_34O 200260 635600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_156 FreePDK45_38x28_10R_NP_162NW_34O 200260 638400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_157 FreePDK45_38x28_10R_NP_162NW_34O 200260 641200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_158 FreePDK45_38x28_10R_NP_162NW_34O 200260 644000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_159 FreePDK45_38x28_10R_NP_162NW_34O 200260 646800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_160 FreePDK45_38x28_10R_NP_162NW_34O 200260 649600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_161 FreePDK45_38x28_10R_NP_162NW_34O 200260 652400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_162 FreePDK45_38x28_10R_NP_162NW_34O 200260 655200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_163 FreePDK45_38x28_10R_NP_162NW_34O 200260 658000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_164 FreePDK45_38x28_10R_NP_162NW_34O 200260 660800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_165 FreePDK45_38x28_10R_NP_162NW_34O 200260 663600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_166 FreePDK45_38x28_10R_NP_162NW_34O 200260 666400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_167 FreePDK45_38x28_10R_NP_162NW_34O 200260 669200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_168 FreePDK45_38x28_10R_NP_162NW_34O 200260 672000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_169 FreePDK45_38x28_10R_NP_162NW_34O 200260 674800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_170 FreePDK45_38x28_10R_NP_162NW_34O 200260 677600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_171 FreePDK45_38x28_10R_NP_162NW_34O 200260 680400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_172 FreePDK45_38x28_10R_NP_162NW_34O 200260 683200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_173 FreePDK45_38x28_10R_NP_162NW_34O 200260 686000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_174 FreePDK45_38x28_10R_NP_162NW_34O 200260 688800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_175 FreePDK45_38x28_10R_NP_162NW_34O 200260 691600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_176 FreePDK45_38x28_10R_NP_162NW_34O 200260 694400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_177 FreePDK45_38x28_10R_NP_162NW_34O 200260 697200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_178 FreePDK45_38x28_10R_NP_162NW_34O 200260 700000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_179 FreePDK45_38x28_10R_NP_162NW_34O 200260 702800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_180 FreePDK45_38x28_10R_NP_162NW_34O 200260 705600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_181 FreePDK45_38x28_10R_NP_162NW_34O 200260 708400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_182 FreePDK45_38x28_10R_NP_162NW_34O 200260 711200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_183 FreePDK45_38x28_10R_NP_162NW_34O 200260 714000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_184 FreePDK45_38x28_10R_NP_162NW_34O 200260 716800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_185 FreePDK45_38x28_10R_NP_162NW_34O 200260 719600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_186 FreePDK45_38x28_10R_NP_162NW_34O 200260 722400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_187 FreePDK45_38x28_10R_NP_162NW_34O 200260 725200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_188 FreePDK45_38x28_10R_NP_162NW_34O 200260 728000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_189 FreePDK45_38x28_10R_NP_162NW_34O 200260 730800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_190 FreePDK45_38x28_10R_NP_162NW_34O 200260 733600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_191 FreePDK45_38x28_10R_NP_162NW_34O 200260 736400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_192 FreePDK45_38x28_10R_NP_162NW_34O 200260 739200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_193 FreePDK45_38x28_10R_NP_162NW_34O 200260 742000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_194 FreePDK45_38x28_10R_NP_162NW_34O 200260 744800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_195 FreePDK45_38x28_10R_NP_162NW_34O 200260 747600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_196 FreePDK45_38x28_10R_NP_162NW_34O 200260 750400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_197 FreePDK45_38x28_10R_NP_162NW_34O 200260 753200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_198 FreePDK45_38x28_10R_NP_162NW_34O 200260 756000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_199 FreePDK45_38x28_10R_NP_162NW_34O 200260 758800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_200 FreePDK45_38x28_10R_NP_162NW_34O 200260 761600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_201 FreePDK45_38x28_10R_NP_162NW_34O 200260 764400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_202 FreePDK45_38x28_10R_NP_162NW_34O 200260 767200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_203 FreePDK45_38x28_10R_NP_162NW_34O 200260 770000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_204 FreePDK45_38x28_10R_NP_162NW_34O 200260 772800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_205 FreePDK45_38x28_10R_NP_162NW_34O 200260 775600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_206 FreePDK45_38x28_10R_NP_162NW_34O 200260 778400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_207 FreePDK45_38x28_10R_NP_162NW_34O 200260 781200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_208 FreePDK45_38x28_10R_NP_162NW_34O 200260 784000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_209 FreePDK45_38x28_10R_NP_162NW_34O 200260 786800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_210 FreePDK45_38x28_10R_NP_162NW_34O 200260 789600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_211 FreePDK45_38x28_10R_NP_162NW_34O 200260 792400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_212 FreePDK45_38x28_10R_NP_162NW_34O 200260 795200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_213 FreePDK45_38x28_10R_NP_162NW_34O 200260 798000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_214 FreePDK45_38x28_10R_NP_162NW_34O 200260 800800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_215 FreePDK45_38x28_10R_NP_162NW_34O 200260 803600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_216 FreePDK45_38x28_10R_NP_162NW_34O 200260 806400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_217 FreePDK45_38x28_10R_NP_162NW_34O 200260 809200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_218 FreePDK45_38x28_10R_NP_162NW_34O 200260 812000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_219 FreePDK45_38x28_10R_NP_162NW_34O 200260 814800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_220 FreePDK45_38x28_10R_NP_162NW_34O 200260 817600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_221 FreePDK45_38x28_10R_NP_162NW_34O 200260 820400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_222 FreePDK45_38x28_10R_NP_162NW_34O 200260 823200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_223 FreePDK45_38x28_10R_NP_162NW_34O 200260 826000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_224 FreePDK45_38x28_10R_NP_162NW_34O 200260 828800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_225 FreePDK45_38x28_10R_NP_162NW_34O 200260 831600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_226 FreePDK45_38x28_10R_NP_162NW_34O 200260 834400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_227 FreePDK45_38x28_10R_NP_162NW_34O 200260 837200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_228 FreePDK45_38x28_10R_NP_162NW_34O 200260 840000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_229 FreePDK45_38x28_10R_NP_162NW_34O 200260 842800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_230 FreePDK45_38x28_10R_NP_162NW_34O 200260 845600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_231 FreePDK45_38x28_10R_NP_162NW_34O 200260 848400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_232 FreePDK45_38x28_10R_NP_162NW_34O 200260 851200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_233 FreePDK45_38x28_10R_NP_162NW_34O 200260 854000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_234 FreePDK45_38x28_10R_NP_162NW_34O 200260 856800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_235 FreePDK45_38x28_10R_NP_162NW_34O 200260 859600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_236 FreePDK45_38x28_10R_NP_162NW_34O 200260 862400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_237 FreePDK45_38x28_10R_NP_162NW_34O 200260 865200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_238 FreePDK45_38x28_10R_NP_162NW_34O 200260 868000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_239 FreePDK45_38x28_10R_NP_162NW_34O 200260 870800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_240 FreePDK45_38x28_10R_NP_162NW_34O 200260 873600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_241 FreePDK45_38x28_10R_NP_162NW_34O 200260 876400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_242 FreePDK45_38x28_10R_NP_162NW_34O 200260 879200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_243 FreePDK45_38x28_10R_NP_162NW_34O 200260 882000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_244 FreePDK45_38x28_10R_NP_162NW_34O 200260 884800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_245 FreePDK45_38x28_10R_NP_162NW_34O 200260 887600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_246 FreePDK45_38x28_10R_NP_162NW_34O 200260 890400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_247 FreePDK45_38x28_10R_NP_162NW_34O 200260 893200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_248 FreePDK45_38x28_10R_NP_162NW_34O 200260 896000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_249 FreePDK45_38x28_10R_NP_162NW_34O 200260 898800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_250 FreePDK45_38x28_10R_NP_162NW_34O 200260 901600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_251 FreePDK45_38x28_10R_NP_162NW_34O 200260 904400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_252 FreePDK45_38x28_10R_NP_162NW_34O 200260 907200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_253 FreePDK45_38x28_10R_NP_162NW_34O 200260 910000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_254 FreePDK45_38x28_10R_NP_162NW_34O 200260 912800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_255 FreePDK45_38x28_10R_NP_162NW_34O 200260 915600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_256 FreePDK45_38x28_10R_NP_162NW_34O 200260 918400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_257 FreePDK45_38x28_10R_NP_162NW_34O 200260 921200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_258 FreePDK45_38x28_10R_NP_162NW_34O 200260 924000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_259 FreePDK45_38x28_10R_NP_162NW_34O 200260 926800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_260 FreePDK45_38x28_10R_NP_162NW_34O 200260 929600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_261 FreePDK45_38x28_10R_NP_162NW_34O 200260 932400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_262 FreePDK45_38x28_10R_NP_162NW_34O 200260 935200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_263 FreePDK45_38x28_10R_NP_162NW_34O 200260 938000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_264 FreePDK45_38x28_10R_NP_162NW_34O 200260 940800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_265 FreePDK45_38x28_10R_NP_162NW_34O 200260 943600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_266 FreePDK45_38x28_10R_NP_162NW_34O 200260 946400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_267 FreePDK45_38x28_10R_NP_162NW_34O 200260 949200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_268 FreePDK45_38x28_10R_NP_162NW_34O 200260 952000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_269 FreePDK45_38x28_10R_NP_162NW_34O 200260 954800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_270 FreePDK45_38x28_10R_NP_162NW_34O 200260 957600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_271 FreePDK45_38x28_10R_NP_162NW_34O 200260 960400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_272 FreePDK45_38x28_10R_NP_162NW_34O 200260 963200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_273 FreePDK45_38x28_10R_NP_162NW_34O 200260 966000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_274 FreePDK45_38x28_10R_NP_162NW_34O 200260 968800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_275 FreePDK45_38x28_10R_NP_162NW_34O 200260 971600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_276 FreePDK45_38x28_10R_NP_162NW_34O 200260 974400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_277 FreePDK45_38x28_10R_NP_162NW_34O 200260 977200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_278 FreePDK45_38x28_10R_NP_162NW_34O 200260 980000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_279 FreePDK45_38x28_10R_NP_162NW_34O 200260 982800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_280 FreePDK45_38x28_10R_NP_162NW_34O 200260 985600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_281 FreePDK45_38x28_10R_NP_162NW_34O 200260 988400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_282 FreePDK45_38x28_10R_NP_162NW_34O 200260 991200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_283 FreePDK45_38x28_10R_NP_162NW_34O 200260 994000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_284 FreePDK45_38x28_10R_NP_162NW_34O 200260 996800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_285 FreePDK45_38x28_10R_NP_162NW_34O 200260 999600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_286 FreePDK45_38x28_10R_NP_162NW_34O 200260 1002400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_287 FreePDK45_38x28_10R_NP_162NW_34O 200260 1005200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_288 FreePDK45_38x28_10R_NP_162NW_34O 200260 1008000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_289 FreePDK45_38x28_10R_NP_162NW_34O 200260 1010800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_290 FreePDK45_38x28_10R_NP_162NW_34O 200260 1013600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_291 FreePDK45_38x28_10R_NP_162NW_34O 200260 1016400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_292 FreePDK45_38x28_10R_NP_162NW_34O 200260 1019200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_293 FreePDK45_38x28_10R_NP_162NW_34O 200260 1022000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_294 FreePDK45_38x28_10R_NP_162NW_34O 200260 1024800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_295 FreePDK45_38x28_10R_NP_162NW_34O 200260 1027600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_296 FreePDK45_38x28_10R_NP_162NW_34O 200260 1030400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_297 FreePDK45_38x28_10R_NP_162NW_34O 200260 1033200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_298 FreePDK45_38x28_10R_NP_162NW_34O 200260 1036000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_299 FreePDK45_38x28_10R_NP_162NW_34O 200260 1038800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_300 FreePDK45_38x28_10R_NP_162NW_34O 200260 1041600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_301 FreePDK45_38x28_10R_NP_162NW_34O 200260 1044400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_302 FreePDK45_38x28_10R_NP_162NW_34O 200260 1047200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_303 FreePDK45_38x28_10R_NP_162NW_34O 200260 1050000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_304 FreePDK45_38x28_10R_NP_162NW_34O 200260 1052800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_305 FreePDK45_38x28_10R_NP_162NW_34O 200260 1055600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_306 FreePDK45_38x28_10R_NP_162NW_34O 200260 1058400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_307 FreePDK45_38x28_10R_NP_162NW_34O 200260 1061200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_308 FreePDK45_38x28_10R_NP_162NW_34O 200260 1064000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_309 FreePDK45_38x28_10R_NP_162NW_34O 200260 1066800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_310 FreePDK45_38x28_10R_NP_162NW_34O 200260 1069600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_311 FreePDK45_38x28_10R_NP_162NW_34O 200260 1072400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_312 FreePDK45_38x28_10R_NP_162NW_34O 200260 1075200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_313 FreePDK45_38x28_10R_NP_162NW_34O 200260 1078000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_314 FreePDK45_38x28_10R_NP_162NW_34O 200260 1080800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_315 FreePDK45_38x28_10R_NP_162NW_34O 200260 1083600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_316 FreePDK45_38x28_10R_NP_162NW_34O 200260 1086400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_317 FreePDK45_38x28_10R_NP_162NW_34O 200260 1089200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_318 FreePDK45_38x28_10R_NP_162NW_34O 200260 1092000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_319 FreePDK45_38x28_10R_NP_162NW_34O 200260 1094800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_320 FreePDK45_38x28_10R_NP_162NW_34O 200260 1097600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_321 FreePDK45_38x28_10R_NP_162NW_34O 200260 1100400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_322 FreePDK45_38x28_10R_NP_162NW_34O 200260 1103200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_323 FreePDK45_38x28_10R_NP_162NW_34O 200260 1106000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_324 FreePDK45_38x28_10R_NP_162NW_34O 200260 1108800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_325 FreePDK45_38x28_10R_NP_162NW_34O 200260 1111600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_326 FreePDK45_38x28_10R_NP_162NW_34O 200260 1114400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_327 FreePDK45_38x28_10R_NP_162NW_34O 200260 1117200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_328 FreePDK45_38x28_10R_NP_162NW_34O 200260 1120000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_329 FreePDK45_38x28_10R_NP_162NW_34O 200260 1122800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_330 FreePDK45_38x28_10R_NP_162NW_34O 200260 1125600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_331 FreePDK45_38x28_10R_NP_162NW_34O 200260 1128400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_332 FreePDK45_38x28_10R_NP_162NW_34O 200260 1131200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_333 FreePDK45_38x28_10R_NP_162NW_34O 200260 1134000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_334 FreePDK45_38x28_10R_NP_162NW_34O 200260 1136800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_335 FreePDK45_38x28_10R_NP_162NW_34O 200260 1139600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_336 FreePDK45_38x28_10R_NP_162NW_34O 200260 1142400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_337 FreePDK45_38x28_10R_NP_162NW_34O 200260 1145200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_338 FreePDK45_38x28_10R_NP_162NW_34O 200260 1148000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_339 FreePDK45_38x28_10R_NP_162NW_34O 200260 1150800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_340 FreePDK45_38x28_10R_NP_162NW_34O 200260 1153600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_341 FreePDK45_38x28_10R_NP_162NW_34O 200260 1156400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_342 FreePDK45_38x28_10R_NP_162NW_34O 200260 1159200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_343 FreePDK45_38x28_10R_NP_162NW_34O 200260 1162000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_344 FreePDK45_38x28_10R_NP_162NW_34O 200260 1164800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_345 FreePDK45_38x28_10R_NP_162NW_34O 200260 1167600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_346 FreePDK45_38x28_10R_NP_162NW_34O 200260 1170400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_347 FreePDK45_38x28_10R_NP_162NW_34O 200260 1173200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_348 FreePDK45_38x28_10R_NP_162NW_34O 200260 1176000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_349 FreePDK45_38x28_10R_NP_162NW_34O 200260 1178800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_350 FreePDK45_38x28_10R_NP_162NW_34O 200260 1181600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_351 FreePDK45_38x28_10R_NP_162NW_34O 200260 1184400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_352 FreePDK45_38x28_10R_NP_162NW_34O 200260 1187200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_353 FreePDK45_38x28_10R_NP_162NW_34O 200260 1190000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_354 FreePDK45_38x28_10R_NP_162NW_34O 200260 1192800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_355 FreePDK45_38x28_10R_NP_162NW_34O 200260 1195600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_356 FreePDK45_38x28_10R_NP_162NW_34O 200260 1198400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_357 FreePDK45_38x28_10R_NP_162NW_34O 200260 1201200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_358 FreePDK45_38x28_10R_NP_162NW_34O 200260 1204000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_359 FreePDK45_38x28_10R_NP_162NW_34O 200260 1206800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_360 FreePDK45_38x28_10R_NP_162NW_34O 200260 1209600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_361 FreePDK45_38x28_10R_NP_162NW_34O 200260 1212400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_362 FreePDK45_38x28_10R_NP_162NW_34O 200260 1215200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_363 FreePDK45_38x28_10R_NP_162NW_34O 200260 1218000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_364 FreePDK45_38x28_10R_NP_162NW_34O 200260 1220800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_365 FreePDK45_38x28_10R_NP_162NW_34O 200260 1223600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_366 FreePDK45_38x28_10R_NP_162NW_34O 200260 1226400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_367 FreePDK45_38x28_10R_NP_162NW_34O 200260 1229200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_368 FreePDK45_38x28_10R_NP_162NW_34O 200260 1232000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_369 FreePDK45_38x28_10R_NP_162NW_34O 200260 1234800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_370 FreePDK45_38x28_10R_NP_162NW_34O 200260 1237600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_371 FreePDK45_38x28_10R_NP_162NW_34O 200260 1240400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_372 FreePDK45_38x28_10R_NP_162NW_34O 200260 1243200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_373 FreePDK45_38x28_10R_NP_162NW_34O 200260 1246000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_374 FreePDK45_38x28_10R_NP_162NW_34O 200260 1248800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_375 FreePDK45_38x28_10R_NP_162NW_34O 200260 1251600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_376 FreePDK45_38x28_10R_NP_162NW_34O 200260 1254400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_377 FreePDK45_38x28_10R_NP_162NW_34O 200260 1257200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_378 FreePDK45_38x28_10R_NP_162NW_34O 200260 1260000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_379 FreePDK45_38x28_10R_NP_162NW_34O 200260 1262800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_380 FreePDK45_38x28_10R_NP_162NW_34O 200260 1265600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_381 FreePDK45_38x28_10R_NP_162NW_34O 200260 1268400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_382 FreePDK45_38x28_10R_NP_162NW_34O 200260 1271200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_383 FreePDK45_38x28_10R_NP_162NW_34O 200260 1274000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_384 FreePDK45_38x28_10R_NP_162NW_34O 200260 1276800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_385 FreePDK45_38x28_10R_NP_162NW_34O 200260 1279600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_386 FreePDK45_38x28_10R_NP_162NW_34O 200260 1282400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_387 FreePDK45_38x28_10R_NP_162NW_34O 200260 1285200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_388 FreePDK45_38x28_10R_NP_162NW_34O 200260 1288000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_389 FreePDK45_38x28_10R_NP_162NW_34O 200260 1290800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_390 FreePDK45_38x28_10R_NP_162NW_34O 200260 1293600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_391 FreePDK45_38x28_10R_NP_162NW_34O 200260 1296400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_392 FreePDK45_38x28_10R_NP_162NW_34O 200260 1299200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_393 FreePDK45_38x28_10R_NP_162NW_34O 200260 1302000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_394 FreePDK45_38x28_10R_NP_162NW_34O 200260 1304800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_395 FreePDK45_38x28_10R_NP_162NW_34O 200260 1307600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_396 FreePDK45_38x28_10R_NP_162NW_34O 200260 1310400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_397 FreePDK45_38x28_10R_NP_162NW_34O 200260 1313200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_398 FreePDK45_38x28_10R_NP_162NW_34O 200260 1316000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_399 FreePDK45_38x28_10R_NP_162NW_34O 200260 1318800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_400 FreePDK45_38x28_10R_NP_162NW_34O 200260 1321600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_401 FreePDK45_38x28_10R_NP_162NW_34O 200260 1324400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_402 FreePDK45_38x28_10R_NP_162NW_34O 200260 1327200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_403 FreePDK45_38x28_10R_NP_162NW_34O 200260 1330000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_404 FreePDK45_38x28_10R_NP_162NW_34O 200260 1332800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_405 FreePDK45_38x28_10R_NP_162NW_34O 200260 1335600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_406 FreePDK45_38x28_10R_NP_162NW_34O 200260 1338400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_407 FreePDK45_38x28_10R_NP_162NW_34O 200260 1341200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_408 FreePDK45_38x28_10R_NP_162NW_34O 200260 1344000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_409 FreePDK45_38x28_10R_NP_162NW_34O 200260 1346800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_410 FreePDK45_38x28_10R_NP_162NW_34O 200260 1349600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_411 FreePDK45_38x28_10R_NP_162NW_34O 200260 1352400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_412 FreePDK45_38x28_10R_NP_162NW_34O 200260 1355200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_413 FreePDK45_38x28_10R_NP_162NW_34O 200260 1358000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_414 FreePDK45_38x28_10R_NP_162NW_34O 200260 1360800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_415 FreePDK45_38x28_10R_NP_162NW_34O 200260 1363600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_416 FreePDK45_38x28_10R_NP_162NW_34O 200260 1366400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_417 FreePDK45_38x28_10R_NP_162NW_34O 200260 1369200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_418 FreePDK45_38x28_10R_NP_162NW_34O 200260 1372000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_419 FreePDK45_38x28_10R_NP_162NW_34O 200260 1374800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_420 FreePDK45_38x28_10R_NP_162NW_34O 200260 1377600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_421 FreePDK45_38x28_10R_NP_162NW_34O 200260 1380400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_422 FreePDK45_38x28_10R_NP_162NW_34O 200260 1383200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_423 FreePDK45_38x28_10R_NP_162NW_34O 200260 1386000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_424 FreePDK45_38x28_10R_NP_162NW_34O 200260 1388800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_425 FreePDK45_38x28_10R_NP_162NW_34O 200260 1391600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_426 FreePDK45_38x28_10R_NP_162NW_34O 200260 1394400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_427 FreePDK45_38x28_10R_NP_162NW_34O 200260 1397200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_428 FreePDK45_38x28_10R_NP_162NW_34O 200260 1400000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_429 FreePDK45_38x28_10R_NP_162NW_34O 200260 1402800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_430 FreePDK45_38x28_10R_NP_162NW_34O 200260 1405600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_431 FreePDK45_38x28_10R_NP_162NW_34O 200260 1408400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_432 FreePDK45_38x28_10R_NP_162NW_34O 200260 1411200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_433 FreePDK45_38x28_10R_NP_162NW_34O 200260 1414000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_434 FreePDK45_38x28_10R_NP_162NW_34O 200260 1416800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_435 FreePDK45_38x28_10R_NP_162NW_34O 200260 1419600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_436 FreePDK45_38x28_10R_NP_162NW_34O 200260 1422400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_437 FreePDK45_38x28_10R_NP_162NW_34O 200260 1425200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_438 FreePDK45_38x28_10R_NP_162NW_34O 200260 1428000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_439 FreePDK45_38x28_10R_NP_162NW_34O 200260 1430800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_440 FreePDK45_38x28_10R_NP_162NW_34O 200260 1433600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_441 FreePDK45_38x28_10R_NP_162NW_34O 200260 1436400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_442 FreePDK45_38x28_10R_NP_162NW_34O 200260 1439200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_443 FreePDK45_38x28_10R_NP_162NW_34O 200260 1442000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_444 FreePDK45_38x28_10R_NP_162NW_34O 200260 1444800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_445 FreePDK45_38x28_10R_NP_162NW_34O 200260 1447600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_446 FreePDK45_38x28_10R_NP_162NW_34O 200260 1450400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_447 FreePDK45_38x28_10R_NP_162NW_34O 200260 1453200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_448 FreePDK45_38x28_10R_NP_162NW_34O 200260 1456000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_449 FreePDK45_38x28_10R_NP_162NW_34O 200260 1458800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_450 FreePDK45_38x28_10R_NP_162NW_34O 200260 1461600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_451 FreePDK45_38x28_10R_NP_162NW_34O 200260 1464400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_452 FreePDK45_38x28_10R_NP_162NW_34O 200260 1467200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_453 FreePDK45_38x28_10R_NP_162NW_34O 200260 1470000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_454 FreePDK45_38x28_10R_NP_162NW_34O 200260 1472800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_455 FreePDK45_38x28_10R_NP_162NW_34O 200260 1475600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_456 FreePDK45_38x28_10R_NP_162NW_34O 200260 1478400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_457 FreePDK45_38x28_10R_NP_162NW_34O 200260 1481200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_458 FreePDK45_38x28_10R_NP_162NW_34O 200260 1484000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_459 FreePDK45_38x28_10R_NP_162NW_34O 200260 1486800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_460 FreePDK45_38x28_10R_NP_162NW_34O 200260 1489600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_461 FreePDK45_38x28_10R_NP_162NW_34O 200260 1492400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_462 FreePDK45_38x28_10R_NP_162NW_34O 200260 1495200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_463 FreePDK45_38x28_10R_NP_162NW_34O 200260 1498000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_464 FreePDK45_38x28_10R_NP_162NW_34O 200260 1500800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_465 FreePDK45_38x28_10R_NP_162NW_34O 200260 1503600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_466 FreePDK45_38x28_10R_NP_162NW_34O 200260 1506400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_467 FreePDK45_38x28_10R_NP_162NW_34O 200260 1509200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_468 FreePDK45_38x28_10R_NP_162NW_34O 200260 1512000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_469 FreePDK45_38x28_10R_NP_162NW_34O 200260 1514800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_470 FreePDK45_38x28_10R_NP_162NW_34O 200260 1517600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_471 FreePDK45_38x28_10R_NP_162NW_34O 200260 1520400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_472 FreePDK45_38x28_10R_NP_162NW_34O 200260 1523200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_473 FreePDK45_38x28_10R_NP_162NW_34O 200260 1526000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_474 FreePDK45_38x28_10R_NP_162NW_34O 200260 1528800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_475 FreePDK45_38x28_10R_NP_162NW_34O 200260 1531600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_476 FreePDK45_38x28_10R_NP_162NW_34O 200260 1534400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_477 FreePDK45_38x28_10R_NP_162NW_34O 200260 1537200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_478 FreePDK45_38x28_10R_NP_162NW_34O 200260 1540000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_479 FreePDK45_38x28_10R_NP_162NW_34O 200260 1542800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_480 FreePDK45_38x28_10R_NP_162NW_34O 200260 1545600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_481 FreePDK45_38x28_10R_NP_162NW_34O 200260 1548400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_482 FreePDK45_38x28_10R_NP_162NW_34O 200260 1551200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_483 FreePDK45_38x28_10R_NP_162NW_34O 200260 1554000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_484 FreePDK45_38x28_10R_NP_162NW_34O 200260 1556800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_485 FreePDK45_38x28_10R_NP_162NW_34O 200260 1559600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_486 FreePDK45_38x28_10R_NP_162NW_34O 200260 1562400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_487 FreePDK45_38x28_10R_NP_162NW_34O 200260 1565200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_488 FreePDK45_38x28_10R_NP_162NW_34O 200260 1568000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_489 FreePDK45_38x28_10R_NP_162NW_34O 200260 1570800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_490 FreePDK45_38x28_10R_NP_162NW_34O 200260 1573600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_491 FreePDK45_38x28_10R_NP_162NW_34O 200260 1576400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_492 FreePDK45_38x28_10R_NP_162NW_34O 200260 1579200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_493 FreePDK45_38x28_10R_NP_162NW_34O 200260 1582000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_494 FreePDK45_38x28_10R_NP_162NW_34O 200260 1584800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_495 FreePDK45_38x28_10R_NP_162NW_34O 200260 1587600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_496 FreePDK45_38x28_10R_NP_162NW_34O 200260 1590400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_497 FreePDK45_38x28_10R_NP_162NW_34O 200260 1593200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_498 FreePDK45_38x28_10R_NP_162NW_34O 200260 1596000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_499 FreePDK45_38x28_10R_NP_162NW_34O 200260 1598800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_500 FreePDK45_38x28_10R_NP_162NW_34O 200260 1601600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_501 FreePDK45_38x28_10R_NP_162NW_34O 200260 1604400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_502 FreePDK45_38x28_10R_NP_162NW_34O 200260 1607200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_503 FreePDK45_38x28_10R_NP_162NW_34O 200260 1610000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_504 FreePDK45_38x28_10R_NP_162NW_34O 200260 1612800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_505 FreePDK45_38x28_10R_NP_162NW_34O 200260 1615600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_506 FreePDK45_38x28_10R_NP_162NW_34O 200260 1618400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_507 FreePDK45_38x28_10R_NP_162NW_34O 200260 1621200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_508 FreePDK45_38x28_10R_NP_162NW_34O 200260 1624000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_509 FreePDK45_38x28_10R_NP_162NW_34O 200260 1626800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_510 FreePDK45_38x28_10R_NP_162NW_34O 200260 1629600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_511 FreePDK45_38x28_10R_NP_162NW_34O 200260 1632400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_512 FreePDK45_38x28_10R_NP_162NW_34O 200260 1635200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_513 FreePDK45_38x28_10R_NP_162NW_34O 200260 1638000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_514 FreePDK45_38x28_10R_NP_162NW_34O 200260 1640800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_515 FreePDK45_38x28_10R_NP_162NW_34O 200260 1643600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_516 FreePDK45_38x28_10R_NP_162NW_34O 200260 1646400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_517 FreePDK45_38x28_10R_NP_162NW_34O 200260 1649200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_518 FreePDK45_38x28_10R_NP_162NW_34O 200260 1652000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_519 FreePDK45_38x28_10R_NP_162NW_34O 200260 1654800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_520 FreePDK45_38x28_10R_NP_162NW_34O 200260 1657600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_521 FreePDK45_38x28_10R_NP_162NW_34O 200260 1660400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_522 FreePDK45_38x28_10R_NP_162NW_34O 200260 1663200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_523 FreePDK45_38x28_10R_NP_162NW_34O 200260 1666000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_524 FreePDK45_38x28_10R_NP_162NW_34O 200260 1668800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_525 FreePDK45_38x28_10R_NP_162NW_34O 200260 1671600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_526 FreePDK45_38x28_10R_NP_162NW_34O 200260 1674400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_527 FreePDK45_38x28_10R_NP_162NW_34O 200260 1677200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_528 FreePDK45_38x28_10R_NP_162NW_34O 200260 1680000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_529 FreePDK45_38x28_10R_NP_162NW_34O 200260 1682800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_530 FreePDK45_38x28_10R_NP_162NW_34O 200260 1685600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_531 FreePDK45_38x28_10R_NP_162NW_34O 200260 1688400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_532 FreePDK45_38x28_10R_NP_162NW_34O 200260 1691200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_533 FreePDK45_38x28_10R_NP_162NW_34O 200260 1694000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_534 FreePDK45_38x28_10R_NP_162NW_34O 200260 1696800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_535 FreePDK45_38x28_10R_NP_162NW_34O 200260 1699600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_536 FreePDK45_38x28_10R_NP_162NW_34O 200260 1702400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_537 FreePDK45_38x28_10R_NP_162NW_34O 200260 1705200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_538 FreePDK45_38x28_10R_NP_162NW_34O 200260 1708000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_539 FreePDK45_38x28_10R_NP_162NW_34O 200260 1710800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_540 FreePDK45_38x28_10R_NP_162NW_34O 200260 1713600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_541 FreePDK45_38x28_10R_NP_162NW_34O 200260 1716400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_542 FreePDK45_38x28_10R_NP_162NW_34O 200260 1719200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_543 FreePDK45_38x28_10R_NP_162NW_34O 200260 1722000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_544 FreePDK45_38x28_10R_NP_162NW_34O 200260 1724800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_545 FreePDK45_38x28_10R_NP_162NW_34O 200260 1727600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_546 FreePDK45_38x28_10R_NP_162NW_34O 200260 1730400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_547 FreePDK45_38x28_10R_NP_162NW_34O 200260 1733200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_548 FreePDK45_38x28_10R_NP_162NW_34O 200260 1736000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_549 FreePDK45_38x28_10R_NP_162NW_34O 200260 1738800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_550 FreePDK45_38x28_10R_NP_162NW_34O 200260 1741600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_551 FreePDK45_38x28_10R_NP_162NW_34O 200260 1744400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_552 FreePDK45_38x28_10R_NP_162NW_34O 200260 1747200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_553 FreePDK45_38x28_10R_NP_162NW_34O 200260 1750000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_554 FreePDK45_38x28_10R_NP_162NW_34O 200260 1752800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_555 FreePDK45_38x28_10R_NP_162NW_34O 200260 1755600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_556 FreePDK45_38x28_10R_NP_162NW_34O 200260 1758400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_557 FreePDK45_38x28_10R_NP_162NW_34O 200260 1761200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_558 FreePDK45_38x28_10R_NP_162NW_34O 200260 1764000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_559 FreePDK45_38x28_10R_NP_162NW_34O 200260 1766800 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_560 FreePDK45_38x28_10R_NP_162NW_34O 200260 1769600 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_561 FreePDK45_38x28_10R_NP_162NW_34O 200260 1772400 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_562 FreePDK45_38x28_10R_NP_162NW_34O 200260 1775200 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_563 FreePDK45_38x28_10R_NP_162NW_34O 200260 1778000 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_564 FreePDK45_38x28_10R_NP_162NW_34O 200260 1780800 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_565 FreePDK45_38x28_10R_NP_162NW_34O 200260 1783600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_566 FreePDK45_38x28_10R_NP_162NW_34O 200260 1786400 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_567 FreePDK45_38x28_10R_NP_162NW_34O 200260 1789200 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_568 FreePDK45_38x28_10R_NP_162NW_34O 200260 1792000 FS DO 4209 BY 1 STEP 380 0 ; +ROW ROW_569 FreePDK45_38x28_10R_NP_162NW_34O 200260 1794800 N DO 4209 BY 1 STEP 380 0 ; +COMPONENTS 5 ; + - r1 DFF_X1 ; + - r2 DFF_X1 ; + - r3 DFF_X1 ; + - u1 BUF_X1 ; + - u2 AND2_X1 ; +END COMPONENTS +PINS 6 ; + - clk1 + NET clk1 + DIRECTION INPUT + USE SIGNAL ; + - clk2 + NET clk2 + DIRECTION INPUT + USE SIGNAL ; + - clk3 + NET clk3 + DIRECTION INPUT + USE SIGNAL ; + - in1 + NET in1 + DIRECTION INPUT + USE SIGNAL ; + - in2 + NET in2 + DIRECTION INPUT + USE SIGNAL ; + - out + NET out + DIRECTION OUTPUT + USE SIGNAL ; +END PINS +NETS 10 ; + - clk1 ( PIN clk1 ) ( r1 CK ) + USE SIGNAL ; + - clk2 ( PIN clk2 ) ( r2 CK ) + USE SIGNAL ; + - clk3 ( PIN clk3 ) ( r3 CK ) + USE SIGNAL ; + - in1 ( PIN in1 ) ( r1 D ) + USE SIGNAL ; + - in2 ( PIN in2 ) ( r2 D ) + USE SIGNAL ; + - out ( PIN out ) ( r3 Q ) + USE SIGNAL ; + - r1q ( u2 A1 ) ( r1 Q ) + USE SIGNAL ; + - r2q ( u1 A ) ( r2 Q ) + USE SIGNAL ; + - u1z ( u2 A2 ) ( u1 Z ) + USE SIGNAL ; + - u2z ( u2 ZN ) ( r3 D ) + USE SIGNAL ; +END NETS +END DESIGN diff --git a/src/ifp/test/init_floorplan_flip_sites.ok b/src/ifp/test/init_floorplan_flip_sites.ok new file mode 100644 index 00000000000..d77aa335660 --- /dev/null +++ b/src/ifp/test/init_floorplan_flip_sites.ok @@ -0,0 +1,6 @@ +[INFO ODB-0227] LEF file: Nangate45/Nangate45.lef, created 22 layers, 27 vias, 135 library cells +[WARNING IFP-0028] Core area lower left (100.000, 100.000) snapped to (100.130, 100.800). +[INFO IFP-0001] Added 570 rows of 4209 site FreePDK45_38x28_10R_NP_162NW_34O. +Differences found at line 7. +ROW ROW_0 FreePDK45_38x28_10R_NP_162NW_34O 200260 201600 N DO 4209 BY 1 STEP 380 0 ; +ROW ROW_0 FreePDK45_38x28_10R_NP_162NW_34O 200260 201600 FS DO 4209 BY 1 STEP 380 0 ; diff --git a/src/ifp/test/init_floorplan_flip_sites.tcl b/src/ifp/test/init_floorplan_flip_sites.tcl new file mode 100644 index 00000000000..2e50871f200 --- /dev/null +++ b/src/ifp/test/init_floorplan_flip_sites.tcl @@ -0,0 +1,14 @@ +# init_floorplan +source "helpers.tcl" +read_lef Nangate45/Nangate45.lef +read_liberty Nangate45/Nangate45_typ.lib +read_verilog reg1.v +link_design top +initialize_floorplan -die_area "0 0 1000 1000" \ + -core_area "100 100 900 900" \ + -site FreePDK45_38x28_10R_NP_162NW_34O\ + -flip_sites "FreePDK45_38x28_10R_NP_162NW_34O" + +set def_file [make_result_file init_floorplan1.def] +write_def $def_file +diff_files init_floorplan1.defok $def_file diff --git a/src/ifp/test/regression_tests.tcl b/src/ifp/test/regression_tests.tcl index b06f1f8fcc6..65912ce12e8 100644 --- a/src/ifp/test/regression_tests.tcl +++ b/src/ifp/test/regression_tests.tcl @@ -1,6 +1,6 @@ record_tests { hybrid_rows - hybrid_rows2 + hybrid_rows2 init_floorplan1 init_floorplan2 init_floorplan3 @@ -26,6 +26,7 @@ record_tests { upf_shifter_test init_floorplan_even_rows init_floorplan_odd_rows + init_floorplan_flip_sites #ifp_man_tcl_check #ifp_readme_msgs_check }