- cmake
- NOTE:
cmake/CPM.cmake
will handle C++ dependencies
- NOTE:
- protobuf
- python3 with pip packages:
- poetry (will manage additional dependencies)
- allure (only needed for test reports)
Install Python3.12 + VENV
sudo apt install python3.12-venv
python3 -m venv ~/myvenv
# also add to .bashrc / .zprofile:
source ~/myvenv/bin/activate
sudo apt install cmake libprotobuf-dev protobuf-compiler
sudo apt install libcurl4-openssl-dev # required for klayout pip module
pip3 install poetry
poetry update
Calling ./build.sh release
will:
- create Python and C++ Protobuffer APIs for the given schema (present in
protos
) - compile the
gen_tech_pb
C++ tool
Calling ./gen_tech_pb
will create the JSON tech info files:
build/sky130A_tech.pb.json
build/ihp_sg13g2_tech.pb.json
To quickly run a PEX example with KPEX/2.5D and KPEX/FasterCap engines:
./kpex.sh --tech build/sky130A_tech.pb.json \
--out_dir output_sky130A \
--2.5D yes \
--fastercap yes \
--gds testdata/sky130A/test_patterns/sideoverlap_complex_li1_m1.gds.gz
In your debugging configuration, set:
Modify Options
>Emulate terminal in output console
- Add environmental variable
COLUMNS=120
Thanks to
- Protocol Buffers for (de)serialization of data and shared data structures
- CMake, for building on multiple platforms
- CPM.cmake for making CMake dependency management easier