SIMPLE MAGIC: Synthesis and In-memory MaPping of Logic Execution for Memristor Aided loGIC
In order to use SIMPLE-MAGIC, you will need a Linux machine with:
- Python 2.7
- Z3: Run the following commands to install it:
git clone --recursive https://github.com/Z3Prover/z3.git cd z3 python scripts/mk_make.py --python cd build make make install
- ABC Synthesis Tool
- The following Python packages (for graphic description of the solution):
apt-get install python-tk
apt-get install python-matplotlib
- Configure: in the file simple_conf.cfg you will find the following content:
[input_output] input_path=cm138a.blif ; input_format can get one of the values: verilog, blif input_format=blif output_path=cm138a_output [abc] abc_dir_path=/home/adi/abc/alanmi-abc-eac02745facf [Z3] Z3_path=/usr/bin/z3
Change the parameters according to your needs.
- Parse: When Z3 finishes running and output_path is created, run:
python convert_gates_2_array.py -f output_path
In addition, two images will be created:
- Graphic description of the logic execution in the memory. The table drawn in this image represents the memory array. Each circle is a gate port (input or output). Inputs are denoted with the letters A-C and outputs are denoted with E. the number following the letter identifies the gate. Each clock cycle is marked with a different color.
- Clock cycle legend.