stack install
stack install --flag=lsc:glpk
Use the GLPK (GNU Linear Programming Kit) as backend to integer programs.
GLPK optimizations are necessary for:
- Cell flipping
For any custom build (e. g. cabal-install) you will need at least GHC version 8.6.3. lsc-cabal is a fallback build system based on cabal and git submodules but may lack behind in commits.
lsc -h
replace < gcd_nontd_test.tcl
lsc -dp -llibrary/nangate45/NangateOpenCellLibrary.lef gcd_nan45_nontd.def -odef > placed.def
lsc -l sample/osu035.lef --output=svg sample/map9v3.def > result.svg
lsc +RTS -N8 -RTS
The latest haddock documentation is available on github pages.
stack exec -- lsc-doc
stack build --profile && stack exec --profile -- lsc +RTS -xc -RTS
stack build --profile && stack exec --profile -- lsc +RTS -p -hc -RTS
stack build --flag=lsc:debug && stack exec -- lsc
stack test
Pass the argument -j4
for enabling concurrency tests with 4 jobs to run simultaneously.
stack test --test-arguments -j4
This program is available as open source under the terms of the GPL-3.0-or-later. However, some elements are being licensed under CC0-1.0. For accurate information, please check individual files.
Annotations:
- 🦅 The referenced work has fundamentally inspired the implemented algorithms in the namespace
- 🐳 The referenced work and its proposed algorithms have been fully incorporated in the namespace
- 🐯 The referenced work is soundly applied and the implementation has evolved from the proposed algorithms
- 🐳 Boros, Hammer, Minoux, Rader (1999): Optimal cell flipping to minimize channel density in VLSI design and pseudo-Boolean optimzation doi:10.1016/S0166-218X(98)00114-0
- 🦅 Okasaki (1998): Purely Functional Data Structures doi:10.1017/cbo9780511530104
- 🐳 Fiduccia, et. al. (1982): A Linear-Time Heuristic for Improving Network Partitions doi:10.1109/dac.1982.1585498
- 🐳 Alpert, Huang, Kahng (1998): Multilevel Circuit Partitioning doi:10.1109/dac.1997.597204
- 🐳 Pan, Viswanathan, Chu (2005): An efficient and effective detailed placement algorithm doi:10.1109/iccad.2005.1560039
- 🐳 Cong, Preas (1992): A new algorithm for standard cell global routing doi:10.1016/0167-9260(92)90010-v
- 🐯 Kahng, Markov, Reda (2004): On Legalization of Row-Based Placements doi:10.1145/988952.989004
- 🐳 Gourley, Green (1983): A Polygon-to-Rectangle Conversion Algorithm doi:10.1109/MCG.1983.262975
- 🦅 Bentley (1977): Solutions to Klee's rectangle problems, Unpublished manuscript
- 🐳 Becher, Deymonnaz, Heiber (2013): Efficient repeat finding via suffix arrays arXiv:1304.0528
- 🐳 Tarjan (1975): Efficiency of a Good But Not Linear Set Union Algorithm doi:10.1145/321879.321884
-
LSC
- revisit stage logic
-
Interval stabbing
-
Pin permutations
-
Rent
-
Layout
- decouple from netgraph model
-
Polygon
- improve ptr data structure