GCAT : Global Convergence Analysis Toolkit

GCAT is the acronym of Global Convergence Analysis Toolkit. It aids analog circuit designers to detect and to prevent global convergence failure (start-up failure) at the early simulation stage of circuit design. The toolkit is coded in python and operates over SPECTRE.

GCAT provides two main global convergence analyses, entropy based X estimation analysis and clustering split detection analysis. Clustering split detection analysis is intended to detect multiple number of operating modes (convergence states) in a circuit. Entropy based X estimation is intended to help circuit designers to follow X elimination procedure, which is similar to that in digital circuit. The analysis extracts X and helps designers to add proper resets to their circuit.

Clustering split detection analysis draws trajectories in the state space of the given circuit and tries to determine whether the system has one cluster or multiple clusters. Because a convergence state in a system forms a cluster in the state space, the number of clusters are reported as the number of detected convergence states in a system. However, it should be noted that the analysis can be false negative and false positive depending on its given parameters. To avoid false positive, the designer should set first simulation time duration of the circuit to be long enough so that the analysis will not detect false limit cycle. To avoid false negative, designer need to extract representatives of clusters and run them for enough time to determine the result is correct or not. In addition, sampling time (simulation time step) should be shorter than a period of any oscillating signal in a circuit.

Entropy based X estimation analysis provides a way to extract the unknown or undetermined state X from analog circuit. The analysis reports unsettled nodes X in a circuit after the user given simulation time, and guide designer to eliminate all Xs with additional information. The idea is that designer can prevent start-up failures by fixing the starting point of the system to the known point. In other words, designers are guided to remove all X before tapeout as all red X in gate simulation waveform should be removed in digital.

Documentation

Quick Start


  1. gconv_ebx
    • Entropy based X analysis
    • Options
      qsteps := integer, the number of histogram bins  
      num_pts := integer, the number of sample simulation points
      run_sim := booean, whether transient simulation to be run or not (if false, data is already generated in icfc_dir)
      num_steps := integer, the number of simulation steps to run 
      hist_range_st := float, minimum value of histogram range
      hist_range_end := float, maximum value of histogram range
      first_sim_time := float, first transient simulation duration
      sim_time := float, simulation time step after the first time step (only valid when num_pts>1)
      icfc_dir := string, directory where files which store initial/final conditions of a circuit to be saved 
      log_dir := string, directory where log files to be saved
      plot_dir := string, directory where debugging plot matlab files to be saved
    • Example
      simGCONV_EBX gconv_ebx qsteps=8 num_pts=32 run_sim=True
      + num_steps=1 hist_range_st=-0.1 hist_range_end=1.3
      + first_sim_time=1e-9 sim_time=50e-12
      + icfc_dir="icfc" log_dir="log" plot_dir="mfile"
  2. gconv_csd
    • Cluster split detection analysis
    • Example
      simGCONV_CSD gconv_csd max_sim_steps=128 clustering_analysis="K-nearest"
      + trace_based_termination=True resamp_div=4.0
      + init_num_pts=64 first_sim_time=100e-12 sim_time=17e-12
      + smrty_thrd=0.8 avg2max_ratio=2 max2min_ratio=2 min_num_samples=32 verifying_itr_num=4
      + dbg_nlist="p1,n2,p3" idx_list="0,1,2"
      + icfc_dir="icfc" log_dir="log" plot_dir="mfile"
  3. gconv_rand
    • Multiple transient analyses with random (uniform distribution) initial conditions. Report results in text files, final conditions of a circuit at every user-given simulation time steps
    • Options
      num_pts := integer, the number of sample simulation points
      num_steps := integer, the number of simulation steps to run 
      first_sim_time := float, first transient simulation duration
      sim_time := float, simulation time step after the first time step (only valid when num_pts>1)
      icfc_dir := string, directory where files which store initial/final conditions of a circuit to be saved 
      log_dir := string, directory where log files to be saved
      plot_dir := string, directory where debugging plot matlab files to be saved
    • Example
      simGCONV_RAND gconv_rand num_pts=32 first_sim_time=13e-11 sim_time=13e-12
      + icfc_dir="icfc"
  4. gconv_rwgen
    • Multiple transient analyses with random (uniform distribution) initial conditions. Report results in wave files.
    • Options
      num_pts := integer, the number of sample simulation points
      sim_time := float, simulation time
      save_list := string, list of names of nodes in a circuit to be saved in waveform, should be separate by comma
      icfc_dir := string, directory where files which store initial/final conditions of a circuit to be saved 
      log_dir := string, directory where log files to be saved
      plot_dir := string, directory where debugging plot matlab files to be saved
      outdir := string, directory where waveform files to be saved
    • Example
      simGCONV_RWGEN gconv_rwgen num_pts=32 sim_time=900e-12
      + icfc_dir="icfc" outdir="outdir" save_list="p1,n2,p2"

(NOTE) Syntax is similar to that of typical SPECTRE analysis

Tutorial


User guide


Download

Tags: software