User Tools

Site Tools


soft:cadence:simulations:usefull_calc_formulas

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
soft:cadence:simulations:usefull_calc_formulas [2013/12/17 20:40]
dominik.przyborowski [DAC simulations]
soft:cadence:simulations:usefull_calc_formulas [2019/03/08 14:08] (current)
Line 2: Line 2:
  
 ===== DAC simulations ===== ===== DAC simulations =====
-  ​INL calculation from transient ramp:+  ​INL calculation from transient ramp:
 <​code>​ <​code>​
-(((abs(value(IT("/​R1/​MINUS"​) 7e-07 ?​period ​1e-06 ?xName "​cycle"​)) - (((ymax(abs(value(IT("/​R1/​MINUS"​) 7e-07 ?​period ​1e-06 ?xName "​cycle"​))) - ymin(abs(value(IT("/​R1/​MINUS"​) 7e-07 ?​period ​1e-06 ?xName "​cycle"​)))) * (xval(abs(value(IT("/​R1/​MINUS"​) 7e-07 ?​period ​1e-06 ?xName "​cycle"​))) - 1)) / 127)) + ymin(abs(value(IT("/​R1/​MINUS"​) 7e-07 ?​period ​1e-06 ?xName "​cycle"​)))) / ((ymax(abs(value(IT("/​R1/​MINUS"​) 7e-07 ?​period ​1e-06 ?xName "​cycle"​))) - ymin(abs(value(IT("/​R1/​MINUS"​) 7e-07 ?​period ​1e-06 ?xName "​cycle"​)))) / 127))+(((abs(value(SIGNAL T_SAMPLE ​?​period ​T_PERIOD ​?xName "​cycle"​)) - (((ymax(abs(value(SIGNAL T_SAMPLE ​?​period ​T_PERIOD ​?xName "​cycle"​))) - ymin(abs(value(SIGNAL T_SAMPLE ​?​period ​T_PERIOD ​?xName "​cycle"​)))) * (xval(abs(value(SIGNAL T_SAMPLE ​?​period ​T_PERIOD ​?xName "​cycle"​))) - 1)) / No_of_STATES)) + ymin(abs(value(SIGNAL T_SAMPLE ​?​period ​T_PERIOD ​?xName "​cycle"​)))) / ((ymax(abs(value(SIGNAL T_SAMPLE ​?​period ​T_PERIOD ​?xName "​cycle"​))) - ymin(abs(value(SIGNAL T_SAMPLE ​?​period ​T_PERIOD ​?xName "​cycle"​)))) / No_of_STATES))
 </​code>​ </​code>​
-  ​DNL calculation from transient ramp+  ​DNL calculation from transient ramp
 <​code>​ <​code>​
-((deriv(value(abs(IT("/​R1/​PLUS"​)) 7e-07 ?​period ​1e-06 ?xName "​cycle"​)) / ((ymax(value(abs(IT("/​R1/​PLUS"​)) 7e-07 ?​period ​1e-06 ?xName "​cycle"​)) - ymin(value(abs(IT("/​R1/​PLUS"​)) 7e-07 ?​period ​1e-06 ?xName "​cycle"​))) / 127)) - 1)+((deriv(value(abs(SIGNALT_SAMPLE ​?​period ​T_PERIOD ​?xName "​cycle"​)) / ((ymax(value(abs(SIGNALT_SAMPLE ​?​period ​T_PERIOD ​?xName "​cycle"​)) - ymin(value(abs(SIGNALT_SAMPLE ​?​period ​T_PERIOD ​?xName "​cycle"​))) / No_of_STATES)) - 1)
 </​code>​ </​code>​
 +Where: \\
 +SIGNAL - signal name, i.e. **IT("/​R0/​PLUS"​)** or **VT("/​out_dac"​)** \\
 +T_SAMPLE - time of first sample ​ \\
 +T_PERIOD - sampling period ​ \\
 +No_of_STATES = 2^N-1 - number of DAC states (for 8 bit DAC it is 255) \\
 +
 +===== CSA =====
 +  * ENC in electrons
 +<​code>​
 +(rmsNoise(F_MIN F_MAX) / ((ymax(VT("​OUTPUT_NODE"​)) - value(VT("​OUTPUT_NODE"​) 0)) / pv("/​INPUT_CHARGE"​ "​value"​ ?result "​variables"​)) / 1.602e-19)
 +</​code>​
 +  * Charge gain
 +<​code>​1e-15 * (ymax(VT("​OUTPUT_NODE"​)) - VDC("​OUTPUT_NODE"​)) / pv("/​INPUT_CHARGE"​ "​value"​ ?result "​variables"​)</​code>​
 +  * Signal FWHM
 +<​code>​(cross(((100 * ((- VT("​OUTPUT_NODE"​)) + value(VT("​OUTPUT_NODE"​) 0))) / ((- ymin(VT("​OUTPUT_NODE"​))) + value(VT("​OUTPUT_NODE"​) 0))) 50 1 "​falling"​ nil nil) - cross(((100 * ((- VT("​OUTPUT_NODE"​)) + value(VT("​OUTPUT_NODE"​) 0))) / ((- ymin(VT("​OUTPUT_NODE"​))) + value(VT("​OUTPUT_NODE"​) 0))) 50 1 "​rising"​ nil nil))</​code>​
 +Where: \\
 +F_MIN, F_MAX - frequency range for noise simulation \\
 +OUTPUT_NODE - output node of CSA \\
 +INPUT_CHARGE - variable containing input charge value \\
 +
 +===== AC amplifiers =====
 +  * Gain--Bandwidth Product
 +<​code>​bandwidth(VF("/​out_ac"​) dB20(abs(value(VF("/​out_ac"​) 0))) "​low"​)</​code>​
 +<​code>​cross(dB20(VF("/​out_ac"​)) 0 1 "​either"​ nil nil)</​code>​
/services/www/http/wiki/data/attic/soft/cadence/simulations/usefull_calc_formulas.1387309207.txt.gz · Last modified: 2019/03/08 14:06 (external edit)