Thesis: Multi-dimensional exploration of the Minimum Energy Point for RISC-V 
subsystem in 22 nm FDSOI.
Author: Daniel Guarecuco Aguiar
Data: 12/06/2023

This document briefly describres the purpose of each script. These scripts are
provided in a zip file along the PDF report.

* main.sh: Is the main script call in the flow, calling all other scripts
1.Build Ibex Software
2.Run RTL simulation
3.Run Synthesis (syn.tcl)
4.Run Power estimation, export netlist (power.tcl)
5.Clean netlist and create testbenches (generate_testbench.py)
6.Import netlist and run analog Simulation

* syn.tcl: synthesizes RTL design found in design.tcl.
  
* power.tcl: generates power report and spice netlist of critical path.
  
* generate_testbench.py:  Generates four SPICE testbenches for simulations.

* generate_ocn.py: Generates four OCEAN files to run analog simulations on virtuoso.

* generate_cell_biasing_ocn.py: Same as before but with variable biasing 
  voltages. Intended to simulate NAND3, NOR3, and INV gates.

* cell_biasing.sh: Imports and simulates for NAND3, NOR3 and INV gates.

* extract_timing_lib.py: Extract timing information from liberty files to build
  ranking list with worst performing cells.

* counter.va: Verilog-A counter to stop SPICE simulation after 10 cycles for 
  each corner.

* critical_path_netlist.spi and timing_report_critical_path.txt provide an example
  of the netlist and timing of the critical path synthesized with LVT28.
  
#Ploting Jupyter scripts used to plot MEP from CSV raw data
* plotting.ipynb: Plots figures simular to Figures 4.4.1, 4.4.2, 4.4.3, 4.4.4,
4.4.5, 4.4.6.

* plotting_temp.ipynb: Plots figures simular to Figures 4.5.4, 4.5.4, 4.5.5.

* plotting_temp_ratio.ipynb: Plots figures simular to Figures 4.5.6.

* plotting_3d_cell_bias.ipynb: Plots figures simular to Figures 4.6.1 - 4.6.11.

* plotting_temp_diff_bias.ipynb: Plots figures simular to Figures 4.6.12, 4.6.13