[M scripts] Speed estimation of CML latch

The Matlab script used in this post:

%%%%%%%%%%%%%%% Estimate the speed of CML Latch %%%%%%%%%%%%%%%%%%%%%
clear all; clc;
% Initial settings
G = 3;              % Amplification gain
gm_id = 10;         % Inversion coefficient  
id_unit = 150e-6;   % Id for gm_id=10 at W = 1um, L=30nm
cg_unit = 0.4e-15;  % Cgg at W = 1um
ll = 0.03;          % Transistor length in um

ww = 4;             % Transistor width
id = id_unit*ww;    % Bias current 
gm = gm_id*id;      % Transistor transconductance
cg = ww*cg_unit;    % Gate capacitance in F
cpar = 10e-15;      % parasitic capacitance
cl = 3*cg + cpar;   % Total load capacitor
rl = G/gm;          % Resistor load
iss = id*2;         % Tail current
deltaV = rl*iss;     % Differential output voltage

tau = rl*cl;        % Time constant
k = 1:0.2:8;        % Ratio of Iss*RD/Vxy1

t1 = -tau.*log(1-(1+1./k)./G).*1e12;    % Amplification time in ps
t2 = tau./(G-1).*log(k).*1e12;          % Regeneration time in ps

plot(k, t1, '-rd', k, t2, '-bo', k, t1+t2, '-k+')
xlabel('-I_{ss}R_D/V_{XY1}'); ylabel('Time [ps]');
xlim([1 max(k)]);
title(sprintf('Gm/Id = %.0f; G = %d; W = %d [um]; C_L = %.0f [fF] \n R_L = %.0f [Omh]; I_{SS} = %.0f [uA]; V_{diffo} = %.1f [mV]', gm_id, G,  ww, cl*1e15, rl, iss*1e6, deltaV*1e3));
legend('Amplification time', 'Regeneration time', 'Total sum', 'Location', 'Best');
grid on;
This entry was posted in Matlab and tagged . Bookmark the permalink.

1 Response to [M scripts] Speed estimation of CML latch

  1. Pingback: Current-Mode-Logic (CML) Latch | EveryNano Counts

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s