====== Simulating a common-source amplifier ====== ===== Schematic entry ===== ===== DC analysis ===== determinare punto di lavoro, DC operating point etc. Vericare con una analisi parametrica in w come cambia Plottare anche il **gain** definito con dVout/dVin, deriv(...) ===== Transient analysis ===== **ADE L => Analyses => Choose** Per maggiori informazioni spectre --help tran Definire il gain: **ADE L => Outputs => Setup** (or rigth click in the **Outputs** tab in the ADE L window and choose **Edit**) 0.5*( ymax(VT("/Vout")) - ymin(VT("/Vout")) )/amplitude peakToPeak(VT("/Vout"))/peakToPeak(VT("/Vin")) ===== Frequency analysis ===== **ADE L => Analyses => Choose** Servono voltage sources with ac specifications (AC, PC) Per maggiori info: spectre --help ac Per il guadagno posso costruire a mano io l'esperessione: abs(VF("/out")/VF("/in")) oppure in dB = **20Log** dB20(VF("/out")/VF("/in") ) that is equivalent to dB20(VF("/out")) - dB20(VF("/in")) mentre la fase e' phase( VF("/out")/VF("/in")) ) Mettendo **AC=1** non serve neanche fare il rapporto e basta usare dB20(VF("/out")) phase(VF("/out")) Nota: **dB20** is used for **voltage gains**, whereas **dB10** is used for **power gains** Tutto si ottiene in automatico anche come **ADE L => Results => Direct Plot => AC Magnitude** **ADE L => Results => Direct Plot => AC dB10** **ADE L => Results => Direct Plot => AC dB20** **ADE L => Results => Direct Plot => AC Phase** **ADE L => Results => Direct Plot => AC Magnitude & Phase** **ADE L => Results => Direct Plot => AC Gain & Phase** calcolare il phase margin con il Calculator tramite le built-in functions **bandwith( )** and **phaseMargin( )** bandwidth(VF("/out") 3 "low") phaseMargin(VF("/out")) gainMargin(VF("/out")) Esiste anche a built-in function for the **Gain-Bandwith product (GBW)** computation gainBwProd(VF("/out")) ===== Output impedance measurement ===== Attaccare in **idc** al nodo di uscita, mettere AC=1 e fare un'analisi in frequenza, a questo punto Vout in Volt e' proprio la resistenza in Ohm (essendo AC=1 A) To measure output impedance, regardless closed loop or open loop, u just put ideal current source Idc with ac=1 at the output, then measure the voltage at the output across frequency by running AC analysis. The voltage output is the output impedance R=V/I where for I, ac=1, so V is output impedance. if u driving capacitive load, jsut put Idc for current source =0 if u driving resistive load, then put Idc equal to the current output of the circuit source. ===== Noise analysis ===== **ADE L => Analyses => Choose** Select **noise** **ADE L => Results => Print => Noise Summary** Se voglio the **total noise** you have integrate the spectrum integ(....) Another on-line tutorial can be found [[ http://eda.engineering.wustl.edu/wiki/index.php/How_to_Perform_a_Noise_Simulation_in_Cadence | here ]] rmsNoise(......) Importante definire poi **ENC** rmsNoise(......)/peakToPeak(.....) ===== Power consumption measurements ===== Da forum leggo che si usa Vdd x il valor medio della corrente che fluisce dal generatore vdd! do a transient simulation and then the average of the current from your voltage source and multiply by //VDD// see also [[ http://www.seas.gwu.edu/~vlsi/ece218/SPRING/reference/lab6_power_dissipation.pdf | here ]] and [[ http://www.egr.msu.edu/classes/ece410/mason/files/guide-power.pdf | here ]] average( IT("/V0/PLUS") ) oppure con il valore rms ?? rms( IT("/V0/PLUS") ) ===== Create a symbol for the amplifier ===== **Schematic L => Create => Cellview => From Cellview...** ---- Last update: [[pacher@NOSPAMto.infn.it | Luca Pacher ]] - 27 Sep 2012