Home

Awesome

SMT based Standard Cell Layout Generator

This GitHub repo provides the C++ version SMT based standard cell layout generator.

The layout generation flow is shown in the below flow chart.

<img src="SMT_LayGen_Flow.png" width=800px>

User Notes (for Installation)

Run Guide

# Compile genTestCase
make genTestCase

# Compile genSMTInput
make genSMTInput

# Compile convSMTResult
make convSMTResult

# Compile all three
make all
# Run genTestCase
./genTestCase {netlist_file} {size_offset} {fin_mode}
  - ex. ./genTestCase ./netlists/PROBE_3F.cdl 13 3
  - The cell list must be defined in the 'genTestCase.cpp' before compiling.
  
# Run genSMTInput
./genSMTInput {pinLayout_file} {json_file}
  - ex. ./genSMTInput ./pinLayouts_3F_5T/AND2_X1.pinLayout ./config/config_3F_5T_EL.json
  
# Run convSMTResult
./convSMTResult {Z3_file} {cell_name} {output_directory} {pinLayout_directory}
  - ex. ./convSMTResult ./Z3/XOR2_X1_3F_5T_ET_MPO2.z3 XOR2_X1 ./solutionSMT ./pinLayouts_3F_5T

Past & Related Repository

Knowledge Reference