├── .gitignore ├── ucsdpcb ├── __init__.py ├── _PcbDB.so ├── _PcbPlacer.so ├── _PcbRouter.so ├── __pycache__ │ ├── PcbDB.cpython-37.pyc │ └── __init__.cpython-37.pyc ├── check_output.py ├── PcbRouter.py └── PcbPlacer.py ├── CMakeFiles ├── progress.marks ├── main.dir │ ├── progress.make │ ├── src │ │ └── main.cpp.o │ ├── link.txt │ ├── flags.make │ ├── cmake_clean.cmake │ ├── DependInfo.cmake │ └── build.make ├── cmake.check_cache ├── feature_tests.bin ├── 3.13.4 │ ├── CompilerIdC │ │ └── a.out │ ├── CompilerIdCXX │ │ └── a.out │ ├── CMakeDetermineCompilerABI_C.bin │ ├── CMakeDetermineCompilerABI_CXX.bin │ ├── CMakeSystem.cmake │ ├── CMakeCCompiler.cmake │ └── CMakeCXXCompiler.cmake ├── TargetDirectories.txt ├── CMakeDirectoryInformation.cmake ├── feature_tests.c ├── Makefile2 ├── Makefile.cmake └── feature_tests.cxx ├── clean ├── input_pin_aware ├── archive │ ├── 1.nets │ ├── 2.nets │ ├── 3.nets │ ├── 1.block │ ├── xerox.block │ ├── 2.block │ ├── ami49.block │ ├── hp.block │ ├── ami33.block │ ├── 3.block │ ├── apte.block │ ├── hp.nets │ ├── apte.nets │ └── ami33.nets ├── .DS_Store └── mcnc │ ├── xerox.pl │ ├── xerox.block │ ├── xerox.blocks │ ├── hp.pl │ ├── ami33.pl │ ├── ami49.pl │ ├── apte.pl │ ├── hp.blocks │ ├── ami49.block │ ├── hp.block │ ├── apte.blocks │ ├── ami33.block │ ├── apte.block │ ├── ami33.blocks │ ├── ami49.blocks │ ├── hp.nets │ ├── apte.nets │ └── ami33.nets ├── _PCBBenchmarks ├── README.md └── namer.py ├── __pycache__ ├── tree.cpython-37.pyc ├── tree.cpython-38.pyc ├── placedb.cpython-37.pyc ├── floorplan.cpython-37.pyc └── floorplan_smt.cpython-37.pyc ├── CMakeLists.txt ├── LICENSE ├── cmake_install.cmake ├── src ├── main.cpp └── floor_plan.hpp ├── floorplan_smt.py └── CMakeCache.txt /.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ucsdpcb/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CMakeFiles/progress.marks: -------------------------------------------------------------------------------- 1 | 2 2 | -------------------------------------------------------------------------------- /clean: -------------------------------------------------------------------------------- 1 | rm -rf CMakeFiles CMakeCache.txt 2 | -------------------------------------------------------------------------------- /CMakeFiles/main.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 1 2 | CMAKE_PROGRESS_2 = 2 3 | 4 | -------------------------------------------------------------------------------- /ucsdpcb/_PcbDB.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/ucsdpcb/_PcbDB.so -------------------------------------------------------------------------------- /input_pin_aware/archive/1.nets: -------------------------------------------------------------------------------- 1 | NumNets: 1 2 | NetDegree: 4 3 | bk1 4 | bk2 5 | bk3 6 | bk4 7 | -------------------------------------------------------------------------------- /input_pin_aware/archive/2.nets: -------------------------------------------------------------------------------- 1 | NumNets: 1 2 | NetDegree: 4 3 | bk1 4 | bk2 5 | bk3 6 | bk4 7 | -------------------------------------------------------------------------------- /input_pin_aware/archive/3.nets: -------------------------------------------------------------------------------- 1 | NumNets: 1 2 | NetDegree: 4 3 | bk1 4 | bk2 5 | bk3 6 | bk4 7 | -------------------------------------------------------------------------------- /_PCBBenchmarks/README.md: -------------------------------------------------------------------------------- 1 | # PCBBenchmarks 2 | 3 | These are KiCad PCB benchmarks for autorouting. 4 | -------------------------------------------------------------------------------- /ucsdpcb/_PcbPlacer.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/ucsdpcb/_PcbPlacer.so -------------------------------------------------------------------------------- /ucsdpcb/_PcbRouter.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/ucsdpcb/_PcbRouter.so -------------------------------------------------------------------------------- /input_pin_aware/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/input_pin_aware/.DS_Store -------------------------------------------------------------------------------- /CMakeFiles/cmake.check_cache: -------------------------------------------------------------------------------- 1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file 2 | -------------------------------------------------------------------------------- /CMakeFiles/feature_tests.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/CMakeFiles/feature_tests.bin -------------------------------------------------------------------------------- /__pycache__/tree.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/__pycache__/tree.cpython-37.pyc -------------------------------------------------------------------------------- /__pycache__/tree.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/__pycache__/tree.cpython-38.pyc -------------------------------------------------------------------------------- /CMakeFiles/3.13.4/CompilerIdC/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/CMakeFiles/3.13.4/CompilerIdC/a.out -------------------------------------------------------------------------------- /CMakeFiles/main.dir/src/main.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/CMakeFiles/main.dir/src/main.cpp.o -------------------------------------------------------------------------------- /__pycache__/placedb.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/__pycache__/placedb.cpython-37.pyc -------------------------------------------------------------------------------- /CMakeFiles/3.13.4/CompilerIdCXX/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/CMakeFiles/3.13.4/CompilerIdCXX/a.out -------------------------------------------------------------------------------- /__pycache__/floorplan.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/__pycache__/floorplan.cpython-37.pyc -------------------------------------------------------------------------------- /__pycache__/floorplan_smt.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/__pycache__/floorplan_smt.cpython-37.pyc -------------------------------------------------------------------------------- /ucsdpcb/__pycache__/PcbDB.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/ucsdpcb/__pycache__/PcbDB.cpython-37.pyc -------------------------------------------------------------------------------- /ucsdpcb/__pycache__/__init__.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/ucsdpcb/__pycache__/__init__.cpython-37.pyc -------------------------------------------------------------------------------- /CMakeFiles/3.13.4/CMakeDetermineCompilerABI_C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/CMakeFiles/3.13.4/CMakeDetermineCompilerABI_C.bin -------------------------------------------------------------------------------- /CMakeFiles/3.13.4/CMakeDetermineCompilerABI_CXX.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/choltz95/pcb-placement/HEAD/CMakeFiles/3.13.4/CMakeDetermineCompilerABI_CXX.bin -------------------------------------------------------------------------------- /CMakeFiles/TargetDirectories.txt: -------------------------------------------------------------------------------- 1 | /home/orange3xchicken/milp/lipo-b--annealing/CMakeFiles/rebuild_cache.dir 2 | /home/orange3xchicken/milp/lipo-b--annealing/CMakeFiles/main.dir 3 | /home/orange3xchicken/milp/lipo-b--annealing/CMakeFiles/edit_cache.dir 4 | -------------------------------------------------------------------------------- /CMakeFiles/main.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/c++ -std=c++11 -O3 -rdynamic CMakeFiles/main.dir/src/main.cpp.o -o main -Wl,-rpath,/usr/local/lib /usr/local/lib/libboost_iostreams.so /usr/local/lib/libboost_system.so /usr/local/lib/libboost_filesystem.so /usr/local/lib/libboost_regex.so 2 | -------------------------------------------------------------------------------- /CMakeFiles/main.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.13 3 | 4 | # compile CXX with /usr/bin/c++ 5 | CXX_FLAGS = -std=c++11 -O3 6 | 7 | CXX_DEFINES = 8 | 9 | CXX_INCLUDES = -I/usr/local/include 10 | 11 | -------------------------------------------------------------------------------- /CMakeFiles/main.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | file(REMOVE_RECURSE 2 | "CMakeFiles/main.dir/src/main.cpp.o" 3 | "main.pdb" 4 | "main" 5 | ) 6 | 7 | # Per-language clean rules from dependency scanning. 8 | foreach(lang CXX) 9 | include(CMakeFiles/main.dir/cmake_clean_${lang}.cmake OPTIONAL) 10 | endforeach() 11 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/xerox.pl: -------------------------------------------------------------------------------- 1 | UCLA pl 1.0 2 | # Created : Thu Nov 16 15:30:16 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | BLKB 0 0 7 | BLKD 0 0 8 | BLKLL 0 0 9 | BLKLR 0 0 10 | BLKP 0 0 11 | BLKRC 0 0 12 | BLKRS 0 0 13 | BLKT 0 0 14 | BLKUL 0 0 15 | BLKUR 0 0 16 | 17 | VSS 2912 0 18 | VDD 2912 6412 19 | -------------------------------------------------------------------------------- /input_pin_aware/archive/1.block: -------------------------------------------------------------------------------- 1 | Outline: 600 1200 2 | NumBlocks: 5 3 | NumTerminals: 3 4 | 5 | 6 | bk1 200 200 7 | bk2 600 600 8 | bk3 400 200 9 | bk4 400 400 10 | bk5 200 400 11 | 12 | 13 | VSS terminal 1281 1463 14 | VDD terminal 1687 0 15 | P9 terminal 266 0 16 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | 3 | project(FOFP) 4 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3") 5 | 6 | find_package(Boost COMPONENTS iostreams system filesystem REQUIRED) 7 | include_directories(${Boost_INCLUDE_DIR}) 8 | 9 | aux_source_directory(./src SRC) 10 | add_executable(main ${SRC}) 11 | target_link_libraries(main ${Boost_LIBRARIES}) 12 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/xerox.block: -------------------------------------------------------------------------------- 1 | Outline: 5336 4138 2 | NumBlocks: 10 3 | NumTerminals: 2 4 | 5 | BLKB 1295 616 6 | BLKD 1295 490 7 | BLKLL 1295 2534 8 | BLKLR 1295 2569 9 | BLKP 756 840 10 | BLKRC 1162 1939 11 | BLKRS 1218 1652 12 | BLKT 882 1316 13 | BLKUL 1295 2114 14 | BLKUR 1295 1939 15 | 16 | VSS terminal 2912 0 17 | VDD terminal 2912 6412 -------------------------------------------------------------------------------- /input_pin_aware/archive/xerox.block: -------------------------------------------------------------------------------- 1 | Outline: 5336 4138 2 | NumBlocks: 10 3 | NumTerminals: 2 4 | 5 | BLKB 1295 616 6 | BLKD 1295 490 7 | BLKLL 1295 2534 8 | BLKLR 1295 2569 9 | BLKP 756 840 10 | BLKRC 1162 1939 11 | BLKRS 1218 1652 12 | BLKT 882 1316 13 | BLKUL 1295 2114 14 | BLKUR 1295 1939 15 | 16 | VSS terminal 2912 0 17 | VDD terminal 2912 6412 -------------------------------------------------------------------------------- /CMakeFiles/3.13.4/CMakeSystem.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_HOST_SYSTEM "Linux-4.19.0-8-amd64") 2 | set(CMAKE_HOST_SYSTEM_NAME "Linux") 3 | set(CMAKE_HOST_SYSTEM_VERSION "4.19.0-8-amd64") 4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") 5 | 6 | 7 | 8 | set(CMAKE_SYSTEM "Linux-4.19.0-8-amd64") 9 | set(CMAKE_SYSTEM_NAME "Linux") 10 | set(CMAKE_SYSTEM_VERSION "4.19.0-8-amd64") 11 | set(CMAKE_SYSTEM_PROCESSOR "x86_64") 12 | 13 | set(CMAKE_CROSSCOMPILING "FALSE") 14 | 15 | set(CMAKE_SYSTEM_LOADED 1) 16 | -------------------------------------------------------------------------------- /_PCBBenchmarks/namer.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | for i in range(1, 100): 4 | 5 | filename = 'bm' + str(i) + '/bm' + str(i) + '.routed.kicad_pcb' 6 | new_file = '' 7 | 8 | with open(filename, 'r') as f: 9 | print() 10 | print() 11 | print(filename) 12 | component_count = 1 13 | for line in f.readlines(): 14 | new_line = line 15 | if '(fp_text reference ""' in line: 16 | new_line = line.replace('(fp_text reference ""', '(fp_text reference "U' + str(component_count) + '"', 1) 17 | component_count += 1 18 | print(new_line[:-1]) 19 | new_file += new_line 20 | 21 | with open(filename, 'w') as f: 22 | f.write(new_file) 23 | -------------------------------------------------------------------------------- /CMakeFiles/main.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | set(CMAKE_DEPENDS_LANGUAGES 3 | "CXX" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | set(CMAKE_DEPENDS_CHECK_CXX 7 | "/home/orange3xchicken/milp/lipo-b--annealing/src/main.cpp" "/home/orange3xchicken/milp/lipo-b--annealing/CMakeFiles/main.dir/src/main.cpp.o" 8 | ) 9 | set(CMAKE_CXX_COMPILER_ID "GNU") 10 | 11 | # The include file search paths: 12 | set(CMAKE_CXX_TARGET_INCLUDE_PATH 13 | "/usr/local/include" 14 | ) 15 | 16 | # Targets to which this target links. 17 | set(CMAKE_TARGET_LINKED_INFO_FILES 18 | ) 19 | 20 | # Fortran module output directory. 21 | set(CMAKE_Fortran_TARGET_MODULE_DIR "") 22 | -------------------------------------------------------------------------------- /CMakeFiles/CMakeDirectoryInformation.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.13 3 | 4 | # Relative path conversion top directories. 5 | set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/orange3xchicken/milp/lipo-b--annealing") 6 | set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/orange3xchicken/milp/lipo-b--annealing") 7 | 8 | # Force unix paths in dependencies. 9 | set(CMAKE_FORCE_UNIX_PATHS 1) 10 | 11 | 12 | # The C and CXX include file regular expressions for this directory. 13 | set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") 14 | set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") 15 | set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) 16 | set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) 17 | -------------------------------------------------------------------------------- /CMakeFiles/feature_tests.c: -------------------------------------------------------------------------------- 1 | 2 | const char features[] = {"\n" 3 | "C_FEATURE:" 4 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 5 | "1" 6 | #else 7 | "0" 8 | #endif 9 | "c_function_prototypes\n" 10 | "C_FEATURE:" 11 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 12 | "1" 13 | #else 14 | "0" 15 | #endif 16 | "c_restrict\n" 17 | "C_FEATURE:" 18 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L 19 | "1" 20 | #else 21 | "0" 22 | #endif 23 | "c_static_assert\n" 24 | "C_FEATURE:" 25 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 26 | "1" 27 | #else 28 | "0" 29 | #endif 30 | "c_variadic_macros\n" 31 | 32 | }; 33 | 34 | int main(int argc, char** argv) { (void)argv; return features[argc]; } 35 | -------------------------------------------------------------------------------- /input_pin_aware/archive/2.block: -------------------------------------------------------------------------------- 1 | Outline: 600 1200 2 | NumBlocks: 30 3 | NumTerminals: 3 4 | 5 | 6 | bk1 100 300 7 | bk2 200 100 8 | bk3 200 100 9 | bk4 300 100 10 | bk5 200 100 11 | 12 | bk1a 100 300 13 | bk2a 200 100 14 | bk3a 200 100 15 | bk4a 300 100 16 | bk5a 200 100 17 | 18 | bk1b 100 300 19 | bk2b 200 100 20 | bk3b 200 100 21 | bk4b 300 100 22 | bk5b 200 100 23 | 24 | bk1c 100 300 25 | bk2c 200 100 26 | bk3c 200 100 27 | bk4c 300 100 28 | bk5c 200 100 29 | 30 | 31 | abk1 100 300 32 | abk2 200 100 33 | abk3 200 100 34 | abk4 300 100 35 | abk5 200 100 36 | 37 | abk1a 100 300 38 | abk2a 200 100 39 | abk3a 200 100 40 | aabk4a 300 100 41 | abk5a 200 100 42 | 43 | 44 | 45 | 46 | 47 | 48 | VSS terminal 1281 1463 49 | VDD terminal 1687 0 50 | P9 terminal 266 0 51 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/xerox.blocks: -------------------------------------------------------------------------------- 1 | UCSC blocks 1.0 2 | # Created : Thu Nov 16 02:11:54 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | NumSoftRectangularBlocks : 0 7 | NumHardRectilinearBlocks : 10 8 | NumTerminals : 2 9 | 10 | BLKB hardrectilinear 4 (0, 0) (0, 616) (1295, 616) (1295, 0) 11 | BLKD hardrectilinear 4 (0, 0) (0, 490) (1295, 490) (1295, 0) 12 | BLKLL hardrectilinear 4 (0, 0) (0, 2534) (1295, 2534) (1295, 0) 13 | BLKLR hardrectilinear 4 (0, 0) (0, 2569) (1295, 2569) (1295, 0) 14 | BLKP hardrectilinear 4 (0, 0) (0, 840) (756, 840) (756, 0) 15 | BLKRC hardrectilinear 4 (0, 0) (0, 1939) (1162, 1939) (1162, 0) 16 | BLKRS hardrectilinear 4 (0, 0) (0, 1652) (1218, 1652) (1218, 0) 17 | BLKT hardrectilinear 4 (0, 0) (0, 1316) (882, 1316) (882, 0) 18 | BLKUL hardrectilinear 4 (0, 0) (0, 2114) (1295, 2114) (1295, 0) 19 | BLKUR hardrectilinear 4 (0, 0) (0, 1939) (1295, 1939) (1295, 0) 20 | 21 | VSS terminal 22 | VDD terminal 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Chester Holtz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/hp.pl: -------------------------------------------------------------------------------- 1 | UCLA pl 1.0 2 | # Created : Thu Nov 16 15:30:14 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | clkc 84 2100 7 | clkd 3696 1372 8 | cmp1 70 1050 9 | cmp2 70 350 10 | cmp3 0 0 11 | cntd 1190 70 12 | cntu 1190 2800 13 | npd 1400 1750 14 | nps 1400 2212 15 | ppd 1400 1442 16 | pps 1400 840 17 | 18 | bu7 4648 4200 19 | rs2 4312 4200 20 | mcu 3612 4200 21 | bu0 3136 4200 22 | bu1 2912 4200 23 | bu2 2688 4200 24 | bu3 2464 4200 25 | bu4 2072 4200 26 | bu5 1848 4200 27 | bu6 1792 4200 28 | gnd1 1064 4200 29 | vin1 728 4200 30 | mc1 0 2772 31 | vin 0 2100 32 | vssa 0 1722 33 | vdda 0 1680 34 | busa8 4928 2702 35 | busa7 4928 2674 36 | busa6 4928 2646 37 | busa5 4928 2618 38 | busa4 4928 2590 39 | busa3 4928 2562 40 | busa2 4928 2534 41 | busa1 4928 2506 42 | mk1 4928 2478 43 | vdd 4928 2100 44 | vss 4928 1764 45 | mc2 4928 1428 46 | mk2 4928 630 47 | mcd 4480 0 48 | rs1 4200 0 49 | busb4 3556 0 50 | busb3 3528 0 51 | busb2 3500 0 52 | busb1 3472 0 53 | b0 2884 0 54 | b1 2660 0 55 | b2 2464 0 56 | b3 2240 0 57 | b4 2044 0 58 | b5 1820 0 59 | b6 1624 0 60 | b7 1400 0 61 | gnd2 700 0 62 | vin2 364 0 63 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/ami33.pl: -------------------------------------------------------------------------------- 1 | UCLA pl 1.0 2 | # Created : Thu Nov 16 15:30:09 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | bk1 0 0 7 | bk10a 0 0 8 | bk10b 0 0 9 | bk10c 0 0 10 | bk11 0 0 11 | bk12 0 0 12 | bk13 0 0 13 | bk14a 0 0 14 | bk14b 0 0 15 | bk14c 0 0 16 | bk15a 0 0 17 | bk15b 0 0 18 | bk16 0 0 19 | bk17a 0 0 20 | bk17b 0 0 21 | bk18 0 0 22 | bk19 0 0 23 | bk2 0 0 24 | bk20 0 0 25 | bk21 0 0 26 | bk3 0 0 27 | bk4 0 0 28 | bk5a 0 0 29 | bk5b 0 0 30 | bk5c 0 0 31 | bk6 0 0 32 | bk7 0 0 33 | bk8a 0 0 34 | bk8b 0 0 35 | bk9a 0 0 36 | bk9b 0 0 37 | bk9c 0 0 38 | bk9d 0 0 39 | 40 | VSS 1281 1463 41 | VDD 1687 0 42 | P9 266 0 43 | P8 168 0 44 | P7 924 0 45 | P6 826 0 46 | P5 721 0 47 | P4 1022 0 48 | P37 945 1463 49 | P36 714 1463 50 | POW@0 350 1463 51 | POW@1 1960 0 52 | P35 0 483 53 | P34 0 343 54 | P33 0 196 55 | P32 0 623 56 | P31 0 1225 57 | P30 518 1463 58 | P3 1176 1463 59 | P29 616 1463 60 | P28 1484 0 61 | P27 336 1463 62 | P26 1267 0 63 | P25 553 0 64 | P24 2058 168 65 | P23 2058 861 66 | P22 2058 728 67 | P21 1400 1463 68 | P20 1645 1463 69 | P2 1127 0 70 | P19 2058 1421 71 | P18 2058 1365 72 | P17 2058 1106 73 | GND@0 2058 140 74 | GND@1 0 1120 75 | P16 0 763 76 | P15 0 994 77 | P14 2058 343 78 | P13 2058 602 79 | P12 2058 476 80 | P11 455 0 81 | P10 364 0 82 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/ami49.pl: -------------------------------------------------------------------------------- 1 | UMICH blocks 1.0 2 | 3 | 4 | 5 | M001 0 0 6 | M002 1008 1708 7 | M003 0 1708 8 | M004 3234 0 9 | M005 4886 1610 10 | M006 5418 1610 11 | M007 2310 2380 12 | M008 2562 1708 13 | M009 4424 2338 14 | M010 5600 4102 15 | M011 1918 5012 16 | M012 1512 5012 17 | M013 1918 5390 18 | M014 2310 3556 19 | M015 3808 1610 20 | M016 3808 2016 21 | M017 3234 2380 22 | M018 4116 3318 23 | M019 4032 2338 24 | M020 3234 2772 25 | M021 1092 4620 26 | M022 728 3892 27 | M023 3234 3108 28 | M024 2310 2730 29 | M025 2772 4718 30 | M026 1358 5810 31 | M027 518 5810 32 | M028 0 5194 33 | M029 518 5194 34 | M030 0 3892 35 | M031 4634 4550 36 | M032 3304 5040 37 | M033 3682 4396 38 | M034 2744 5040 39 | M035 1918 4620 40 | M036 1820 3108 41 | M037 1092 3556 42 | M038 4634 4102 43 | M039 4508 3318 44 | M040 3724 3486 45 | M041 2772 4354 46 | M042 3724 3318 47 | M043 5026 4550 48 | M044 4872 3472 49 | M045 5026 5082 50 | M046 1092 4116 51 | M047 1008 3108 52 | M048 1008 2380 53 | M049 2310 3962 54 | 55 | N024 0 3220 56 | N023 4718 0 57 | N022 7672 3402 58 | N021 7672 2562 59 | N020 0 6482 60 | N019 0 1050 61 | N017 0 2142 62 | N016 5754 7840 63 | N015 7672 5082 64 | N014 7672 4242 65 | N013 4634 7840 66 | N012 1274 7840 67 | N011 0 5390 68 | N010 3514 7840 69 | N009 2394 7840 70 | N008 0 4298 71 | N006 3598 0 72 | N005 2478 0 73 | N004 1358 0 74 | N003 7672 882 75 | N002 7672 1722 76 | N001 5838 0 77 | 78 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/apte.pl: -------------------------------------------------------------------------------- 1 | UCLA pl 1.0 2 | # Created : Thu Nov 16 15:30:12 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | cc_11 0 0 7 | cc_12 0 0 8 | cc_13 0 0 9 | cc_14 0 0 10 | cc_21 0 0 11 | cc_22 0 0 12 | cc_23 0 0 13 | cc_24 0 0 14 | clk 0 123 15 | 16 | new0 0 2500 17 | new1 0 2900 18 | new2 0 3300 19 | new3 0 3700 20 | new4 0 4100 21 | new5 0 4500 22 | new6 0 4900 23 | new7 0 5300 24 | new8 0 5700 25 | new10 0 6100 26 | new11 0 6500 27 | new12 0 6900 28 | new14 0 7300 29 | new15 0 7700 30 | new16 0 8100 31 | new17 0 8500 32 | new18 0 8900 33 | VSS 0 9300 34 | new19 1700 0 35 | new20 2100 0 36 | new21 2500 0 37 | new22 2900 0 38 | new28 3300 0 39 | new29 3700 0 40 | new30 4100 0 41 | new31 4500 0 42 | new32 4900 0 43 | new33 5300 0 44 | new39 5700 0 45 | new40 6100 0 46 | new41 6500 0 47 | new42 6900 0 48 | new43 7300 0 49 | new44 7700 0 50 | new46 8100 0 51 | new50 8500 0 52 | VDD 8900 0 53 | new51 10500 2500 54 | new52 10500 2900 55 | new54 10500 3300 56 | new55 10500 3700 57 | new56 10500 4100 58 | new57 10500 4500 59 | new58 10500 4900 60 | new59 10500 5300 61 | new60 10500 5700 62 | new62 10500 6100 63 | new63 10500 6500 64 | new64 10500 6900 65 | new65 10500 7300 66 | new66 10500 7700 67 | new67 10500 8100 68 | new69 10500 8500 69 | new70 10500 8900 70 | GND 10500 9300 71 | new71 1700 10500 72 | new72 2100 10500 73 | new73 2500 10500 74 | new74 2900 10500 75 | new75 3300 10500 76 | new76 3700 10500 77 | new77 4100 10500 78 | new78 4500 10500 79 | new79 4900 10500 80 | new80 5300 10500 81 | new81 5700 10500 82 | new82 6100 10500 83 | new83 6500 10500 84 | new84 6900 10500 85 | new85 7300 10500 86 | new86 7700 10500 87 | Phi 8100 10500 88 | TestHS1 8500 10500 89 | -------------------------------------------------------------------------------- /ucsdpcb/check_output.py: -------------------------------------------------------------------------------- 1 | from nltk import Tree 2 | 3 | def check_output(fname): 4 | def postprocess_layer(t, cur_layer="", cur_rot=0): 5 | if isinstance(t, str) or isinstance(t, float) or len(t) == 0: 6 | return 7 | 8 | # if current label is module, find the layer it's on 9 | if t.label() == "module": 10 | for c in t: 11 | if isinstance(c, str): 12 | continue 13 | elif c.label() == "layer": 14 | cur_layer = c[0] 15 | elif c.label() == "at": 16 | cur_rot = c[-1] 17 | elif t.label() == "pad": # if pad, set the layer to cur layer 18 | for c in t: 19 | if isinstance(c, str): 20 | continue 21 | elif c.label() == "layers": 22 | # iterate through layers and swap out layer type for the cur_layer 23 | for i,cc in enumerate(c): 24 | if cc == "Top" or cc == "Bottom": 25 | c[i] = cur_layer 26 | elif c.label() == "at": 27 | if len(c) < 3: 28 | continue 29 | c[-1] = float(c[-1]) % 360 30 | for c in t: 31 | postprocess_layer(c, cur_layer, cur_rot) 32 | 33 | # read file into tree structure 34 | print('reading ' + fname) 35 | s = open(fname, 'r').read() 36 | t = Tree.fromstring(s,leaf_pattern="\".*\"|[^\s]+") 37 | 38 | postprocess_layer(t) 39 | 40 | print('writing ' + './checked.'+fname) 41 | # write tree to file 42 | with open('./checked.'+fname,'w') as f: 43 | f.write(str(t)) 44 | -------------------------------------------------------------------------------- /cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: /home/orange3xchicken/milp/lipo-b--annealing 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "/usr/local") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Install shared libraries without execute permission? 31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) 32 | set(CMAKE_INSTALL_SO_NO_EXE "1") 33 | endif() 34 | 35 | # Is this installation the result of a crosscompile? 36 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 37 | set(CMAKE_CROSSCOMPILING "FALSE") 38 | endif() 39 | 40 | if(CMAKE_INSTALL_COMPONENT) 41 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") 42 | else() 43 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") 44 | endif() 45 | 46 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT 47 | "${CMAKE_INSTALL_MANIFEST_FILES}") 48 | file(WRITE "/home/orange3xchicken/milp/lipo-b--annealing/${CMAKE_INSTALL_MANIFEST}" 49 | "${CMAKE_INSTALL_MANIFEST_CONTENT}") 50 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/hp.blocks: -------------------------------------------------------------------------------- 1 | UCSC blocks 1.0 2 | # Created : Thu Nov 16 02:11:52 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | NumSoftRectangularBlocks : 0 7 | NumHardRectilinearBlocks : 11 8 | NumTerminals : 45 9 | 10 | clkc hardrectilinear 4 (0, 0) (0, 462) (1036, 462) (1036, 0) 11 | clkd hardrectilinear 4 (0, 0) (0, 700) (378, 700) (378, 0) 12 | cmp1 hardrectilinear 4 (0, 0) (0, 210) (980, 210) (980, 0) 13 | cmp2 hardrectilinear 4 (0, 0) (0, 210) (980, 210) (980, 0) 14 | cmp3 hardrectilinear 4 (0, 0) (0, 210) (980, 210) (980, 0) 15 | cntd hardrectilinear 4 (0, 0) (0, 546) (3304, 546) (3304, 0) 16 | cntu hardrectilinear 4 (0, 0) (0, 546) (3304, 546) (3304, 0) 17 | npd hardrectilinear 4 (0, 0) (0, 252) (2016, 252) (2016, 0) 18 | nps hardrectilinear 4 (0, 0) (0, 462) (3080, 462) (3080, 0) 19 | ppd hardrectilinear 4 (0, 0) (0, 252) (2016, 252) (2016, 0) 20 | pps hardrectilinear 4 (0, 0) (0, 462) (3080, 462) (3080, 0) 21 | 22 | bu7 terminal 23 | rs2 terminal 24 | mcu terminal 25 | bu0 terminal 26 | bu1 terminal 27 | bu2 terminal 28 | bu3 terminal 29 | bu4 terminal 30 | bu5 terminal 31 | bu6 terminal 32 | gnd1 terminal 33 | vin1 terminal 34 | mc1 terminal 35 | vin terminal 36 | vssa terminal 37 | vdda terminal 38 | busa8 terminal 39 | busa7 terminal 40 | busa6 terminal 41 | busa5 terminal 42 | busa4 terminal 43 | busa3 terminal 44 | busa2 terminal 45 | busa1 terminal 46 | mk1 terminal 47 | vdd terminal 48 | vss terminal 49 | mc2 terminal 50 | mk2 terminal 51 | mcd terminal 52 | rs1 terminal 53 | busb4 terminal 54 | busb3 terminal 55 | busb2 terminal 56 | busb1 terminal 57 | b0 terminal 58 | b1 terminal 59 | b2 terminal 60 | b3 terminal 61 | b4 terminal 62 | b5 terminal 63 | b6 terminal 64 | b7 terminal 65 | gnd2 terminal 66 | vin2 terminal 67 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/ami49.block: -------------------------------------------------------------------------------- 1 | Outline: 5336 7673 2 | NumBlocks: 49 3 | NumTerminals: 22 4 | 5 | M001 1708 3234 6 | M002 672 1554 7 | M003 2184 1008 8 | M004 3080 1610 9 | M005 532 1386 10 | M006 1862 882 11 | M007 350 868 12 | M008 644 1246 13 | M009 980 462 14 | M010 294 616 15 | M011 826 378 16 | M012 798 406 17 | M013 266 672 18 | M014 406 924 19 | M015 406 840 20 | M016 322 798 21 | M017 392 756 22 | M018 1078 392 23 | M019 392 826 24 | M020 798 252 25 | M021 392 826 26 | M022 952 364 27 | M023 1134 490 28 | M024 798 266 29 | M025 784 322 30 | M026 350 728 31 | M027 364 840 32 | M028 518 1064 33 | M029 490 994 34 | M030 1302 728 35 | M031 392 1050 36 | M032 784 378 37 | M033 1890 952 38 | M034 560 1148 39 | M035 854 392 40 | M036 994 448 41 | M037 1218 560 42 | M038 448 966 43 | M039 364 784 44 | M040 392 868 45 | M041 364 854 46 | M042 168 378 47 | M043 910 532 48 | M044 630 1302 49 | M045 672 1162 50 | M046 1204 504 51 | M047 434 812 52 | M048 1302 728 53 | M049 392 742 54 | 55 | N024 terminal 0 3220 56 | N023 terminal 4718 0 57 | N022 terminal 7672 3402 58 | N021 terminal 7672 2562 59 | N020 terminal 0 6482 60 | N019 terminal 0 1050 61 | N017 terminal 0 2142 62 | N016 terminal 5754 7840 63 | N015 terminal 7672 5082 64 | N014 terminal 7672 4242 65 | N013 terminal 4634 7840 66 | N012 terminal 1274 7840 67 | N011 terminal 0 5390 68 | N010 terminal 3514 7840 69 | N009 terminal 2394 7840 70 | N008 terminal 0 4298 71 | N006 terminal 3598 0 72 | N005 terminal 2478 0 73 | N004 terminal 1358 0 74 | N003 terminal 7672 882 75 | N002 terminal 7672 1722 76 | N001 terminal 5838 0 77 | -------------------------------------------------------------------------------- /input_pin_aware/archive/ami49.block: -------------------------------------------------------------------------------- 1 | Outline: 5336 7673 2 | NumBlocks: 49 3 | NumTerminals: 22 4 | M001 1708 3234 5 | M002 672 1554 6 | M003 2184 1008 7 | M004 3080 1610 8 | M005 532 1386 9 | M006 1862 882 10 | M007 350 868 11 | M008 644 1246 12 | M009 980 462 13 | M010 294 616 14 | M011 826 378 15 | M012 798 406 16 | M013 266 672 17 | M014 406 924 18 | M015 406 840 19 | M016 322 798 20 | M017 392 756 21 | M018 1078 392 22 | M019 392 826 23 | M020 798 252 24 | M021 392 826 25 | M022 952 364 26 | M023 1134 490 27 | M024 798 266 28 | M025 784 322 29 | M026 350 728 30 | M027 364 840 31 | M028 518 1064 32 | M029 490 994 33 | M030 1302 728 34 | M031 392 1050 35 | M032 784 378 36 | M033 1890 952 37 | M034 560 1148 38 | M035 854 392 39 | M036 994 448 40 | M037 1218 560 41 | M038 448 966 42 | M039 364 784 43 | M040 392 868 44 | M041 364 854 45 | M042 168 378 46 | M043 910 532 47 | M044 630 1302 48 | M045 672 1162 49 | M046 1204 504 50 | M047 434 812 51 | M048 1302 728 52 | M049 392 742 53 | 54 | N024 terminal 0 3220 55 | N023 terminal 4718 0 56 | N022 terminal 7672 3402 57 | N021 terminal 7672 2562 58 | N020 terminal 0 6482 59 | N019 terminal 0 1050 60 | N017 terminal 0 2142 61 | N016 terminal 5754 7840 62 | N015 terminal 7672 5082 63 | N014 terminal 7672 4242 64 | N013 terminal 4634 7840 65 | N012 terminal 1274 7840 66 | N011 terminal 0 5390 67 | N010 terminal 3514 7840 68 | N009 terminal 2394 7840 69 | N008 terminal 0 4298 70 | N006 terminal 3598 0 71 | N005 terminal 2478 0 72 | N004 terminal 1358 0 73 | N003 terminal 7672 882 74 | N002 terminal 7672 1722 75 | N001 terminal 5838 0 -------------------------------------------------------------------------------- /input_pin_aware/mcnc/hp.block: -------------------------------------------------------------------------------- 1 | Outline: 3866 2646 2 | NumBlocks: 11 3 | NumTerminals: 45 4 | 5 | clkc 1036 462 6 | clkd 378 700 7 | cmp1 980 210 8 | cmp2 980 210 9 | cmp3 980 210 10 | cntd 3304 546 11 | cntu 3304 546 12 | npd 2016 252 13 | nps 3080 462 14 | ppd 2016 252 15 | pps 3080 462 16 | 17 | bu7 terminal 4648 4200 18 | rs2 terminal 4312 4200 19 | mcu terminal 3612 4200 20 | bu0 terminal 3136 4200 21 | bu1 terminal 2912 4200 22 | bu2 terminal 2688 4200 23 | bu3 terminal 2464 4200 24 | bu4 terminal 2072 4200 25 | bu5 terminal 1848 4200 26 | bu6 terminal 1792 4200 27 | gnd1 terminal 1064 4200 28 | vin1 terminal 728 4200 29 | mc1 terminal 0 2772 30 | vin terminal 0 2100 31 | vssa terminal 0 1722 32 | vdda terminal 0 1680 33 | busa8 terminal 4928 2702 34 | busa7 terminal 4928 2674 35 | busa6 terminal 4928 2646 36 | busa5 terminal 4928 2618 37 | busa4 terminal 4928 2590 38 | busa3 terminal 4928 2562 39 | busa2 terminal 4928 2534 40 | busa1 terminal 4928 2506 41 | mk1 terminal 4928 2478 42 | vdd terminal 4928 2100 43 | vss terminal 4928 1764 44 | mc2 terminal 4928 1428 45 | mk2 terminal 4928 630 46 | mcd terminal 4480 0 47 | rs1 terminal 4200 0 48 | busb4 terminal 3556 0 49 | busb3 terminal 3528 0 50 | busb2 terminal 3500 0 51 | busb1 terminal 3472 0 52 | b0 terminal 2884 0 53 | b1 terminal 2660 0 54 | b2 terminal 2464 0 55 | b3 terminal 2240 0 56 | b4 terminal 2044 0 57 | b5 terminal 1820 0 58 | b6 terminal 1624 0 59 | b7 terminal 1400 0 60 | gnd2 terminal 700 0 61 | vin2 terminal 364 0 -------------------------------------------------------------------------------- /input_pin_aware/archive/hp.block: -------------------------------------------------------------------------------- 1 | Outline: 3866 2646 2 | NumBlocks: 11 3 | NumTerminals: 45 4 | 5 | clkc 1036 462 6 | clkd 378 700 7 | cmp1 980 210 8 | cmp2 980 210 9 | cmp3 980 210 10 | cntd 3304 546 11 | cntu 3304 546 12 | npd 2016 252 13 | nps 3080 462 14 | ppd 2016 252 15 | pps 3080 462 16 | 17 | bu7 terminal 4648 4200 18 | rs2 terminal 4312 4200 19 | mcu terminal 3612 4200 20 | bu0 terminal 3136 4200 21 | bu1 terminal 2912 4200 22 | bu2 terminal 2688 4200 23 | bu3 terminal 2464 4200 24 | bu4 terminal 2072 4200 25 | bu5 terminal 1848 4200 26 | bu6 terminal 1792 4200 27 | gnd1 terminal 1064 4200 28 | vin1 terminal 728 4200 29 | mc1 terminal 0 2772 30 | vin terminal 0 2100 31 | vssa terminal 0 1722 32 | vdda terminal 0 1680 33 | busa8 terminal 4928 2702 34 | busa7 terminal 4928 2674 35 | busa6 terminal 4928 2646 36 | busa5 terminal 4928 2618 37 | busa4 terminal 4928 2590 38 | busa3 terminal 4928 2562 39 | busa2 terminal 4928 2534 40 | busa1 terminal 4928 2506 41 | mk1 terminal 4928 2478 42 | vdd terminal 4928 2100 43 | vss terminal 4928 1764 44 | mc2 terminal 4928 1428 45 | mk2 terminal 4928 630 46 | mcd terminal 4480 0 47 | rs1 terminal 4200 0 48 | busb4 terminal 3556 0 49 | busb3 terminal 3528 0 50 | busb2 terminal 3500 0 51 | busb1 terminal 3472 0 52 | b0 terminal 2884 0 53 | b1 terminal 2660 0 54 | b2 terminal 2464 0 55 | b3 terminal 2240 0 56 | b4 terminal 2044 0 57 | b5 terminal 1820 0 58 | b6 terminal 1624 0 59 | b7 terminal 1400 0 60 | gnd2 terminal 700 0 61 | vin2 terminal 364 0 -------------------------------------------------------------------------------- /input_pin_aware/mcnc/apte.blocks: -------------------------------------------------------------------------------- 1 | UCSC blocks 1.0 2 | # Created : Thu Nov 16 02:11:51 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | NumSoftRectangularBlocks : 0 7 | NumHardRectilinearBlocks : 9 8 | NumTerminals : 73 9 | 10 | cc_11 hardrectilinear 4 (0, 0) (0, 1826) (3146, 1826) (3146, 0) 11 | cc_12 hardrectilinear 4 (0, 0) (0, 1826) (3146, 1826) (3146, 0) 12 | cc_13 hardrectilinear 4 (0, 0) (0, 1826) (3146, 1826) (3146, 0) 13 | cc_14 hardrectilinear 4 (0, 0) (0, 1826) (3146, 1826) (3146, 0) 14 | cc_21 hardrectilinear 4 (0, 0) (0, 1832) (3186, 1832) (3186, 0) 15 | cc_22 hardrectilinear 4 (0, 0) (0, 1832) (3186, 1832) (3186, 0) 16 | cc_23 hardrectilinear 4 (0, 0) (0, 1832) (3186, 1832) (3186, 0) 17 | cc_24 hardrectilinear 4 (0, 0) (0, 1832) (3186, 1832) (3186, 0) 18 | clk hardrectilinear 4 (0, 0) (0, 286) (826, 286) (826, 0) 19 | 20 | new0 terminal 21 | new1 terminal 22 | new2 terminal 23 | new3 terminal 24 | new4 terminal 25 | new5 terminal 26 | new6 terminal 27 | new7 terminal 28 | new8 terminal 29 | new10 terminal 30 | new11 terminal 31 | new12 terminal 32 | new14 terminal 33 | new15 terminal 34 | new16 terminal 35 | new17 terminal 36 | new18 terminal 37 | VSS terminal 38 | new19 terminal 39 | new20 terminal 40 | new21 terminal 41 | new22 terminal 42 | new28 terminal 43 | new29 terminal 44 | new30 terminal 45 | new31 terminal 46 | new32 terminal 47 | new33 terminal 48 | new39 terminal 49 | new40 terminal 50 | new41 terminal 51 | new42 terminal 52 | new43 terminal 53 | new44 terminal 54 | new46 terminal 55 | new50 terminal 56 | VDD terminal 57 | new51 terminal 58 | new52 terminal 59 | new54 terminal 60 | new55 terminal 61 | new56 terminal 62 | new57 terminal 63 | new58 terminal 64 | new59 terminal 65 | new60 terminal 66 | new62 terminal 67 | new63 terminal 68 | new64 terminal 69 | new65 terminal 70 | new66 terminal 71 | new67 terminal 72 | new69 terminal 73 | new70 terminal 74 | GND terminal 75 | new71 terminal 76 | new72 terminal 77 | new73 terminal 78 | new74 terminal 79 | new75 terminal 80 | new76 terminal 81 | new77 terminal 82 | new78 terminal 83 | new79 terminal 84 | new80 terminal 85 | new81 terminal 86 | new82 terminal 87 | new83 terminal 88 | new84 terminal 89 | new85 terminal 90 | new86 terminal 91 | Phi terminal 92 | TestHS1 terminal 93 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/ami33.block: -------------------------------------------------------------------------------- 1 | Outline: 1205 1095 2 | NumBlocks: 33 3 | NumTerminals: 40 4 | 5 | bk1 336 133 6 | bk10a 378 119 7 | bk10b 161 140 8 | bk10c 119 49 9 | bk11 175 119 10 | bk12 140 406 11 | bk13 140 497 12 | bk14a 196 119 13 | bk14b 294 119 14 | bk14c 161 119 15 | bk15a 119 266 16 | bk15b 119 336 17 | bk16 119 126 18 | bk17a 371 182 19 | bk17b 182 203 20 | bk18 182 203 21 | bk19 84 119 22 | bk2 133 294 23 | bk20 182 350 24 | bk21 315 140 25 | bk3 133 315 26 | bk4 560 133 27 | bk5a 133 140 28 | bk5b 175 133 29 | bk5c 133 231 30 | bk6 133 315 31 | bk7 182 98 32 | bk8a 210 210 33 | bk8b 126 378 34 | bk9a 182 119 35 | bk9b 119 119 36 | bk9c 357 119 37 | bk9d 119 84 38 | 39 | VSS terminal 1281 1463 40 | VDD terminal 1687 0 41 | P9 terminal 266 0 42 | P8 terminal 168 0 43 | P7 terminal 924 0 44 | P6 terminal 826 0 45 | P5 terminal 721 0 46 | P4 terminal 1022 0 47 | P37 terminal 945 1463 48 | P36 terminal 714 1463 49 | POW terminal 350 1463 50 | P35 terminal 0 483 51 | P34 terminal 0 343 52 | P33 terminal 0 196 53 | P32 terminal 0 623 54 | P31 terminal 0 1225 55 | P30 terminal 518 1463 56 | P3 terminal 1176 1463 57 | P29 terminal 616 1463 58 | P28 terminal 1484 0 59 | P27 terminal 336 1463 60 | P26 terminal 1267 0 61 | P25 terminal 553 0 62 | P24 terminal 2058 168 63 | P23 terminal 2058 861 64 | P22 terminal 2058 728 65 | P21 terminal 1400 1463 66 | P20 terminal 1645 1463 67 | P2 terminal 1127 0 68 | P19 terminal 2058 1421 69 | P18 terminal 2058 1365 70 | P17 terminal 2058 1106 71 | GND terminal 2058 140 72 | P16 terminal 0 763 73 | P15 terminal 0 994 74 | P14 terminal 2058 343 75 | P13 terminal 2058 602 76 | P12 terminal 2058 476 77 | P11 terminal 455 0 78 | P10 terminal 364 0 79 | -------------------------------------------------------------------------------- /input_pin_aware/archive/ami33.block: -------------------------------------------------------------------------------- 1 | Outline: 1205 1095 2 | NumBlocks: 33 3 | NumTerminals: 40 4 | 5 | bk1 336 133 6 | bk10a 378 119 7 | bk10b 161 140 8 | bk10c 119 49 9 | bk11 175 119 10 | bk12 140 406 11 | bk13 140 497 12 | bk14a 196 119 13 | bk14b 294 119 14 | bk14c 161 119 15 | bk15a 119 266 16 | bk15b 119 336 17 | bk16 119 126 18 | bk17a 371 182 19 | bk17b 182 203 20 | bk18 182 203 21 | bk19 84 119 22 | bk2 133 294 23 | bk20 182 350 24 | bk21 315 140 25 | bk3 133 315 26 | bk4 560 133 27 | bk5a 133 140 28 | bk5b 175 133 29 | bk5c 133 231 30 | bk6 133 315 31 | bk7 182 98 32 | bk8a 210 210 33 | bk8b 126 378 34 | bk9a 182 119 35 | bk9b 119 119 36 | bk9c 357 119 37 | bk9d 119 84 38 | 39 | VSS terminal 1281 1463 40 | VDD terminal 1687 0 41 | P9 terminal 266 0 42 | P8 terminal 168 0 43 | P7 terminal 924 0 44 | P6 terminal 826 0 45 | P5 terminal 721 0 46 | P4 terminal 1022 0 47 | P37 terminal 945 1463 48 | P36 terminal 714 1463 49 | POW terminal 350 1463 50 | P35 terminal 0 483 51 | P34 terminal 0 343 52 | P33 terminal 0 196 53 | P32 terminal 0 623 54 | P31 terminal 0 1225 55 | P30 terminal 518 1463 56 | P3 terminal 1176 1463 57 | P29 terminal 616 1463 58 | P28 terminal 1484 0 59 | P27 terminal 336 1463 60 | P26 terminal 1267 0 61 | P25 terminal 553 0 62 | P24 terminal 2058 168 63 | P23 terminal 2058 861 64 | P22 terminal 2058 728 65 | P21 terminal 1400 1463 66 | P20 terminal 1645 1463 67 | P2 terminal 1127 0 68 | P19 terminal 2058 1421 69 | P18 terminal 2058 1365 70 | P17 terminal 2058 1106 71 | GND terminal 2058 140 72 | P16 terminal 0 763 73 | P15 terminal 0 994 74 | P14 terminal 2058 343 75 | P13 terminal 2058 602 76 | P12 terminal 2058 476 77 | P11 terminal 455 0 78 | P10 terminal 364 0 79 | -------------------------------------------------------------------------------- /CMakeFiles/3.13.4/CMakeCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_COMPILER "/usr/bin/cc") 2 | set(CMAKE_C_COMPILER_ARG1 "") 3 | set(CMAKE_C_COMPILER_ID "GNU") 4 | set(CMAKE_C_COMPILER_VERSION "8.3.0") 5 | set(CMAKE_C_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_C_COMPILER_WRAPPER "") 7 | set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") 8 | set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") 9 | set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") 10 | set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") 11 | set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") 12 | 13 | set(CMAKE_C_PLATFORM_ID "Linux") 14 | set(CMAKE_C_SIMULATE_ID "") 15 | set(CMAKE_C_SIMULATE_VERSION "") 16 | 17 | 18 | 19 | set(CMAKE_AR "/usr/bin/ar") 20 | set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-8") 21 | set(CMAKE_RANLIB "/usr/bin/ranlib") 22 | set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-8") 23 | set(CMAKE_LINKER "/usr/bin/ld") 24 | set(CMAKE_COMPILER_IS_GNUCC 1) 25 | set(CMAKE_C_COMPILER_LOADED 1) 26 | set(CMAKE_C_COMPILER_WORKS TRUE) 27 | set(CMAKE_C_ABI_COMPILED TRUE) 28 | set(CMAKE_COMPILER_IS_MINGW ) 29 | set(CMAKE_COMPILER_IS_CYGWIN ) 30 | if(CMAKE_COMPILER_IS_CYGWIN) 31 | set(CYGWIN 1) 32 | set(UNIX 1) 33 | endif() 34 | 35 | set(CMAKE_C_COMPILER_ENV_VAR "CC") 36 | 37 | if(CMAKE_COMPILER_IS_MINGW) 38 | set(MINGW 1) 39 | endif() 40 | set(CMAKE_C_COMPILER_ID_RUN 1) 41 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) 42 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) 43 | set(CMAKE_C_LINKER_PREFERENCE 10) 44 | 45 | # Save compiler ABI information. 46 | set(CMAKE_C_SIZEOF_DATA_PTR "8") 47 | set(CMAKE_C_COMPILER_ABI "ELF") 48 | set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 49 | 50 | if(CMAKE_C_SIZEOF_DATA_PTR) 51 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") 52 | endif() 53 | 54 | if(CMAKE_C_COMPILER_ABI) 55 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") 56 | endif() 57 | 58 | if(CMAKE_C_LIBRARY_ARCHITECTURE) 59 | set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 60 | endif() 61 | 62 | set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") 63 | if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) 64 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") 65 | endif() 66 | 67 | 68 | 69 | 70 | 71 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") 72 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") 73 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 74 | -------------------------------------------------------------------------------- /input_pin_aware/archive/3.block: -------------------------------------------------------------------------------- 1 | Outline: 16938 12668 2 | NumBlocks: 103 3 | NumTerminals: 3 4 | 5 | bb 5000 5000 6 | bb1 5000 5000 7 | bb2 5000 5000 8 | bb3 5000 5000 9 | 10 | bk1 100 300 11 | bk2 200 100 12 | bk3 200 100 13 | bk4 300 100 14 | bk5 200 100 15 | 16 | bk1a 100 300 17 | bk2a 200 100 18 | bk3a 200 100 19 | bk4a 300 100 20 | bk5a 200 100 21 | 22 | bk1b 100 300 23 | bk2b 200 100 24 | bk3b 200 100 25 | bk4b 300 100 26 | bk5b 200 100 27 | 28 | bk1c 100 300 29 | bk2c 200 100 30 | bk3c 200 100 31 | bk4c 300 100 32 | bk5c 200 100 33 | 34 | 35 | M001 1708 3234 36 | M002 672 1554 37 | M003 2184 1008 38 | M004 3080 1610 39 | M005 532 1386 40 | M006 1862 882 41 | M007 350 868 42 | M008 644 1246 43 | M009 980 462 44 | M010 294 616 45 | M011 826 378 46 | M012 798 406 47 | M013 266 672 48 | M014 406 924 49 | M015 406 840 50 | M016 322 798 51 | M017 392 756 52 | M018 1078 392 53 | M019 392 826 54 | M020 798 252 55 | M021 392 826 56 | M022 952 364 57 | M023 1134 490 58 | M024 798 266 59 | M025 784 322 60 | M026 350 728 61 | M027 364 840 62 | M028 518 1064 63 | M029 490 994 64 | M030 1302 728 65 | M031 392 1050 66 | M032 784 378 67 | M033 1890 952 68 | M034 560 1148 69 | M035 854 392 70 | M036 994 448 71 | M037 1218 560 72 | M038 448 966 73 | M039 364 784 74 | M040 392 868 75 | M041 364 854 76 | M042 168 378 77 | M043 910 532 78 | M044 630 1302 79 | M045 672 1162 80 | M046 1204 504 81 | M047 434 812 82 | M048 1302 728 83 | M049 392 742 84 | 85 | cntd 3304 546 86 | cntu 3304 546 87 | npd 2016 252 88 | nps 3080 462 89 | ppd 2016 252 90 | pps 3080 462 91 | clkc 1036 462 92 | clkd 378 700 93 | cmp1 980 210 94 | cmp2 980 210 95 | cmp3 980 210 96 | 97 | 98 | 99 | abk1 100 300 100 | abk2 200 100 101 | abk3 200 100 102 | abk4 300 100 103 | abk5 200 100 104 | 105 | abk1a 100 300 106 | abk2a 200 100 107 | abk3a 200 100 108 | aabk4a 300 100 109 | abk5a 200 100 110 | 111 | cc_11 3146 1826 112 | cc_12 3146 1826 113 | cc_13 3146 1826 114 | cc_14 3146 1826 115 | cc_21 3186 1832 116 | cc_22 3186 1832 117 | cc_23 3186 1832 118 | cc_24 3186 1832 119 | clk 826 286 120 | 121 | 122 | 123 | 124 | 125 | 126 | VSS terminal 1281 1463 127 | VDD terminal 1687 0 128 | P9 terminal 266 0 129 | -------------------------------------------------------------------------------- /input_pin_aware/archive/apte.block: -------------------------------------------------------------------------------- 1 | Outline: 9912 5262 2 | NumBlocks: 9 3 | NumTerminals: 73 4 | 5 | cc_11 3146 1826 6 | cc_12 3146 1826 7 | cc_13 3146 1826 8 | cc_14 3146 1826 9 | cc_21 3186 1832 10 | cc_22 3186 1832 11 | cc_23 3186 1832 12 | cc_24 3186 1832 13 | clk 826 286 14 | 15 | new0 terminal 0 2500 16 | new1 terminal 0 2900 17 | new2 terminal 0 3300 18 | new3 terminal 0 3700 19 | new4 terminal 0 4100 20 | new5 terminal 0 4500 21 | new6 terminal 0 4900 22 | new7 terminal 0 5300 23 | new8 terminal 0 5700 24 | new10 terminal 0 6100 25 | new11 terminal 0 6500 26 | new12 terminal 0 6900 27 | new14 terminal 0 7300 28 | new15 terminal 0 7700 29 | new16 terminal 0 8100 30 | new17 terminal 0 8500 31 | new18 terminal 0 8900 32 | VSS terminal 0 9300 33 | new19 terminal 1700 0 34 | new20 terminal 2100 0 35 | new21 terminal 2500 0 36 | new22 terminal 2900 0 37 | new28 terminal 3300 0 38 | new29 terminal 3700 0 39 | new30 terminal 4100 0 40 | new31 terminal 4500 0 41 | new32 terminal 4900 0 42 | new33 terminal 5300 0 43 | new39 terminal 5700 0 44 | new40 terminal 6100 0 45 | new41 terminal 6500 0 46 | new42 terminal 6900 0 47 | new43 terminal 7300 0 48 | new44 terminal 7700 0 49 | new46 terminal 8100 0 50 | new50 terminal 8500 0 51 | VDD terminal 8900 0 52 | new51 terminal 10500 2500 53 | new52 terminal 10500 2900 54 | new54 terminal 10500 3300 55 | new55 terminal 10500 3700 56 | new56 terminal 10500 4100 57 | new57 terminal 10500 4500 58 | new58 terminal 10500 4900 59 | new59 terminal 10500 5300 60 | new60 terminal 10500 5700 61 | new62 terminal 10500 6100 62 | new63 terminal 10500 6500 63 | new64 terminal 10500 6900 64 | new65 terminal 10500 7300 65 | new66 terminal 10500 7700 66 | new67 terminal 10500 8100 67 | new69 terminal 10500 8500 68 | new70 terminal 10500 8900 69 | GND terminal 10500 9300 70 | new71 terminal 1700 10500 71 | new72 terminal 2100 10500 72 | new73 terminal 2500 10500 73 | new74 terminal 2900 10500 74 | new75 terminal 3300 10500 75 | new76 terminal 3700 10500 76 | new77 terminal 4100 10500 77 | new78 terminal 4500 10500 78 | new79 terminal 4900 10500 79 | new80 terminal 5300 10500 80 | new81 terminal 5700 10500 81 | new82 terminal 6100 10500 82 | new83 terminal 6500 10500 83 | new84 terminal 6900 10500 84 | new85 terminal 7300 10500 85 | new86 terminal 7700 10500 86 | Phi terminal 8100 10500 87 | TestHS1 terminal 8500 10500 88 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/apte.block: -------------------------------------------------------------------------------- 1 | Outline: 9912 5262 2 | NumBlocks: 9 3 | NumTerminals: 73 4 | 5 | cc_11 3146 1826 6 | cc_12 3146 1826 7 | cc_13 3146 1826 8 | cc_14 3146 1826 9 | cc_21 3186 1832 10 | cc_22 3186 1832 11 | cc_23 3186 1832 12 | cc_24 3186 1832 13 | clk 826 286 14 | 15 | new0 terminal 0 2500 16 | new1 terminal 0 2900 17 | new2 terminal 0 3300 18 | new3 terminal 0 3700 19 | new4 terminal 0 4100 20 | new5 terminal 0 4500 21 | new6 terminal 0 4900 22 | new7 terminal 0 5300 23 | new8 terminal 0 5700 24 | new10 terminal 0 6100 25 | new11 terminal 0 6500 26 | new12 terminal 0 6900 27 | new14 terminal 0 7300 28 | new15 terminal 0 7700 29 | new16 terminal 0 8100 30 | new17 terminal 0 8500 31 | new18 terminal 0 8900 32 | VSS terminal 0 9300 33 | new19 terminal 1700 0 34 | new20 terminal 2100 0 35 | new21 terminal 2500 0 36 | new22 terminal 2900 0 37 | new28 terminal 3300 0 38 | new29 terminal 3700 0 39 | new30 terminal 4100 0 40 | new31 terminal 4500 0 41 | new32 terminal 4900 0 42 | new33 terminal 5300 0 43 | new39 terminal 5700 0 44 | new40 terminal 6100 0 45 | new41 terminal 6500 0 46 | new42 terminal 6900 0 47 | new43 terminal 7300 0 48 | new44 terminal 7700 0 49 | new46 terminal 8100 0 50 | new50 terminal 8500 0 51 | VDD terminal 8900 0 52 | new51 terminal 10500 2500 53 | new52 terminal 10500 2900 54 | new54 terminal 10500 3300 55 | new55 terminal 10500 3700 56 | new56 terminal 10500 4100 57 | new57 terminal 10500 4500 58 | new58 terminal 10500 4900 59 | new59 terminal 10500 5300 60 | new60 terminal 10500 5700 61 | new62 terminal 10500 6100 62 | new63 terminal 10500 6500 63 | new64 terminal 10500 6900 64 | new65 terminal 10500 7300 65 | new66 terminal 10500 7700 66 | new67 terminal 10500 8100 67 | new69 terminal 10500 8500 68 | new70 terminal 10500 8900 69 | GND terminal 10500 9300 70 | new71 terminal 1700 10500 71 | new72 terminal 2100 10500 72 | new73 terminal 2500 10500 73 | new74 terminal 2900 10500 74 | new75 terminal 3300 10500 75 | new76 terminal 3700 10500 76 | new77 terminal 4100 10500 77 | new78 terminal 4500 10500 78 | new79 terminal 4900 10500 79 | new80 terminal 5300 10500 80 | new81 terminal 5700 10500 81 | new82 terminal 6100 10500 82 | new83 terminal 6500 10500 83 | new84 terminal 6900 10500 84 | new85 terminal 7300 10500 85 | new86 terminal 7700 10500 86 | Phi terminal 8100 10500 87 | TestHS1 terminal 8500 10500 88 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/ami33.blocks: -------------------------------------------------------------------------------- 1 | UCSC blocks 1.0 2 | # Created : Thu Nov 16 02:11:47 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | NumSoftRectangularBlocks : 0 7 | NumHardRectilinearBlocks : 33 8 | NumTerminals : 42 9 | 10 | bk1 hardrectilinear 4 (0, 0) (0, 133) (336, 133) (336, 0) 11 | bk10a hardrectilinear 4 (0, 0) (0, 119) (378, 119) (378, 0) 12 | bk10b hardrectilinear 4 (0, 0) (0, 140) (161, 140) (161, 0) 13 | bk10c hardrectilinear 4 (0, 0) (0, 49) (119, 49) (119, 0) 14 | bk11 hardrectilinear 4 (0, 0) (0, 119) (175, 119) (175, 0) 15 | bk12 hardrectilinear 4 (0, 0) (0, 406) (140, 406) (140, 0) 16 | bk13 hardrectilinear 4 (0, 0) (0, 497) (140, 497) (140, 0) 17 | bk14a hardrectilinear 4 (0, 0) (0, 119) (196, 119) (196, 0) 18 | bk14b hardrectilinear 4 (0, 0) (0, 119) (294, 119) (294, 0) 19 | bk14c hardrectilinear 4 (0, 0) (0, 119) (161, 119) (161, 0) 20 | bk15a hardrectilinear 4 (0, 0) (0, 266) (119, 266) (119, 0) 21 | bk15b hardrectilinear 4 (0, 0) (0, 336) (119, 336) (119, 0) 22 | bk16 hardrectilinear 4 (0, 0) (0, 126) (119, 126) (119, 0) 23 | bk17a hardrectilinear 4 (0, 0) (0, 182) (371, 182) (371, 0) 24 | bk17b hardrectilinear 4 (0, 0) (0, 203) (182, 203) (182, 0) 25 | bk18 hardrectilinear 4 (0, 0) (0, 203) (182, 203) (182, 0) 26 | bk19 hardrectilinear 4 (0, 0) (0, 119) (84, 119) (84, 0) 27 | bk2 hardrectilinear 4 (0, 0) (0, 294) (133, 294) (133, 0) 28 | bk20 hardrectilinear 4 (0, 0) (0, 350) (182, 350) (182, 0) 29 | bk21 hardrectilinear 4 (0, 0) (0, 140) (315, 140) (315, 0) 30 | bk3 hardrectilinear 4 (0, 0) (0, 315) (133, 315) (133, 0) 31 | bk4 hardrectilinear 4 (0, 0) (0, 133) (560, 133) (560, 0) 32 | bk5a hardrectilinear 4 (0, 0) (0, 140) (133, 140) (133, 0) 33 | bk5b hardrectilinear 4 (0, 0) (0, 133) (175, 133) (175, 0) 34 | bk5c hardrectilinear 4 (0, 0) (0, 231) (133, 231) (133, 0) 35 | bk6 hardrectilinear 4 (0, 0) (0, 315) (133, 315) (133, 0) 36 | bk7 hardrectilinear 4 (0, 0) (0, 98) (182, 98) (182, 0) 37 | bk8a hardrectilinear 4 (0, 0) (0, 210) (210, 210) (210, 0) 38 | bk8b hardrectilinear 4 (0, 0) (0, 378) (126, 378) (126, 0) 39 | bk9a hardrectilinear 4 (0, 0) (0, 119) (182, 119) (182, 0) 40 | bk9b hardrectilinear 4 (0, 0) (0, 119) (119, 119) (119, 0) 41 | bk9c hardrectilinear 4 (0, 0) (0, 119) (357, 119) (357, 0) 42 | bk9d hardrectilinear 4 (0, 0) (0, 84) (119, 84) (119, 0) 43 | 44 | VSS terminal 45 | VDD terminal 46 | P9 terminal 47 | P8 terminal 48 | P7 terminal 49 | P6 terminal 50 | P5 terminal 51 | P4 terminal 52 | P37 terminal 53 | P36 terminal 54 | POW@0 terminal 55 | POW@1 terminal 56 | P35 terminal 57 | P34 terminal 58 | P33 terminal 59 | P32 terminal 60 | P31 terminal 61 | P30 terminal 62 | P3 terminal 63 | P29 terminal 64 | P28 terminal 65 | P27 terminal 66 | P26 terminal 67 | P25 terminal 68 | P24 terminal 69 | P23 terminal 70 | P22 terminal 71 | P21 terminal 72 | P20 terminal 73 | P2 terminal 74 | P19 terminal 75 | P18 terminal 76 | P17 terminal 77 | GND@0 terminal 78 | GND@1 terminal 79 | P16 terminal 80 | P15 terminal 81 | P14 terminal 82 | P13 terminal 83 | P12 terminal 84 | P11 terminal 85 | P10 terminal -------------------------------------------------------------------------------- /input_pin_aware/mcnc/ami49.blocks: -------------------------------------------------------------------------------- 1 | UCSC blocks 1.0 2 | # Created : Thu Nov 16 02:11:49 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | NumSoftRectangularBlocks : 0 7 | NumHardRectilinearBlocks : 49 8 | NumTerminals : 22 9 | 10 | M001 hardrectilinear 4 (0, 0) (0, 3234) (1708, 3234) (1708, 0) 11 | M002 hardrectilinear 4 (0, 0) (0, 1554) (672, 1554) (672, 0) 12 | M003 hardrectilinear 4 (0, 0) (0, 1008) (2184, 1008) (2184, 0) 13 | M004 hardrectilinear 4 (0, 0) (0, 1610) (3080, 1610) (3080, 0) 14 | M005 hardrectilinear 4 (0, 0) (0, 1386) (532, 1386) (532, 0) 15 | M006 hardrectilinear 4 (0, 0) (0, 882) (1862, 882) (1862, 0) 16 | M007 hardrectilinear 4 (0, 0) (0, 868) (350, 868) (350, 0) 17 | M008 hardrectilinear 4 (0, 0) (0, 1246) (644, 1246) (644, 0) 18 | M009 hardrectilinear 4 (0, 0) (0, 462) (980, 462) (980, 0) 19 | M010 hardrectilinear 4 (0, 0) (0, 616) (294, 616) (294, 0) 20 | M011 hardrectilinear 4 (0, 0) (0, 378) (826, 378) (826, 0) 21 | M012 hardrectilinear 4 (0, 0) (0, 406) (798, 406) (798, 0) 22 | M013 hardrectilinear 4 (0, 0) (0, 672) (266, 672) (266, 0) 23 | M014 hardrectilinear 4 (0, 0) (0, 924) (406, 924) (406, 0) 24 | M015 hardrectilinear 4 (0, 0) (0, 840) (406, 840) (406, 0) 25 | M016 hardrectilinear 4 (0, 0) (0, 798) (322, 798) (322, 0) 26 | M017 hardrectilinear 4 (0, 0) (0, 756) (392, 756) (392, 0) 27 | M018 hardrectilinear 4 (0, 0) (0, 392) (1078, 392) (1078, 0) 28 | M019 hardrectilinear 4 (0, 0) (0, 826) (392, 826) (392, 0) 29 | M020 hardrectilinear 4 (0, 0) (0, 252) (798, 252) (798, 0) 30 | M021 hardrectilinear 4 (0, 0) (0, 826) (392, 826) (392, 0) 31 | M022 hardrectilinear 4 (0, 0) (0, 364) (952, 364) (952, 0) 32 | M023 hardrectilinear 4 (0, 0) (0, 490) (1134, 490) (1134, 0) 33 | M024 hardrectilinear 4 (0, 0) (0, 266) (798, 266) (798, 0) 34 | M025 hardrectilinear 4 (0, 0) (0, 322) (784, 322) (784, 0) 35 | M026 hardrectilinear 4 (0, 0) (0, 728) (350, 728) (350, 0) 36 | M027 hardrectilinear 4 (0, 0) (0, 840) (364, 840) (364, 0) 37 | M028 hardrectilinear 4 (0, 0) (0, 1064) (518, 1064) (518, 0) 38 | M029 hardrectilinear 4 (0, 0) (0, 994) (490, 994) (490, 0) 39 | M030 hardrectilinear 4 (0, 0) (0, 728) (1302, 728) (1302, 0) 40 | M031 hardrectilinear 4 (0, 0) (0, 1050) (392, 1050) (392, 0) 41 | M032 hardrectilinear 4 (0, 0) (0, 378) (784, 378) (784, 0) 42 | M033 hardrectilinear 4 (0, 0) (0, 952) (1890, 952) (1890, 0) 43 | M034 hardrectilinear 4 (0, 0) (0, 1148) (560, 1148) (560, 0) 44 | M035 hardrectilinear 4 (0, 0) (0, 392) (854, 392) (854, 0) 45 | M036 hardrectilinear 4 (0, 0) (0, 448) (994, 448) (994, 0) 46 | M037 hardrectilinear 4 (0, 0) (0, 560) (1218, 560) (1218, 0) 47 | M038 hardrectilinear 4 (0, 0) (0, 966) (448, 966) (448, 0) 48 | M039 hardrectilinear 4 (0, 0) (0, 784) (364, 784) (364, 0) 49 | M040 hardrectilinear 4 (0, 0) (0, 868) (392, 868) (392, 0) 50 | M041 hardrectilinear 4 (0, 0) (0, 854) (364, 854) (364, 0) 51 | M042 hardrectilinear 4 (0, 0) (0, 378) (168, 378) (168, 0) 52 | M043 hardrectilinear 4 (0, 0) (0, 532) (910, 532) (910, 0) 53 | M044 hardrectilinear 4 (0, 0) (0, 1302) (630, 1302) (630, 0) 54 | M045 hardrectilinear 4 (0, 0) (0, 1162) (672, 1162) (672, 0) 55 | M046 hardrectilinear 4 (0, 0) (0, 504) (1204, 504) (1204, 0) 56 | M047 hardrectilinear 4 (0, 0) (0, 812) (434, 812) (434, 0) 57 | M048 hardrectilinear 4 (0, 0) (0, 728) (1302, 728) (1302, 0) 58 | M049 hardrectilinear 4 (0, 0) (0, 742) (392, 742) (392, 0) 59 | 60 | N024 terminal 61 | N023 terminal 62 | N022 terminal 63 | N021 terminal 64 | N020 terminal 65 | N019 terminal 66 | N017 terminal 67 | N016 terminal 68 | N015 terminal 69 | N014 terminal 70 | N013 terminal 71 | N012 terminal 72 | N011 terminal 73 | N010 terminal 74 | N009 terminal 75 | N008 terminal 76 | N006 terminal 77 | N005 terminal 78 | N004 terminal 79 | N003 terminal 80 | N002 terminal 81 | N001 terminal 82 | -------------------------------------------------------------------------------- /CMakeFiles/Makefile2: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.13 3 | 4 | # Default target executed when no arguments are given to make. 5 | default_target: all 6 | 7 | .PHONY : default_target 8 | 9 | # The main recursive all target 10 | all: 11 | 12 | .PHONY : all 13 | 14 | # The main recursive preinstall target 15 | preinstall: 16 | 17 | .PHONY : preinstall 18 | 19 | # The main recursive clean target 20 | clean: 21 | 22 | .PHONY : clean 23 | 24 | #============================================================================= 25 | # Special targets provided by cmake. 26 | 27 | # Disable implicit rules so canonical targets will work. 28 | .SUFFIXES: 29 | 30 | 31 | # Remove some rules from gmake that .SUFFIXES does not remove. 32 | SUFFIXES = 33 | 34 | .SUFFIXES: .hpux_make_needs_suffix_list 35 | 36 | 37 | # Suppress display of executed commands. 38 | $(VERBOSE).SILENT: 39 | 40 | 41 | # A target that is always out of date. 42 | cmake_force: 43 | 44 | .PHONY : cmake_force 45 | 46 | #============================================================================= 47 | # Set environment variables for the build. 48 | 49 | # The shell in which to execute make rules. 50 | SHELL = /bin/sh 51 | 52 | # The CMake executable. 53 | CMAKE_COMMAND = /usr/bin/cmake 54 | 55 | # The command to remove a file. 56 | RM = /usr/bin/cmake -E remove -f 57 | 58 | # Escaping for special characters. 59 | EQUALS = = 60 | 61 | # The top-level source directory on which CMake was run. 62 | CMAKE_SOURCE_DIR = /home/orange3xchicken/milp/lipo-b--annealing 63 | 64 | # The top-level build directory on which CMake was run. 65 | CMAKE_BINARY_DIR = /home/orange3xchicken/milp/lipo-b--annealing 66 | 67 | #============================================================================= 68 | # Target rules for target CMakeFiles/main.dir 69 | 70 | # All Build rule for target. 71 | CMakeFiles/main.dir/all: 72 | $(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/depend 73 | $(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/build 74 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/orange3xchicken/milp/lipo-b--annealing/CMakeFiles --progress-num=1,2 "Built target main" 75 | .PHONY : CMakeFiles/main.dir/all 76 | 77 | # Include target in all. 78 | all: CMakeFiles/main.dir/all 79 | 80 | .PHONY : all 81 | 82 | # Build rule for subdir invocation for target. 83 | CMakeFiles/main.dir/rule: cmake_check_build_system 84 | $(CMAKE_COMMAND) -E cmake_progress_start /home/orange3xchicken/milp/lipo-b--annealing/CMakeFiles 2 85 | $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/main.dir/all 86 | $(CMAKE_COMMAND) -E cmake_progress_start /home/orange3xchicken/milp/lipo-b--annealing/CMakeFiles 0 87 | .PHONY : CMakeFiles/main.dir/rule 88 | 89 | # Convenience name for target. 90 | main: CMakeFiles/main.dir/rule 91 | 92 | .PHONY : main 93 | 94 | # clean rule for target. 95 | CMakeFiles/main.dir/clean: 96 | $(MAKE) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/clean 97 | .PHONY : CMakeFiles/main.dir/clean 98 | 99 | # clean rule for target. 100 | clean: CMakeFiles/main.dir/clean 101 | 102 | .PHONY : clean 103 | 104 | #============================================================================= 105 | # Special targets to cleanup operation of make. 106 | 107 | # Special rule to run CMake to check the build system integrity. 108 | # No rule that depends on this can have commands that come from listfiles 109 | # because they might be regenerated. 110 | cmake_check_build_system: 111 | $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 112 | .PHONY : cmake_check_build_system 113 | 114 | -------------------------------------------------------------------------------- /input_pin_aware/archive/hp.nets: -------------------------------------------------------------------------------- 1 | NumNets: 70 2 | NetDegree: 2 3 | bu7 4 | cntu 5 | NetDegree: 2 6 | cntu 7 | rs2 8 | NetDegree: 2 9 | cntu 10 | mcu 11 | NetDegree: 2 12 | bu0 13 | cntu 14 | NetDegree: 2 15 | bu1 16 | cntu 17 | NetDegree: 2 18 | bu2 19 | cntu 20 | NetDegree: 2 21 | bu3 22 | cntu 23 | NetDegree: 2 24 | bu4 25 | cntu 26 | NetDegree: 2 27 | bu5 28 | cntu 29 | NetDegree: 2 30 | bu6 31 | cntu 32 | NetDegree: 6 33 | busa8 34 | clkc 35 | cntu 36 | npd 37 | nps 38 | ppd 39 | NetDegree: 6 40 | busa7 41 | clkc 42 | cntu 43 | npd 44 | nps 45 | ppd 46 | NetDegree: 6 47 | busa6 48 | clkc 49 | cntu 50 | npd 51 | nps 52 | ppd 53 | NetDegree: 6 54 | busa5 55 | clkc 56 | cntu 57 | npd 58 | nps 59 | ppd 60 | NetDegree: 7 61 | busa4 62 | clkc 63 | cmp1 64 | cmp2 65 | cmp3 66 | cntu 67 | nps 68 | NetDegree: 7 69 | busa3 70 | clkc 71 | cmp1 72 | cmp2 73 | cmp3 74 | cntu 75 | nps 76 | NetDegree: 7 77 | busa2 78 | clkc 79 | cmp1 80 | cmp2 81 | cmp3 82 | cntu 83 | nps 84 | NetDegree: 7 85 | busa1 86 | clkc 87 | cmp1 88 | cmp2 89 | cmp3 90 | cntu 91 | nps 92 | NetDegree: 2 93 | cntu 94 | nps 95 | NetDegree: 2 96 | cntu 97 | nps 98 | NetDegree: 2 99 | cntu 100 | nps 101 | NetDegree: 2 102 | cntu 103 | nps 104 | NetDegree: 2 105 | cntu 106 | nps 107 | NetDegree: 8 108 | clkc 109 | cntd 110 | cntu 111 | npd 112 | nps 113 | ppd 114 | pps 115 | vdd 116 | NetDegree: 4 117 | cntu 118 | mk1 119 | npd 120 | nps 121 | NetDegree: 8 122 | clkc 123 | cntd 124 | cntu 125 | npd 126 | nps 127 | ppd 128 | pps 129 | vss 130 | NetDegree: 5 131 | clkd 132 | npd 133 | nps 134 | ppd 135 | pps 136 | NetDegree: 5 137 | clkd 138 | npd 139 | nps 140 | ppd 141 | pps 142 | NetDegree: 3 143 | npd 144 | nps 145 | ppd 146 | NetDegree: 2 147 | gnd1 148 | nps 149 | NetDegree: 2 150 | nps 151 | vin1 152 | NetDegree: 2 153 | cmp1 154 | nps 155 | NetDegree: 2 156 | cmp1 157 | nps 158 | NetDegree: 4 159 | busb4 160 | clkd 161 | cntd 162 | pps 163 | NetDegree: 4 164 | busb3 165 | clkd 166 | cntd 167 | pps 168 | NetDegree: 4 169 | busb2 170 | clkd 171 | cntd 172 | pps 173 | NetDegree: 4 174 | busb1 175 | clkd 176 | cntd 177 | pps 178 | NetDegree: 2 179 | clkd 180 | mc2 181 | NetDegree: 3 182 | npd 183 | ppd 184 | pps 185 | NetDegree: 3 186 | cmp2 187 | npd 188 | ppd 189 | NetDegree: 3 190 | cmp2 191 | npd 192 | ppd 193 | NetDegree: 4 194 | cntd 195 | mk2 196 | ppd 197 | pps 198 | NetDegree: 2 199 | gnd2 200 | pps 201 | NetDegree: 2 202 | pps 203 | vin2 204 | NetDegree: 2 205 | cmp3 206 | pps 207 | NetDegree: 2 208 | cntd 209 | pps 210 | NetDegree: 2 211 | cntd 212 | pps 213 | NetDegree: 2 214 | cntd 215 | pps 216 | NetDegree: 2 217 | cntd 218 | pps 219 | NetDegree: 2 220 | cntd 221 | pps 222 | NetDegree: 2 223 | cmp3 224 | pps 225 | NetDegree: 2 226 | cntd 227 | rs1 228 | NetDegree: 2 229 | cntd 230 | mcd 231 | NetDegree: 2 232 | b0 233 | cntd 234 | NetDegree: 2 235 | b1 236 | cntd 237 | NetDegree: 2 238 | b2 239 | cntd 240 | NetDegree: 2 241 | b3 242 | cntd 243 | NetDegree: 2 244 | b4 245 | cntd 246 | NetDegree: 2 247 | b5 248 | cntd 249 | NetDegree: 2 250 | b6 251 | cntd 252 | NetDegree: 2 253 | b7 254 | cntd 255 | NetDegree: 4 256 | clkc 257 | cmp1 258 | cmp2 259 | cmp3 260 | NetDegree: 4 261 | clkc 262 | cmp1 263 | cmp2 264 | cmp3 265 | NetDegree: 4 266 | clkc 267 | cmp1 268 | cmp2 269 | cmp3 270 | NetDegree: 4 271 | clkc 272 | cmp1 273 | cmp2 274 | cmp3 275 | NetDegree: 4 276 | clkc 277 | cmp1 278 | cmp2 279 | cmp3 280 | NetDegree: 4 281 | clkc 282 | cmp1 283 | cmp2 284 | cmp3 285 | NetDegree: 2 286 | clkc 287 | mc1 288 | NetDegree: 4 289 | cmp1 290 | cmp2 291 | cmp3 292 | vdda 293 | NetDegree: 4 294 | cmp1 295 | cmp2 296 | cmp3 297 | vssa 298 | -------------------------------------------------------------------------------- /CMakeFiles/main.dir/build.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.13 3 | 4 | # Delete rule output on recipe failure. 5 | .DELETE_ON_ERROR: 6 | 7 | 8 | #============================================================================= 9 | # Special targets provided by cmake. 10 | 11 | # Disable implicit rules so canonical targets will work. 12 | .SUFFIXES: 13 | 14 | 15 | # Remove some rules from gmake that .SUFFIXES does not remove. 16 | SUFFIXES = 17 | 18 | .SUFFIXES: .hpux_make_needs_suffix_list 19 | 20 | 21 | # Suppress display of executed commands. 22 | $(VERBOSE).SILENT: 23 | 24 | 25 | # A target that is always out of date. 26 | cmake_force: 27 | 28 | .PHONY : cmake_force 29 | 30 | #============================================================================= 31 | # Set environment variables for the build. 32 | 33 | # The shell in which to execute make rules. 34 | SHELL = /bin/sh 35 | 36 | # The CMake executable. 37 | CMAKE_COMMAND = /usr/bin/cmake 38 | 39 | # The command to remove a file. 40 | RM = /usr/bin/cmake -E remove -f 41 | 42 | # Escaping for special characters. 43 | EQUALS = = 44 | 45 | # The top-level source directory on which CMake was run. 46 | CMAKE_SOURCE_DIR = /home/orange3xchicken/milp/lipo-b--annealing 47 | 48 | # The top-level build directory on which CMake was run. 49 | CMAKE_BINARY_DIR = /home/orange3xchicken/milp/lipo-b--annealing 50 | 51 | # Include any dependencies generated for this target. 52 | include CMakeFiles/main.dir/depend.make 53 | 54 | # Include the progress variables for this target. 55 | include CMakeFiles/main.dir/progress.make 56 | 57 | # Include the compile flags for this target's objects. 58 | include CMakeFiles/main.dir/flags.make 59 | 60 | CMakeFiles/main.dir/src/main.cpp.o: CMakeFiles/main.dir/flags.make 61 | CMakeFiles/main.dir/src/main.cpp.o: src/main.cpp 62 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/orange3xchicken/milp/lipo-b--annealing/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/main.dir/src/main.cpp.o" 63 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/main.dir/src/main.cpp.o -c /home/orange3xchicken/milp/lipo-b--annealing/src/main.cpp 64 | 65 | CMakeFiles/main.dir/src/main.cpp.i: cmake_force 66 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/main.dir/src/main.cpp.i" 67 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/orange3xchicken/milp/lipo-b--annealing/src/main.cpp > CMakeFiles/main.dir/src/main.cpp.i 68 | 69 | CMakeFiles/main.dir/src/main.cpp.s: cmake_force 70 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/main.dir/src/main.cpp.s" 71 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/orange3xchicken/milp/lipo-b--annealing/src/main.cpp -o CMakeFiles/main.dir/src/main.cpp.s 72 | 73 | # Object files for target main 74 | main_OBJECTS = \ 75 | "CMakeFiles/main.dir/src/main.cpp.o" 76 | 77 | # External object files for target main 78 | main_EXTERNAL_OBJECTS = 79 | 80 | main: CMakeFiles/main.dir/src/main.cpp.o 81 | main: CMakeFiles/main.dir/build.make 82 | main: /usr/local/lib/libboost_iostreams.so 83 | main: /usr/local/lib/libboost_system.so 84 | main: /usr/local/lib/libboost_filesystem.so 85 | main: /usr/local/lib/libboost_regex.so 86 | main: CMakeFiles/main.dir/link.txt 87 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/orange3xchicken/milp/lipo-b--annealing/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable main" 88 | $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/main.dir/link.txt --verbose=$(VERBOSE) 89 | 90 | # Rule to build all files generated by this target. 91 | CMakeFiles/main.dir/build: main 92 | 93 | .PHONY : CMakeFiles/main.dir/build 94 | 95 | CMakeFiles/main.dir/clean: 96 | $(CMAKE_COMMAND) -P CMakeFiles/main.dir/cmake_clean.cmake 97 | .PHONY : CMakeFiles/main.dir/clean 98 | 99 | CMakeFiles/main.dir/depend: 100 | cd /home/orange3xchicken/milp/lipo-b--annealing && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/orange3xchicken/milp/lipo-b--annealing /home/orange3xchicken/milp/lipo-b--annealing /home/orange3xchicken/milp/lipo-b--annealing /home/orange3xchicken/milp/lipo-b--annealing /home/orange3xchicken/milp/lipo-b--annealing/CMakeFiles/main.dir/DependInfo.cmake --color=$(COLOR) 101 | .PHONY : CMakeFiles/main.dir/depend 102 | 103 | -------------------------------------------------------------------------------- /CMakeFiles/3.13.4/CMakeCXXCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_CXX_COMPILER "/usr/bin/c++") 2 | set(CMAKE_CXX_COMPILER_ARG1 "") 3 | set(CMAKE_CXX_COMPILER_ID "GNU") 4 | set(CMAKE_CXX_COMPILER_VERSION "8.3.0") 5 | set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_CXX_COMPILER_WRAPPER "") 7 | set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") 8 | set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20") 9 | set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") 10 | set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") 11 | set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") 12 | set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") 13 | set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") 14 | 15 | set(CMAKE_CXX_PLATFORM_ID "Linux") 16 | set(CMAKE_CXX_SIMULATE_ID "") 17 | set(CMAKE_CXX_SIMULATE_VERSION "") 18 | 19 | 20 | 21 | set(CMAKE_AR "/usr/bin/ar") 22 | set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-8") 23 | set(CMAKE_RANLIB "/usr/bin/ranlib") 24 | set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-8") 25 | set(CMAKE_LINKER "/usr/bin/ld") 26 | set(CMAKE_COMPILER_IS_GNUCXX 1) 27 | set(CMAKE_CXX_COMPILER_LOADED 1) 28 | set(CMAKE_CXX_COMPILER_WORKS TRUE) 29 | set(CMAKE_CXX_ABI_COMPILED TRUE) 30 | set(CMAKE_COMPILER_IS_MINGW ) 31 | set(CMAKE_COMPILER_IS_CYGWIN ) 32 | if(CMAKE_COMPILER_IS_CYGWIN) 33 | set(CYGWIN 1) 34 | set(UNIX 1) 35 | endif() 36 | 37 | set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") 38 | 39 | if(CMAKE_COMPILER_IS_MINGW) 40 | set(MINGW 1) 41 | endif() 42 | set(CMAKE_CXX_COMPILER_ID_RUN 1) 43 | set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) 44 | set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) 45 | set(CMAKE_CXX_LINKER_PREFERENCE 30) 46 | set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) 47 | 48 | # Save compiler ABI information. 49 | set(CMAKE_CXX_SIZEOF_DATA_PTR "8") 50 | set(CMAKE_CXX_COMPILER_ABI "ELF") 51 | set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 52 | 53 | if(CMAKE_CXX_SIZEOF_DATA_PTR) 54 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") 55 | endif() 56 | 57 | if(CMAKE_CXX_COMPILER_ABI) 58 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") 59 | endif() 60 | 61 | if(CMAKE_CXX_LIBRARY_ARCHITECTURE) 62 | set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 63 | endif() 64 | 65 | set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") 66 | if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) 67 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") 68 | endif() 69 | 70 | 71 | 72 | 73 | 74 | set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") 75 | set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") 76 | set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 77 | -------------------------------------------------------------------------------- /input_pin_aware/archive/apte.nets: -------------------------------------------------------------------------------- 1 | NumNets: 96 2 | NetDegree: 10 3 | VDD 4 | cc_11 5 | cc_12 6 | cc_13 7 | cc_14 8 | cc_21 9 | cc_22 10 | cc_23 11 | cc_24 12 | clk 13 | NetDegree: 9 14 | GND 15 | cc_11 16 | cc_12 17 | cc_13 18 | cc_14 19 | cc_21 20 | cc_22 21 | cc_23 22 | cc_24 23 | NetDegree: 3 24 | cc_11 25 | cc_12 26 | new18 27 | NetDegree: 3 28 | cc_11 29 | cc_12 30 | new19 31 | NetDegree: 3 32 | cc_11 33 | cc_12 34 | new17 35 | NetDegree: 3 36 | cc_11 37 | cc_21 38 | new16 39 | NetDegree: 9 40 | cc_11 41 | cc_12 42 | cc_13 43 | cc_14 44 | cc_21 45 | cc_22 46 | cc_23 47 | cc_24 48 | clk 49 | NetDegree: 9 50 | cc_11 51 | cc_12 52 | cc_13 53 | cc_14 54 | cc_21 55 | cc_22 56 | cc_23 57 | cc_24 58 | new1 59 | NetDegree: 3 60 | cc_11 61 | cc_21 62 | new15 63 | NetDegree: 3 64 | cc_11 65 | cc_21 66 | new14 67 | NetDegree: 9 68 | cc_11 69 | cc_12 70 | cc_13 71 | cc_14 72 | cc_21 73 | cc_22 74 | cc_23 75 | cc_24 76 | clk 77 | NetDegree: 9 78 | cc_11 79 | cc_12 80 | cc_13 81 | cc_14 82 | cc_21 83 | cc_22 84 | cc_23 85 | cc_24 86 | clk 87 | NetDegree: 4 88 | cc_11 89 | cc_12 90 | cc_21 91 | cc_22 92 | NetDegree: 4 93 | cc_11 94 | cc_12 95 | cc_13 96 | cc_14 97 | NetDegree: 2 98 | cc_11 99 | cc_12 100 | NetDegree: 9 101 | cc_11 102 | cc_12 103 | cc_13 104 | cc_14 105 | cc_21 106 | cc_22 107 | cc_23 108 | cc_24 109 | clk 110 | NetDegree: 2 111 | cc_11 112 | new5 113 | NetDegree: 2 114 | cc_11 115 | new4 116 | NetDegree: 2 117 | cc_11 118 | new3 119 | NetDegree: 3 120 | cc_11 121 | cc_12 122 | new2 123 | NetDegree: 2 124 | cc_11 125 | new8 126 | NetDegree: 2 127 | cc_11 128 | new10 129 | NetDegree: 2 130 | cc_11 131 | new11 132 | NetDegree: 2 133 | cc_11 134 | new6 135 | NetDegree: 2 136 | cc_11 137 | new7 138 | NetDegree: 2 139 | cc_11 140 | cc_24 141 | NetDegree: 3 142 | cc_11 143 | cc_21 144 | new12 145 | NetDegree: 3 146 | cc_12 147 | cc_13 148 | new29 149 | NetDegree: 3 150 | cc_12 151 | cc_13 152 | new30 153 | NetDegree: 3 154 | cc_12 155 | cc_13 156 | new28 157 | NetDegree: 3 158 | cc_12 159 | cc_21 160 | cc_22 161 | NetDegree: 3 162 | cc_12 163 | cc_21 164 | cc_22 165 | NetDegree: 3 166 | cc_12 167 | cc_21 168 | cc_22 169 | NetDegree: 4 170 | cc_12 171 | cc_13 172 | cc_22 173 | cc_23 174 | NetDegree: 2 175 | cc_12 176 | cc_13 177 | NetDegree: 2 178 | cc_12 179 | new22 180 | NetDegree: 2 181 | cc_12 182 | new21 183 | NetDegree: 3 184 | cc_12 185 | cc_13 186 | new20 187 | NetDegree: 3 188 | cc_13 189 | cc_14 190 | new40 191 | NetDegree: 3 192 | cc_13 193 | cc_14 194 | new41 195 | NetDegree: 3 196 | cc_13 197 | cc_14 198 | new39 199 | NetDegree: 3 200 | cc_13 201 | cc_22 202 | cc_23 203 | NetDegree: 3 204 | cc_13 205 | cc_22 206 | cc_23 207 | NetDegree: 3 208 | cc_13 209 | cc_22 210 | cc_23 211 | NetDegree: 4 212 | cc_13 213 | cc_14 214 | cc_23 215 | cc_24 216 | NetDegree: 2 217 | cc_13 218 | cc_14 219 | NetDegree: 2 220 | cc_13 221 | new33 222 | NetDegree: 2 223 | cc_13 224 | new32 225 | NetDegree: 3 226 | cc_13 227 | cc_14 228 | new31 229 | NetDegree: 2 230 | cc_14 231 | new51 232 | NetDegree: 2 233 | cc_14 234 | new52 235 | NetDegree: 2 236 | cc_14 237 | new50 238 | NetDegree: 3 239 | cc_14 240 | cc_23 241 | cc_24 242 | NetDegree: 3 243 | cc_14 244 | cc_23 245 | cc_24 246 | NetDegree: 3 247 | cc_14 248 | cc_23 249 | cc_24 250 | NetDegree: 2 251 | cc_14 252 | new46 253 | NetDegree: 2 254 | cc_14 255 | new44 256 | NetDegree: 2 257 | cc_14 258 | new43 259 | NetDegree: 2 260 | cc_14 261 | new42 262 | NetDegree: 2 263 | cc_21 264 | new54 265 | NetDegree: 2 266 | cc_21 267 | cc_22 268 | NetDegree: 2 269 | cc_21 270 | new59 271 | NetDegree: 2 272 | cc_21 273 | new58 274 | NetDegree: 2 275 | cc_21 276 | new57 277 | NetDegree: 2 278 | cc_21 279 | new56 280 | NetDegree: 2 281 | cc_21 282 | new55 283 | NetDegree: 2 284 | cc_21 285 | new60 286 | NetDegree: 5 287 | cc_21 288 | cc_22 289 | cc_23 290 | cc_24 291 | new0 292 | NetDegree: 2 293 | cc_22 294 | cc_23 295 | NetDegree: 2 296 | cc_22 297 | new66 298 | NetDegree: 2 299 | cc_22 300 | new65 301 | NetDegree: 2 302 | cc_22 303 | new64 304 | NetDegree: 2 305 | cc_22 306 | new63 307 | NetDegree: 2 308 | cc_22 309 | new62 310 | NetDegree: 2 311 | cc_22 312 | new67 313 | NetDegree: 2 314 | cc_23 315 | cc_24 316 | NetDegree: 2 317 | cc_23 318 | new73 319 | NetDegree: 2 320 | cc_23 321 | new72 322 | NetDegree: 2 323 | cc_23 324 | new71 325 | NetDegree: 2 326 | cc_23 327 | new70 328 | NetDegree: 2 329 | cc_23 330 | new69 331 | NetDegree: 2 332 | cc_23 333 | new74 334 | NetDegree: 2 335 | cc_24 336 | new83 337 | NetDegree: 2 338 | cc_24 339 | new85 340 | NetDegree: 2 341 | cc_24 342 | new84 343 | NetDegree: 2 344 | cc_24 345 | new82 346 | NetDegree: 2 347 | cc_24 348 | new86 349 | NetDegree: 2 350 | cc_24 351 | new81 352 | NetDegree: 2 353 | cc_24 354 | new79 355 | NetDegree: 2 356 | cc_24 357 | new78 358 | NetDegree: 2 359 | cc_24 360 | new77 361 | NetDegree: 2 362 | cc_24 363 | new76 364 | NetDegree: 2 365 | cc_24 366 | new75 367 | NetDegree: 2 368 | cc_24 369 | new80 370 | NetDegree: 2 371 | VSS 372 | clk 373 | NetDegree: 2 374 | TestHS1 375 | clk 376 | -------------------------------------------------------------------------------- /CMakeFiles/Makefile.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.13 3 | 4 | # The generator used is: 5 | set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") 6 | 7 | # The top level Makefile was generated from the following files: 8 | set(CMAKE_MAKEFILE_DEPENDS 9 | "CMakeCache.txt" 10 | "CMakeFiles/3.13.4/CMakeCCompiler.cmake" 11 | "CMakeFiles/3.13.4/CMakeCXXCompiler.cmake" 12 | "CMakeFiles/3.13.4/CMakeSystem.cmake" 13 | "CMakeFiles/feature_tests.c" 14 | "CMakeFiles/feature_tests.cxx" 15 | "CMakeLists.txt" 16 | "/usr/share/cmake-3.13/Modules/CMakeCCompiler.cmake.in" 17 | "/usr/share/cmake-3.13/Modules/CMakeCCompilerABI.c" 18 | "/usr/share/cmake-3.13/Modules/CMakeCInformation.cmake" 19 | "/usr/share/cmake-3.13/Modules/CMakeCXXCompiler.cmake.in" 20 | "/usr/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp" 21 | "/usr/share/cmake-3.13/Modules/CMakeCXXInformation.cmake" 22 | "/usr/share/cmake-3.13/Modules/CMakeCommonLanguageInclude.cmake" 23 | "/usr/share/cmake-3.13/Modules/CMakeCompilerIdDetection.cmake" 24 | "/usr/share/cmake-3.13/Modules/CMakeDetermineCCompiler.cmake" 25 | "/usr/share/cmake-3.13/Modules/CMakeDetermineCXXCompiler.cmake" 26 | "/usr/share/cmake-3.13/Modules/CMakeDetermineCompileFeatures.cmake" 27 | "/usr/share/cmake-3.13/Modules/CMakeDetermineCompiler.cmake" 28 | "/usr/share/cmake-3.13/Modules/CMakeDetermineCompilerABI.cmake" 29 | "/usr/share/cmake-3.13/Modules/CMakeDetermineCompilerId.cmake" 30 | "/usr/share/cmake-3.13/Modules/CMakeDetermineSystem.cmake" 31 | "/usr/share/cmake-3.13/Modules/CMakeFindBinUtils.cmake" 32 | "/usr/share/cmake-3.13/Modules/CMakeGenericSystem.cmake" 33 | "/usr/share/cmake-3.13/Modules/CMakeInitializeConfigs.cmake" 34 | "/usr/share/cmake-3.13/Modules/CMakeLanguageInformation.cmake" 35 | "/usr/share/cmake-3.13/Modules/CMakeParseImplicitLinkInfo.cmake" 36 | "/usr/share/cmake-3.13/Modules/CMakeSystem.cmake.in" 37 | "/usr/share/cmake-3.13/Modules/CMakeSystemSpecificInformation.cmake" 38 | "/usr/share/cmake-3.13/Modules/CMakeSystemSpecificInitialize.cmake" 39 | "/usr/share/cmake-3.13/Modules/CMakeTestCCompiler.cmake" 40 | "/usr/share/cmake-3.13/Modules/CMakeTestCXXCompiler.cmake" 41 | "/usr/share/cmake-3.13/Modules/CMakeTestCompilerCommon.cmake" 42 | "/usr/share/cmake-3.13/Modules/CMakeUnixFindMake.cmake" 43 | "/usr/share/cmake-3.13/Modules/Compiler/ADSP-DetermineCompiler.cmake" 44 | "/usr/share/cmake-3.13/Modules/Compiler/ARMCC-DetermineCompiler.cmake" 45 | "/usr/share/cmake-3.13/Modules/Compiler/AppleClang-DetermineCompiler.cmake" 46 | "/usr/share/cmake-3.13/Modules/Compiler/Borland-DetermineCompiler.cmake" 47 | "/usr/share/cmake-3.13/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" 48 | "/usr/share/cmake-3.13/Modules/Compiler/CMakeCommonCompilerMacros.cmake" 49 | "/usr/share/cmake-3.13/Modules/Compiler/Clang-DetermineCompiler.cmake" 50 | "/usr/share/cmake-3.13/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" 51 | "/usr/share/cmake-3.13/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" 52 | "/usr/share/cmake-3.13/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" 53 | "/usr/share/cmake-3.13/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" 54 | "/usr/share/cmake-3.13/Modules/Compiler/Cray-DetermineCompiler.cmake" 55 | "/usr/share/cmake-3.13/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" 56 | "/usr/share/cmake-3.13/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" 57 | "/usr/share/cmake-3.13/Modules/Compiler/GHS-DetermineCompiler.cmake" 58 | "/usr/share/cmake-3.13/Modules/Compiler/GNU-C-DetermineCompiler.cmake" 59 | "/usr/share/cmake-3.13/Modules/Compiler/GNU-C-FeatureTests.cmake" 60 | "/usr/share/cmake-3.13/Modules/Compiler/GNU-C.cmake" 61 | "/usr/share/cmake-3.13/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" 62 | "/usr/share/cmake-3.13/Modules/Compiler/GNU-CXX-FeatureTests.cmake" 63 | "/usr/share/cmake-3.13/Modules/Compiler/GNU-CXX.cmake" 64 | "/usr/share/cmake-3.13/Modules/Compiler/GNU-FindBinUtils.cmake" 65 | "/usr/share/cmake-3.13/Modules/Compiler/GNU.cmake" 66 | "/usr/share/cmake-3.13/Modules/Compiler/HP-C-DetermineCompiler.cmake" 67 | "/usr/share/cmake-3.13/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" 68 | "/usr/share/cmake-3.13/Modules/Compiler/IAR-DetermineCompiler.cmake" 69 | "/usr/share/cmake-3.13/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" 70 | "/usr/share/cmake-3.13/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" 71 | "/usr/share/cmake-3.13/Modules/Compiler/Intel-DetermineCompiler.cmake" 72 | "/usr/share/cmake-3.13/Modules/Compiler/MIPSpro-DetermineCompiler.cmake" 73 | "/usr/share/cmake-3.13/Modules/Compiler/MSVC-DetermineCompiler.cmake" 74 | "/usr/share/cmake-3.13/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" 75 | "/usr/share/cmake-3.13/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" 76 | "/usr/share/cmake-3.13/Modules/Compiler/PGI-DetermineCompiler.cmake" 77 | "/usr/share/cmake-3.13/Modules/Compiler/PathScale-DetermineCompiler.cmake" 78 | "/usr/share/cmake-3.13/Modules/Compiler/SCO-DetermineCompiler.cmake" 79 | "/usr/share/cmake-3.13/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" 80 | "/usr/share/cmake-3.13/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" 81 | "/usr/share/cmake-3.13/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" 82 | "/usr/share/cmake-3.13/Modules/Compiler/TI-DetermineCompiler.cmake" 83 | "/usr/share/cmake-3.13/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" 84 | "/usr/share/cmake-3.13/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" 85 | "/usr/share/cmake-3.13/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" 86 | "/usr/share/cmake-3.13/Modules/Compiler/Watcom-DetermineCompiler.cmake" 87 | "/usr/share/cmake-3.13/Modules/Compiler/XL-C-DetermineCompiler.cmake" 88 | "/usr/share/cmake-3.13/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" 89 | "/usr/share/cmake-3.13/Modules/Compiler/zOS-C-DetermineCompiler.cmake" 90 | "/usr/share/cmake-3.13/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" 91 | "/usr/share/cmake-3.13/Modules/FindBoost.cmake" 92 | "/usr/share/cmake-3.13/Modules/Internal/FeatureTesting.cmake" 93 | "/usr/share/cmake-3.13/Modules/Platform/Linux-Determine-CXX.cmake" 94 | "/usr/share/cmake-3.13/Modules/Platform/Linux-GNU-C.cmake" 95 | "/usr/share/cmake-3.13/Modules/Platform/Linux-GNU-CXX.cmake" 96 | "/usr/share/cmake-3.13/Modules/Platform/Linux-GNU.cmake" 97 | "/usr/share/cmake-3.13/Modules/Platform/Linux.cmake" 98 | "/usr/share/cmake-3.13/Modules/Platform/UnixPaths.cmake" 99 | ) 100 | 101 | # The corresponding makefile is: 102 | set(CMAKE_MAKEFILE_OUTPUTS 103 | "Makefile" 104 | "CMakeFiles/cmake.check_cache" 105 | ) 106 | 107 | # Byproducts of CMake generate step: 108 | set(CMAKE_MAKEFILE_PRODUCTS 109 | "CMakeFiles/3.13.4/CMakeSystem.cmake" 110 | "CMakeFiles/3.13.4/CMakeCCompiler.cmake" 111 | "CMakeFiles/3.13.4/CMakeCXXCompiler.cmake" 112 | "CMakeFiles/3.13.4/CMakeCCompiler.cmake" 113 | "CMakeFiles/3.13.4/CMakeCXXCompiler.cmake" 114 | "CMakeFiles/CMakeDirectoryInformation.cmake" 115 | ) 116 | 117 | # Dependency information for all targets: 118 | set(CMAKE_DEPEND_INFO_FILES 119 | "CMakeFiles/main.dir/DependInfo.cmake" 120 | ) 121 | -------------------------------------------------------------------------------- /input_pin_aware/archive/ami33.nets: -------------------------------------------------------------------------------- 1 | NumNets: 121 2 | NetDegree: 34 3 | GND 4 | bk1 5 | bk10a 6 | bk10b 7 | bk10c 8 | bk11 9 | bk12 10 | bk13 11 | bk14a 12 | bk14b 13 | bk14c 14 | bk15a 15 | bk15b 16 | bk16 17 | bk17a 18 | bk17b 19 | bk18 20 | bk19 21 | bk2 22 | bk20 23 | bk21 24 | bk3 25 | bk4 26 | bk5a 27 | bk5b 28 | bk5c 29 | bk6 30 | bk7 31 | bk8a 32 | bk8b 33 | bk9a 34 | bk9b 35 | bk9c 36 | bk9d 37 | NetDegree: 30 38 | bk1 39 | bk10a 40 | bk10b 41 | bk10c 42 | bk11 43 | bk12 44 | bk13 45 | bk14a 46 | bk14b 47 | bk14c 48 | bk15a 49 | bk15b 50 | bk16 51 | bk17a 52 | bk17b 53 | bk18 54 | bk2 55 | bk20 56 | bk21 57 | bk3 58 | bk4 59 | bk5a 60 | bk5b 61 | bk5c 62 | bk6 63 | bk7 64 | bk9a 65 | bk9b 66 | bk9c 67 | bk9d 68 | NetDegree: 25 69 | bk1 70 | bk10a 71 | bk10b 72 | bk10c 73 | bk11 74 | bk12 75 | bk13 76 | bk14b 77 | bk17a 78 | bk17b 79 | bk18 80 | bk2 81 | bk20 82 | bk21 83 | bk3 84 | bk4 85 | bk5a 86 | bk5b 87 | bk5c 88 | bk6 89 | bk7 90 | bk9a 91 | bk9b 92 | bk9c 93 | bk9d 94 | NetDegree: 29 95 | bk1 96 | bk10a 97 | bk10b 98 | bk10c 99 | bk11 100 | bk12 101 | bk13 102 | bk14a 103 | bk14b 104 | bk14c 105 | bk15a 106 | bk15b 107 | bk17a 108 | bk17b 109 | bk18 110 | bk2 111 | bk20 112 | bk21 113 | bk3 114 | bk4 115 | bk5a 116 | bk5b 117 | bk5c 118 | bk6 119 | bk7 120 | bk9a 121 | bk9b 122 | bk9c 123 | bk9d 124 | NetDegree: 25 125 | bk1 126 | bk10a 127 | bk10b 128 | bk10c 129 | bk11 130 | bk12 131 | bk13 132 | bk14b 133 | bk17a 134 | bk17b 135 | bk18 136 | bk2 137 | bk20 138 | bk21 139 | bk3 140 | bk4 141 | bk5a 142 | bk5b 143 | bk5c 144 | bk6 145 | bk7 146 | bk9a 147 | bk9b 148 | bk9c 149 | bk9d 150 | NetDegree: 2 151 | bk9c 152 | bk9d 153 | NetDegree: 34 154 | POW 155 | bk1 156 | bk10a 157 | bk10b 158 | bk10c 159 | bk11 160 | bk12 161 | bk13 162 | bk14a 163 | bk14b 164 | bk14c 165 | bk15a 166 | bk15b 167 | bk16 168 | bk17a 169 | bk17b 170 | bk18 171 | bk19 172 | bk2 173 | bk20 174 | bk21 175 | bk3 176 | bk4 177 | bk5a 178 | bk5b 179 | bk5c 180 | bk6 181 | bk7 182 | bk8a 183 | bk8b 184 | bk9a 185 | bk9b 186 | bk9c 187 | bk9d 188 | NetDegree: 2 189 | bk10a 190 | bk9d 191 | NetDegree: 2 192 | bk9b 193 | bk9d 194 | NetDegree: 2 195 | P30 196 | bk9c 197 | NetDegree: 2 198 | P27 199 | bk9c 200 | NetDegree: 7 201 | bk10b 202 | bk11 203 | bk12 204 | bk14b 205 | bk20 206 | bk9b 207 | bk9c 208 | NetDegree: 2 209 | bk9a 210 | bk9c 211 | NetDegree: 2 212 | bk9b 213 | bk9c 214 | NetDegree: 2 215 | bk10a 216 | bk9b 217 | NetDegree: 3 218 | bk10a 219 | bk10b 220 | bk9b 221 | NetDegree: 2 222 | bk10c 223 | bk9a 224 | NetDegree: 2 225 | bk8a 226 | bk8b 227 | NetDegree: 2 228 | bk8a 229 | bk8b 230 | NetDegree: 2 231 | bk8a 232 | bk8b 233 | NetDegree: 2 234 | bk8a 235 | bk8b 236 | NetDegree: 2 237 | bk8a 238 | bk8b 239 | NetDegree: 2 240 | bk8a 241 | bk8b 242 | NetDegree: 2 243 | bk8a 244 | bk8b 245 | NetDegree: 3 246 | bk16 247 | bk19 248 | bk8b 249 | NetDegree: 3 250 | bk16 251 | bk19 252 | bk8b 253 | NetDegree: 2 254 | bk19 255 | bk8b 256 | NetDegree: 2 257 | bk19 258 | bk8b 259 | NetDegree: 2 260 | bk19 261 | bk8b 262 | NetDegree: 2 263 | bk19 264 | bk8b 265 | NetDegree: 2 266 | bk8a 267 | bk8b 268 | NetDegree: 2 269 | bk8a 270 | bk8b 271 | NetDegree: 2 272 | bk8a 273 | bk8b 274 | NetDegree: 2 275 | bk8a 276 | bk8b 277 | NetDegree: 2 278 | bk8a 279 | bk8b 280 | NetDegree: 2 281 | bk8a 282 | bk8b 283 | NetDegree: 2 284 | bk8a 285 | bk8b 286 | NetDegree: 3 287 | bk16 288 | bk20 289 | bk8a 290 | NetDegree: 2 291 | bk16 292 | bk8a 293 | NetDegree: 2 294 | bk16 295 | bk8a 296 | NetDegree: 2 297 | bk16 298 | bk8a 299 | NetDegree: 2 300 | bk16 301 | bk8a 302 | NetDegree: 2 303 | bk16 304 | bk8a 305 | NetDegree: 2 306 | bk16 307 | bk8a 308 | NetDegree: 3 309 | bk15b 310 | bk16 311 | bk8a 312 | NetDegree: 2 313 | VSS 314 | bk7 315 | NetDegree: 2 316 | VDD 317 | bk7 318 | NetDegree: 2 319 | P23 320 | bk7 321 | NetDegree: 2 322 | P22 323 | bk7 324 | NetDegree: 2 325 | bk17b 326 | bk7 327 | NetDegree: 2 328 | P21 329 | bk6 330 | NetDegree: 2 331 | P20 332 | bk6 333 | NetDegree: 2 334 | P19 335 | bk6 336 | NetDegree: 2 337 | P18 338 | bk6 339 | NetDegree: 2 340 | P17 341 | bk6 342 | NetDegree: 2 343 | bk5c 344 | bk6 345 | NetDegree: 2 346 | bk5c 347 | bk6 348 | NetDegree: 3 349 | bk5b 350 | bk5c 351 | bk6 352 | NetDegree: 3 353 | bk5b 354 | bk5c 355 | bk6 356 | NetDegree: 3 357 | bk3 358 | bk4 359 | bk6 360 | NetDegree: 2 361 | bk4 362 | bk6 363 | NetDegree: 2 364 | bk3 365 | bk5c 366 | NetDegree: 2 367 | bk5a 368 | bk5b 369 | NetDegree: 3 370 | bk2 371 | bk5a 372 | bk5b 373 | NetDegree: 2 374 | bk1 375 | bk5b 376 | NetDegree: 2 377 | bk5a 378 | bk5b 379 | NetDegree: 2 380 | bk1 381 | bk5b 382 | NetDegree: 2 383 | bk1 384 | bk5b 385 | NetDegree: 2 386 | bk2 387 | bk5a 388 | NetDegree: 2 389 | bk4 390 | bk5a 391 | NetDegree: 2 392 | P14 393 | bk4 394 | NetDegree: 2 395 | P13 396 | bk4 397 | NetDegree: 2 398 | P12 399 | bk4 400 | NetDegree: 2 401 | bk17b 402 | bk4 403 | NetDegree: 2 404 | bk3 405 | bk4 406 | NetDegree: 2 407 | P16 408 | bk3 409 | NetDegree: 2 410 | P15 411 | bk3 412 | NetDegree: 2 413 | bk15a 414 | bk3 415 | NetDegree: 2 416 | P3 417 | bk21 418 | NetDegree: 2 419 | P24 420 | bk20 421 | NetDegree: 3 422 | bk17b 423 | bk18 424 | bk20 425 | NetDegree: 2 426 | bk17a 427 | bk20 428 | NetDegree: 2 429 | bk17a 430 | bk20 431 | NetDegree: 2 432 | bk17a 433 | bk20 434 | NetDegree: 3 435 | bk17a 436 | bk18 437 | bk20 438 | NetDegree: 2 439 | bk17a 440 | bk20 441 | NetDegree: 4 442 | bk17a 443 | bk17b 444 | bk18 445 | bk20 446 | NetDegree: 2 447 | P28 448 | bk2 449 | NetDegree: 2 450 | P35 451 | bk19 452 | NetDegree: 2 453 | P34 454 | bk19 455 | NetDegree: 2 456 | P33 457 | bk19 458 | NetDegree: 2 459 | P32 460 | bk19 461 | NetDegree: 2 462 | P37 463 | bk18 464 | NetDegree: 2 465 | P36 466 | bk18 467 | NetDegree: 2 468 | bk17a 469 | bk18 470 | NetDegree: 2 471 | bk17a 472 | bk18 473 | NetDegree: 2 474 | bk16 475 | bk17b 476 | NetDegree: 2 477 | bk14c 478 | bk16 479 | NetDegree: 2 480 | bk14b 481 | bk16 482 | NetDegree: 2 483 | bk14b 484 | bk16 485 | NetDegree: 2 486 | P9 487 | bk15b 488 | NetDegree: 2 489 | P8 490 | bk15b 491 | NetDegree: 2 492 | P25 493 | bk15b 494 | NetDegree: 2 495 | P11 496 | bk15b 497 | NetDegree: 2 498 | P10 499 | bk15b 500 | NetDegree: 2 501 | bk15a 502 | bk15b 503 | NetDegree: 2 504 | bk14c 505 | bk15b 506 | NetDegree: 2 507 | P7 508 | bk15a 509 | NetDegree: 2 510 | P6 511 | bk15a 512 | NetDegree: 2 513 | P5 514 | bk15a 515 | NetDegree: 2 516 | bk14a 517 | bk15a 518 | NetDegree: 2 519 | bk14b 520 | bk14c 521 | NetDegree: 2 522 | bk14b 523 | bk14c 524 | NetDegree: 2 525 | bk14a 526 | bk14b 527 | NetDegree: 2 528 | P4 529 | bk13 530 | NetDegree: 2 531 | P26 532 | bk13 533 | NetDegree: 2 534 | P2 535 | bk13 536 | NetDegree: 2 537 | P31 538 | bk11 539 | NetDegree: 2 540 | bk10b 541 | bk10c 542 | NetDegree: 2 543 | bk10a 544 | bk10c 545 | NetDegree: 2 546 | bk10a 547 | bk10b 548 | -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | using namespace std; 10 | 11 | const clock_t start_time = clock(); 12 | constexpr float temp_th = 0.001, rej_ratio = 0.99; 13 | 14 | inline float randf() { return float(rand())/RAND_MAX; } 15 | inline float randb() { return rand()%2; } 16 | 17 | typedef tuple int3; 18 | 19 | #include "floor_plan.hpp" 20 | 21 | template 22 | class SA { 23 | public: 24 | SA(FLOOR_PLAN& fp, char** argv, ID Nblcks, int W, int H, float R, 25 | float P, float alpha_base,float beta) 26 | : _fp(fp), _Nblcks(Nblcks), _N(Nblcks), _R(R), _best_sol(fp.get_tree()), 27 | _alpha_base(alpha_base), _alpha(alpha_base), _N_feas(0), 28 | _beta(beta), _W(W), _H(H), _true_alpha(stof(argv[1])) { 29 | _fp.init(); 30 | vector costs(_N+1); 31 | costs[0] = _fp.cost(); 32 | _avg_r = float(get<2>(costs[0]))/get<1>(costs[0]); 33 | _avg_hpwl = get<0>(costs[0])/2.; 34 | _avg_area = get<1>(costs[0])*get<2>(costs[0]); 35 | _avg_true = _true_alpha*_avg_area + (1-_true_alpha)*_avg_hpwl; 36 | for(ID i = 1; i<=_N; ++i) { 37 | _fp.perturb(); 38 | _fp.init(); 39 | costs[i] = _fp.cost(); 40 | const float area = get<1>(costs[i])*get<2>(costs[i]); 41 | const float hpwl = get<0>(costs[i])/2.; 42 | _avg_hpwl += hpwl; 43 | _avg_area += area; 44 | _avg_true += _true_alpha*area+(1-_true_alpha)*hpwl; 45 | const float r = float(get<2>(costs[i]))/get<1>(costs[i]); 46 | _avg_r += (r-R)*(r-R); 47 | } 48 | _fp.restore(_best_sol); 49 | _avg_hpwl = _avg_hpwl*1.1/(_N+1); 50 | _avg_area = _avg_area*1.1/(_N+1); 51 | _avg_r = _avg_r*1.1/(_N+1); 52 | _avg_true = _avg_true*1.1/(_N+1); 53 | float avg_cost = 0; 54 | for(ID i = 1; i<=_N; ++i) 55 | avg_cost += abs(norm_cost(costs[i]) - norm_cost(costs[i-1])); 56 | _init_T = -avg_cost/_N/logf(P); 57 | }; 58 | pair::TREE> 59 | run(const int k, int rnd, const float c) { 60 | bests.clear(), ax.clear(), Ts.clear(); 61 | tt = clock(); 62 | _recs.resize(_N, false); 63 | _N_feas = 0; 64 | _beta = 0.0; 65 | int reset_th = 2*_Nblcks, stop_th = 4*_Nblcks; 66 | _fp.init(); 67 | int iter = 1, tot_feas = 0; 68 | float _T = _init_T, prv_cost = norm_cost(_fp.cost(_alpha, _beta)); 69 | _best_cost = prv_cost; 70 | int rej_num = 0, cnt = 1; 71 | typename FLOOR_PLAN::TREE last_sol = _fp.get_tree(); 72 | while(_T > temp_th || float(rej_num) <= rej_ratio*cnt) { 73 | if(tot_feas) _beta += 0.01; 74 | float avg_delta_cost = 0; 75 | rej_num = 0, cnt = 1; 76 | for(; cnt<=rnd; ++cnt) { 77 | _fp.perturb(); 78 | _fp.init(); 79 | int3 costs = _fp.cost(_alpha, _beta); 80 | float cost = norm_cost(costs); 81 | float delta_cost = (cost - prv_cost); 82 | avg_delta_cost += abs(delta_cost); 83 | 84 | if(*_recs.begin()) --_N_feas; 85 | _recs.pop_front(); 86 | if(feas(costs)) { 87 | ++_N_feas; 88 | _recs.push_back(true); 89 | ++tot_feas; 90 | } else _recs.push_back(false); 91 | _alpha = _alpha_base + (1-_alpha_base)*_N_feas/_N; 92 | 93 | if(delta_cost <= 0 || randf() < expf(-delta_cost/_T) || tot_feas == 1) { 94 | prv_cost = cost; 95 | last_sol = _fp.get_tree(); 96 | if(feas(costs)) { 97 | if(cost < _best_cost || tot_feas == 1) { 98 | _best_sol = _fp.get_tree(); 99 | _best_cost = cost; 100 | } 101 | } 102 | } else { 103 | _fp.restore(last_sol); 104 | ++rej_num; 105 | } 106 | } 107 | ++iter; 108 | if(iter <= k) _T = _init_T*avg_delta_cost/cnt/iter/c; 109 | else _T = _init_T*avg_delta_cost/cnt/iter; 110 | _fp.init(); 111 | if(!tot_feas) { 112 | if(iter > reset_th) { 113 | _T = _init_T; 114 | iter = 1; 115 | reset_th += 1; 116 | stop_th += 1; 117 | rnd += 1; 118 | } 119 | } else if(iter > stop_th) break; 120 | } 121 | _fp.restore(_best_sol); 122 | _fp.init(); 123 | int3 costs = _fp.cost(); 124 | _best_cost = true_cost(costs); 125 | float hpwl = get<0>(costs)/2.; 126 | int area = get<1>(costs)*get<2>(costs); 127 | 128 | cerr << " init_T: " << _init_T << '\n'; 129 | cerr << "temperature: " << _T << '\n'; 130 | cerr << " iter: " << iter << '\n'; 131 | cerr << "success num: " << tot_feas << '\n'; 132 | cerr << " rej_ratio: " << float(rej_num)/cnt << '\n'; 133 | cerr << " alpha: " << _alpha << '\n'; 134 | cerr << " beta: " << _beta << '\n'; 135 | cerr << " hpwl: " << hpwl << '\n'; 136 | cerr << " area: " << area << '\n'; 137 | cerr << " total cost: " << _best_cost << '\n'; 138 | return {_best_cost, _best_sol}; 139 | } 140 | private: 141 | float norm_cost(const int3& cost) const { 142 | const float r = float(get<2>(cost))/get<1>(cost); 143 | return (_alpha*get<1>(cost)*get<2>(cost)/_avg_area 144 | + _beta*get<0>(cost)/_avg_hpwl/2. 145 | + (1-_alpha-_beta)*(r-_R)*(r-_R)/_avg_r); 146 | } 147 | float true_cost(const int3& cost, const float den = 1) const { 148 | return (_true_alpha*get<1>(cost)*get<2>(cost) 149 | + (1-_true_alpha)*get<0>(cost)/2.) / den; 150 | } 151 | bool feas(const int3& cost) { 152 | return (get<1>(cost) <= _W && get<2>(cost) <= _H); 153 | } 154 | FLOOR_PLAN& _fp; 155 | typename FLOOR_PLAN::TREE _best_sol; 156 | float _best_cost; 157 | const ID _Nblcks, _N; 158 | const int _W, _H; 159 | const float _alpha_base, _R, _true_alpha; 160 | float _alpha, _beta, _init_T, _avg_hpwl, _avg_area, _avg_r, _avg_true; 161 | ID _N_feas; 162 | list _recs; 163 | vector bests, Ts, ax; 164 | clock_t tt; 165 | }; 166 | void my_main(int argc, char** argv) { 167 | ifstream fblcks(argv[2], ifstream::in); 168 | ifstream fnets(argv[3], ifstream::in); 169 | string rptPost = ".rpt"; 170 | string blksPost = ".block"; 171 | string plPost = ".out.pl"; 172 | ofstream outs1(argv[4]+rptPost, ifstream::out); 173 | ofstream outs2(argv[4]+blksPost, ifstream::out); 174 | ofstream outs3(argv[4]+plPost, ifstream::out); 175 | int Nnets, W, H, Nblcks, Ntrmns; 176 | 177 | string ign; 178 | fnets >> ign >> Nnets; 179 | fblcks >> ign >> W >> H; 180 | fblcks >> ign >> Nblcks; 181 | fblcks >> ign >> Ntrmns; 182 | 183 | // nonargs 184 | float R = float(H)/W, costs[2]; 185 | 186 | float P = atof(argv[5]); 187 | float alpha_base = atof(argv[6]); 188 | float beta = atof(argv[7]); 189 | int kcoeff = atoi(argv[8]); 190 | int k = max(2, Nblcks/kcoeff); 191 | int rnd = atoi(argv[9])*Nblcks; 192 | float ccoeff = atof(argv[10]); 193 | float c = max(ccoeff*Nblcks, (float)10.0); 194 | 195 | auto fp = 196 | FLOOR_PLAN(fnets, fblcks, argv, Nnets, Nblcks, Ntrmns, W, H); 197 | auto sa = 198 | SA(fp, argv, Nblcks, W, H, R, P, alpha_base, beta); 199 | FLOOR_PLAN::TREE trees[2]; 200 | for(int i = 0; i<2; ++i) { 201 | tie(costs[i], trees[i]) = sa.run(k, rnd, c); 202 | } 203 | fp.restore(costs[0]= (2, 7, 0): 9 | def swig_import_helper(): 10 | import importlib 11 | pkg = __name__.rpartition('.')[0] 12 | mname = '.'.join((pkg, '_PcbRouter')).lstrip('.') 13 | try: 14 | return importlib.import_module(mname) 15 | except ImportError: 16 | return importlib.import_module('_PcbRouter') 17 | _PcbRouter = swig_import_helper() 18 | del swig_import_helper 19 | elif _swig_python_version_info >= (2, 6, 0): 20 | def swig_import_helper(): 21 | from os.path import dirname 22 | import imp 23 | fp = None 24 | try: 25 | fp, pathname, description = imp.find_module('_PcbRouter', [dirname(__file__)]) 26 | except ImportError: 27 | import _PcbRouter 28 | return _PcbRouter 29 | try: 30 | _mod = imp.load_module('_PcbRouter', fp, pathname, description) 31 | finally: 32 | if fp is not None: 33 | fp.close() 34 | return _mod 35 | _PcbRouter = swig_import_helper() 36 | del swig_import_helper 37 | else: 38 | import _PcbRouter 39 | del _swig_python_version_info 40 | 41 | try: 42 | _swig_property = property 43 | except NameError: 44 | pass # Python < 2.2 doesn't have 'property'. 45 | 46 | try: 47 | import builtins as __builtin__ 48 | except ImportError: 49 | import __builtin__ 50 | 51 | def _swig_setattr_nondynamic(self, class_type, name, value, static=1): 52 | if (name == "thisown"): 53 | return self.this.own(value) 54 | if (name == "this"): 55 | if type(value).__name__ == 'SwigPyObject': 56 | self.__dict__[name] = value 57 | return 58 | method = class_type.__swig_setmethods__.get(name, None) 59 | if method: 60 | return method(self, value) 61 | if (not static): 62 | if _newclass: 63 | object.__setattr__(self, name, value) 64 | else: 65 | self.__dict__[name] = value 66 | else: 67 | raise AttributeError("You cannot add attributes to %s" % self) 68 | 69 | 70 | def _swig_setattr(self, class_type, name, value): 71 | return _swig_setattr_nondynamic(self, class_type, name, value, 0) 72 | 73 | 74 | def _swig_getattr(self, class_type, name): 75 | if (name == "thisown"): 76 | return self.this.own() 77 | method = class_type.__swig_getmethods__.get(name, None) 78 | if method: 79 | return method(self) 80 | raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) 81 | 82 | 83 | def _swig_repr(self): 84 | try: 85 | strthis = "proxy of " + self.this.__repr__() 86 | except __builtin__.Exception: 87 | strthis = "" 88 | return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) 89 | 90 | try: 91 | _object = object 92 | _newclass = 1 93 | except __builtin__.Exception: 94 | class _object: 95 | pass 96 | _newclass = 0 97 | 98 | class GridBasedRouter(_object): 99 | __swig_setmethods__ = {} 100 | __setattr__ = lambda self, name, value: _swig_setattr(self, GridBasedRouter, name, value) 101 | __swig_getmethods__ = {} 102 | __getattr__ = lambda self, name: _swig_getattr(self, GridBasedRouter, name) 103 | __repr__ = _swig_repr 104 | 105 | def __init__(self, db: 'kicadPcbDataBase &'): 106 | this = _PcbRouter.new_GridBasedRouter(db) 107 | try: 108 | self.this.append(this) 109 | except __builtin__.Exception: 110 | self.this = this 111 | __swig_destroy__ = _PcbRouter.delete_GridBasedRouter 112 | __del__ = lambda self: None 113 | 114 | def route(self) -> "void": 115 | return _PcbRouter.GridBasedRouter_route(self) 116 | 117 | def initialization(self) -> "void": 118 | return _PcbRouter.GridBasedRouter_initialization(self) 119 | 120 | def set_grid_scale(self, _iS: 'int const') -> "void": 121 | return _PcbRouter.GridBasedRouter_set_grid_scale(self, _iS) 122 | 123 | def set_num_iterations(self, _numRRI: 'int const') -> "void": 124 | return _PcbRouter.GridBasedRouter_set_num_iterations(self, _numRRI) 125 | 126 | def set_enlarge_boundary(self, _eB: 'int const') -> "void": 127 | return _PcbRouter.GridBasedRouter_set_enlarge_boundary(self, _eB) 128 | 129 | def set_wirelength_weight(self, _ww: 'double const') -> "void": 130 | return _PcbRouter.GridBasedRouter_set_wirelength_weight(self, _ww) 131 | 132 | def set_diagonal_wirelength_weight(self, _dww: 'double const') -> "void": 133 | return _PcbRouter.GridBasedRouter_set_diagonal_wirelength_weight(self, _dww) 134 | 135 | def set_layer_change_weight(self, _lCC: 'double const') -> "void": 136 | return _PcbRouter.GridBasedRouter_set_layer_change_weight(self, _lCC) 137 | 138 | def set_track_obstacle_weight(self, _toc: 'double const') -> "void": 139 | return _PcbRouter.GridBasedRouter_set_track_obstacle_weight(self, _toc) 140 | 141 | def set_via_obstacle_weight(self, _voc: 'double const') -> "void": 142 | return _PcbRouter.GridBasedRouter_set_via_obstacle_weight(self, _voc) 143 | 144 | def set_pad_obstacle_weight(self, _poc: 'double const') -> "void": 145 | return _PcbRouter.GridBasedRouter_set_pad_obstacle_weight(self, _poc) 146 | 147 | def set_track_obstacle_step_size(self, _tocss: 'double const') -> "void": 148 | return _PcbRouter.GridBasedRouter_set_track_obstacle_step_size(self, _tocss) 149 | 150 | def set_via_obstacle_step_size(self, _vocss: 'double const') -> "void": 151 | return _PcbRouter.GridBasedRouter_set_via_obstacle_step_size(self, _vocss) 152 | 153 | def set_net_layer_pref_weight(self, _netId: 'int const', _layerName: 'std::string const &', _weight: 'int const') -> "void": 154 | return _PcbRouter.GridBasedRouter_set_net_layer_pref_weight(self, _netId, _layerName, _weight) 155 | 156 | def set_net_all_layers_pref_weights(self, _netId: 'int const', _weight: 'int const') -> "void": 157 | return _PcbRouter.GridBasedRouter_set_net_all_layers_pref_weights(self, _netId, _weight) 158 | 159 | def get_grid_scale(self) -> "unsigned int": 160 | return _PcbRouter.GridBasedRouter_get_grid_scale(self) 161 | 162 | def get_num_iterations(self) -> "unsigned int": 163 | return _PcbRouter.GridBasedRouter_get_num_iterations(self) 164 | 165 | def get_enlarge_boundary(self) -> "unsigned int": 166 | return _PcbRouter.GridBasedRouter_get_enlarge_boundary(self) 167 | 168 | def get_wirelength_weight(self) -> "double": 169 | return _PcbRouter.GridBasedRouter_get_wirelength_weight(self) 170 | 171 | def get_diagonal_wirelength_weight(self) -> "double": 172 | return _PcbRouter.GridBasedRouter_get_diagonal_wirelength_weight(self) 173 | 174 | def get_layer_change_weight(self) -> "double": 175 | return _PcbRouter.GridBasedRouter_get_layer_change_weight(self) 176 | 177 | def get_track_obstacle_weight(self) -> "double": 178 | return _PcbRouter.GridBasedRouter_get_track_obstacle_weight(self) 179 | 180 | def get_via_obstacle_weight(self) -> "double": 181 | return _PcbRouter.GridBasedRouter_get_via_obstacle_weight(self) 182 | 183 | def get_pad_obstacle_weight(self) -> "double": 184 | return _PcbRouter.GridBasedRouter_get_pad_obstacle_weight(self) 185 | 186 | def get_track_obstacle_step_size(self) -> "double": 187 | return _PcbRouter.GridBasedRouter_get_track_obstacle_step_size(self) 188 | 189 | def get_via_obstacle_step_size(self) -> "double": 190 | return _PcbRouter.GridBasedRouter_get_via_obstacle_step_size(self) 191 | 192 | def get_total_cost(self) -> "double": 193 | return _PcbRouter.GridBasedRouter_get_total_cost(self) 194 | 195 | def get_routed_wirelength(self, *args) -> "double": 196 | return _PcbRouter.GridBasedRouter_get_routed_wirelength(self, *args) 197 | 198 | def get_routed_num_vias(self, *args) -> "int": 199 | return _PcbRouter.GridBasedRouter_get_routed_num_vias(self, *args) 200 | 201 | def get_routed_num_bends(self, *args) -> "int": 202 | return _PcbRouter.GridBasedRouter_get_routed_num_bends(self, *args) 203 | GridBasedRouter_swigregister = _PcbRouter.GridBasedRouter_swigregister 204 | GridBasedRouter_swigregister(GridBasedRouter) 205 | 206 | # This file is compatible with both classic and new-style classes. 207 | 208 | 209 | -------------------------------------------------------------------------------- /ucsdpcb/PcbPlacer.py: -------------------------------------------------------------------------------- 1 | # This file was automatically generated by SWIG (http://www.swig.org). 2 | # Version 3.0.12 3 | # 4 | # Do not make changes to this file unless you know what you are doing--modify 5 | # the SWIG interface file instead. 6 | 7 | from sys import version_info as _swig_python_version_info 8 | if _swig_python_version_info >= (2, 7, 0): 9 | def swig_import_helper(): 10 | import importlib 11 | pkg = __name__.rpartition('.')[0] 12 | mname = '.'.join((pkg, '_PcbPlacer')).lstrip('.') 13 | try: 14 | return importlib.import_module(mname) 15 | except ImportError: 16 | return importlib.import_module('_PcbPlacer') 17 | _PcbPlacer = swig_import_helper() 18 | del swig_import_helper 19 | elif _swig_python_version_info >= (2, 6, 0): 20 | def swig_import_helper(): 21 | from os.path import dirname 22 | import imp 23 | fp = None 24 | try: 25 | fp, pathname, description = imp.find_module('_PcbPlacer', [dirname(__file__)]) 26 | except ImportError: 27 | import _PcbPlacer 28 | return _PcbPlacer 29 | try: 30 | _mod = imp.load_module('_PcbPlacer', fp, pathname, description) 31 | finally: 32 | if fp is not None: 33 | fp.close() 34 | return _mod 35 | _PcbPlacer = swig_import_helper() 36 | del swig_import_helper 37 | else: 38 | import _PcbPlacer 39 | del _swig_python_version_info 40 | 41 | try: 42 | _swig_property = property 43 | except NameError: 44 | pass # Python < 2.2 doesn't have 'property'. 45 | 46 | try: 47 | import builtins as __builtin__ 48 | except ImportError: 49 | import __builtin__ 50 | 51 | def _swig_setattr_nondynamic(self, class_type, name, value, static=1): 52 | if (name == "thisown"): 53 | return self.this.own(value) 54 | if (name == "this"): 55 | if type(value).__name__ == 'SwigPyObject': 56 | self.__dict__[name] = value 57 | return 58 | method = class_type.__swig_setmethods__.get(name, None) 59 | if method: 60 | return method(self, value) 61 | if (not static): 62 | if _newclass: 63 | object.__setattr__(self, name, value) 64 | else: 65 | self.__dict__[name] = value 66 | else: 67 | raise AttributeError("You cannot add attributes to %s" % self) 68 | 69 | 70 | def _swig_setattr(self, class_type, name, value): 71 | return _swig_setattr_nondynamic(self, class_type, name, value, 0) 72 | 73 | 74 | def _swig_getattr(self, class_type, name): 75 | if (name == "thisown"): 76 | return self.this.own() 77 | method = class_type.__swig_getmethods__.get(name, None) 78 | if method: 79 | return method(self) 80 | raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) 81 | 82 | 83 | def _swig_repr(self): 84 | try: 85 | strthis = "proxy of " + self.this.__repr__() 86 | except __builtin__.Exception: 87 | strthis = "" 88 | return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) 89 | 90 | try: 91 | _object = object 92 | _newclass = 1 93 | except __builtin__.Exception: 94 | class _object: 95 | pass 96 | _newclass = 0 97 | 98 | class GridBasedPlacer(_object): 99 | __swig_setmethods__ = {} 100 | __setattr__ = lambda self, name, value: _swig_setattr(self, GridBasedPlacer, name, value) 101 | __swig_getmethods__ = {} 102 | __getattr__ = lambda self, name: _swig_getattr(self, GridBasedPlacer, name) 103 | __repr__ = _swig_repr 104 | __swig_setmethods__["iii"] = _PcbPlacer.GridBasedPlacer_iii_set 105 | __swig_getmethods__["iii"] = _PcbPlacer.GridBasedPlacer_iii_get 106 | if _newclass: 107 | iii = _swig_property(_PcbPlacer.GridBasedPlacer_iii_get, _PcbPlacer.GridBasedPlacer_iii_set) 108 | 109 | def __init__(self, db: 'kicadPcbDataBase &'): 110 | this = _PcbPlacer.new_GridBasedPlacer(db) 111 | try: 112 | self.this.append(this) 113 | except __builtin__.Exception: 114 | self.this = this 115 | __swig_destroy__ = _PcbPlacer.delete_GridBasedPlacer 116 | __del__ = lambda self: None 117 | 118 | def test_hplacer_flow(self) -> "void": 119 | return _PcbPlacer.GridBasedPlacer_test_hplacer_flow(self) 120 | 121 | def test_placer_flow(self) -> "double": 122 | return _PcbPlacer.GridBasedPlacer_test_placer_flow(self) 123 | 124 | def getDb(self) -> "kicadPcbDataBase &": 125 | return _PcbPlacer.GridBasedPlacer_getDb(self) 126 | __swig_setmethods__["mDb"] = _PcbPlacer.GridBasedPlacer_mDb_set 127 | __swig_getmethods__["mDb"] = _PcbPlacer.GridBasedPlacer_mDb_get 128 | if _newclass: 129 | mDb = _swig_property(_PcbPlacer.GridBasedPlacer_mDb_get, _PcbPlacer.GridBasedPlacer_mDb_set) 130 | 131 | def get_total_cost(self) -> "double": 132 | return _PcbPlacer.GridBasedPlacer_get_total_cost(self) 133 | 134 | def get_wirelength_cost(self) -> "double": 135 | return _PcbPlacer.GridBasedPlacer_get_wirelength_cost(self) 136 | 137 | def get_overlap_cost(self) -> "double": 138 | return _PcbPlacer.GridBasedPlacer_get_overlap_cost(self) 139 | 140 | def get_temperature(self) -> "double": 141 | return _PcbPlacer.GridBasedPlacer_get_temperature(self) 142 | 143 | def set_base_lam(self, _lam: 'double') -> "void": 144 | return _PcbPlacer.GridBasedPlacer_set_base_lam(self, _lam) 145 | 146 | def set_bb_ec(self, _bb: 'bool') -> "void": 147 | return _PcbPlacer.GridBasedPlacer_set_bb_ec(self, _bb) 148 | 149 | def set_wirelength_weight(self, _cst: 'double') -> "void": 150 | return _PcbPlacer.GridBasedPlacer_set_wirelength_weight(self, _cst) 151 | 152 | def set_lambda_schedule(self, _lsched: 'double') -> "void": 153 | return _PcbPlacer.GridBasedPlacer_set_lambda_schedule(self, _lsched) 154 | 155 | def set_two_sided(self, _2sided: 'bool') -> "void": 156 | return _PcbPlacer.GridBasedPlacer_set_two_sided(self, _2sided) 157 | 158 | def set_initial_move_radius(self, _eps: 'double') -> "void": 159 | return _PcbPlacer.GridBasedPlacer_set_initial_move_radius(self, _eps) 160 | 161 | def set_rtree(self, _rt: 'bool') -> "void": 162 | return _PcbPlacer.GridBasedPlacer_set_rtree(self, _rt) 163 | 164 | def set_lam(self, _lam: 'bool') -> "void": 165 | return _PcbPlacer.GridBasedPlacer_set_lam(self, _lam) 166 | 167 | def set_lamtemp_update(self, _coef: 'double') -> "void": 168 | return _PcbPlacer.GridBasedPlacer_set_lamtemp_update(self, _coef) 169 | 170 | def set_num_iterations(self, iter: 'int') -> "void": 171 | return _PcbPlacer.GridBasedPlacer_set_num_iterations(self, iter) 172 | 173 | def set_iterations_moves(self, iter: 'int') -> "void": 174 | return _PcbPlacer.GridBasedPlacer_set_iterations_moves(self, iter) 175 | 176 | def set_initial_temperature(self, tmp: 'double') -> "void": 177 | return _PcbPlacer.GridBasedPlacer_set_initial_temperature(self, tmp) 178 | 179 | def h_cellDensity(self) -> "double": 180 | return _PcbPlacer.GridBasedPlacer_h_cellDensity(self) 181 | 182 | def h_initialize_params(self, netToCell: 'map< int,vector< Module * > > &') -> "void": 183 | return _PcbPlacer.GridBasedPlacer_h_initialize_params(self, netToCell) 184 | 185 | def h_validate_move(self, node: 'Module *', rx: 'double', ry: 'double') -> "void": 186 | return _PcbPlacer.GridBasedPlacer_h_validate_move(self, node, rx, ry) 187 | 188 | def h_cost(self, netToCell: 'map< int,vector< Module * > > &', temp_debug: 'int'=0) -> "double": 189 | return _PcbPlacer.GridBasedPlacer_h_cost(self, netToCell, temp_debug) 190 | 191 | def h_cost_partial(self, nodes: 'vector< Module * > &', netToCell: 'map< int,vector< Module * > > &') -> "double": 192 | return _PcbPlacer.GridBasedPlacer_h_cost_partial(self, nodes, netToCell) 193 | 194 | def h_cell_overlap(self) -> "double": 195 | return _PcbPlacer.GridBasedPlacer_h_cell_overlap(self) 196 | 197 | def h_wirelength(self, netToCell: 'map< int,vector< Module * > > &') -> "double": 198 | return _PcbPlacer.GridBasedPlacer_h_wirelength(self, netToCell) 199 | 200 | def h_cell_overlap_partial(self, nodes: 'vector< Module * > &') -> "double": 201 | return _PcbPlacer.GridBasedPlacer_h_cell_overlap_partial(self, nodes) 202 | 203 | def h_wirelength_partial(self, nodes: 'vector< Module * > &', netToCell: 'map< int,vector< Module * > > &') -> "double": 204 | return _PcbPlacer.GridBasedPlacer_h_wirelength_partial(self, nodes, netToCell) 205 | 206 | def h_rudy(self, netToCell: 'map< int,vector< Module * > > &') -> "double": 207 | return _PcbPlacer.GridBasedPlacer_h_rudy(self, netToCell) 208 | 209 | def h_annealer(self, netToCell: 'map< int,vector< Module * > > &', initial_pl: 'string', level: 'int'=0) -> "float": 210 | return _PcbPlacer.GridBasedPlacer_h_annealer(self, netToCell, initial_pl, level) 211 | 212 | def h_initialize_temperature(self, Temperature: 'double &', netToCell: 'map< int,vector< Module * > > &') -> "double": 213 | return _PcbPlacer.GridBasedPlacer_h_initialize_temperature(self, Temperature, netToCell) 214 | 215 | def h_initiate_move(self, current_cost: 'double', netToCell: 'map< int,vector< Module * > > &') -> "double": 216 | return _PcbPlacer.GridBasedPlacer_h_initiate_move(self, current_cost, netToCell) 217 | 218 | def h_random_placement(self, xmin: 'int', xmax: 'int', ymin: 'int', ymax: 'int', n: 'Module &') -> "void": 219 | return _PcbPlacer.GridBasedPlacer_h_random_placement(self, xmin, xmax, ymin, ymax, n) 220 | 221 | def h_random_initial_placement(self) -> "void": 222 | return _PcbPlacer.GridBasedPlacer_h_random_initial_placement(self) 223 | 224 | def h_check_move(self, prevCost: 'double', newCost: 'double', Temperature: 'double &') -> "bool": 225 | return _PcbPlacer.GridBasedPlacer_h_check_move(self, prevCost, newCost, Temperature) 226 | 227 | def h_random_node(self) -> "vector< Module * >::iterator": 228 | return _PcbPlacer.GridBasedPlacer_h_random_node(self) 229 | GridBasedPlacer_swigregister = _PcbPlacer.GridBasedPlacer_swigregister 230 | GridBasedPlacer_swigregister(GridBasedPlacer) 231 | 232 | # This file is compatible with both classic and new-style classes. 233 | 234 | 235 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/hp.nets: -------------------------------------------------------------------------------- 1 | UCLA nets 1.0 2 | # Created : Thu Nov 09 18:23:29 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | NumNets : 83 7 | NumPins : 309 8 | 9 | NetDegree : 2 10 | bu7 B 11 | # The above terminal is a pad 12 | cntu B : %37.2 %50.0 13 | NetDegree : 2 14 | rs2 B 15 | # The above terminal is a pad 16 | cntu B : %20.3 %50.0 17 | NetDegree : 2 18 | mcu B 19 | # The above terminal is a pad 20 | cntu B : %-0.8 %50.0 21 | NetDegree : 2 22 | bu0 B 23 | # The above terminal is a pad 24 | cntu B : %-16.1 %50.0 25 | NetDegree : 2 26 | bu1 B 27 | # The above terminal is a pad 28 | cntu B : %-22.0 %50.0 29 | NetDegree : 2 30 | bu2 B 31 | # The above terminal is a pad 32 | cntu B : %-28.8 %50.0 33 | NetDegree : 2 34 | bu3 B 35 | # The above terminal is a pad 36 | cntu B : %-34.7 %50.0 37 | NetDegree : 2 38 | bu4 B 39 | # The above terminal is a pad 40 | cntu B : %-41.5 %50.0 41 | NetDegree : 2 42 | bu5 B 43 | # The above terminal is a pad 44 | cntu B : %-47.4 %50.0 45 | NetDegree : 2 46 | bu6 B 47 | # The above terminal is a pad 48 | cntu B : %-49.5 %50.0 49 | NetDegree : 6 50 | busa8 B 51 | # The above terminal is a pad 52 | cntu B : %22.8 %-50.0 53 | nps B : %-1.3 %50.0 54 | npd B : %-13.1 %50.0 55 | ppd B : %-13.1 %-50.0 56 | clkc B : %5.4 %50.0 57 | NetDegree : 6 58 | busa7 B 59 | # The above terminal is a pad 60 | cntu B : %22.4 %-50.0 61 | nps B : %-1.8 %50.0 62 | npd B : %-13.8 %50.0 63 | ppd B : %-13.8 %-50.0 64 | clkc B : %4.0 %50.0 65 | NetDegree : 6 66 | busa6 B 67 | # The above terminal is a pad 68 | cntu B : %22.0 %-50.0 69 | nps B : %-2.2 %50.0 70 | npd B : %-14.5 %50.0 71 | ppd B : %-14.5 %-50.0 72 | clkc B : %2.7 %50.0 73 | NetDegree : 6 74 | busa5 B 75 | # The above terminal is a pad 76 | cntu B : %21.6 %-50.0 77 | nps B : %-2.7 %50.0 78 | npd B : %-15.2 %50.0 79 | ppd B : %-15.2 %-50.0 80 | clkc B : %1.3 %50.0 81 | NetDegree : 7 82 | busa4 B 83 | # The above terminal is a pad 84 | cntu B : %21.1 %-50.0 85 | nps B : %-3.1 %50.0 86 | clkc B : %0.0 %50.0 87 | cmp1 B : %-14.2 %-50.0 88 | cmp2 B : %0.0 %-50.0 89 | cmp3 B : %-1.4 %-50.0 90 | NetDegree : 7 91 | busa3 B 92 | # The above terminal is a pad 93 | cntu B : %20.7 %-50.0 94 | nps B : %-3.6 %50.0 95 | clkc B : %-1.3 %50.0 96 | cmp1 B : %-15.7 %-50.0 97 | cmp2 B : %-1.4 %-50.0 98 | cmp3 B : %-2.8 %-50.0 99 | NetDegree : 7 100 | busa2 B 101 | # The above terminal is a pad 102 | cntu B : %20.3 %-50.0 103 | nps B : %-4.0 %50.0 104 | clkc B : %-2.7 %50.0 105 | cmp1 B : %-17.1 %-50.0 106 | cmp2 B : %-2.8 %-50.0 107 | cmp3 B : %-4.2 %-50.0 108 | NetDegree : 7 109 | busa1 B 110 | # The above terminal is a pad 111 | cntu B : %19.9 %-50.0 112 | nps B : %-4.5 %50.0 113 | clkc B : %-4.0 %50.0 114 | cmp1 B : %-18.5 %-50.0 115 | cmp2 B : %-4.2 %-50.0 116 | cmp3 B : %-5.7 %-50.0 117 | NetDegree : 2 118 | cntu B : %0.8 %-50.0 119 | nps B : %50.0 %13.6 120 | NetDegree : 2 121 | cntu B : %-9.3 %-50.0 122 | nps B : %50.0 %4.5 123 | NetDegree : 2 124 | cntu B : %-20.3 %-50.0 125 | nps B : %50.0 %-4.5 126 | NetDegree : 2 127 | cntu B : %-30.5 %-50.0 128 | nps B : %50.0 %-13.6 129 | NetDegree : 2 130 | cntu B : %-41.5 %-50.0 131 | nps B : %50.0 %-22.7 132 | NetDegree : 14 133 | vdd B 134 | # The above terminal is a pad 135 | cntu B : %50.0 %42.3 136 | cntu B : %-50.0 %-3.8 137 | nps B : %50.0 %-31.8 138 | nps B : %-50.0 %-31.8 139 | npd B : %50.0 %-16.6 140 | ppd B : %50.0 %33.3 141 | ppd B : %-50.0 %16.6 142 | pps B : %50.0 %46.9 143 | pps B : %-50.0 %16.6 144 | cntd B : %50.0 %42.3 145 | cntd B : %-50.0 %-3.8 146 | clkc B : %-50.0 %40.9 147 | clkc B : %-50.0 %-46.9 148 | NetDegree : 8 149 | mk1 B 150 | # The above terminal is a pad 151 | cntu B : %50.0 %11.5 152 | nps B : %49.5 %-50.0 153 | nps B : %-18.1 %-50.0 154 | nps B : %-21.8 %-50.0 155 | nps B : %-40.9 %-50.0 156 | npd B : %36.1 %50.0 157 | npd B : %22.2 %50.0 158 | NetDegree : 15 159 | vss B 160 | # The above terminal is a pad 161 | cntu B : %50.0 %-26.9 162 | cntu B : %-50.0 %-47.4 163 | nps B : %50.0 %46.9 164 | nps B : %-50.0 %22.7 165 | npd B : %50.0 %33.3 166 | npd B : %-50.0 %16.6 167 | ppd B : %50.0 %-16.6 168 | ppd B : %-50.0 %-33.3 169 | pps B : %50.0 %-31.8 170 | pps B : %-50.0 %-31.8 171 | cntd B : %50.0 %-26.9 172 | cntd B : %-50.0 %-47.4 173 | clkc B : %50.0 %-4.5 174 | clkc B : %-50.0 %-4.5 175 | NetDegree : 15 176 | nps B : %49.0 %-50.0 177 | nps B : %21.8 %-50.0 178 | nps B : %-10.9 %-50.0 179 | nps B : %-38.1 %-50.0 180 | nps B : %-49.0 %-50.0 181 | clkd B : %-5.5 %50.0 182 | npd B : %-22.2 %-50.0 183 | npd B : %-43.0 %-50.0 184 | ppd B : %-26.3 %50.0 185 | ppd B : %-47.2 %50.0 186 | pps B : %48.1 %50.0 187 | pps B : %17.2 %50.0 188 | pps B : %-16.3 %50.0 189 | pps B : %-42.7 %50.0 190 | pps B : %-49.0 %50.0 191 | NetDegree : 15 192 | nps B : %48.1 %-50.0 193 | nps B : %20.9 %-50.0 194 | nps B : %-9.9 %-50.0 195 | nps B : %-36.3 %-50.0 196 | nps B : %-47.2 %-50.0 197 | clkd B : %16.6 %50.0 198 | npd B : %-15.2 %-50.0 199 | npd B : %-29.1 %-50.0 200 | ppd B : %-19.4 %50.0 201 | ppd B : %-33.3 %50.0 202 | pps B : %47.2 %50.0 203 | pps B : %15.4 %50.0 204 | pps B : %4.5 %50.0 205 | pps B : %-17.2 %50.0 206 | pps B : %-48.1 %50.0 207 | NetDegree : 2 208 | nps B : %47.2 %-50.0 209 | nps B : %26.3 %-50.0 210 | NetDegree : 2 211 | nps B : %46.3 %-50.0 212 | nps B : %28.1 %-50.0 213 | NetDegree : 3 214 | nps B : %45.4 %-50.0 215 | nps B : %41.8 %-50.0 216 | nps B : %29.0 %-50.0 217 | NetDegree : 3 218 | nps B : %44.5 %-50.0 219 | nps B : %40.9 %-50.0 220 | nps B : %30.9 %-50.0 221 | NetDegree : 3 222 | nps B : %-1.8 %-50.0 223 | nps B : %-13.6 %-50.0 224 | nps B : %-45.4 %-50.0 225 | NetDegree : 3 226 | nps B : %-3.6 %-50.0 227 | nps B : %-15.4 %-50.0 228 | nps B : %-42.7 %-50.0 229 | NetDegree : 3 230 | nps B : %-27.2 %-50.0 231 | npd B : %50.0 %16.6 232 | ppd B : %-40.2 %50.0 233 | NetDegree : 2 234 | gnd1 B 235 | # The above terminal is a pad 236 | nps B : %-22.7 %50.0 237 | NetDegree : 2 238 | vin1 B 239 | # The above terminal is a pad 240 | nps B : %-25.4 %50.0 241 | NetDegree : 2 242 | nps B : %-27.2 %50.0 243 | cmp1 B : %-50.0 %-9.9 244 | NetDegree : 2 245 | nps B : %-50.0 %-4.5 246 | cmp1 B : %50.0 %9.9 247 | NetDegree : 4 248 | busb4 B 249 | # The above terminal is a pad 250 | clkd B : %50.0 %-24.0 251 | pps B : %37.7 %-50.0 252 | cntd B : %21.1 %-50.0 253 | NetDegree : 4 254 | busb3 B 255 | # The above terminal is a pad 256 | clkd B : %50.0 %-26.0 257 | pps B : %37.2 %-50.0 258 | cntd B : %20.7 %-50.0 259 | NetDegree : 4 260 | busb2 B 261 | # The above terminal is a pad 262 | clkd B : %-50.0 %-24.0 263 | pps B : %36.8 %-50.0 264 | cntd B : %20.3 %-50.0 265 | NetDegree : 4 266 | busb1 B 267 | # The above terminal is a pad 268 | clkd B : %-50.0 %-26.0 269 | pps B : %36.3 %-50.0 270 | cntd B : %19.9 %-50.0 271 | NetDegree : 2 272 | mc2 B 273 | # The above terminal is a pad 274 | clkd B : %-16.6 %-50.0 275 | NetDegree : 3 276 | npd B : %2.7 %-50.0 277 | ppd B : %50.0 %16.6 278 | pps B : %-31.8 %50.0 279 | NetDegree : 3 280 | npd B : %-1.3 %-50.0 281 | ppd B : %-5.5 %50.0 282 | cmp2 B : %-50.0 %-9.9 283 | NetDegree : 5 284 | npd B : %-8.3 %-50.0 285 | npd B : %-50.0 %-44.4 286 | ppd B : %-12.5 %50.0 287 | ppd B : %-50.0 %-44.4 288 | cmp2 B : %-50.0 %9.9 289 | NetDegree : 8 290 | mk2 B 291 | # The above terminal is a pad 292 | ppd B : %40.2 %-50.0 293 | ppd B : %26.3 %-50.0 294 | pps B : %49.0 %50.0 295 | pps B : %-22.7 %50.0 296 | pps B : %-26.3 %50.0 297 | pps B : %-45.4 %50.0 298 | cntd B : %50.0 %11.5 299 | NetDegree : 2 300 | pps B : %46.3 %50.0 301 | pps B : %21.8 %50.0 302 | NetDegree : 2 303 | pps B : %45.4 %50.0 304 | pps B : %22.7 %50.0 305 | NetDegree : 3 306 | pps B : %44.5 %50.0 307 | pps B : %37.2 %50.0 308 | pps B : %24.5 %50.0 309 | NetDegree : 3 310 | pps B : %43.6 %50.0 311 | pps B : %36.3 %50.0 312 | pps B : %25.4 %50.0 313 | NetDegree : 3 314 | pps B : %-7.2 %50.0 315 | pps B : %-18.1 %50.0 316 | pps B : %-46.3 %50.0 317 | NetDegree : 3 318 | pps B : %-8.1 %50.0 319 | pps B : %-20.0 %50.0 320 | pps B : %-43.6 %50.0 321 | NetDegree : 2 322 | gnd2 B 323 | # The above terminal is a pad 324 | pps B : %-18.1 %-50.0 325 | NetDegree : 2 326 | vin2 B 327 | # The above terminal is a pad 328 | pps B : %-20.0 %-50.0 329 | NetDegree : 2 330 | pps B : %-22.7 %-50.0 331 | cmp3 B : %-50.0 %-9.9 332 | NetDegree : 2 333 | pps B : %50.0 %31.8 334 | cntd B : %-47.4 %50.0 335 | NetDegree : 2 336 | pps B : %50.0 %22.7 337 | cntd B : %-45.7 %50.0 338 | NetDegree : 2 339 | pps B : %50.0 %13.6 340 | cntd B : %-34.7 %50.0 341 | NetDegree : 2 342 | pps B : %50.0 %4.5 343 | cntd B : %-24.5 %50.0 344 | NetDegree : 2 345 | pps B : %50.0 %-4.5 346 | cntd B : %-13.5 %50.0 347 | NetDegree : 2 348 | pps B : %-50.0 %-4.5 349 | cmp3 B : %50.0 %9.9 350 | NetDegree : 2 351 | rs1 B 352 | # The above terminal is a pad 353 | cntd B : %34.7 %-50.0 354 | NetDegree : 2 355 | mcd B 356 | # The above terminal is a pad 357 | cntd B : %13.5 %-50.0 358 | NetDegree : 2 359 | b0 B 360 | # The above terminal is a pad 361 | cntd B : %-0.8 %-50.0 362 | NetDegree : 2 363 | b1 B 364 | # The above terminal is a pad 365 | cntd B : %-7.6 %-50.0 366 | NetDegree : 2 367 | b2 B 368 | # The above terminal is a pad 369 | cntd B : %-13.5 %-50.0 370 | NetDegree : 2 371 | b3 B 372 | # The above terminal is a pad 373 | cntd B : %-20.3 %-50.0 374 | NetDegree : 2 375 | b4 B 376 | # The above terminal is a pad 377 | cntd B : %-26.2 %-50.0 378 | NetDegree : 2 379 | b5 B 380 | # The above terminal is a pad 381 | cntd B : %-33.0 %-50.0 382 | NetDegree : 2 383 | b6 B 384 | # The above terminal is a pad 385 | cntd B : %-38.9 %-50.0 386 | NetDegree : 2 387 | b7 B 388 | # The above terminal is a pad 389 | cntd B : %-45.7 %-50.0 390 | NetDegree : 4 391 | clkc B : %44.5 %-50.0 392 | cmp1 B : %-1.4 %50.0 393 | cmp2 B : %1.4 %50.0 394 | cmp3 B : %-1.4 %50.0 395 | NetDegree : 4 396 | clkc B : %36.4 %-50.0 397 | cmp1 B : %-15.7 %50.0 398 | cmp2 B : %15.7 %50.0 399 | cmp3 B : %-15.7 %50.0 400 | NetDegree : 4 401 | clkc B : %31.0 %-50.0 402 | cmp1 B : %-44.2 %50.0 403 | cmp2 B : %44.2 %50.0 404 | cmp3 B : %-44.2 %50.0 405 | NetDegree : 4 406 | clkc B : %4.0 %-50.0 407 | cmp1 B : %-30.0 %50.0 408 | cmp2 B : %30.0 %50.0 409 | cmp3 B : %-30.0 %50.0 410 | NetDegree : 4 411 | clkc B : %50.0 %22.7 412 | cmp1 B : %35.7 %50.0 413 | cmp2 B : %-35.7 %50.0 414 | cmp3 B : %27.1 %50.0 415 | NetDegree : 4 416 | clkc B : %50.0 %4.5 417 | cmp1 B : %12.8 %50.0 418 | cmp2 B : %-12.8 %50.0 419 | cmp3 B : %12.8 %50.0 420 | NetDegree : 2 421 | mc1 B 422 | # The above terminal is a pad 423 | clkc B : %-50.0 %-13.6 424 | NetDegree : 7 425 | vdda B 426 | # The above terminal is a pad 427 | cmp1 B : %50.0 %30.0 428 | cmp1 B : %-50.0 %30.0 429 | cmp2 B : %50.0 %-30.0 430 | cmp2 B : %-50.0 %-30.0 431 | cmp3 B : %-50.0 %30.0 432 | cmp3 B : %50.0 %30.0 433 | NetDegree : 7 434 | vssa B 435 | # The above terminal is a pad 436 | cmp1 B : %50.0 %-30.0 437 | cmp1 B : %-50.0 %-30.0 438 | cmp2 B : %50.0 %30.0 439 | cmp2 B : %-50.0 %30.0 440 | cmp3 B : %-50.0 %-30.0 441 | cmp3 B : %50.0 %-30.0 442 | NetDegree : 2 443 | vin B 444 | # The above terminal is a pad 445 | cmp2 B : %50.0 %-9.9 446 | -------------------------------------------------------------------------------- /input_pin_aware/mcnc/apte.nets: -------------------------------------------------------------------------------- 1 | UCLA nets 1.0 2 | # Created : Thu Nov 09 18:23:28 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | NumNets : 97 7 | NumPins : 287 8 | 9 | NetDegree : 10 10 | # The pad/pins in this net are of type "PWR" 11 | VDD B 12 | cc_11 B : %48.4 %50.0 13 | cc_12 B : %48.4 %50.0 14 | cc_13 B : %48.4 %50.0 15 | cc_14 B : %48.4 %50.0 16 | cc_21 B : %48.4 %50.0 17 | cc_22 B : %48.4 %50.0 18 | cc_23 B : %48.4 %50.0 19 | cc_24 B : %48.4 %50.0 20 | clk B : %50.0 %-9.4 21 | NetDegree : 9 22 | # The pad/pins in this net are of type "PWR" 23 | GND B 24 | cc_11 B : %46.6 %50.0 25 | cc_12 B : %46.6 %50.0 26 | cc_13 B : %46.6 %50.0 27 | cc_14 B : %46.6 %50.0 28 | cc_21 B : %46.6 %50.0 29 | cc_22 B : %46.6 %50.0 30 | cc_23 B : %46.6 %50.0 31 | cc_24 B : %46.6 %50.0 32 | NetDegree : 3 33 | new18 B 34 | # The above terminal is a pad 35 | cc_11 B : %-46.2 %50.0 36 | cc_12 B : %-46.2 %-50.0 37 | NetDegree : 3 38 | new19 B 39 | # The above terminal is a pad 40 | cc_11 B : %-46.4 %50.0 41 | cc_12 B : %-46.4 %-50.0 42 | NetDegree : 3 43 | new17 B 44 | # The above terminal is a pad 45 | cc_11 B : %-45.9 %50.0 46 | cc_12 B : %-45.9 %-50.0 47 | NetDegree : 3 48 | new16 B 49 | # The above terminal is a pad 50 | cc_11 B : %50.0 %39.7 51 | cc_21 B : %-44.7 %-50.0 52 | NetDegree : 9 53 | cc_11 B : %50.0 %22.2 54 | cc_12 B : %50.0 %22.2 55 | cc_13 B : %50.0 %22.2 56 | cc_14 B : %50.0 %22.2 57 | cc_21 B : %-50.0 %25.7 58 | cc_22 B : %-50.0 %25.7 59 | cc_23 B : %-50.0 %25.7 60 | cc_24 B : %-50.0 %25.7 61 | clk B : %-11.8 %-50.0 62 | NetDegree : 9 63 | new1 B 64 | # The above terminal is a pad 65 | cc_11 B : %50.0 %13.4 66 | cc_12 B : %50.0 %13.4 67 | cc_13 B : %50.0 %13.4 68 | cc_14 B : %50.0 %13.4 69 | cc_21 B : %-50.0 %-3.8 70 | cc_22 B : %-50.0 %-3.8 71 | cc_23 B : %-50.0 %-3.8 72 | cc_24 B : %-50.0 %-3.8 73 | NetDegree : 3 74 | new15 B 75 | # The above terminal is a pad 76 | cc_11 B : %50.0 %2.9 77 | cc_21 B : %-45.2 %-50.0 78 | NetDegree : 3 79 | new14 B 80 | # The above terminal is a pad 81 | cc_11 B : %50.0 %-28.0 82 | cc_21 B : %-45.5 %-50.0 83 | NetDegree : 9 84 | cc_11 B : %50.0 %-41.0 85 | cc_12 B : %50.0 %-41.0 86 | cc_13 B : %50.0 %-41.0 87 | cc_14 B : %50.0 %-41.0 88 | cc_21 B : %-50.0 %26.1 89 | cc_22 B : %-50.0 %26.1 90 | cc_23 B : %-50.0 %26.1 91 | cc_24 B : %-50.0 %26.1 92 | clk B : %-17.1 %-50.0 93 | NetDegree : 9 94 | cc_11 B : %50.0 %-40.5 95 | cc_12 B : %50.0 %-40.5 96 | cc_13 B : %50.0 %-40.5 97 | cc_14 B : %50.0 %-40.5 98 | cc_21 B : %-50.0 %21.0 99 | cc_22 B : %-50.0 %21.0 100 | cc_23 B : %-50.0 %21.0 101 | cc_24 B : %-50.0 %21.0 102 | clk B : %-50.0 %-3.8 103 | NetDegree : 6 104 | cc_11 B : %50.0 %49.5 105 | cc_12 B : %37.6 %-50.0 106 | cc_12 B : %37.4 %-50.0 107 | cc_21 B : %-46.0 %50.0 108 | cc_21 B : %-46.5 %50.0 109 | cc_22 B : %-46.5 %-50.0 110 | NetDegree : 4 111 | cc_11 B : %50.0 %-41.4 112 | cc_12 B : %50.0 %-41.4 113 | cc_13 B : %50.0 %-41.4 114 | cc_14 B : %50.0 %-41.4 115 | NetDegree : 2 116 | cc_11 B : %50.0 %-41.8 117 | cc_12 B : %-19.7 %-50.0 118 | NetDegree : 9 119 | cc_11 B : %50.0 %-42.3 120 | cc_12 B : %50.0 %-42.3 121 | cc_13 B : %50.0 %-42.3 122 | cc_14 B : %50.0 %-42.3 123 | cc_21 B : %-50.0 %-44.1 124 | cc_22 B : %-50.0 %-44.1 125 | cc_23 B : %-50.0 %-44.1 126 | cc_24 B : %-50.0 %-44.1 127 | clk B : %44.4 %-50.0 128 | NetDegree : 2 129 | new5 B 130 | # The above terminal is a pad 131 | cc_11 B : %-50.0 %-45.2 132 | NetDegree : 2 133 | new4 B 134 | # The above terminal is a pad 135 | cc_11 B : %-50.0 %1.7 136 | NetDegree : 2 137 | new3 B 138 | # The above terminal is a pad 139 | cc_11 B : %-50.0 %2.9 140 | NetDegree : 3 141 | new2 B 142 | # The above terminal is a pad 143 | cc_11 B : %-50.0 %44.6 144 | cc_12 B : %-50.0 %-45.2 145 | NetDegree : 2 146 | new8 B 147 | # The above terminal is a pad 148 | cc_11 B : %-46.4 %-50.0 149 | NetDegree : 2 150 | new10 B 151 | # The above terminal is a pad 152 | cc_11 B : %24.2 %-50.0 153 | NetDegree : 2 154 | new11 B 155 | # The above terminal is a pad 156 | cc_11 B : %26.0 %-50.0 157 | NetDegree : 2 158 | new6 B 159 | # The above terminal is a pad 160 | cc_11 B : %-46.2 %-50.0 161 | NetDegree : 2 162 | new7 B 163 | # The above terminal is a pad 164 | cc_11 B : %-45.9 %-50.0 165 | NetDegree : 2 166 | cc_11 B : %-19.7 %-50.0 167 | cc_24 B : %-42.7 %50.0 168 | NetDegree : 3 169 | new12 B 170 | # The above terminal is a pad 171 | cc_11 B : %37.6 %-50.0 172 | cc_21 B : %-46.5 %-50.0 173 | NetDegree : 3 174 | new29 B 175 | # The above terminal is a pad 176 | cc_12 B : %-46.2 %50.0 177 | cc_13 B : %-46.2 %-50.0 178 | NetDegree : 3 179 | new30 B 180 | # The above terminal is a pad 181 | cc_12 B : %-46.4 %50.0 182 | cc_13 B : %-46.4 %-50.0 183 | NetDegree : 3 184 | new28 B 185 | # The above terminal is a pad 186 | cc_12 B : %-45.9 %50.0 187 | cc_13 B : %-45.9 %-50.0 188 | NetDegree : 3 189 | cc_12 B : %50.0 %39.7 190 | cc_21 B : %-44.7 %50.0 191 | cc_22 B : %-44.7 %-50.0 192 | NetDegree : 3 193 | cc_12 B : %50.0 %2.9 194 | cc_21 B : %-45.2 %50.0 195 | cc_22 B : %-45.2 %-50.0 196 | NetDegree : 3 197 | cc_12 B : %50.0 %-28.0 198 | cc_21 B : %-45.5 %50.0 199 | cc_22 B : %-45.5 %-50.0 200 | NetDegree : 6 201 | cc_12 B : %50.0 %49.5 202 | cc_13 B : %37.6 %-50.0 203 | cc_13 B : %37.4 %-50.0 204 | cc_22 B : %-46.0 %50.0 205 | cc_22 B : %-46.5 %50.0 206 | cc_23 B : %-46.5 %-50.0 207 | NetDegree : 2 208 | cc_12 B : %50.0 %-41.8 209 | cc_13 B : %-19.7 %-50.0 210 | NetDegree : 2 211 | new22 B 212 | # The above terminal is a pad 213 | cc_12 B : %-50.0 %1.7 214 | NetDegree : 2 215 | new21 B 216 | # The above terminal is a pad 217 | cc_12 B : %-50.0 %2.9 218 | NetDegree : 3 219 | new20 B 220 | # The above terminal is a pad 221 | cc_12 B : %-50.0 %44.6 222 | cc_13 B : %-50.0 %-45.2 223 | NetDegree : 3 224 | new40 B 225 | # The above terminal is a pad 226 | cc_13 B : %-46.2 %50.0 227 | cc_14 B : %-46.2 %-50.0 228 | NetDegree : 3 229 | new41 B 230 | # The above terminal is a pad 231 | cc_13 B : %-46.4 %50.0 232 | cc_14 B : %-46.4 %-50.0 233 | NetDegree : 3 234 | new39 B 235 | # The above terminal is a pad 236 | cc_13 B : %-45.9 %50.0 237 | cc_14 B : %-45.9 %-50.0 238 | NetDegree : 3 239 | cc_13 B : %50.0 %39.7 240 | cc_22 B : %-44.7 %50.0 241 | cc_23 B : %-44.7 %-50.0 242 | NetDegree : 3 243 | cc_13 B : %50.0 %2.9 244 | cc_22 B : %-45.2 %50.0 245 | cc_23 B : %-45.2 %-50.0 246 | NetDegree : 3 247 | cc_13 B : %50.0 %-28.0 248 | cc_22 B : %-45.5 %50.0 249 | cc_23 B : %-45.5 %-50.0 250 | NetDegree : 6 251 | cc_13 B : %50.0 %49.5 252 | cc_14 B : %37.6 %-50.0 253 | cc_14 B : %37.4 %-50.0 254 | cc_23 B : %-46.0 %50.0 255 | cc_23 B : %-46.5 %50.0 256 | cc_24 B : %-46.5 %-50.0 257 | NetDegree : 2 258 | cc_13 B : %50.0 %-41.8 259 | cc_14 B : %-19.7 %-50.0 260 | NetDegree : 2 261 | new33 B 262 | # The above terminal is a pad 263 | cc_13 B : %-50.0 %1.7 264 | NetDegree : 2 265 | new32 B 266 | # The above terminal is a pad 267 | cc_13 B : %-50.0 %2.9 268 | NetDegree : 3 269 | new31 B 270 | # The above terminal is a pad 271 | cc_13 B : %-50.0 %44.6 272 | cc_14 B : %-50.0 %-45.2 273 | NetDegree : 2 274 | new51 B 275 | # The above terminal is a pad 276 | cc_14 B : %-46.2 %50.0 277 | NetDegree : 2 278 | new52 B 279 | # The above terminal is a pad 280 | cc_14 B : %-46.4 %50.0 281 | NetDegree : 2 282 | new50 B 283 | # The above terminal is a pad 284 | cc_14 B : %-45.9 %50.0 285 | NetDegree : 3 286 | cc_14 B : %50.0 %39.7 287 | cc_23 B : %-44.7 %50.0 288 | cc_24 B : %-44.7 %-50.0 289 | NetDegree : 3 290 | cc_14 B : %50.0 %2.9 291 | cc_23 B : %-45.2 %50.0 292 | cc_24 B : %-45.2 %-50.0 293 | NetDegree : 3 294 | cc_14 B : %50.0 %-28.0 295 | cc_23 B : %-45.5 %50.0 296 | cc_24 B : %-45.5 %-50.0 297 | NetDegree : 2 298 | new46 B 299 | # The above terminal is a pad 300 | cc_14 B : %50.0 %-41.8 301 | NetDegree : 2 302 | new44 B 303 | # The above terminal is a pad 304 | cc_14 B : %-50.0 %1.7 305 | NetDegree : 2 306 | new43 B 307 | # The above terminal is a pad 308 | cc_14 B : %-50.0 %2.9 309 | NetDegree : 2 310 | new42 B 311 | # The above terminal is a pad 312 | cc_14 B : %-50.0 %44.6 313 | NetDegree : 2 314 | new54 B 315 | # The above terminal is a pad 316 | cc_21 B : %-42.7 %-50.0 317 | NetDegree : 2 318 | cc_21 B : %-42.7 %50.0 319 | cc_22 B : %-42.7 %-50.0 320 | NetDegree : 2 321 | new59 B 322 | # The above terminal is a pad 323 | cc_21 B : %50.0 %43.3 324 | NetDegree : 2 325 | new58 B 326 | # The above terminal is a pad 327 | cc_21 B : %50.0 %42.5 328 | NetDegree : 2 329 | new57 B 330 | # The above terminal is a pad 331 | cc_21 B : %50.0 %-3.7 332 | NetDegree : 2 333 | new56 B 334 | # The above terminal is a pad 335 | cc_21 B : %50.0 %-26.6 336 | NetDegree : 2 337 | new55 B 338 | # The above terminal is a pad 339 | cc_21 B : %50.0 %-41.9 340 | NetDegree : 2 341 | new60 B 342 | # The above terminal is a pad 343 | cc_21 B : %50.0 %49.5 344 | NetDegree : 5 345 | new0 B 346 | # The above terminal is a pad 347 | cc_21 B : %-50.0 %34.7 348 | cc_22 B : %-50.0 %34.7 349 | cc_23 B : %-50.0 %34.7 350 | cc_24 B : %-50.0 %34.7 351 | NetDegree : 2 352 | cc_22 B : %-42.7 %50.0 353 | cc_23 B : %-42.7 %-50.0 354 | NetDegree : 2 355 | new66 B 356 | # The above terminal is a pad 357 | cc_22 B : %50.0 %43.3 358 | NetDegree : 2 359 | new65 B 360 | # The above terminal is a pad 361 | cc_22 B : %50.0 %42.5 362 | NetDegree : 2 363 | new64 B 364 | # The above terminal is a pad 365 | cc_22 B : %50.0 %-3.7 366 | NetDegree : 2 367 | new63 B 368 | # The above terminal is a pad 369 | cc_22 B : %50.0 %-26.6 370 | NetDegree : 2 371 | new62 B 372 | # The above terminal is a pad 373 | cc_22 B : %50.0 %-41.9 374 | NetDegree : 2 375 | new67 B 376 | # The above terminal is a pad 377 | cc_22 B : %50.0 %49.5 378 | NetDegree : 2 379 | cc_23 B : %-42.7 %50.0 380 | cc_24 B : %-42.7 %-50.0 381 | NetDegree : 2 382 | new73 B 383 | # The above terminal is a pad 384 | cc_23 B : %50.0 %43.3 385 | NetDegree : 2 386 | new72 B 387 | # The above terminal is a pad 388 | cc_23 B : %50.0 %42.5 389 | NetDegree : 2 390 | new71 B 391 | # The above terminal is a pad 392 | cc_23 B : %50.0 %-3.7 393 | NetDegree : 2 394 | new70 B 395 | # The above terminal is a pad 396 | cc_23 B : %50.0 %-26.6 397 | NetDegree : 2 398 | new69 B 399 | # The above terminal is a pad 400 | cc_23 B : %50.0 %-41.9 401 | NetDegree : 2 402 | new74 B 403 | # The above terminal is a pad 404 | cc_23 B : %50.0 %49.5 405 | NetDegree : 2 406 | new83 B 407 | # The above terminal is a pad 408 | cc_24 B : %-44.7 %50.0 409 | NetDegree : 2 410 | new85 B 411 | # The above terminal is a pad 412 | cc_24 B : %-45.5 %50.0 413 | NetDegree : 2 414 | new84 B 415 | # The above terminal is a pad 416 | cc_24 B : %-45.2 %50.0 417 | NetDegree : 2 418 | new82 B 419 | # The above terminal is a pad 420 | cc_24 B : %-40.9 %50.0 421 | NetDegree : 2 422 | new86 B 423 | # The above terminal is a pad 424 | cc_24 B : %-46.0 %50.0 425 | NetDegree : 2 426 | new81 B 427 | # The above terminal is a pad 428 | cc_24 B : %-31.7 %50.0 429 | NetDegree : 2 430 | new79 B 431 | # The above terminal is a pad 432 | cc_24 B : %50.0 %43.3 433 | NetDegree : 2 434 | new78 B 435 | # The above terminal is a pad 436 | cc_24 B : %50.0 %42.5 437 | NetDegree : 2 438 | new77 B 439 | # The above terminal is a pad 440 | cc_24 B : %50.0 %-3.7 441 | NetDegree : 2 442 | new76 B 443 | # The above terminal is a pad 444 | cc_24 B : %50.0 %-26.6 445 | NetDegree : 2 446 | new75 B 447 | # The above terminal is a pad 448 | cc_24 B : %50.0 %-41.9 449 | NetDegree : 2 450 | new80 B 451 | # The above terminal is a pad 452 | cc_24 B : %50.0 %49.5 453 | NetDegree : 2 454 | # The pad/pins in this net are of type "PWR" 455 | VSS B 456 | clk B : %50.0 %46.8 457 | NetDegree : 2 458 | TestHS1 B 459 | # The above terminal is a pad 460 | clk B : %-13.3 %-50.0 461 | NetDegree : 3 462 | Phi B 463 | # The above terminal is a pad 464 | clk B : %45.8 %-50.0 465 | clk B : %-14.2 %-50.0 466 | -------------------------------------------------------------------------------- /CMakeFiles/feature_tests.cxx: -------------------------------------------------------------------------------- 1 | 2 | const char features[] = {"\n" 3 | "CXX_FEATURE:" 4 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L 5 | "1" 6 | #else 7 | "0" 8 | #endif 9 | "cxx_aggregate_default_initializers\n" 10 | "CXX_FEATURE:" 11 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 12 | "1" 13 | #else 14 | "0" 15 | #endif 16 | "cxx_alias_templates\n" 17 | "CXX_FEATURE:" 18 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 19 | "1" 20 | #else 21 | "0" 22 | #endif 23 | "cxx_alignas\n" 24 | "CXX_FEATURE:" 25 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 26 | "1" 27 | #else 28 | "0" 29 | #endif 30 | "cxx_alignof\n" 31 | "CXX_FEATURE:" 32 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 33 | "1" 34 | #else 35 | "0" 36 | #endif 37 | "cxx_attributes\n" 38 | "CXX_FEATURE:" 39 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 40 | "1" 41 | #else 42 | "0" 43 | #endif 44 | "cxx_attribute_deprecated\n" 45 | "CXX_FEATURE:" 46 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 47 | "1" 48 | #else 49 | "0" 50 | #endif 51 | "cxx_auto_type\n" 52 | "CXX_FEATURE:" 53 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 54 | "1" 55 | #else 56 | "0" 57 | #endif 58 | "cxx_binary_literals\n" 59 | "CXX_FEATURE:" 60 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 61 | "1" 62 | #else 63 | "0" 64 | #endif 65 | "cxx_constexpr\n" 66 | "CXX_FEATURE:" 67 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 68 | "1" 69 | #else 70 | "0" 71 | #endif 72 | "cxx_contextual_conversions\n" 73 | "CXX_FEATURE:" 74 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 75 | "1" 76 | #else 77 | "0" 78 | #endif 79 | "cxx_decltype\n" 80 | "CXX_FEATURE:" 81 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 82 | "1" 83 | #else 84 | "0" 85 | #endif 86 | "cxx_decltype_auto\n" 87 | "CXX_FEATURE:" 88 | #if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L 89 | "1" 90 | #else 91 | "0" 92 | #endif 93 | "cxx_decltype_incomplete_return_types\n" 94 | "CXX_FEATURE:" 95 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 96 | "1" 97 | #else 98 | "0" 99 | #endif 100 | "cxx_default_function_template_args\n" 101 | "CXX_FEATURE:" 102 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 103 | "1" 104 | #else 105 | "0" 106 | #endif 107 | "cxx_defaulted_functions\n" 108 | "CXX_FEATURE:" 109 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 110 | "1" 111 | #else 112 | "0" 113 | #endif 114 | "cxx_defaulted_move_initializers\n" 115 | "CXX_FEATURE:" 116 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 117 | "1" 118 | #else 119 | "0" 120 | #endif 121 | "cxx_delegating_constructors\n" 122 | "CXX_FEATURE:" 123 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 124 | "1" 125 | #else 126 | "0" 127 | #endif 128 | "cxx_deleted_functions\n" 129 | "CXX_FEATURE:" 130 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 131 | "1" 132 | #else 133 | "0" 134 | #endif 135 | "cxx_digit_separators\n" 136 | "CXX_FEATURE:" 137 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 138 | "1" 139 | #else 140 | "0" 141 | #endif 142 | "cxx_enum_forward_declarations\n" 143 | "CXX_FEATURE:" 144 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 145 | "1" 146 | #else 147 | "0" 148 | #endif 149 | "cxx_explicit_conversions\n" 150 | "CXX_FEATURE:" 151 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 152 | "1" 153 | #else 154 | "0" 155 | #endif 156 | "cxx_extended_friend_declarations\n" 157 | "CXX_FEATURE:" 158 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 159 | "1" 160 | #else 161 | "0" 162 | #endif 163 | "cxx_extern_templates\n" 164 | "CXX_FEATURE:" 165 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 166 | "1" 167 | #else 168 | "0" 169 | #endif 170 | "cxx_final\n" 171 | "CXX_FEATURE:" 172 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 173 | "1" 174 | #else 175 | "0" 176 | #endif 177 | "cxx_func_identifier\n" 178 | "CXX_FEATURE:" 179 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 180 | "1" 181 | #else 182 | "0" 183 | #endif 184 | "cxx_generalized_initializers\n" 185 | "CXX_FEATURE:" 186 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 187 | "1" 188 | #else 189 | "0" 190 | #endif 191 | "cxx_generic_lambdas\n" 192 | "CXX_FEATURE:" 193 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 194 | "1" 195 | #else 196 | "0" 197 | #endif 198 | "cxx_inheriting_constructors\n" 199 | "CXX_FEATURE:" 200 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 201 | "1" 202 | #else 203 | "0" 204 | #endif 205 | "cxx_inline_namespaces\n" 206 | "CXX_FEATURE:" 207 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 208 | "1" 209 | #else 210 | "0" 211 | #endif 212 | "cxx_lambdas\n" 213 | "CXX_FEATURE:" 214 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 215 | "1" 216 | #else 217 | "0" 218 | #endif 219 | "cxx_lambda_init_captures\n" 220 | "CXX_FEATURE:" 221 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 222 | "1" 223 | #else 224 | "0" 225 | #endif 226 | "cxx_local_type_template_args\n" 227 | "CXX_FEATURE:" 228 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 229 | "1" 230 | #else 231 | "0" 232 | #endif 233 | "cxx_long_long_type\n" 234 | "CXX_FEATURE:" 235 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 236 | "1" 237 | #else 238 | "0" 239 | #endif 240 | "cxx_noexcept\n" 241 | "CXX_FEATURE:" 242 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 243 | "1" 244 | #else 245 | "0" 246 | #endif 247 | "cxx_nonstatic_member_init\n" 248 | "CXX_FEATURE:" 249 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 250 | "1" 251 | #else 252 | "0" 253 | #endif 254 | "cxx_nullptr\n" 255 | "CXX_FEATURE:" 256 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 257 | "1" 258 | #else 259 | "0" 260 | #endif 261 | "cxx_override\n" 262 | "CXX_FEATURE:" 263 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 264 | "1" 265 | #else 266 | "0" 267 | #endif 268 | "cxx_range_for\n" 269 | "CXX_FEATURE:" 270 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 271 | "1" 272 | #else 273 | "0" 274 | #endif 275 | "cxx_raw_string_literals\n" 276 | "CXX_FEATURE:" 277 | #if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L 278 | "1" 279 | #else 280 | "0" 281 | #endif 282 | "cxx_reference_qualified_functions\n" 283 | "CXX_FEATURE:" 284 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L 285 | "1" 286 | #else 287 | "0" 288 | #endif 289 | "cxx_relaxed_constexpr\n" 290 | "CXX_FEATURE:" 291 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 292 | "1" 293 | #else 294 | "0" 295 | #endif 296 | "cxx_return_type_deduction\n" 297 | "CXX_FEATURE:" 298 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 299 | "1" 300 | #else 301 | "0" 302 | #endif 303 | "cxx_right_angle_brackets\n" 304 | "CXX_FEATURE:" 305 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 306 | "1" 307 | #else 308 | "0" 309 | #endif 310 | "cxx_rvalue_references\n" 311 | "CXX_FEATURE:" 312 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 313 | "1" 314 | #else 315 | "0" 316 | #endif 317 | "cxx_sizeof_member\n" 318 | "CXX_FEATURE:" 319 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 320 | "1" 321 | #else 322 | "0" 323 | #endif 324 | "cxx_static_assert\n" 325 | "CXX_FEATURE:" 326 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 327 | "1" 328 | #else 329 | "0" 330 | #endif 331 | "cxx_strong_enums\n" 332 | "CXX_FEATURE:" 333 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus 334 | "1" 335 | #else 336 | "0" 337 | #endif 338 | "cxx_template_template_parameters\n" 339 | "CXX_FEATURE:" 340 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 341 | "1" 342 | #else 343 | "0" 344 | #endif 345 | "cxx_thread_local\n" 346 | "CXX_FEATURE:" 347 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 348 | "1" 349 | #else 350 | "0" 351 | #endif 352 | "cxx_trailing_return_types\n" 353 | "CXX_FEATURE:" 354 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 355 | "1" 356 | #else 357 | "0" 358 | #endif 359 | "cxx_unicode_literals\n" 360 | "CXX_FEATURE:" 361 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 362 | "1" 363 | #else 364 | "0" 365 | #endif 366 | "cxx_uniform_initialization\n" 367 | "CXX_FEATURE:" 368 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 369 | "1" 370 | #else 371 | "0" 372 | #endif 373 | "cxx_unrestricted_unions\n" 374 | "CXX_FEATURE:" 375 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 376 | "1" 377 | #else 378 | "0" 379 | #endif 380 | "cxx_user_literals\n" 381 | "CXX_FEATURE:" 382 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L 383 | "1" 384 | #else 385 | "0" 386 | #endif 387 | "cxx_variable_templates\n" 388 | "CXX_FEATURE:" 389 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 390 | "1" 391 | #else 392 | "0" 393 | #endif 394 | "cxx_variadic_macros\n" 395 | "CXX_FEATURE:" 396 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 397 | "1" 398 | #else 399 | "0" 400 | #endif 401 | "cxx_variadic_templates\n" 402 | 403 | }; 404 | 405 | int main(int argc, char** argv) { (void)argv; return features[argc]; } 406 | -------------------------------------------------------------------------------- /floorplan_smt.py: -------------------------------------------------------------------------------- 1 | import cvxpy as cp 2 | from cvxpy import Variable, Constant, Minimize, Problem 3 | from z3 import * 4 | import numpy as np 5 | import placedb 6 | import pylab 7 | import math 8 | import joblib 9 | 10 | class Net(object): 11 | """ A box in a floor packing problem. """ 12 | ASPECT_RATIO = 1.0 13 | def __init__(self, moduleidxs, offsets, idx): 14 | self.moduleidxs = moduleidxs 15 | self.offsets = [] 16 | for offset in offsets: 17 | self.offsets.append([BitVecVal(str(d),32) for d in offset]) 18 | self.idx = idx 19 | self.U_x = BitVec("{}U_x".format(idx),32) 20 | self.L_x = BitVec("{}L_x".format(idx),32) 21 | self.U_y = BitVec("{}U_y".format(idx),32) 22 | self.L_y = BitVec("{}L_y".format(idx),32) 23 | 24 | class Box(object): 25 | """ A box in a floor packing problem. """ 26 | ASPECT_RATIO = 1.0 27 | def __init__(self, width, height, initialx=0.0, initialy=0.0, initialr=0, initialmx=0, initialmy=0, 28 | idx=0, pl=True, r=False, m=False, terminal=False, min_area=None): 29 | self.min_area = min_area 30 | self.w = BitVecVal(height,32) 31 | self.h = BitVecVal(width,32) 32 | self.terminal = terminal 33 | self.pl = pl 34 | self.r = r # rotated 35 | self.m = m 36 | self.mx = m # mirrored 37 | self.my = m # mirrored 38 | self.idx = idx 39 | 40 | if pl: 41 | self.x = BitVec("{}x".format(idx),32) 42 | self.y = BitVec("{}y".format(idx),32) 43 | else: 44 | self.x = BitVecVal(initialx,32) 45 | self.y = BitVecVal(initialy,32) 46 | if r: 47 | self.r = Bool("{}r".format(idx)) 48 | else: 49 | self.r = BoolVal(initialr) 50 | if m: 51 | self.mx = Bool("{}mx".format(idx)) 52 | self.my = Bool("{}my".format(idx)) 53 | else: 54 | self.mx=BoolVal(initialmx) 55 | self.my=BoolVal(initialmy) 56 | 57 | #self.xorrmx = # xor wigit 58 | self.rmx = And(self.r,self.mx) # rotated and mirrrored 59 | self.nrnmx = And(Not(self.r), Not(self.mx)) # not rotated and not mirrored 60 | self.nrmx = And(Not(self.r),self.mx) # not rotated and mirrored 61 | self.rnmx = And(self.r, Not(self.mx)) # rotated and not mirrored 62 | 63 | #self.xorrmy = # xor wigit 64 | self.rmy = And(self.r,self.my) # rotated and mirrrored 65 | self.nrnmy = And(Not(self.r), Not(self.my)) # not rotated and not mirrored 66 | self.nrmy = And(Not(self.r),self.my) # not rotated and mirrored 67 | self.rnmy = And(self.r, Not(self.my)) # rotated and not mirrored 68 | 69 | self.netidxs = [] 70 | 71 | @property 72 | def position(self): 73 | return (np.round(self.x,2), np.round(self.y,2)) 74 | 75 | @property 76 | def size(self): 77 | return (np.round(self.w.as_long(),2), np.round(self.h.as_long(),2)) 78 | 79 | @property 80 | def center(self): 81 | r = If(self.r,1,0) 82 | return self.x + r*self.h/2 + (1-r)*self.w/2, self.y + r*self.w/2 + (1-r)*self.h/2 83 | 84 | @property 85 | def left(self): 86 | return self.x 87 | 88 | @property 89 | def right(self): 90 | return self.x + self.w 91 | 92 | @property 93 | def bottom(self): 94 | return self.y 95 | 96 | @property 97 | def top(self): 98 | return self.y + self.h 99 | 100 | #@property 101 | #def rotation(self): 102 | # return self.r.value 103 | 104 | #@property 105 | #def mirror(self): 106 | # return self.m.value 107 | 108 | """ 109 | http://cc.ee.ntu.edu.tw/~ywchang/Courses/PD_Source/EDA_floorplanning.pdf 110 | """ 111 | class FloorPlan(object): 112 | MARGIN = 0.0 113 | ASPECT_RATIO = 5.0 114 | def __init__(self, boxes, nets, adj,norelpairs=None, horizontal_orderings=[], vertical_orderings=[], boundary_W=100, boundary_H=100, max_seconds=100, num_cores=1, name=""): 115 | 116 | self.boxes = boxes 117 | self.nets = nets 118 | self.num_nodes = len(boxes) 119 | self.name=name 120 | 121 | self.boundary_W = BitVecVal(boundary_W,32) 122 | self.boundary_H = BitVecVal(boundary_H,32) 123 | 124 | self.max_x = BitVec("max_x",32) 125 | self.max_y = BitVec("max_y",32) 126 | self.min_x = BitVec("min_x",32) 127 | self.min_y = BitVec("min_y",32) 128 | 129 | self.horizontal_orderings = [] 130 | self.vertical_orderings = [] 131 | 132 | self.max_seconds = max_seconds 133 | self.num_cores = num_cores 134 | 135 | # Compute minimum perimeter layout. 136 | def layout(self, solve=True): 137 | constraints = [] 138 | for box in self.boxes: 139 | #mx = If(box.mx,1,0) 140 | #my = If(box.my,1,0) 141 | #r = If(box.r,1,0) 142 | 143 | if (not box.pl): 144 | continue 145 | # Enforce that boxes lie in bounding box. 146 | constraints += [b.x >= 0 for b in self.boxes if b.pl] 147 | constraints += [b.y >= 0 for b in self.boxes if b.pl] 148 | constraints += [b.x+If(b.r,b.h,b.w) <= self.boundary_W for b in self.boxes if b.pl] 149 | constraints += [b.y+If(b.r,b.w,b.h) <= self.boundary_H for b in self.boxes if b.pl] 150 | """ 151 | constraints += [self.min_x <= b.x for b in self.boxes if b.pl] 152 | constraints += [self.min_y <= b.y for b in self.boxes if b.pl] 153 | 154 | constraints += [self.max_x >= b.x+If(b.r,b.h,b.w) for b in self.boxes if b.pl] 155 | constraints += [self.max_y >= b.y+If(b.r,b.w,b.h) for b in self.boxes if b.pl] 156 | 157 | constraints += [self.max_x <= self.boundary_W, 158 | self.max_y <=self.boundary_H] 159 | 160 | constraints += [self.min_x >= 0, 161 | self.min_y >=0] 162 | """ 163 | 164 | # wirelength minimization 165 | for net in self.nets: 166 | if len(net.moduleidxs) <= 1: continue 167 | 168 | mx = [] 169 | my = [] 170 | for pi, moduleidx in enumerate(net.moduleidxs): 171 | box = self.boxes[moduleidx] 172 | boxx, boxy = box.x, box.y 173 | boxw = box.w 174 | boxh = box.h 175 | poff = net.offsets[pi] 176 | 177 | # not rotated, not mirrored 178 | # rotated, mirrored 179 | # not rotated, mirrored 180 | # rotated, not mirrored 181 | pinposx = boxx + If(box.nrnmx, poff[0]*boxw, 0) + \ 182 | If(box.rmx, -1*poff[1]*boxh, 0) + \ 183 | If(box.nrmx, -1*poff[0]*boxw, 0) + \ 184 | If(box.rnmx, poff[1]*boxh, 0) 185 | 186 | 187 | pinposy = boxy + If(box.nrnmy, poff[1]*boxh, 0) + \ 188 | If(box.rmy, -1*poff[0]*boxw, 0) + \ 189 | If(box.nrmy, -1*poff[1]*boxh, 0) + \ 190 | If(box.rnmy, poff[0]*boxw, 0) 191 | 192 | mx.append(pinposx) 193 | my.append(pinposy) 194 | 195 | constraints += [net.L_x <= x for x in mx] 196 | constraints += [net.U_x >= x for x in mx] 197 | constraints += [net.L_y <= y for y in my] 198 | constraints += [net.U_y >= y for y in my] 199 | 200 | # nonoverlap constraints 201 | for i in range(len(self.boxes)): 202 | for j in range(i+1,len(self.boxes)): 203 | b_i = self.boxes[i] 204 | b_j = self.boxes[j] 205 | 206 | if (not b_i.pl) or (not b_j.pl): 207 | continue 208 | 209 | x_i, y_i = b_i.x, b_i.y 210 | w_i, h_i = b_i.w, b_i.h 211 | r_i = b_i.r 212 | 213 | x_j, y_j = b_j.x, b_j.y 214 | w_j, h_j = b_j.w, b_j.h 215 | r_j = b_j.r 216 | 217 | c1 = x_i + If(r_i,h_i,w_i) <= x_j 218 | c2 = y_i + If(r_i,w_i,h_i) <= y_j 219 | c3 = x_i - If(r_j,h_j,w_j) >= x_j 220 | c4 = y_i - If(r_j,w_j,h_j) >= y_j 221 | 222 | constraints += [ 223 | Or(c1,c2,c3,c4) 224 | ] 225 | 226 | # Enforce the relative ordering of the boxes. 227 | #for ordering in self.horizontal_orderings: 228 | # constraints += self._order(ordering, True) 229 | #for ordering in self.vertical_orderings: 230 | # constraints += self._order(ordering, False) 231 | 232 | hpwls = [(net.U_x - net.L_x) + (net.U_y - net.L_y) for net in self.nets] 233 | #set_option('timeout',1000*self.max_seconds) 234 | set_option('parallel.enable', True) 235 | opt = Optimize() 236 | opt.set("timeout", 1000*self.max_seconds) 237 | for constraint in constraints: 238 | opt.add(constraint) 239 | #opt.minimize(Sum(hpwls)) 240 | obj = opt.minimize(Sum(hpwls)) 241 | return opt, obj 242 | 243 | def verify_constraints(self, constraints): 244 | return np.array([c.violation() for c in constraints]) 245 | 246 | # plot the layout 247 | def show(self, model): 248 | pylab.figure(facecolor='w') 249 | max_x = 0.0 250 | max_y = 0.0 251 | min_x = 1e8 252 | min_y = 1e8 253 | for k in range(len(self.boxes)): 254 | box = self.boxes[k] 255 | if box.pl: 256 | x,y = (float(model[box.x].as_long()), float(model[box.y].as_long())) 257 | else: 258 | x,y = (np.round(box.x.as_long(),2), np.round(box.y.as_long(),2)) 259 | if model[box.r]: 260 | h,w = box.size 261 | else: 262 | w,h = box.size 263 | 264 | if x < min_x: min_x = x 265 | if y < min_y: min_y = y 266 | if x+w > max_x: max_x = x+w 267 | if y+w > max_y: max_y = y+w 268 | 269 | pylab.fill([x, x, x + w, x + w], 270 | [y, y+h, y+h, y]) 271 | pylab.text(x+.5*w, y+.5*h, "%d" %(k+1)) 272 | 273 | for k in range(len(self.nets)): 274 | net = self.nets[k] 275 | 276 | mx = [] 277 | my = [] 278 | for pi, moduleidx in enumerate(net.moduleidxs): 279 | box = self.boxes[moduleidx] 280 | #boxx,boxy = box.center 281 | if box.pl: 282 | boxx = float(model[box.x].as_long()) + bool(model[box.r])*box.h.as_long()/2 + (1-bool(model[box.r]))*box.w.as_long()/2 283 | boxy = float(model[box.y].as_long()) + bool(model[box.r])*box.w.as_long()/2 + (1-bool(model[box.r]))*box.h.as_long()/2 284 | else: 285 | assert False 286 | boxx = box.x.as_long() + bool(model[box.r])*box.h.as_long()/2 + (1-bool(model[box.r]))*box.w.as_long()/2 287 | boxy = box.y.as_long() + bool(model[box.r])*box.w.as_long()/2 + (1-bool(model[box.r]))*box.h.as_long()/2 288 | 289 | nrnmx = model.eval(box.nrnmx) 290 | rmx = model.eval(box.rmx) 291 | nrmx = model.eval(box.nrmx) 292 | rnmx = model.eval(box.rnmx) 293 | 294 | nrnmy = model.eval(box.nrnmy) 295 | rmy = model.eval(box.rmy) 296 | nrmy = model.eval(box.nrmy) 297 | rnmy = model.eval(box.rnmy) 298 | 299 | poff = net.offsets[pi] 300 | 301 | boxw = box.w.as_long() 302 | boxh = box.h.as_long() 303 | 304 | # not rotated, not mirrored 305 | # rotated, mirrored 306 | # not rotated, mirrored 307 | # rotated, not mirrored 308 | pinposx = boxx + bool(nrnmx)*(float(poff[0].as_long())*boxw) + \ 309 | bool(rmx)*(-1*float(poff[1].as_long())*boxh) + \ 310 | bool(nrmx)*(-1*float(poff[0].as_long())*boxw) + \ 311 | bool(rnmx)*(float(poff[1].as_long())*boxh) 312 | 313 | pinposy = boxy + bool(nrnmy)*(float(poff[1].as_long())*boxh) + \ 314 | bool(rmy)*(-1*float(poff[0].as_long())*boxw) + \ 315 | bool(nrmy)*(-1*float(poff[1].as_long())*boxh) + \ 316 | bool(rnmy)*(float(poff[0].as_long())*boxw) 317 | mx.append(pinposx) 318 | my.append(pinposy) 319 | 320 | pylab.plot(mx,my, color='gray',alpha=0.25) 321 | pylab.scatter(mx,my, color='black',alpha=0.8,s=2) 322 | 323 | pylab.axis([min_x, max_x, min_y, max_y]) 324 | pylab.xticks([]) 325 | pylab.yticks([]) 326 | 327 | pylab.show() -------------------------------------------------------------------------------- /input_pin_aware/mcnc/ami33.nets: -------------------------------------------------------------------------------- 1 | UCLA nets 1.0 2 | # Created : Thu Nov 09 18:23:24 PST 2000 3 | # User : huaizhi@olympus 4 | # Platform : SunOS 5.6 sparc 5 | 6 | NumNets : 123 7 | NumPins : 522 8 | 9 | NetDegree : 34 10 | # The pad/pins in this net are of type "PWR" 11 | GND B 12 | bk9d B : %-50.0 %33.3 13 | bk9c B : %8.8 %50.0 14 | bk9b B : %38.2 %50.0 15 | bk9a B : %26.9 %-50.0 16 | bk8b B : %0.0 %-50.0 17 | bk8a B : %0.0 %-50.0 18 | bk7 B : %50.0 %35.7 19 | bk6 B : %50.0 %16.6 20 | bk5c B : %50.0 %10.6 21 | bk5b B : %30.0 %-50.0 22 | bk5a B : %50.0 %0.0 23 | bk4 B : %-31.2 %50.0 24 | bk3 B : %-50.0 %38.8 25 | bk21 B : %38.8 %50.0 26 | bk20 B : %-50.0 %30.0 27 | bk2 B : %50.0 %-2.3 28 | bk19 B : %50.0 %8.8 29 | bk18 B : %7.6 %50.0 30 | bk17b B : %7.6 %50.0 31 | bk17a B : %-12.2 %50.0 32 | bk16 B : %50.0 %5.5 33 | bk15b B : %50.0 %12.5 34 | bk15a B : %50.0 %15.7 35 | bk14c B : %-6.5 %50.0 36 | bk14b B : %21.4 %-50.0 37 | bk14a B : %-14.2 %50.0 38 | bk13 B : %50.0 %-7.7 39 | bk12 B : %50.0 %-15.5 40 | bk11 B : %-9.9 %-50.0 41 | bk10c B : %8.8 %50.0 42 | bk10b B : %-50.0 %0.0 43 | bk10a B : %24.0 %-50.0 44 | bk1 B : %2.0 %-50.0 45 | NetDegree : 56 46 | bk9d B : %-44.1 %-50.0 47 | bk9c B : %50.0 %44.1 48 | bk9c B : %-50.0 %44.1 49 | bk9b B : %50.0 %44.1 50 | bk9b B : %-50.0 %44.1 51 | bk9a B : %50.0 %-44.1 52 | bk9a B : %-50.0 %-44.1 53 | bk7 B : %42.3 %50.0 54 | bk7 B : %42.3 %-50.0 55 | bk6 B : %13.1 %-50.0 56 | bk6 B : %-39.4 %50.0 57 | bk5c B : %39.4 %50.0 58 | bk5c B : %39.4 %-50.0 59 | bk5b B : %50.0 %34.2 60 | bk5b B : %-50.0 %34.2 61 | bk5a B : %-34.2 %-50.0 62 | bk4 B : %50.0 %-34.2 63 | bk4 B : %-50.0 %-34.2 64 | bk3 B : %39.4 %50.0 65 | bk3 B : %39.4 %-50.0 66 | bk21 B : %50.0 %30.0 67 | bk21 B : %-50.0 %30.0 68 | bk20 B : %-38.4 %50.0 69 | bk20 B : %-38.4 %-50.0 70 | bk2 B : %-34.2 %50.0 71 | bk2 B : %-34.2 %-50.0 72 | bk18 B : %50.0 %-39.6 73 | bk18 B : %-50.0 %-39.6 74 | bk17b B : %-50.0 %-39.6 75 | bk17a B : %50.0 %-38.4 76 | bk17a B : %-50.0 %-38.4 77 | bk16 B : %8.8 %50.0 78 | bk16 B : %8.8 %-50.0 79 | bk15b B : %-44.1 %50.0 80 | bk15b B : %-44.1 %-50.0 81 | bk15a B : %-44.1 %50.0 82 | bk15a B : %-44.1 %-50.0 83 | bk14c B : %50.0 %-44.1 84 | bk14c B : %-50.0 %-44.1 85 | bk14b B : %50.0 %44.1 86 | bk14b B : %-50.0 %44.1 87 | bk14a B : %50.0 %-38.2 88 | bk14a B : %-50.0 %-38.2 89 | bk13 B : %-30.0 %-50.0 90 | bk12 B : %-45.0 %50.0 91 | bk12 B : %-45.0 %-50.0 92 | bk11 B : %50.0 %44.1 93 | bk11 B : %-50.0 %44.1 94 | bk10c B : %44.1 %50.0 95 | bk10c B : %44.1 %-50.0 96 | bk10b B : %50.0 %44.9 97 | bk10b B : %-50.0 %44.9 98 | bk10a B : %50.0 %-44.1 99 | bk10a B : %-50.0 %-44.1 100 | bk1 B : %50.0 %-39.4 101 | bk1 B : %-50.0 %-39.4 102 | NetDegree : 47 103 | bk9d B : %-38.2 %-50.0 104 | bk9c B : %50.0 %38.2 105 | bk9c B : %-50.0 %38.2 106 | bk9b B : %50.0 %38.2 107 | bk9b B : %-50.0 %38.2 108 | bk9a B : %50.0 %-38.2 109 | bk9a B : %-50.0 %-38.2 110 | bk7 B : %46.1 %50.0 111 | bk7 B : %46.1 %-50.0 112 | bk6 B : %-44.7 %50.0 113 | bk6 B : %-44.7 %-50.0 114 | bk5c B : %44.7 %-50.0 115 | bk5b B : %50.0 %-39.4 116 | bk5b B : %-50.0 %-39.4 117 | bk5a B : %-39.4 %50.0 118 | bk5a B : %-39.4 %-50.0 119 | bk4 B : %50.0 %-39.4 120 | bk4 B : %-50.0 %-39.4 121 | bk3 B : %44.7 %50.0 122 | bk3 B : %44.7 %-50.0 123 | bk21 B : %50.0 %25.0 124 | bk21 B : %-50.0 %25.0 125 | bk20 B : %-42.3 %50.0 126 | bk20 B : %-42.3 %-50.0 127 | bk2 B : %-39.4 %50.0 128 | bk2 B : %-39.4 %-50.0 129 | bk18 B : %50.0 %-43.1 130 | bk18 B : %-50.0 %-43.1 131 | bk17b B : %50.0 %-43.1 132 | bk17b B : %-50.0 %-43.1 133 | bk17a B : %50.0 %-42.3 134 | bk17a B : %-50.0 %-42.3 135 | bk14b B : %50.0 %-38.2 136 | bk14b B : %-50.0 %-38.2 137 | bk13 B : %-25.0 %50.0 138 | bk13 B : %-25.0 %-50.0 139 | bk12 B : %-25.0 %50.0 140 | bk11 B : %50.0 %38.2 141 | bk11 B : %-50.0 %38.2 142 | bk10c B : %38.2 %-50.0 143 | bk10c B : %-20.5 %50.0 144 | bk10b B : %50.0 %40.0 145 | bk10b B : %-50.0 %40.0 146 | bk10a B : %50.0 %20.5 147 | bk10a B : %-50.0 %-38.2 148 | bk1 B : %50.0 %-44.7 149 | bk1 B : %-50.0 %-44.7 150 | NetDegree : 50 151 | bk9d B : %44.1 %-50.0 152 | bk9c B : %50.0 %-44.1 153 | bk9c B : %-50.0 %-44.1 154 | bk9b B : %50.0 %-44.1 155 | bk9b B : %-50.0 %-38.2 156 | bk9a B : %50.0 %38.2 157 | bk9a B : %-50.0 %38.2 158 | bk7 B : %-46.1 %-50.0 159 | bk6 B : %28.9 %50.0 160 | bk6 B : %28.9 %-50.0 161 | bk5c B : %-28.9 %-50.0 162 | bk5b B : %50.0 %-34.2 163 | bk5b B : %-50.0 %-34.2 164 | bk5a B : %34.2 %50.0 165 | bk5a B : %34.2 %-50.0 166 | bk4 B : %50.0 %34.2 167 | bk4 B : %-50.0 %34.2 168 | bk3 B : %-28.9 %50.0 169 | bk3 B : %-28.9 %-50.0 170 | bk21 B : %50.0 %-45.0 171 | bk21 B : %-50.0 %-45.0 172 | bk20 B : %42.3 %-50.0 173 | bk2 B : %34.2 %50.0 174 | bk2 B : %34.2 %-50.0 175 | bk18 B : %50.0 %32.7 176 | bk18 B : %-50.0 %32.7 177 | bk17b B : %-50.0 %32.7 178 | bk17a B : %50.0 %42.3 179 | bk17a B : %-50.0 %42.3 180 | bk15b B : %44.1 %50.0 181 | bk15b B : %44.1 %-50.0 182 | bk15a B : %38.2 %-50.0 183 | bk14c B : %50.0 %44.1 184 | bk14c B : %-50.0 %44.1 185 | bk14b B : %50.0 %-44.1 186 | bk14b B : %-50.0 %-44.1 187 | bk14a B : %50.0 %44.1 188 | bk14a B : %-50.0 %44.1 189 | bk13 B : %44.9 %-50.0 190 | bk12 B : %44.9 %50.0 191 | bk12 B : %44.9 %-50.0 192 | bk11 B : %50.0 %-44.1 193 | bk11 B : %-50.0 %-44.1 194 | bk10c B : %-38.2 %-50.0 195 | bk10b B : %50.0 %-45.0 196 | bk10b B : %-50.0 %-45.0 197 | bk10a B : %50.0 %38.2 198 | bk10a B : %-50.0 %38.2 199 | bk1 B : %50.0 %28.9 200 | bk1 B : %-50.0 %28.9 201 | NetDegree : 44 202 | bk9d B : %38.2 %-50.0 203 | bk9c B : %50.0 %-38.2 204 | bk9c B : %-50.0 %-38.2 205 | bk9b B : %50.0 %-38.2 206 | bk9b B : %-50.0 %-44.1 207 | bk9a B : %50.0 %44.1 208 | bk9a B : %-50.0 %44.1 209 | bk7 B : %-42.3 %-50.0 210 | bk6 B : %34.2 %-50.0 211 | bk5c B : %-34.2 %-50.0 212 | bk5b B : %50.0 %39.4 213 | bk5b B : %-50.0 %39.4 214 | bk5a B : %39.4 %-50.0 215 | bk4 B : %50.0 %39.4 216 | bk4 B : %-50.0 %39.4 217 | bk3 B : %-34.2 %50.0 218 | bk3 B : %-34.2 %-50.0 219 | bk21 B : %50.0 %-40.0 220 | bk21 B : %-50.0 %-40.0 221 | bk20 B : %46.1 %50.0 222 | bk20 B : %46.1 %-50.0 223 | bk2 B : %39.4 %50.0 224 | bk2 B : %39.4 %-50.0 225 | bk18 B : %50.0 %36.2 226 | bk18 B : %-50.0 %36.2 227 | bk17b B : %50.0 %36.2 228 | bk17b B : %-50.0 %36.2 229 | bk17a B : %50.0 %46.1 230 | bk17a B : %-50.0 %46.1 231 | bk14b B : %50.0 %38.2 232 | bk14b B : %-50.0 %38.2 233 | bk13 B : %40.0 %50.0 234 | bk13 B : %40.0 %-50.0 235 | bk12 B : %35.0 %50.0 236 | bk11 B : %50.0 %-38.2 237 | bk11 B : %-50.0 %-38.2 238 | bk10c B : %-44.1 %50.0 239 | bk10c B : %-44.1 %-50.0 240 | bk10b B : %50.0 %-40.0 241 | bk10b B : %-50.0 %-40.0 242 | bk10a B : %50.0 %44.1 243 | bk10a B : %-50.0 %44.1 244 | bk1 B : %50.0 %34.2 245 | bk1 B : %-50.0 %34.2 246 | NetDegree : 2 247 | bk9d B : %32.3 %50.0 248 | bk9c B : %-50.0 %-32.3 249 | NetDegree : 34 250 | # The pad/pins in this net are of type "PWR" 251 | POW B 252 | bk9d B : %50.0 %33.3 253 | bk9c B : %-46.0 %50.0 254 | bk9b B : %-38.2 %50.0 255 | bk9a B : %-30.7 %-50.0 256 | bk8b B : %50.0 %-3.7 257 | bk8a B : %-50.0 %0.0 258 | bk7 B : %-50.0 %35.7 259 | bk6 B : %50.0 %-45.5 260 | bk5c B : %-50.0 %10.6 261 | bk5b B : %-30.0 %-50.0 262 | bk5a B : %-50.0 %0.0 263 | bk4 B : %-31.2 %-50.0 264 | bk3 B : %-50.0 %-16.6 265 | bk21 B : %-38.8 %50.0 266 | bk20 B : %-50.0 %-40.0 267 | bk2 B : %-50.0 %-2.3 268 | bk19 B : %-50.0 %8.8 269 | bk18 B : %7.6 %-50.0 270 | bk17b B : %7.6 %-50.0 271 | bk17a B : %-12.2 %-50.0 272 | bk16 B : %-50.0 %5.5 273 | bk15b B : %50.0 %-39.5 274 | bk15a B : %50.0 %-23.6 275 | bk14c B : %-6.5 %-50.0 276 | bk14b B : %-38.0 %-50.0 277 | bk14a B : %-14.2 %-50.0 278 | bk13 B : %-50.0 %-7.7 279 | bk12 B : %-50.0 %-15.5 280 | bk11 B : %-42.0 %50.0 281 | bk10c B : %-50.0 %-7.1 282 | bk10b B : %-45.6 %-50.0 283 | bk10a B : %-31.4 %-50.0 284 | bk1 B : %-18.7 %-50.0 285 | NetDegree : 2 286 | bk9d B : %50.0 %-41.6 287 | bk10a B : %-50.0 %20.5 288 | NetDegree : 2 289 | bk9d B : %2.9 %50.0 290 | bk9b B : %50.0 %2.9 291 | NetDegree : 2 292 | P30 B 293 | # The above terminal is a pad 294 | bk9c B : %48.0 %50.0 295 | NetDegree : 2 296 | P27 B 297 | # The above terminal is a pad 298 | bk9c B : %-50.0 %14.7 299 | NetDegree : 9 300 | bk9c B : %50.0 %-8.8 301 | bk9c B : %28.4 %-50.0 302 | bk9b B : %-44.1 %-50.0 303 | bk20 B : %50.0 %24.0 304 | bk14b B : %-50.0 %-8.8 305 | bk12 B : %0.0 %-50.0 306 | bk11 B : %50.0 %-8.8 307 | bk10b B : %50.0 %0.0 308 | bk10b B : %-6.5 %-50.0 309 | NetDegree : 2 310 | bk9c B : %-50.0 %-14.7 311 | bk9a B : %-38.4 %50.0 312 | NetDegree : 2 313 | bk9c B : %-48.0 %-50.0 314 | bk9b B : %-2.9 %-50.0 315 | NetDegree : 2 316 | bk9b B : %-50.0 %-14.7 317 | bk10a B : %-50.0 %14.7 318 | NetDegree : 4 319 | bk9b B : %-50.0 %-8.8 320 | bk10b B : %28.2 %50.0 321 | bk10b B : %-19.5 %50.0 322 | bk10a B : %-50.0 %8.8 323 | NetDegree : 2 324 | bk9a B : %50.0 %-20.5 325 | bk10c B : %32.3 %-50.0 326 | NetDegree : 2 327 | bk8b B : %-50.0 %-18.5 328 | bk8a B : %50.0 %3.3 329 | NetDegree : 2 330 | bk8b B : %-50.0 %-16.6 331 | bk8a B : %50.0 %6.6 332 | NetDegree : 2 333 | bk8b B : %-50.0 %-14.8 334 | bk8a B : %50.0 %9.9 335 | NetDegree : 2 336 | bk8b B : %-50.0 %-12.9 337 | bk8a B : %50.0 %13.3 338 | NetDegree : 2 339 | bk8b B : %-50.0 %-11.1 340 | bk8a B : %50.0 %16.6 341 | NetDegree : 2 342 | bk8b B : %-50.0 %-9.2 343 | bk8a B : %50.0 %19.9 344 | NetDegree : 2 345 | bk8b B : %-50.0 %-7.4 346 | bk8a B : %50.0 %23.3 347 | NetDegree : 3 348 | bk8b B : %-38.8 %50.0 349 | bk19 B : %-16.6 %50.0 350 | bk16 B : %-32.3 %50.0 351 | NetDegree : 3 352 | bk8b B : %-44.4 %50.0 353 | bk19 B : %-33.3 %50.0 354 | bk16 B : %-38.2 %50.0 355 | NetDegree : 2 356 | bk8b B : %-22.2 %50.0 357 | bk19 B : %0.0 %50.0 358 | NetDegree : 2 359 | bk8b B : %-11.1 %50.0 360 | bk19 B : %33.3 %50.0 361 | NetDegree : 2 362 | bk8b B : %0.0 %50.0 363 | bk19 B : %16.6 %50.0 364 | NetDegree : 2 365 | bk8b B : %11.1 %50.0 366 | bk19 B : %41.6 %50.0 367 | NetDegree : 2 368 | bk8b B : %-50.0 %-31.4 369 | bk8a B : %50.0 %-20.0 370 | NetDegree : 2 371 | bk8b B : %-50.0 %-29.6 372 | bk8a B : %50.0 %-16.6 373 | NetDegree : 2 374 | bk8b B : %-50.0 %-27.7 375 | bk8a B : %50.0 %-13.3 376 | NetDegree : 2 377 | bk8b B : %-50.0 %-25.9 378 | bk8a B : %50.0 %-9.9 379 | NetDegree : 2 380 | bk8b B : %-50.0 %-24.0 381 | bk8a B : %50.0 %-6.6 382 | NetDegree : 2 383 | bk8b B : %-50.0 %-22.2 384 | bk8a B : %50.0 %-3.3 385 | NetDegree : 2 386 | bk8b B : %-50.0 %-20.3 387 | bk8a B : %50.0 %0.0 388 | NetDegree : 3 389 | bk8a B : %-3.3 %50.0 390 | bk20 B : %50.0 %-30.0 391 | bk16 B : %26.4 %-50.0 392 | NetDegree : 2 393 | bk8a B : %3.3 %50.0 394 | bk16 B : %38.2 %-50.0 395 | NetDegree : 2 396 | bk8a B : %-20.0 %50.0 397 | bk16 B : %-2.9 %-50.0 398 | NetDegree : 2 399 | bk8a B : %-16.6 %50.0 400 | bk16 B : %2.9 %-50.0 401 | NetDegree : 2 402 | bk8a B : %-43.3 %50.0 403 | bk16 B : %-44.1 %-50.0 404 | NetDegree : 2 405 | bk8a B : %-40.0 %50.0 406 | bk16 B : %-38.2 %-50.0 407 | NetDegree : 2 408 | bk8a B : %-36.6 %50.0 409 | bk16 B : %-32.3 %-50.0 410 | NetDegree : 3 411 | bk8a B : %-30.0 %50.0 412 | bk16 B : %-20.5 %-50.0 413 | bk15b B : %-20.5 %50.0 414 | NetDegree : 2 415 | VSS B 416 | # The above terminal is a pad 417 | bk7 B : %-30.7 %50.0 418 | NetDegree : 2 419 | VDD B 420 | # The above terminal is a pad 421 | bk7 B : %-50.0 %0.0 422 | NetDegree : 2 423 | P23 B 424 | # The above terminal is a pad 425 | bk7 B : %-23.0 %50.0 426 | NetDegree : 2 427 | P22 B 428 | # The above terminal is a pad 429 | bk7 B : %23.0 %50.0 430 | NetDegree : 2 431 | bk7 B : %15.3 %50.0 432 | bk17b B : %50.0 %1.7 433 | NetDegree : 2 434 | P21 B 435 | # The above terminal is a pad 436 | bk6 B : %-28.9 %50.0 437 | NetDegree : 2 438 | P20 B 439 | # The above terminal is a pad 440 | bk6 B : %-50.0 %25.5 441 | NetDegree : 2 442 | P19 B 443 | # The above terminal is a pad 444 | bk6 B : %-18.4 %50.0 445 | NetDegree : 2 446 | P18 B 447 | # The above terminal is a pad 448 | bk6 B : %-13.1 %50.0 449 | NetDegree : 2 450 | P17 B 451 | # The above terminal is a pad 452 | bk6 B : %-50.0 %-18.8 453 | NetDegree : 2 454 | bk6 B : %-13.1 %-50.0 455 | bk5c B : %13.1 %-50.0 456 | NetDegree : 2 457 | bk6 B : %-23.6 %-50.0 458 | bk5c B : %23.6 %-50.0 459 | NetDegree : 3 460 | bk6 B : %2.6 %-50.0 461 | bk5c B : %-2.6 %50.0 462 | bk5b B : %-18.0 %50.0 463 | NetDegree : 3 464 | bk6 B : %7.8 %-50.0 465 | bk5c B : %-23.6 %50.0 466 | bk5b B : %-9.9 %50.0 467 | NetDegree : 3 468 | bk6 B : %-7.8 %-50.0 469 | bk4 B : %-48.7 %50.0 470 | bk3 B : %2.6 %-50.0 471 | NetDegree : 2 472 | bk6 B : %50.0 %45.5 473 | bk4 B : %47.5 %50.0 474 | NetDegree : 2 475 | bk5c B : %34.2 %50.0 476 | bk3 B : %-7.8 %-50.0 477 | NetDegree : 2 478 | bk5b B : %50.0 %-18.4 479 | bk5a B : %-18.4 %50.0 480 | NetDegree : 2 481 | bk5b B : %50.0 %2.6 482 | bk5b B : %50.0 %-23.6 483 | NetDegree : 3 484 | bk5b B : %50.0 %7.8 485 | bk5a B : %7.8 %50.0 486 | bk2 B : %13.1 %-50.0 487 | NetDegree : 2 488 | bk5b B : %-14.0 %50.0 489 | bk1 B : %-16.6 %50.0 490 | NetDegree : 2 491 | bk5b B : %50.0 %18.4 492 | bk5a B : %18.4 %50.0 493 | NetDegree : 2 494 | bk5b B : %-50.0 %-13.1 495 | bk1 B : %-50.0 %-18.4 496 | NetDegree : 2 497 | bk5b B : %-30.0 %50.0 498 | bk1 B : %31.2 %50.0 499 | NetDegree : 2 500 | bk5a B : %23.6 %50.0 501 | bk2 B : %28.9 %-50.0 502 | NetDegree : 2 503 | bk5a B : %23.6 %-50.0 504 | bk4 B : %-50.0 %23.6 505 | NetDegree : 2 506 | P14 B 507 | # The above terminal is a pad 508 | bk4 B : %50.0 %-13.1 509 | NetDegree : 2 510 | P13 B 511 | # The above terminal is a pad 512 | bk4 B : %50.0 %-23.6 513 | NetDegree : 2 514 | P12 B 515 | # The above terminal is a pad 516 | bk4 B : %50.0 %-28.9 517 | NetDegree : 2 518 | bk4 B : %-50.0 %-23.6 519 | bk17b B : %50.0 %12.0 520 | NetDegree : 2 521 | bk4 B : %-50.0 %-13.1 522 | bk3 B : %-50.0 %-47.7 523 | NetDegree : 2 524 | P16 B 525 | # The above terminal is a pad 526 | bk3 B : %50.0 %-43.3 527 | NetDegree : 2 528 | P15 B 529 | # The above terminal is a pad 530 | bk3 B : %50.0 %-47.7 531 | NetDegree : 2 532 | bk3 B : %-23.6 %-50.0 533 | bk15a B : %-20.5 %-50.0 534 | NetDegree : 2 535 | P3 B 536 | # The above terminal is a pad 537 | bk21 B : %-27.7 %-50.0 538 | NetDegree : 2 539 | P24 B 540 | # The above terminal is a pad 541 | bk20 B : %15.3 %-50.0 542 | NetDegree : 3 543 | bk20 B : %30.7 %-50.0 544 | bk18 B : %50.0 %22.4 545 | bk17b B : %-50.0 %22.4 546 | NetDegree : 2 547 | bk20 B : %-3.8 %-50.0 548 | bk17a B : %-50.0 %-3.8 549 | NetDegree : 2 550 | bk20 B : %-15.3 %-50.0 551 | bk17a B : %-50.0 %-15.3 552 | NetDegree : 2 553 | bk20 B : %-7.6 %-50.0 554 | bk17a B : %-50.0 %-7.6 555 | NetDegree : 3 556 | bk20 B : %26.9 %-50.0 557 | bk18 B : %-50.0 %18.9 558 | bk17a B : %-50.0 %26.9 559 | NetDegree : 2 560 | bk20 B : %3.8 %-50.0 561 | bk17a B : %-50.0 %3.8 562 | NetDegree : 4 563 | bk20 B : %19.2 %-50.0 564 | bk18 B : %-50.0 %12.0 565 | bk17b B : %-50.0 %12.0 566 | bk17a B : %-50.0 %19.2 567 | NetDegree : 2 568 | P28 B 569 | # The above terminal is a pad 570 | bk2 B : %-2.6 %-50.0 571 | NetDegree : 2 572 | P35 B 573 | # The above terminal is a pad 574 | bk19 B : %8.3 %-50.0 575 | NetDegree : 2 576 | P34 B 577 | # The above terminal is a pad 578 | bk19 B : %-8.3 %-50.0 579 | NetDegree : 2 580 | P33 B 581 | # The above terminal is a pad 582 | bk19 B : %-25.0 %-50.0 583 | NetDegree : 2 584 | P32 B 585 | # The above terminal is a pad 586 | bk19 B : %-41.6 %-50.0 587 | NetDegree : 2 588 | P37 B 589 | # The above terminal is a pad 590 | bk18 B : %50.0 %-32.7 591 | NetDegree : 2 592 | P36 B 593 | # The above terminal is a pad 594 | bk18 B : %50.0 %-36.2 595 | NetDegree : 2 596 | bk18 B : %-50.0 %-1.7 597 | bk17a B : %50.0 %3.8 598 | NetDegree : 2 599 | bk18 B : %-50.0 %-32.7 600 | bk17a B : %50.0 %-30.7 601 | NetDegree : 2 602 | bk17b B : %50.0 %8.6 603 | bk16 B : %14.7 %-50.0 604 | NetDegree : 2 605 | bk16 B : %-26.4 %-50.0 606 | bk14c B : %-50.0 %-14.7 607 | NetDegree : 2 608 | bk16 B : %44.1 %-50.0 609 | bk14b B : %45.2 %50.0 610 | NetDegree : 2 611 | bk16 B : %32.3 %-50.0 612 | bk14b B : %33.3 %50.0 613 | NetDegree : 2 614 | P9 B 615 | # The above terminal is a pad 616 | bk15b B : %-50.0 %-8.3 617 | NetDegree : 2 618 | P8 B 619 | # The above terminal is a pad 620 | bk15b B : %-50.0 %-41.6 621 | NetDegree : 2 622 | P25 B 623 | # The above terminal is a pad 624 | bk15b B : %-38.2 %50.0 625 | NetDegree : 2 626 | P11 B 627 | # The above terminal is a pad 628 | bk15b B : %-50.0 %47.9 629 | NetDegree : 2 630 | P10 B 631 | # The above terminal is a pad 632 | bk15b B : %-50.0 %14.5 633 | NetDegree : 2 634 | bk15b B : %-20.5 %-50.0 635 | bk15a B : %-20.5 %50.0 636 | NetDegree : 2 637 | bk15b B : %-26.4 %50.0 638 | bk14c B : %50.0 %-14.7 639 | NetDegree : 2 640 | P7 B 641 | # The above terminal is a pad 642 | bk15a B : %-50.0 %44.7 643 | NetDegree : 2 644 | P6 B 645 | # The above terminal is a pad 646 | bk15a B : %-50.0 %13.1 647 | NetDegree : 2 648 | P5 B 649 | # The above terminal is a pad 650 | bk15a B : %-32.3 %-50.0 651 | NetDegree : 2 652 | bk15a B : %-32.3 %50.0 653 | bk14a B : %-50.0 %38.2 654 | NetDegree : 2 655 | bk14c B : %50.0 %8.8 656 | bk14b B : %-23.8 %50.0 657 | NetDegree : 2 658 | bk14c B : %50.0 %2.9 659 | bk14b B : %-14.2 %50.0 660 | NetDegree : 2 661 | bk14b B : %-33.3 %50.0 662 | bk14a B : %50.0 %-26.4 663 | NetDegree : 2 664 | P4 B 665 | # The above terminal is a pad 666 | bk13 B : %30.0 %50.0 667 | NetDegree : 2 668 | P26 B 669 | # The above terminal is a pad 670 | bk13 B : %50.0 %38.7 671 | NetDegree : 2 672 | P2 B 673 | # The above terminal is a pad 674 | bk13 B : %15.0 %50.0 675 | NetDegree : 2 676 | P31 B 677 | # The above terminal is a pad 678 | bk11 B : %42.0 %50.0 679 | NetDegree : 2 680 | bk10c B : %26.4 %-50.0 681 | bk10b B : %-28.2 %50.0 682 | NetDegree : 2 683 | bk10c B : %14.7 %-50.0 684 | bk10a B : %-50.0 %-14.7 685 | NetDegree : 2 686 | bk10b B : %45.6 %50.0 687 | bk10a B : %-50.0 %-20.5 688 | NetDegree : 2 689 | P29 B 690 | # The above terminal is a pad 691 | bk10a B : %-46.2 %50.0 692 | -------------------------------------------------------------------------------- /CMakeCache.txt: -------------------------------------------------------------------------------- 1 | # This is the CMakeCache file. 2 | # For build in directory: /home/orange3xchicken/milp/lipo-b--annealing 3 | # It was generated by CMake: /usr/bin/cmake 4 | # You can edit this file to change values found and used by cmake. 5 | # If you do not want to change any of the values, simply exit the editor. 6 | # If you do want to change a value, simply edit, save, and exit the editor. 7 | # The syntax for the file is as follows: 8 | # KEY:TYPE=VALUE 9 | # KEY is the name of a variable in the cache. 10 | # TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. 11 | # VALUE is the current value for the KEY. 12 | 13 | ######################## 14 | # EXTERNAL cache entries 15 | ######################## 16 | 17 | //The directory containing a CMake configuration file for Boost. 18 | Boost_DIR:PATH=Boost_DIR-NOTFOUND 19 | 20 | //Boost filesystem library (debug) 21 | Boost_FILESYSTEM_LIBRARY_DEBUG:FILEPATH=/usr/local/lib/libboost_filesystem.so 22 | 23 | //Boost filesystem library (release) 24 | Boost_FILESYSTEM_LIBRARY_RELEASE:FILEPATH=/usr/local/lib/libboost_filesystem.so 25 | 26 | //Path to a file. 27 | Boost_INCLUDE_DIR:PATH=/usr/local/include 28 | 29 | //Boost iostreams library (debug) 30 | Boost_IOSTREAMS_LIBRARY_DEBUG:FILEPATH=/usr/local/lib/libboost_iostreams.so 31 | 32 | //Boost iostreams library (release) 33 | Boost_IOSTREAMS_LIBRARY_RELEASE:FILEPATH=/usr/local/lib/libboost_iostreams.so 34 | 35 | //Boost library directory DEBUG 36 | Boost_LIBRARY_DIR_DEBUG:PATH=/usr/local/lib 37 | 38 | //Boost library directory RELEASE 39 | Boost_LIBRARY_DIR_RELEASE:PATH=/usr/local/lib 40 | 41 | //Boost regex library (debug) 42 | Boost_REGEX_LIBRARY_DEBUG:FILEPATH=/usr/local/lib/libboost_regex.so 43 | 44 | //Boost regex library (release) 45 | Boost_REGEX_LIBRARY_RELEASE:FILEPATH=/usr/local/lib/libboost_regex.so 46 | 47 | //Boost system library (debug) 48 | Boost_SYSTEM_LIBRARY_DEBUG:FILEPATH=/usr/local/lib/libboost_system.so 49 | 50 | //Boost system library (release) 51 | Boost_SYSTEM_LIBRARY_RELEASE:FILEPATH=/usr/local/lib/libboost_system.so 52 | 53 | //Path to a program. 54 | CMAKE_AR:FILEPATH=/usr/bin/ar 55 | 56 | //Choose the type of build, options are: None Debug Release RelWithDebInfo 57 | // MinSizeRel ... 58 | CMAKE_BUILD_TYPE:STRING= 59 | 60 | //Enable/Disable color output during build. 61 | CMAKE_COLOR_MAKEFILE:BOOL=ON 62 | 63 | //CXX compiler 64 | CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ 65 | 66 | //A wrapper around 'ar' adding the appropriate '--plugin' option 67 | // for the GCC compiler 68 | CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-8 69 | 70 | //A wrapper around 'ranlib' adding the appropriate '--plugin' option 71 | // for the GCC compiler 72 | CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-8 73 | 74 | //Flags used by the CXX compiler during all build types. 75 | CMAKE_CXX_FLAGS:STRING= 76 | 77 | //Flags used by the CXX compiler during DEBUG builds. 78 | CMAKE_CXX_FLAGS_DEBUG:STRING=-g 79 | 80 | //Flags used by the CXX compiler during MINSIZEREL builds. 81 | CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG 82 | 83 | //Flags used by the CXX compiler during RELEASE builds. 84 | CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG 85 | 86 | //Flags used by the CXX compiler during RELWITHDEBINFO builds. 87 | CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG 88 | 89 | //C compiler 90 | CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc 91 | 92 | //A wrapper around 'ar' adding the appropriate '--plugin' option 93 | // for the GCC compiler 94 | CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-8 95 | 96 | //A wrapper around 'ranlib' adding the appropriate '--plugin' option 97 | // for the GCC compiler 98 | CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-8 99 | 100 | //Flags used by the C compiler during all build types. 101 | CMAKE_C_FLAGS:STRING= 102 | 103 | //Flags used by the C compiler during DEBUG builds. 104 | CMAKE_C_FLAGS_DEBUG:STRING=-g 105 | 106 | //Flags used by the C compiler during MINSIZEREL builds. 107 | CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG 108 | 109 | //Flags used by the C compiler during RELEASE builds. 110 | CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG 111 | 112 | //Flags used by the C compiler during RELWITHDEBINFO builds. 113 | CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG 114 | 115 | //Flags used by the linker during all build types. 116 | CMAKE_EXE_LINKER_FLAGS:STRING= 117 | 118 | //Flags used by the linker during DEBUG builds. 119 | CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= 120 | 121 | //Flags used by the linker during MINSIZEREL builds. 122 | CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= 123 | 124 | //Flags used by the linker during RELEASE builds. 125 | CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= 126 | 127 | //Flags used by the linker during RELWITHDEBINFO builds. 128 | CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= 129 | 130 | //Enable/Disable output of compile commands during generation. 131 | CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF 132 | 133 | //Install path prefix, prepended onto install directories. 134 | CMAKE_INSTALL_PREFIX:PATH=/usr/local 135 | 136 | //Path to a program. 137 | CMAKE_LINKER:FILEPATH=/usr/bin/ld 138 | 139 | //Path to a program. 140 | CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make 141 | 142 | //Flags used by the linker during the creation of modules during 143 | // all build types. 144 | CMAKE_MODULE_LINKER_FLAGS:STRING= 145 | 146 | //Flags used by the linker during the creation of modules during 147 | // DEBUG builds. 148 | CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= 149 | 150 | //Flags used by the linker during the creation of modules during 151 | // MINSIZEREL builds. 152 | CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= 153 | 154 | //Flags used by the linker during the creation of modules during 155 | // RELEASE builds. 156 | CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= 157 | 158 | //Flags used by the linker during the creation of modules during 159 | // RELWITHDEBINFO builds. 160 | CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= 161 | 162 | //Path to a program. 163 | CMAKE_NM:FILEPATH=/usr/bin/nm 164 | 165 | //Path to a program. 166 | CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy 167 | 168 | //Path to a program. 169 | CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump 170 | 171 | //Value Computed by CMake 172 | CMAKE_PROJECT_DESCRIPTION:STATIC= 173 | 174 | //Value Computed by CMake 175 | CMAKE_PROJECT_HOMEPAGE_URL:STATIC= 176 | 177 | //Value Computed by CMake 178 | CMAKE_PROJECT_NAME:STATIC=FOFP 179 | 180 | //Path to a program. 181 | CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib 182 | 183 | //Flags used by the linker during the creation of shared libraries 184 | // during all build types. 185 | CMAKE_SHARED_LINKER_FLAGS:STRING= 186 | 187 | //Flags used by the linker during the creation of shared libraries 188 | // during DEBUG builds. 189 | CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= 190 | 191 | //Flags used by the linker during the creation of shared libraries 192 | // during MINSIZEREL builds. 193 | CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= 194 | 195 | //Flags used by the linker during the creation of shared libraries 196 | // during RELEASE builds. 197 | CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= 198 | 199 | //Flags used by the linker during the creation of shared libraries 200 | // during RELWITHDEBINFO builds. 201 | CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= 202 | 203 | //If set, runtime paths are not added when installing shared libraries, 204 | // but are added when building. 205 | CMAKE_SKIP_INSTALL_RPATH:BOOL=NO 206 | 207 | //If set, runtime paths are not added when using shared libraries. 208 | CMAKE_SKIP_RPATH:BOOL=NO 209 | 210 | //Flags used by the linker during the creation of static libraries 211 | // during all build types. 212 | CMAKE_STATIC_LINKER_FLAGS:STRING= 213 | 214 | //Flags used by the linker during the creation of static libraries 215 | // during DEBUG builds. 216 | CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= 217 | 218 | //Flags used by the linker during the creation of static libraries 219 | // during MINSIZEREL builds. 220 | CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= 221 | 222 | //Flags used by the linker during the creation of static libraries 223 | // during RELEASE builds. 224 | CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= 225 | 226 | //Flags used by the linker during the creation of static libraries 227 | // during RELWITHDEBINFO builds. 228 | CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= 229 | 230 | //Path to a program. 231 | CMAKE_STRIP:FILEPATH=/usr/bin/strip 232 | 233 | //If this value is on, makefiles will be generated without the 234 | // .SILENT directive, and all commands will be echoed to the console 235 | // during the make. This is useful for debugging only. With Visual 236 | // Studio IDE projects all commands are done without /nologo. 237 | CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE 238 | 239 | //Value Computed by CMake 240 | FOFP_BINARY_DIR:STATIC=/home/orange3xchicken/milp/lipo-b--annealing 241 | 242 | //Value Computed by CMake 243 | FOFP_SOURCE_DIR:STATIC=/home/orange3xchicken/milp/lipo-b--annealing 244 | 245 | 246 | ######################## 247 | # INTERNAL cache entries 248 | ######################## 249 | 250 | //ADVANCED property for variable: Boost_DIR 251 | Boost_DIR-ADVANCED:INTERNAL=1 252 | //ADVANCED property for variable: Boost_FILESYSTEM_LIBRARY_DEBUG 253 | Boost_FILESYSTEM_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 254 | //ADVANCED property for variable: Boost_FILESYSTEM_LIBRARY_RELEASE 255 | Boost_FILESYSTEM_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 256 | //ADVANCED property for variable: Boost_INCLUDE_DIR 257 | Boost_INCLUDE_DIR-ADVANCED:INTERNAL=1 258 | //ADVANCED property for variable: Boost_IOSTREAMS_LIBRARY_DEBUG 259 | Boost_IOSTREAMS_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 260 | //ADVANCED property for variable: Boost_IOSTREAMS_LIBRARY_RELEASE 261 | Boost_IOSTREAMS_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 262 | //ADVANCED property for variable: Boost_LIBRARY_DIR_DEBUG 263 | Boost_LIBRARY_DIR_DEBUG-ADVANCED:INTERNAL=1 264 | //ADVANCED property for variable: Boost_LIBRARY_DIR_RELEASE 265 | Boost_LIBRARY_DIR_RELEASE-ADVANCED:INTERNAL=1 266 | //ADVANCED property for variable: Boost_REGEX_LIBRARY_DEBUG 267 | Boost_REGEX_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 268 | //ADVANCED property for variable: Boost_REGEX_LIBRARY_RELEASE 269 | Boost_REGEX_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 270 | //ADVANCED property for variable: Boost_SYSTEM_LIBRARY_DEBUG 271 | Boost_SYSTEM_LIBRARY_DEBUG-ADVANCED:INTERNAL=1 272 | //ADVANCED property for variable: Boost_SYSTEM_LIBRARY_RELEASE 273 | Boost_SYSTEM_LIBRARY_RELEASE-ADVANCED:INTERNAL=1 274 | //ADVANCED property for variable: CMAKE_AR 275 | CMAKE_AR-ADVANCED:INTERNAL=1 276 | //This is the directory where this CMakeCache.txt was created 277 | CMAKE_CACHEFILE_DIR:INTERNAL=/home/orange3xchicken/milp/lipo-b--annealing 278 | //Major version of cmake used to create the current loaded cache 279 | CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 280 | //Minor version of cmake used to create the current loaded cache 281 | CMAKE_CACHE_MINOR_VERSION:INTERNAL=13 282 | //Patch version of cmake used to create the current loaded cache 283 | CMAKE_CACHE_PATCH_VERSION:INTERNAL=4 284 | //ADVANCED property for variable: CMAKE_COLOR_MAKEFILE 285 | CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 286 | //Path to CMake executable. 287 | CMAKE_COMMAND:INTERNAL=/usr/bin/cmake 288 | //Path to cpack program executable. 289 | CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack 290 | //Path to ctest program executable. 291 | CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest 292 | //ADVANCED property for variable: CMAKE_CXX_COMPILER 293 | CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 294 | //ADVANCED property for variable: CMAKE_CXX_COMPILER_AR 295 | CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 296 | //ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB 297 | CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 298 | //ADVANCED property for variable: CMAKE_CXX_FLAGS 299 | CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 300 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG 301 | CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 302 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL 303 | CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 304 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE 305 | CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 306 | //ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO 307 | CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 308 | //ADVANCED property for variable: CMAKE_C_COMPILER 309 | CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 310 | //ADVANCED property for variable: CMAKE_C_COMPILER_AR 311 | CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 312 | //ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB 313 | CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 314 | //ADVANCED property for variable: CMAKE_C_FLAGS 315 | CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 316 | //ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG 317 | CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 318 | //ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL 319 | CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 320 | //ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE 321 | CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 322 | //ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO 323 | CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 324 | //Executable file format 325 | CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF 326 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS 327 | CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 328 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG 329 | CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 330 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL 331 | CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 332 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE 333 | CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 334 | //ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO 335 | CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 336 | //ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS 337 | CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 338 | //Name of external makefile project generator. 339 | CMAKE_EXTRA_GENERATOR:INTERNAL= 340 | //Name of generator. 341 | CMAKE_GENERATOR:INTERNAL=Unix Makefiles 342 | //Generator instance identifier. 343 | CMAKE_GENERATOR_INSTANCE:INTERNAL= 344 | //Name of generator platform. 345 | CMAKE_GENERATOR_PLATFORM:INTERNAL= 346 | //Name of generator toolset. 347 | CMAKE_GENERATOR_TOOLSET:INTERNAL= 348 | //Source directory with the top level CMakeLists.txt file for this 349 | // project 350 | CMAKE_HOME_DIRECTORY:INTERNAL=/home/orange3xchicken/milp/lipo-b--annealing 351 | //Install .so files without execute permission. 352 | CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 353 | //ADVANCED property for variable: CMAKE_LINKER 354 | CMAKE_LINKER-ADVANCED:INTERNAL=1 355 | //ADVANCED property for variable: CMAKE_MAKE_PROGRAM 356 | CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 357 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS 358 | CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 359 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG 360 | CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 361 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL 362 | CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 363 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE 364 | CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 365 | //ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO 366 | CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 367 | //ADVANCED property for variable: CMAKE_NM 368 | CMAKE_NM-ADVANCED:INTERNAL=1 369 | //number of local generators 370 | CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 371 | //ADVANCED property for variable: CMAKE_OBJCOPY 372 | CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 373 | //ADVANCED property for variable: CMAKE_OBJDUMP 374 | CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 375 | //Platform information initialized 376 | CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 377 | //ADVANCED property for variable: CMAKE_RANLIB 378 | CMAKE_RANLIB-ADVANCED:INTERNAL=1 379 | //Path to CMake installation. 380 | CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.13 381 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS 382 | CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 383 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG 384 | CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 385 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL 386 | CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 387 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE 388 | CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 389 | //ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO 390 | CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 391 | //ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH 392 | CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 393 | //ADVANCED property for variable: CMAKE_SKIP_RPATH 394 | CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 395 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS 396 | CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 397 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG 398 | CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 399 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL 400 | CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 401 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE 402 | CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 403 | //ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO 404 | CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 405 | //ADVANCED property for variable: CMAKE_STRIP 406 | CMAKE_STRIP-ADVANCED:INTERNAL=1 407 | //uname command 408 | CMAKE_UNAME:INTERNAL=/usr/bin/uname 409 | //ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE 410 | CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 411 | //Components requested for this build tree. 412 | _Boost_COMPONENTS_SEARCHED:INTERNAL=filesystem;iostreams;regex;system 413 | //Last used Boost_INCLUDE_DIR value. 414 | _Boost_INCLUDE_DIR_LAST:INTERNAL=/usr/local/include 415 | //Last used Boost_LIBRARY_DIR_DEBUG value. 416 | _Boost_LIBRARY_DIR_DEBUG_LAST:INTERNAL=/usr/local/lib 417 | //Last used Boost_LIBRARY_DIR_RELEASE value. 418 | _Boost_LIBRARY_DIR_RELEASE_LAST:INTERNAL=/usr/local/lib 419 | //Last used Boost_NAMESPACE value. 420 | _Boost_NAMESPACE_LAST:INTERNAL=boost 421 | //Last used Boost_USE_MULTITHREADED value. 422 | _Boost_USE_MULTITHREADED_LAST:INTERNAL=TRUE 423 | 424 | -------------------------------------------------------------------------------- /src/floor_plan.hpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | 27 | using namespace std; 28 | 29 | typedef unsigned char uchar; 30 | typedef unsigned short ushort; 31 | typedef unsigned int uint; 32 | 33 | extern const clock_t start_time; 34 | 35 | template 36 | class FLOOR_PLAN { 37 | public: 38 | struct BLOCK; 39 | struct NET; 40 | struct NODE; 41 | class TREE; 42 | FLOOR_PLAN(ifstream& fnets, ifstream& fblcks, char** argv, 43 | int Nnets, int Nblcks, int Ntrmns, int W, int H) 44 | : _out_rpt(argv[4]), _Nnets(Nnets), _Nblcks(Nblcks), _Ntrmns(Ntrmns), 45 | _tree(Nblcks), _W(W), _H(H), _alpha(stof(argv[1])), _has_init(false), 46 | _rot_prob(0.3), _del_and_ins_prob(0.5) { 47 | //reading input.block 48 | string ign; 49 | _blcks.resize(1, {0, 0, 0, "NULL"}); 50 | read_in(_blcks, fblcks, _blcks_id, _Nblcks, 4); 51 | read_in(_blcks, fblcks, _blcks_id, _Ntrmns, 2); 52 | fblcks.close(); 53 | int cnt = 0; 54 | for(ID i = 1; i<=Nblcks; ++i) { 55 | int min_wh = min(_W, _H); 56 | if(max(_blcks[i]._w, _blcks[i]._h) > min_wh) { 57 | ++cnt; 58 | if(_blcks[i]._w > _W || _blcks[i]._h > _H) { 59 | _blcks[i]._rot = true; 60 | swap(_blcks[i]._w, _blcks[i]._h); 61 | _tree.set_rot(i); 62 | } 63 | } else _rotable.push_back(i); 64 | } 65 | _rot_prob *= (1-float(cnt)/Nblcks); 66 | //reading input.nets 67 | _nets.reserve(_Nnets); 68 | for(int i = 1; i<=_Nnets; ++i) { 69 | int deg; fnets >> ign >> deg; 70 | _nets.emplace_back(i); 71 | auto& net = _nets.back(); 72 | net._blcks.reserve(deg); 73 | for(int j = 0; j> name; 75 | ID bid = _blcks_id[name]; 76 | net._blcks.push_back(bid); 77 | if(bid > _Nblcks) net.update(_blcks[bid]._x, _blcks[bid]._y); 78 | } 79 | net.do_sort(); 80 | } 81 | fnets.close(); 82 | } 83 | void init() { 84 | if(_has_init) return; 85 | _tree.init(_blcks); 86 | _has_init = true; 87 | } 88 | int3 cost(bool get_area = true, bool get_hpwl = true) const { 89 | //assert(get_area|get_hpwl); 90 | //assert(_has_init); 91 | LEN MAX_X = 0, MAX_Y = 0; 92 | if(get_area) { 93 | for(ID i = 1; i<=_Nblcks; ++i) { 94 | MAX_X = max(MAX_X, LEN(_blcks[i]._x+_blcks[i]._w)); 95 | MAX_Y = max(MAX_Y, LEN(_blcks[i]._y+_blcks[i]._h)); 96 | } 97 | if(!get_hpwl) return make_tuple(1, MAX_X, MAX_Y); 98 | } 99 | int hpwl = 0; 100 | for(auto& net:_nets) { 101 | LEN min_x = (LEN)2*net._mnx, min_y = (LEN)2*net._mny; 102 | LEN max_x = (LEN)2*net._mxx, max_y = (LEN)2*net._mxy; 103 | if(min_x > 0) 104 | for(auto& id:net._blcks) { 105 | if(id <= _Nblcks) 106 | min_x = min(min_x, LEN(2*_blcks[id]._x + _blcks[id]._w)); 107 | else break; 108 | } 109 | if(min_y > 0) 110 | for(auto& id:net._blcks) { 111 | if(id <= _Nblcks) 112 | min_y = min(min_y, LEN(2*_blcks[id]._y + _blcks[id]._h)); 113 | else break; 114 | } 115 | for(auto& id:net._blcks) if(id <= _Nblcks) { 116 | const LEN& x = LEN(2*_blcks[id]._x + _blcks[id]._w); 117 | const LEN& y = LEN(2*_blcks[id]._y + _blcks[id]._h); 118 | max_x = max(max_x, x); 119 | max_y = max(max_y, y); 120 | } 121 | hpwl += (max_x-min_x+max_y-min_y); 122 | } 123 | return make_tuple(hpwl, MAX_X, MAX_Y); 124 | } 125 | void output(ostream& out1, ostream& out2, ostream& out3) const { 126 | //assert(_has_init); 127 | int width, height, hpwl; tie(hpwl, width, height) = cost(); 128 | out1 << setprecision(13) << _alpha*width*height + (1-_alpha)*hpwl/2. << '\n'; 129 | out1 << hpwl/2. << '\n'; 130 | out1 << width*height << '\n'; 131 | out1 << width << " " << height << '\n'; 132 | out1 << double(clock()-start_time)/CLOCKS_PER_SEC << '\n'; 133 | for(ID i = 1; i<=_Nblcks; ++i) { 134 | out1 << _blcks[i]._name << " " << int(_blcks[i]._x) << " " 135 | << int(_blcks[i]._y) << " " << int(_blcks[i]._x+_blcks[i]._w) << " " 136 | << int(_blcks[i]._y+_blcks[i]._h) << '\n'; 137 | } 138 | 139 | //int width, height, hpwl; tie(hpwl, width, height) = cost(); 140 | out2 << "Outline: " << width << " " << height << '\n'; 141 | out2 << "NumBlocks: " << _Nblcks << '\n'; 142 | out2 << "NumTerminals: " << _Ntrmns << '\n'; 143 | out2 << '\n'; 144 | for(ID i = 1; i<=_Nblcks; ++i) { 145 | out2 << _blcks[i]._name << " " << int(_blcks[i]._w) << " " 146 | << int(_blcks[i]._h) << " " << int(_blcks[i]._x) << " " 147 | << int(_blcks[i]._y) << '\n'; 148 | } 149 | out2 << '\n'; 150 | for(ID i = 1; i<=_Ntrmns; ++i) { 151 | out2 << _blcks[_Nblcks+i]._name << " " << "terminal " << int(_blcks[_Nblcks+i]._x) << " " 152 | << int(_blcks[_Nblcks+i]._y) << '\n'; 153 | } 154 | 155 | out3 << "UCLA pl 1.0" << '\n'; 156 | out3 << '\n'; 157 | out3 << '\n'; 158 | out3 << '\n'; 159 | out3 << '\n'; 160 | out2 << '\n'; 161 | for(ID i = 1; i<=_Nblcks; ++i) { 162 | out3 << _blcks[i]._name << " " << int(_blcks[i]._x) << " " << int(_blcks[i]._y) << " " << int(_blcks[i]._rot) << '\n'; 163 | } 164 | out3 << '\n'; 165 | for(ID i = 1; i<=_Ntrmns; ++i) { 166 | //out3 << _blcks[_Nblcks+i]._name << " " << "terminal " << int(_blcks[_Nblcks+i]._x) << " " 167 | // << int(_blcks[_Nblcks+i]._y) << '\n'; 168 | out3 << _blcks[_Nblcks+i]._name << " " << int(_blcks[_Nblcks+i]._x) << " " 169 | << int(_blcks[_Nblcks+i]._y) << '\n'; 170 | } 171 | } 172 | 173 | void perturb() { 174 | float p1 = randf(), p2 = randf(), p3 = randf(); 175 | if(p1 < _rot_prob) rotate(); 176 | else if(p2 < _del_and_ins_prob) del_and_ins(); 177 | else swap_two_nodes(); 178 | _has_init = false; 179 | } 180 | void restore(const TREE& tree) { 181 | _tree = tree; 182 | for(ID i = 1; i<=_Nblcks; ++i) if(_blcks[i]._rot ^ _tree.rot(i)) { 183 | swap(_blcks[i]._w, _blcks[i]._h); 184 | _blcks[i]._rot = _tree.rot(i); 185 | } 186 | _has_init = false; 187 | } 188 | const float _R() { return float(_H)/_W; } 189 | TREE get_tree() { return _tree; } 190 | private: 191 | void read_in(vector& vec, ifstream& ifs, map& m, 192 | ID num, uchar len) { 193 | const float R = _R(); 194 | for(ID i = 1; i<=num; ++i) { 195 | string name; LEN w, h, x, y; 196 | ifs >> name; 197 | if(len == 2) { string ign; ifs >> ign; } 198 | ifs >> w >> h; 199 | if(len == 4) { ifs >> x >> y; } 200 | ID id = i + (len == 2)*_Nblcks; 201 | m[name] = id; 202 | //if(len == 1) vec.emplace_back(id, w, h, name); 203 | if(len == 4) vec.emplace_back(id, w, h, name, x, y); 204 | else vec.emplace_back(id, 0, 0, name, w, h); 205 | } 206 | } 207 | void rotate() { 208 | ID id = _rotable[(rand()%_rotable.size())]; 209 | _blcks[id]._rot = !_blcks[id]._rot; 210 | swap(_blcks[id]._w, _blcks[id]._h); 211 | _tree.rotate(id); 212 | } 213 | void del_and_ins() { 214 | ID id = (rand()%_Nblcks)+1; 215 | _tree.del_from_tree(id); 216 | ID p = (rand()%_Nblcks)+1; 217 | bool left = randb(); 218 | while(id == p) p = (rand()%_Nblcks)+1; 219 | _tree.ins_to_tree(p, id, left); 220 | } 221 | void swap_two_nodes() { 222 | ID id1 = rand()%_Nblcks; 223 | ID id2 = (id1+((rand()%(_Nblcks-1))+1))%_Nblcks; 224 | _tree.swap_two_nodes(id1+1, id2+1); 225 | } 226 | float _alpha, _rot_prob, _del_and_ins_prob; 227 | int _W, _H, _Nblcks, _Ntrmns, _Nnets; 228 | string _out_rpt; 229 | vector _blcks; 230 | vector _nets; 231 | TREE _tree; 232 | map _blcks_id; 233 | bool _has_init; 234 | vector _rotable; 235 | vector _bads; 236 | }; 237 | template class FLOOR_PLAN::TREE { 238 | public: 239 | TREE() {}; 240 | TREE(ID Nblcks) { 241 | vector _tree(Nblcks+1); 242 | iota(_tree.begin()+1, _tree.end(), 1); 243 | random_shuffle(_tree.begin()+1, _tree.end()); 244 | _nodes.resize(Nblcks+1); 245 | for(ID i = 1; i<=Nblcks; ++i) { 246 | ID& id = _tree[i]; 247 | _nodes[id].s_p(_tree[i/2]); 248 | if(i*2 <= Nblcks) _nodes[id].s_l(_tree[i*2]); 249 | if(i*2+1 <= Nblcks) _nodes[id].s_r(_tree[i*2+1]); 250 | } 251 | _nodes[0].s_p(_tree[1]); 252 | }; 253 | void init(vector& blcks) { 254 | const ID& root_id = _nodes[0]._p(); 255 | blcks[root_id]._x = blcks[root_id]._y = 0; 256 | list cy(1, root_id); 257 | auto cur = cy.begin(); 258 | dfs(root_id, 0, cy, cur, blcks); 259 | } 260 | void rotate(ID id) { 261 | _nodes[id].s_rot(); 262 | } 263 | void swap_two_nodes(ID id1, ID id2) { 264 | if(_nodes[id1]._p() == id2) swap_near(id2, id1); 265 | else if(_nodes[id2]._p() == id1) swap_near(id1, id2); 266 | else swap_not_near(id1, id2); 267 | } 268 | void del_from_tree(ID id) { 269 | if(_nodes[id]._l() && _nodes[id]._r()) { 270 | while(_nodes[id]._l() && _nodes[id]._r()) { 271 | ID p = id; 272 | id = (randb()?_nodes[id]._l():_nodes[id]._r()); 273 | swap_near(p, id); 274 | id = p; 275 | } 276 | del_from_tree(id); 277 | } else if(_nodes[id]._l()) { 278 | if(id == _nodes[0]._p()) { 279 | _nodes[0].s_p(_nodes[id]._l()); 280 | _nodes[_nodes[id]._l()].s_p(0); 281 | } 282 | else { 283 | _nodes[_nodes[id]._l()].s_p(_nodes[id]._p()); 284 | if(id == _nodes[_nodes[id]._p()]._l()) 285 | _nodes[_nodes[id]._p()].s_l(_nodes[id]._l()); 286 | else if(id == _nodes[_nodes[id]._p()]._r()) 287 | _nodes[_nodes[id]._p()].s_r(_nodes[id]._l()); 288 | } 289 | } else if(_nodes[id]._r()) { 290 | if(id == _nodes[0]._p()) { 291 | _nodes[0].s_p(_nodes[id]._r()); 292 | _nodes[_nodes[id]._r()].s_p(0); 293 | } 294 | else { 295 | _nodes[_nodes[id]._r()].s_p(_nodes[id]._p()); 296 | if(id == _nodes[_nodes[id]._p()]._l()) 297 | _nodes[_nodes[id]._p()].s_l(_nodes[id]._r()); 298 | else if(id == _nodes[_nodes[id]._p()]._r()) 299 | _nodes[_nodes[id]._p()].s_r(_nodes[id]._r()); 300 | } 301 | } else { 302 | if(id == _nodes[_nodes[id]._p()]._l()) 303 | _nodes[_nodes[id]._p()].s_l(0); 304 | else if(id == _nodes[_nodes[id]._p()]._r()) 305 | _nodes[_nodes[id]._p()].s_r(0); 306 | } 307 | _nodes[id].s_p(0); 308 | } 309 | void ins_to_tree(ID p, ID id, bool left) { 310 | if(left) { 311 | _nodes[id].s_l(_nodes[p]._l()); 312 | _nodes[id].s_r(0); 313 | if(_nodes[p]._l()) _nodes[_nodes[p]._l()].s_p(id); 314 | _nodes[p].s_l(id); 315 | _nodes[id].s_p(p); 316 | } else { 317 | _nodes[id].s_r(_nodes[p]._r()); 318 | _nodes[id].s_l(0); 319 | if(_nodes[p]._r()) _nodes[_nodes[p]._r()].s_p(id); 320 | _nodes[p].s_r(id); 321 | _nodes[id].s_p(p); 322 | } 323 | } 324 | void print() const { 325 | ID rt = _nodes[0]._p(); 326 | cerr << "root " << int(rt) << '\n'; 327 | for(ID i = 1; i<_nodes.size(); ++i) 328 | cerr << int(_nodes[i]._p()) << " " << int(_nodes[i]._l()) << " " 329 | << int(_nodes[i]._r()) << " " << bool(_nodes[i]._rot()) << '\n'; 330 | } 331 | bool rot(ID id) const { return _nodes[id]._rot(); } 332 | void set_rot(ID id) { _nodes[id].s_rot(); } 333 | private: 334 | void dfs(ID id, ID p, list& cy, typename list::iterator& cur, 335 | vector& blcks) { 336 | if(_nodes[id]._l()) { 337 | const ID& p = _nodes[id]._l(); 338 | blcks[p]._x = blcks[id]._x + blcks[id]._w; 339 | blcks[p]._y = find_max_y(cy, ++cur, blcks, blcks[p]); 340 | dfs(_nodes[id]._l(), id, cy, cur, blcks); 341 | --cur; 342 | } 343 | if(_nodes[id]._r()) { 344 | const ID& p = _nodes[id]._r(); 345 | blcks[p]._x = blcks[id]._x; 346 | blcks[p]._y = find_max_y(cy, cur, blcks, blcks[p]); 347 | dfs(_nodes[id]._r(), id, cy, cur, blcks); 348 | } 349 | } 350 | LEN find_max_y(list& l, typename list::iterator& cur, 351 | vector& blcks, BLOCK& blck) { 352 | LEN y = 0; 353 | auto it = cur, rit = cur, mit = cur; 354 | while(it != l.end() && blcks[*it]._x < blck._x+blck._w) { 355 | if(blcks[*it]._y + blcks[*it]._h > y) { 356 | y = blcks[*it]._y + blcks[*it]._h; 357 | mit = it; 358 | } 359 | if(blcks[*rit]._x+blcks[*rit]._w <= blck._x+blck._w) ++rit; 360 | ++it; 361 | } 362 | cur = l.erase(cur, rit); 363 | cur = l.insert(cur, blck._id); 364 | return y; 365 | } 366 | void swap_not_near(ID id1, ID id2) { 367 | if(_nodes[id1]._p() == _nodes[id2]._p()) { 368 | //swap(_nodes[_nodes[id1]._p()]._l(), _nodes[_nodes[id1]._p()]._r()); 369 | ID tmp = _nodes[_nodes[id1]._p()]._l(); 370 | _nodes[_nodes[id1]._p()].s_l(_nodes[_nodes[id1]._p()]._r()); 371 | _nodes[_nodes[id1]._p()].s_r(tmp); 372 | //swap(_nodes[id1]._l(), _nodes[id2]._l()); 373 | ID tmpl = _nodes[id1]._l(); 374 | _nodes[id1].s_l(_nodes[id2]._l()); 375 | _nodes[id2].s_l(tmpl); 376 | //swap(_nodes[id1]._r(), _nodes[id2]._r()); 377 | ID tmpr = _nodes[id1]._r(); 378 | _nodes[id1].s_r(_nodes[id2]._r()); 379 | _nodes[id2].s_r(tmpr); 380 | } else { 381 | if(id1 == _nodes[0]._p()) _nodes[0].s_p(id2); 382 | else if(id2 == _nodes[0]._p()) _nodes[0].s_p(id1); 383 | if(_nodes[_nodes[id1]._p()]._l() == id1) 384 | _nodes[_nodes[id1]._p()].s_l(id2); 385 | else if(_nodes[_nodes[id1]._p()]._r() == id1) 386 | _nodes[_nodes[id1]._p()].s_r(id2); 387 | if(_nodes[_nodes[id2]._p()]._l() == id2) 388 | _nodes[_nodes[id2]._p()].s_l(id1); 389 | else if(_nodes[_nodes[id2]._p()]._r() == id2) 390 | _nodes[_nodes[id2]._p()].s_r(id1); 391 | } 392 | if(_nodes[id1]._l()) _nodes[_nodes[id1]._l()].s_p(id2); 393 | if(_nodes[id2]._l()) _nodes[_nodes[id2]._l()].s_p(id1); 394 | if(_nodes[id1]._r()) _nodes[_nodes[id1]._r()].s_p(id2); 395 | if(_nodes[id2]._r()) _nodes[_nodes[id2]._r()].s_p(id1); 396 | //swap(_nodes[id1]._p(), _nodes[id2]._p()); 397 | ID tmpp = _nodes[id1]._p(); 398 | _nodes[id1].s_p(_nodes[id2]._p()); 399 | _nodes[id2].s_p(tmpp); 400 | //swap(_nodes[id1]._l(), _nodes[id2]._l()); 401 | ID tmpl = _nodes[id1]._l(); 402 | _nodes[id1].s_l(_nodes[id2]._l()); 403 | _nodes[id2].s_l(tmpl); 404 | //swap(_nodes[id1]._r(), _nodes[id2]._r()); 405 | ID tmpr = _nodes[id1]._r(); 406 | _nodes[id1].s_r(_nodes[id2]._r()); 407 | _nodes[id2].s_r(tmpr); 408 | } 409 | void swap_near(ID p, ID id) { 410 | if(p == _nodes[0]._p()) _nodes[0].s_p(id); 411 | else if(p == _nodes[_nodes[p]._p()]._l()) 412 | _nodes[_nodes[p]._p()].s_l(id); 413 | else if(p == _nodes[_nodes[p]._p()]._r()) 414 | _nodes[_nodes[p]._p()].s_r(id); 415 | if(_nodes[p]._l() == id) { 416 | _nodes[p].s_l(_nodes[id]._l()); 417 | if(_nodes[id]._l()) _nodes[_nodes[id]._l()].s_p(p); 418 | _nodes[id].s_l(p); 419 | if(_nodes[id]._r()) _nodes[_nodes[id]._r()].s_p(p); 420 | if(_nodes[p]._r()) _nodes[_nodes[p]._r()].s_p(id); 421 | ID tmp = _nodes[id]._r(); 422 | _nodes[id].s_r(_nodes[p]._r()); 423 | _nodes[p].s_r(tmp); 424 | //swap(_nodes[id]._r(), _nodes[p]._r()); 425 | } else if(_nodes[p]._r() == id) { 426 | _nodes[p].s_r(_nodes[id]._r()); 427 | if(_nodes[id]._r()) _nodes[_nodes[id]._r()].s_p(p); 428 | _nodes[id].s_r(p); 429 | if(_nodes[id]._l()) _nodes[_nodes[id]._l()].s_p(p); 430 | if(_nodes[p]._l()) _nodes[_nodes[p]._l()].s_p(id); 431 | //swap(_nodes[id]._l(), _nodes[p]._l()); 432 | ID tmp = _nodes[id]._l(); 433 | _nodes[id].s_l(_nodes[p]._l()); 434 | _nodes[p].s_l(tmp); 435 | } 436 | _nodes[id].s_p(_nodes[p]._p()); 437 | _nodes[p].s_p(id); 438 | } 439 | vector _nodes; 440 | }; 441 | template struct FLOOR_PLAN::BLOCK { 442 | BLOCK(ID id, LEN w, LEN h, const string& name, LEN x = 0, LEN y = 0, 443 | bool rot = false) 444 | : _id(id), _w(w), _h(h), _name(name), _x(x), _y(y), _rot(rot) {}; 445 | ID _id; 446 | LEN _w, _h, _x, _y; 447 | string _name; 448 | bool _rot; 449 | }; 450 | template struct FLOOR_PLAN::NET { 451 | NET(ID id) : _id(id), _mxx(0), _mxy(0), 452 | _mnx(1<<(sizeof(LEN)*8-3)), _mny(1<<(sizeof(LEN)*8-3)) {}; 453 | void update(LEN x, LEN y) { 454 | _mxx = max(_mxx, x); 455 | _mxy = max(_mxy, y); 456 | _mnx = min(_mnx, x); 457 | _mny = min(_mny, y); 458 | } 459 | void do_sort() { sort(_blcks.begin(), _blcks.end()); } 460 | ID _id; 461 | LEN _mxx, _mxy, _mnx, _mny; 462 | vector _blcks; 463 | }; 464 | constexpr uint msk_l = ((1<<10)-1)<<1; 465 | constexpr uint msk_r = ((1<<10)-1)<<11; 466 | constexpr uint msk_p = ((1<<10)-1)<<21; 467 | constexpr uint rmsk_l = ~msk_l; 468 | constexpr uint rmsk_r = ~msk_r; 469 | constexpr uint rmsk_p = ~msk_p; 470 | template struct FLOOR_PLAN::NODE { 471 | NODE() : x(0) {}; 472 | ID _l() const { return (x>>01)&((1<<10)-1); } 473 | ID _r() const { return (x>>11)&((1<<10)-1); } 474 | ID _p() const { return (x>>21)&((1<<10)-1); } 475 | bool _rot() const { return x&1; } 476 | void s_l(const uint& i) { x = ((x&rmsk_l) | ((i<<01)&msk_l)); } 477 | void s_r(const uint& i) { x = ((x&rmsk_r) | ((i<<11)&msk_r)); } 478 | void s_p(const uint& i) { x = ((x&rmsk_p) | ((i<<21)&msk_p)); } 479 | void s_rot() { x ^= 1; } 480 | int x; 481 | }; 482 | --------------------------------------------------------------------------------