Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRISTAL

CRISTAL is a novel methodology and framework for constructing Boolean choice networks for Technology Mapping. The framework includes representative logic cone search, structural mutation for generating diverse choice structures via equality saturation, and priority-ranking choice selection along with choice network construction and validation. Through these techniques, CRISTAL constructs fewer but higher-quality choices, leading to better delay after mapping and physical sizing and buffer timing optimization. CRISTAL enables better alignment for choice network construction, enabling improved technology mapping and more effective post-mapping physical synthesis timing closure.

CRISTAL Overview

Requirements

  • Rust environment (rustc, cargo)
  • Berkeley ABC tool
  • GNU Parallel
  • bc (basic calculator)

Environment Setup

Installing Dependencies

GNU Parallel:

bash install_parallel.sh

bc (basic calculator):

sudo apt-get install bc

Rust Environment:

Ensure you have Rust installed. If not, install via rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Berkeley ABC:

Make sure the ABC tool is installed and accessible in your PATH. For installation instructions, refer to the ABC repository.

Build

To build the CRISTAL framework, run:

make

Usage

Preprocessing New Cases

Before running CRISTAL on new AIG files, preprocessing is required because CRISTAL's Rust parser needs the input and output signal names to be normalized. This ensures the ABC AIG extension parser can reliably add choices for further steps.

Step 1: Process your new AIG file:

python benchmarks/process.py <your_file.aig>

Step 2: Place the processed result in the exp_aig directory.

Step 3: Run the optimization scripts:

bash benchmarks/exp/benchmarks/areaopt.sh
bash benchmarks/exp/benchmarks/delayopt.sh

Running Experiments

To run CRISTAL on a specific benchmark:

bash run_total_choice_mix.sh --case <benchmark>.aig

Example:

bash run_total_choice_mix.sh --case log2.aig

To run on multiple benchmarks:

bash run_total_choice_mix.sh --case *.aig

Citation

If you use CRISTAL in your research, please cite our work published in ICCAD'25.

@inproceedings{chen2025Cristal,
  title={Revisit Choice Network for Synthesis and Technology Mapping},
  author={Chen Chen and Jiaqi Yin and Cunxi Yu},
  booktitle={ICCAD},
  year={2025},
}

About

CRISTAL is a novel methodology and framework for constructing Boolean choice networks for Technology Mapping

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages