Commit 3e30c3de by Yijun Tan

change to replace algorithm

parent f337ba6f
......@@ -20,23 +20,22 @@ CMAKE_ADDR2LINE:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6
//Path to a program.
CMAKE_AR:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/ar.exe
//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=
//No help, variable specified on the command line.
CMAKE_BUILD_TYPE:STRING=Debug
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//CXX compiler
CMAKE_CXX_COMPILER:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe
//No help, variable specified on the command line.
CMAKE_CXX_COMPILER:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-g++.exe
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_AR:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc-ar.exe
CMAKE_CXX_COMPILER_AR:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-gcc-ar.exe
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc-ranlib.exe
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-gcc-ranlib.exe
//Flags used by the CXX compiler during all build types.
CMAKE_CXX_FLAGS:STRING=
......@@ -56,16 +55,16 @@ CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//Libraries linked by default with all C++ applications.
CMAKE_CXX_STANDARD_LIBRARIES:STRING=-lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
//C compiler
CMAKE_C_COMPILER:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe
//No help, variable specified on the command line.
CMAKE_C_COMPILER:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-gcc.exe
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_AR:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc-ar.exe
CMAKE_C_COMPILER_AR:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-gcc-ar.exe
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_RANLIB:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc-ranlib.exe
CMAKE_C_COMPILER_RANLIB:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-gcc-ranlib.exe
//Flags used by the C compiler during all build types.
CMAKE_C_FLAGS:STRING=
......@@ -103,6 +102,9 @@ CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during RELWITHDEBINFO builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//No help, variable specified on the command line.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE
//Convert GNU import libraries to MS format (requires Visual Studio)
CMAKE_GNUtoMS:BOOL=OFF
......@@ -112,8 +114,8 @@ CMAKE_INSTALL_PREFIX:PATH=C:/Program Files (x86)/ppPlace
//Path to a program.
CMAKE_LINKER:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/ld.exe
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=C:/MinGW/bin/mingw32-make.exe
//make program
CMAKE_MAKE_PROGRAM:FILEPATH=C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/bin/make.exe
//Flags used by the linker during the creation of modules during
// all build types.
......@@ -157,7 +159,7 @@ CMAKE_PROJECT_NAME:STATIC=ppPlace
CMAKE_RANLIB:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/ranlib.exe
//RC compiler
CMAKE_RC_COMPILER:FILEPATH=C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/windres.exe
CMAKE_RC_COMPILER:FILEPATH=x86_64-w64-mingw32-windres
//Flags for Windows Resource Compiler during all build types.
CMAKE_RC_FLAGS:STRING=
......@@ -322,7 +324,7 @@ CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=MinGW Makefiles
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
......
set(CMAKE_C_COMPILER "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe")
set(CMAKE_C_COMPILER "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-gcc.exe")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "GNU")
set(CMAKE_C_COMPILER_VERSION "8.1.0")
......@@ -22,9 +22,9 @@ set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_AR "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/ar.exe")
set(CMAKE_C_COMPILER_AR "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc-ar.exe")
set(CMAKE_C_COMPILER_AR "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-gcc-ar.exe")
set(CMAKE_RANLIB "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/ranlib.exe")
set(CMAKE_C_COMPILER_RANLIB "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc-ranlib.exe")
set(CMAKE_C_COMPILER_RANLIB "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-gcc-ranlib.exe")
set(CMAKE_LINKER "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/ld.exe")
set(CMAKE_MT "")
set(CMAKE_COMPILER_IS_GNUCC 1)
......@@ -67,6 +67,6 @@ endif()
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include")
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "mingw32;gcc;moldname;mingwex;pthread;advapi32;shell32;user32;kernel32;iconv;mingw32;gcc;moldname;mingwex")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/lib;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib")
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_CXX_COMPILER "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe")
set(CMAKE_CXX_COMPILER "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-g++.exe")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "8.1.0")
......@@ -23,9 +23,9 @@ set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_AR "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/ar.exe")
set(CMAKE_CXX_COMPILER_AR "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc-ar.exe")
set(CMAKE_CXX_COMPILER_AR "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-gcc-ar.exe")
set(CMAKE_RANLIB "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/ranlib.exe")
set(CMAKE_CXX_COMPILER_RANLIB "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc-ranlib.exe")
set(CMAKE_CXX_COMPILER_RANLIB "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-gcc-ranlib.exe")
set(CMAKE_LINKER "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/ld.exe")
set(CMAKE_MT "")
set(CMAKE_COMPILER_IS_GNUCXX 1)
......@@ -78,6 +78,6 @@ endif()
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include")
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;mingw32;gcc_s;gcc;moldname;mingwex;pthread;advapi32;shell32;user32;kernel32;iconv;mingw32;gcc_s;gcc;moldname;mingwex")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/lib;C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib")
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_RC_COMPILER "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/windres.exe")
set(CMAKE_RC_COMPILER "x86_64-w64-mingw32-windres")
set(CMAKE_RC_COMPILER_ARG1 "")
set(CMAKE_RC_COMPILER_LOADED 1)
set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC)
set(CMAKE_RC_OUTPUT_EXTENSION .obj)
set(CMAKE_RC_OUTPUT_EXTENSION .res)
set(CMAKE_RC_COMPILER_ENV_VAR "RC")
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.22
# Generated by "Unix Makefiles" Generator, CMake Version 3.22
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "E:/iccad2023/ppp")
......
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.22
# Generated by "Unix Makefiles" Generator, CMake Version 3.22
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "MinGW Makefiles")
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeCCompilerABI.c"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeCInformation.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeDetermineRCCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeMinGWFindMake.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeRCCompiler.cmake.in"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeRCInformation.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeSystem.cmake.in"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/CMakeTestRCCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/GNU-C.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/GNU-FindBinUtils.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/GNU.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Platform/Windows-Determine-CXX.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Platform/Windows-GNU-C-ABI.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Platform/Windows-GNU-C.cmake"
"C:/Program Files/CMake/share/cmake-3.22/Modules/Platform/Windows-GNU-CXX-ABI.cmake"
......@@ -116,12 +43,6 @@ set(CMAKE_MAKEFILE_OUTPUTS
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/3.22.0-rc2/CMakeSystem.cmake"
"CMakeFiles/3.22.0-rc2/CMakeCCompiler.cmake"
"CMakeFiles/3.22.0-rc2/CMakeCXXCompiler.cmake"
"CMakeFiles/3.22.0-rc2/CMakeRCCompiler.cmake"
"CMakeFiles/3.22.0-rc2/CMakeCCompiler.cmake"
"CMakeFiles/3.22.0-rc2/CMakeCXXCompiler.cmake"
"CMakeFiles/CMakeDirectoryInformation.cmake"
)
......
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.22
# Generated by "Unix Makefiles" Generator, CMake Version 3.22
# Default target executed when no arguments are given to make.
default_target: all
......@@ -41,22 +41,23 @@ cmake_force:
#=============================================================================
# Set environment variables for the build.
SHELL = cmd.exe
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = "C:\Program Files\CMake\bin\cmake.exe"
CMAKE_COMMAND = "C:/Program Files/CMake/bin/cmake.exe"
# The command to remove a file.
RM = "C:\Program Files\CMake\bin\cmake.exe" -E rm -f
RM = "C:/Program Files/CMake/bin/cmake.exe" -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = E:\iccad2023\ppp
CMAKE_SOURCE_DIR = E:/iccad2023/ppp
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = E:\iccad2023\ppp\build
CMAKE_BINARY_DIR = E:/iccad2023/ppp/build
#=============================================================================
# Directory level rules for the build root directory
......@@ -78,16 +79,16 @@ clean: CMakeFiles/ppPlace.dir/clean
# All Build rule for target.
CMakeFiles/ppPlace.dir/all:
$(MAKE) $(MAKESILENT) -f CMakeFiles\ppPlace.dir\build.make CMakeFiles/ppPlace.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles\ppPlace.dir\build.make CMakeFiles/ppPlace.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=E:\iccad2023\ppp\build\CMakeFiles --progress-num=1,2,3,4,5,6,7 "Built target ppPlace"
$(MAKE) $(MAKESILENT) -f CMakeFiles/ppPlace.dir/build.make CMakeFiles/ppPlace.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles/ppPlace.dir/build.make CMakeFiles/ppPlace.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=E:/iccad2023/ppp/build/CMakeFiles --progress-num=1,2,3,4,5,6,7 "Built target ppPlace"
.PHONY : CMakeFiles/ppPlace.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/ppPlace.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start E:\iccad2023\ppp\build\CMakeFiles 7
$(MAKE) $(MAKESILENT) -f CMakeFiles\Makefile2 CMakeFiles/ppPlace.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start E:\iccad2023\ppp\build\CMakeFiles 0
$(CMAKE_COMMAND) -E cmake_progress_start E:/iccad2023/ppp/build/CMakeFiles 7
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/ppPlace.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start E:/iccad2023/ppp/build/CMakeFiles 0
.PHONY : CMakeFiles/ppPlace.dir/rule
# Convenience name for target.
......@@ -96,7 +97,7 @@ ppPlace: CMakeFiles/ppPlace.dir/rule
# clean rule for target.
CMakeFiles/ppPlace.dir/clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles\ppPlace.dir\build.make CMakeFiles/ppPlace.dir/clean
$(MAKE) $(MAKESILENT) -f CMakeFiles/ppPlace.dir/build.make CMakeFiles/ppPlace.dir/clean
.PHONY : CMakeFiles/ppPlace.dir/clean
#=============================================================================
......@@ -106,6 +107,6 @@ CMakeFiles/ppPlace.dir/clean:
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles\Makefile.cmake 0
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.22
# Generated by "Unix Makefiles" Generator, CMake Version 3.22
CMakeFiles/ppPlace.dir/main.cpp.obj
E:/iccad2023/ppp/main.cpp
......
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.22
# Generated by "Unix Makefiles" Generator, CMake Version 3.22
CMakeFiles/ppPlace.dir/main.cpp.obj: ../main.cpp \
../include/Circuit.h \
......
# CMAKE generated file: DO NOT EDIT!
# Generated by "MinGW Makefiles" Generator, CMake Version 3.22
# Generated by "Unix Makefiles" Generator, CMake Version 3.22
# compile CXX with C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe
# compile CXX with C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/x86_64-w64-mingw32-g++.exe
CXX_DEFINES =
CXX_INCLUDES = @CMakeFiles/ppPlace.dir/includes_CXX.rsp
CXX_FLAGS =
CXX_FLAGS = -g -O0
CMakeFiles/ppPlace.dir/src/FFT_calculator.cpp.obj: \
E:\iccad2023\ppp\src\FFT_calculator.cpp \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/cmath \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32/bits/c++config.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32/bits/os_defines.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32/bits/cpu_defines.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/cpp_type_traits.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ext/type_traits.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/math.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/crtdefs.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/_mingw.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/_mingw_mac.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/_mingw_secapi.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/vadefs.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/sdks/_mingw_directx.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/sdks/_mingw_ddk.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/std_abs.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/stdlib.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed/limits.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed/syslimits.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/limits.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/sec_api/stdlib_s.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdlib.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/malloc.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/stdio.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/_mingw_print_push.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/_mingw_off_t.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/swprintf.inl \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/x86_64-w64-mingw32/include/_mingw_print_pop.h \
C:/PROGRA~1/MINGW-~1/X86_64~1.0-P/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/cstdlib \
E:/iccad2023/ppp/src/FFT_calculator.cpp \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/cmath \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32/bits/c++config.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32/bits/os_defines.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32/bits/cpu_defines.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/cpp_type_traits.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ext/type_traits.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/math.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/crtdefs.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/_mingw.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/_mingw_mac.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/_mingw_secapi.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/vadefs.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/sdks/_mingw_directx.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/sdks/_mingw_ddk.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/std_abs.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/stdlib.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed/limits.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed/syslimits.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/limits.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/sec_api/stdlib_s.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/stdlib.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/malloc.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/stdio.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/_mingw_print_push.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/_mingw_off_t.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/swprintf.inl \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/sec_api/stdio_s.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include/_mingw_print_pop.h \
C:/Program\ Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/cstdlib \
E:/iccad2023/ppp/include/FFT_calculator.h
......@@ -12,7 +12,7 @@ if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "")
set(CMAKE_INSTALL_CONFIG_NAME "Debug")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
......
No preview for this file type
......@@ -1274,7 +1274,7 @@ Pin P60 4298 0
LibCell N MC221 50 33 1
Pin P1 25 16
DieSize 0 0 23000 19000
DieSize 0 0 23000 38000
TopDieMaxUtil 80
BottomDieMaxUtil 80
......@@ -20,7 +20,7 @@ Pin P1 2 12
Pin P2 3 3
Pin P3 15 7
DieSize 0 0 40 30
DieSize 0 0 40 60
TopDieMaxUtil 80
BottomDieMaxUtil 90
......@@ -45,7 +45,6 @@ Inst C6 MC3
Inst C7 MC2
Inst C8 MC1
NumNets 6
Net N1 2
Pin C1/P1
......
todo:
iteration 并行
overlap 优化
filler cell NumInstances
local smoothing
......
......@@ -10,6 +10,23 @@
#include "Param.h"
class Bin{
public:
int x, y, lx, ly, ux, uy;
int64_t macroArea, instArea, fillerArea;
float density, targetDensity;
float electroPhi, electroForceX, electroForceY;
public:
Bin() = default;
Bin(int x_, int y_, int lx_, int ly_, int ux_, int uy_, float targetDensity_)
: x(x_), y(y_), lx(lx_), ly(ly_), ux(ux_), uy(uy_),
targetDensity(targetDensity_), electroPhi(0), electroForceX(0), electroForceY(0)
{}
int64_t area() {return static_cast<int64_t>( ux - lx )
* static_cast<int64_t>( uy - ly );}
};
class Circuit : public Database{
public:
long long movecell_num[2];
......@@ -23,17 +40,28 @@ public:
Terminal* term;
int binsize_x;
int binsize_y;
int binSizeX, binSizeY;
int binCntx, binCnty;
float scale; //visualizer scale
float targetDensity;
int64_t overflowArea;
float sumPhi;
float baseWireLengthCoef;
float sumOverflow;
float maxPhiCoef;
std::vector<Bin*> bins;
public:
void init(int);
void finish();
void makeCellList();
//void makeCellList();
void setCellTechs();
/*
void makeInstList();
//void makeNetList();
void initialPlacement(int);
......@@ -47,19 +75,54 @@ public:
void fftinit();
void doFFT();
void updateDensity();
*/
void legalize();
//void finish();
//void legalize();
void terminalAssignment();
//void terminalAssignment();
float calHPWL();
void preCalWL();
std::pair<float, float> calWLf(int);
Float2d calWLf(int);
void print();
void Reinit();
void Reinitplacer();
void Reinitfft();
void doNesterovPlace();
int64_t ReGetHPWL();
void updateGCellDensityCenterLocation(std::vector<Float2d>);
void updateBinsGCellDensityArea();
void updateDensityForceBin();
Int2d getInterIdx(Instance *);
Int2d getInterIdy(Instance *);
static float Overlap(Bin*, Instance*);
void updateWireLengthCoef(float);
void updateWireLengthForceWA(float, float);
void updateGradients(std::vector<Float2d>&, std::vector<Float2d>&, std::vector<Float2d>&);
void updateInitialPrevSLPCoordi();
void updateNextIter();
Float2d getWireLengthGradientWA(Instance*, float, float);
Float2d getWireLengthGradientPinWA(Pin*, float, float);
Float2d getDensityGradient(Instance*);
Float2d getDensityCoordiLayoutInside(Instance*, float, float);
float getStepLength(std::vector<Float2d>&, std::vector<Float2d>&, std::vector<Float2d>&, std::vector<Float2d>&);
float getPhiCoef(float);
//cimg
#if VISUAL
void draw(std::string, int Scale=1);
......
......@@ -4,13 +4,60 @@
#include "Param.h"
/*
class Pin;
class Net;
class Cell;
class Instance;
class Pin
{
public:
Instance* pcell;
Net* pnet;
int px, py;
int cx, cy;
float hasMaxExpSumX_;
float hasMaxExpSumY_;
float hasMinExpSumX_;
float hasMinExpSumY_;
float maxExpSumX_;
float maxExpSumY_;
float minExpSumX_;
float minExpSumY_;
public:
Pin() = default;
Pin(int px_, int py_):px(px_), py(py_) {}
void updatePos();
};
class Net
{
public:
int pin_num;
std::vector<std::pair<int, int>> pins;
std::vector<Pin*> pins;
int lx, ly, ux, uy;
float waExpMinSumX_;
float waXExpMinSumX_;
float waExpMaxSumX_;
float waXExpMaxSumX_;
float waExpMinSumY_;
float waYExpMinSumY_;
float waExpMaxSumY_;
float waYExpMaxSumY_;
public:
Net() = default;
Net(int pn):pin_num(pn) {pins.reserve(pn);}
void addPin(Pin *);
void updateBox();
int64_t hpwl();
};
*/
class Cell
......@@ -30,6 +77,116 @@ public:
Cell(int W, int H, bool IM): w(W), h(H), is_macro(IM), is_filler(false), area(W*H) {}
};
class Instance
{
public:
//Cell* c;
int w, h;
long area;
bool is_macro;
bool is_filler;
std::vector<Pin*> pins;
Float2d pos;
Float2d cent;
int l; //tech layer
int dx, dy;
Float2d dpos;
float scale;
public:
Instance() = default;
Instance(Cell* c): w(c->w), h(c->h), area(c->area), is_macro(c->is_macro), is_filler(c->is_filler) {
/*
int ps = c->pins.size();
pins.resize(ps);
for (int i = 0; i < ps; ++i) {
pins[i] = new Pin(c->pins[i].first, c->pins[i].second);
pins[i]->parent = this;
}
*/
}
void updatePins() {
int halfh = h/2;
int halfw = w/2;
for (int i = 0; i < pins.size(); ++i) {
pins[i]->cx = cent.first - halfh + pins[i]->px;
pins[i]->cy = cent.second - halfw + pins[i]->py;
}
}
void setPos(Float2d p) {
pos = p;
cent = std::make_pair(p.first + h/2, p.second + w/2);
updatePins();
}
void setCent(Float2d p) {
cent = p;
pos = std::make_pair(p.first - h/2, p.second - w/2);
updatePins();
}
void setDCent(Float2d p) {
cent = p;
pos = std::make_pair(p.first - h/2, p.second - w/2);
dpos = std::make_pair(p.first - dx/2, p.second - dy/2);
updatePins();
}
void setdensity(int dx_, int dy_) {
dx = dx_, dy = dy_;
//dpos = std::make_pair(cent.first - dx/2, cent.second - dy/2);
}
void checkPos(int h, int w) {
if (pos.first < 0) {
pos.first = 0;
cent.first = dx/2;
}
if (pos.second < 0) {
pos.second = 0;
cent.second = dy/2;
}
if (pos.first + dx > h) {
pos.first = h - dx;
cent.first = h - dx/2;
}
if (pos.second + dy > w) {
pos.second = w - dy;
cent.second = w - dy/2;
}
}
void checkCent(int h, int w) {
if (cent.first < dx/2) {
pos.first = 0;
cent.first = dx/2;
}
if (cent.second < dy/2) {
pos.second = 0;
cent.second = dy/2;
}
if (cent.first + dx/2 > h) {
pos.first = h - dx;
cent.first = h - dx/2;
}
if (cent.second + dy/2 > w) {
pos.second = w - dy;
cent.second = w - dy/2;
}
dpos = std::make_pair(cent.first - dx/2, cent.second - dy/2);
}
void setLayer(int layer) {
l = layer;
}
};
/*
class Inst
{
......@@ -66,26 +223,82 @@ public:
int h, w;
Die_infro die_infro[2];
int th, tw, tspaceing, tcost; //terminal information
int tech_num, cell_num, net_num;
int tech_num, cell_num, net_num, pins_num;
std::vector<int> cells;
std::vector<int> layer;
//std::vector<int> cell_die;
std::vector<int> mass;
std::vector<Cell*> insts;
std::vector<Instance*> insts;
std::vector<std::vector<std::pair<int, int>>> nets;
std::vector<std::vector<std::pair<int, int>>> node_net;
std::vector<Net*> Pnet;
std::vector<Pin> pinStor;
std::vector<std::pair<float, float>> cell_pos;
std::vector<std::pair<float, float>> force, velocity;
std::vector<Float2d> cell_pos;
std::vector<Float2d> force, velocity;
std::vector<std::pair<float, float>> net_center;
std::vector<Float2d> net_center;
std::vector<std::pair<int, int>> term_pos;
int64_t macroArea, stdArea;
// SLP is Step Length Prediction.
//
// y_st, y_dst, y_wdst, w_pdst
std::vector<Float2d> curSLPCoordi_;
std::vector<Float2d> curSLPWireLengthGrads_;
std::vector<Float2d> curSLPDensityGrads_;
std::vector<Float2d> curSLPSumGrads_;
// y0_st, y0_dst, y0_wdst, y0_pdst
std::vector<Float2d> nextSLPCoordi_;
std::vector<Float2d> nextSLPWireLengthGrads_;
std::vector<Float2d> nextSLPDensityGrads_;
std::vector<Float2d> nextSLPSumGrads_;
// z_st, z_dst, z_wdst, z_pdst
std::vector<Float2d> prevSLPCoordi_;
std::vector<Float2d> prevSLPWireLengthGrads_;
std::vector<Float2d> prevSLPDensityGrads_;
std::vector<Float2d> prevSLPSumGrads_;
// x_st and x0_st
std::vector<Float2d> curCoordi_;
std::vector<Float2d> nextCoordi_;
float wireLengthGradSum_;
float densityGradSum_;
// alpha
float stepLength_;
// opt_phi_cof
float densityPenalty_;
// base_wcof
//float baseWireLengthCoef_;
// wlen_cof
float wireLengthCoefX_;
float wireLengthCoefY_;
// phi is described in ePlace paper.
//float sumPhi_;
//float sumOverflow_;
// half-parameter-wire-length
int64_t prevHpwl_;
float isDiverged_;
public:
void readcase(std::string);
......
......@@ -57,6 +57,7 @@ public:
float getOverlap(int, int, float, float, float, float) const;
public:
fftBin(int bcx, int bcy, int bsx, int bsy): binsize_x(bcx), binsize_y(bcy), size_x(bsx), size_y(bsy) {}
~fftBin();
};
......
......@@ -27,6 +27,11 @@
typedef std::pair<int, int> Int2d;
typedef std::pair<float, float> Float2d;
namespace Color {
const unsigned char BLACK[] = {0, 0, 0};
const unsigned char DIM_GRAY[] = {105, 105, 105};
......@@ -39,7 +44,7 @@ namespace Color {
}
const static float sqrt2 = 1.414213562373095048801L;
const static int inf=0x7fffffff;
const static int mid_width = 10;
......@@ -49,4 +54,55 @@ const static float time_step = 0.02;
const static float wireLengthCoefficient = 10; //1e-1;
const static float frictionCoefficient = 50;
const static float initWireLengthCoef = 0.25;
const static float minWireLengthForceBar = -300;
const static float minPreconditioner = 1.0;
const static float initDensityPenalty = 10; //0.00008;
const static float initialPrevCoordiUpdateCoef = 100;
const static float targetOverflow = 0.1;
const static float referenceHpwl = 446000000;
const static float maxPhiCoef = 1.05;
const static float minPhiCoef = 0.95;
const static int maxNesterovIter = 100;
const static int maxBackTrack = 10;
static float
fastExp(float a) {
a = 1.0 + a / 1024.0;
a *= a;
a *= a;
a *= a;
a *= a;
a *= a;
a *= a;
a *= a;
a *= a;
a *= a;
a *= a;
return a;
}
static float getDistance(std::vector<Float2d>& a, std::vector<Float2d>& b) {
float sumDistance = 0.0f;
for(int i = 0; i < a.size(); ++i) {
sumDistance += (a[i].first - b[i].first) * (a[i].first - b[i].first);
sumDistance += (a[i].second - b[i].second) * (a[i].second - b[i].second);
}
return sqrt( sumDistance / (2.0 * a.size()) );
}
static float getSecondNorm(std::vector<Float2d>& a) {
float norm = 0;
for(int i = 0; i < a.size(); ++i) {
norm += a[i].first * a[i].first + a[i].second * a[i].second;
}
return sqrt( norm / (2.0*a.size()) );
}
#endif
\ No newline at end of file
......@@ -31,7 +31,7 @@ public:
value[i].push_back(y);
}
int BinarySearch(std::vector<int> array, int key)
int BinarySearch(std::vector<int> &array, int key)
{
int aSize = array.size();
if ( array.empty() || aSize == 0 )
......
......@@ -18,7 +18,7 @@ int main() {
std::cout << "Initializing process..." << std::endl;
circuit->init(10);
std::cout << "Initialplacement done" << std::endl;
/*
picname = "initial.bmp";
circuit->draw(picname);
......@@ -45,6 +45,8 @@ int main() {
picname = "after.bmp";
circuit->draw(picname);
*/
std::cout << "Progress End." << std::endl;
delete circuit;
......
#include "Database.h"
void Pin::updatePos() {
cx = pcell->pos.first + px;
cy = pcell->pos.second + py;
}
void Net::addPin(Pin* p) {
pins.push_back(p);
}
void Net::updateBox() {
lx = ly = INT_MAX;
ux = uy = INT_MIN;
for (int i = 0; i < pin_num; ++i) {
lx = std::min(pins[i]->cx, lx);
ly = std::min(pins[i]->cy, ly);
ux = std::max(pins[i]->cx, ux);
uy = std::max(pins[i]->cy, uy);
}
}
int64_t Net::hpwl() {
return static_cast<int64_t>((ux - lx) + (uy - ly));
}
void Database::readcase(std::string inputfilename)
{
......@@ -36,14 +61,14 @@ void Database::readcase(std::string inputfilename)
int pin_num;
ss >> pin_num;
techs[i][j+1]->pins.resize(pin_num);
techs[i][j+1]->pins.reserve(pin_num);
for (int k = 0; k < pin_num; ++k) {
int x, y;
ss >> temp;
ss >> temp;
ss >> x;
ss >> y;
techs[i][j+1]->pins[k] = std::make_pair(x, y);
techs[i][j+1]->pins.push_back(std::make_pair(x, y));
}
}
......
......@@ -104,7 +104,7 @@ void fftBin::doFFT() {
);
/*
ddct2d(binsize_x,
binsize_y,
-1,
......@@ -178,7 +178,7 @@ void fftBin::doFFT() {
workArea.data(),
cosTable.data()
);
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment