In electrical and electronic circuits,
during manufacture, circuit parameters often vary from the designed
values by
small amounts. These small variations can cause changes in circuit
functionality and could be hard to predict through simulation. One
technique to
analyze these variations and their impact on circuit behavior is
through
In this simulation, PERL is the programming language of choice due to its powerful built-in regular expressions – those most important being the match and search and replace functions. Specific parameters may be found and altered to fit specific needs. Given the main input is assumed to be a text based Spectre netlist, PERL can easily parse and modify the input for randomization.
In this project, four files have been written in PERL: MCInputRandomizer, MCRunSpectre, MCOutputOrganizer and MCMakeGraph. MCInputRandomizer takes the input netlists and creates the requested number of random samples. MCRunSpectre uses Cadence’s Spectre to perform analysis on the netlist. Third, MCOutputOrganizer formats the results and places them in separate file. Each file is based on the node that it comes from. The first column is the result number; the second column is the time or frequency. Each column after represents a different trial. In addition, this program also calculates the average and standard deviation of each row. MCMakeGraph is a sample code for plotting our results using GNUPLOT.