Circuit Simulation Framework, reliability oriented
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
aux_resources
installation_scripts
libcircuit_reliability/src
radiation_simulator/src
variability_simulator/src
LICENSE
README.md
changelog.md

README.md

README

Circuit Reliability Frameowrk version 3.3.4 12/05/2017 https://github.com/fgr1986/circuit_reliability_framework

Fernando García Redondo fgarcia@die.upm.es


#Full changelog in changelog.md file.


#To do list Milestone 4.x

#Major

  • To do: Latex/Html export
  • ¿TO DO? Regex for large components (ports)
  • Instance. Nodes instead absolute nodes
  • Weighted Nodes

##Minor

  • If (obj) delete obj (test if the object exist before the deletion)
  • New conditional parsing scheme: REGEX:
    • if () statement
    • if () { statements }
    • if () statement elseif () statement
    • if () { statements } elseif () statement
    • if () { statements } elseif () { statementd }
    • if () { statements } else { statementd }
    • if () { statements } elseif () { statements } else {statements}
    • if () { statements } elseif () { statements } else statement
    • if () { statements } else { statementd }
  • New model parsing scheme: Group of models:
// A
model model_name model_type {
1:  type= params
...
}

// B
model model_name model_type
{
1:  type= params
...
}

// C
model model_name model_type params

Installation

In order to install Spectre Handler Library in your system, the binary should be copied to your computer. Additionally, if you want to develop your program using this libraries, some headers files should be placed and referenced. You can perform the installation by typing

	# some privileges may be needed
	sh installation.sh

To make use of this library, you need to include the required headers in your code as in the following example

#include "experiment_environment.hpp"

And reference them during compilation

# Compyling time :D
g++ -std=c++11 -Wall -O3 -I/usr/include/circuit_reliability -c -o main.o main.cpp
# Linking time :D
g++ myObj1.o myObj2.o ... main.o -o myBin [ other dynamic libraries -L/usr/lib ... ] -L/usr/lib/circuit_reliability [other libraries -lboost_thread ... ] -lcircuit_reliability

The complete list of headers/documentation is placed after installation in

/usr/include/circuit_reliability

In order to make use of the library, while running a program, the library binary location should be placed in the system path. More specifically, in the LD_LIBRARY_PATH variable.The following code can be used placed, for example, in .bashrc file

###########################
# Circuit Reliability Lib #
###########################

# spectre handler library path in system
LIB_PATH_CIRCUIT_RELIABILITY_DIRECTORY=/usr/lib/circuit_reliability
# add it to LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LIB_PATH_CIRCUIT_RELIABILITY_DIRECTORY:$LD_LIBRARY_PATH

Requirements

##Ubuntu 16.04 or 14.04 64bits

  • Tested with g++ (gcc<4.9 must set GCC_OLD definition)
  • GnuPlot (version > 4.6)
  • pdflatex
  • texlive-latex-extra, texlive-formats-extra, texlive-lang-english, texlive-publishers and texlive-generic-extra packages
  • Boost libraries (v1.54)
    • lboost_thread
    • lboost_property_tree
    • lboost_regex
    • lboost_lambda
    • lboost_string
    • lboost_filesystem
    • lboost_system
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install gnuplot
sudo apt-get install libboost-all-dev
sudo apt-get install texlive-latex-extra texlive-formats-extra texlive-lang-english texlive-publishers texlive-generic-extra texlive-bibtex-extra texlive-pictures  texlive-latex-base  texlive-latex-extra


#XML conf files sintax Specified in conf_files folder Readme.md. Required xml configuration files:

  • Technology XML conf file
  • Cadence XML conf file
  • Radiation XML conf file