From b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b Mon Sep 17 00:00:00 2001 From: priyanka Date: Wed, 24 Jun 2015 15:03:17 +0530 Subject: initial commit / add all books --- 68/CH4/EX4.1/ex1.sce | 28 ++++++++++++++++++++++++++++ 68/CH4/EX4.10/ex10.sce | 20 ++++++++++++++++++++ 68/CH4/EX4.11/ex4_11.sce | 33 +++++++++++++++++++++++++++++++++ 68/CH4/EX4.12/ex4_12.sce | 16 ++++++++++++++++ 68/CH4/EX4.13/ex4_13.sce | 16 ++++++++++++++++ 68/CH4/EX4.2/ex2.sce | 19 +++++++++++++++++++ 68/CH4/EX4.3/ex3.sce | 15 +++++++++++++++ 68/CH4/EX4.4/ex4.sce | 14 ++++++++++++++ 68/CH4/EX4.5/ex5.sce | 21 +++++++++++++++++++++ 68/CH4/EX4.6/ex6.sce | 13 +++++++++++++ 68/CH4/EX4.7/ex4_7.sce | 24 ++++++++++++++++++++++++ 68/CH4/EX4.9/ex4_9.sce | 21 +++++++++++++++++++++ 12 files changed, 240 insertions(+) create mode 100755 68/CH4/EX4.1/ex1.sce create mode 100755 68/CH4/EX4.10/ex10.sce create mode 100755 68/CH4/EX4.11/ex4_11.sce create mode 100755 68/CH4/EX4.12/ex4_12.sce create mode 100755 68/CH4/EX4.13/ex4_13.sce create mode 100755 68/CH4/EX4.2/ex2.sce create mode 100755 68/CH4/EX4.3/ex3.sce create mode 100755 68/CH4/EX4.4/ex4.sce create mode 100755 68/CH4/EX4.5/ex5.sce create mode 100755 68/CH4/EX4.6/ex6.sce create mode 100755 68/CH4/EX4.7/ex4_7.sce create mode 100755 68/CH4/EX4.9/ex4_9.sce (limited to '68/CH4') diff --git a/68/CH4/EX4.1/ex1.sce b/68/CH4/EX4.1/ex1.sce new file mode 100755 index 000000000..ee3ef1460 --- /dev/null +++ b/68/CH4/EX4.1/ex1.sce @@ -0,0 +1,28 @@ +// Example 4.1 : To determine operating point parameters +L_min=0.4*10^-6; // (m) +t_ox=8*10^-9; // (s) +u_n=450*10^-4; // (A/V^2) +V_t=0.7; // (V) +e_ox=3.45*10^-11; + +// 4.1a +C_ox=e_ox/t_ox; +disp(C_ox,"C_ox (F/m^2)") +k_n=u_n*C_ox; +disp(k_n,"k_n (A/V^2)") + +// 4.1b +// Operation in saturation region +W=8*10^-6; // (m) +L=0.8*10^-6; // (m) +i_D=100*10^-6; // (A) +V_GS=sqrt(2*L*i_D/(k_n*W)) +V_t; +disp(V_GS,"V_GS (V)") +V_DSmin=V_GS-V_t; +disp(V_DSmin,"V_DSmin (V)") + +// 4.1c +// MOSFET in triode region +r_DS=1000; // (ohm) +V_GS=1/(k_n*(W/L)*r_DS)+V_t; +disp(V_GS,"V_GS (V)") \ No newline at end of file diff --git a/68/CH4/EX4.10/ex10.sce b/68/CH4/EX4.10/ex10.sce new file mode 100755 index 000000000..ae042e7d2 --- /dev/null +++ b/68/CH4/EX4.10/ex10.sce @@ -0,0 +1,20 @@ +// Example 4.10 : Small signal analysis +V_t=1.5; // (V) +K=0.00025;//K= k_nW/L (A/V^2) +V_A=50; // (V) +I_D=1.06*10^-3; // (A) +V_D=4.4; // (V) +R_D=10000; // (ohm) +R_L=10000; // (ohm) +V_GS=V_D; +g_m=K*(V_GS-V_t); +r_o=V_A/I_D; +A_v=-g_m*(R_L*R_D*r_o)/(R_D*R_L+R_D*r_o+R_L*r_o); +disp(A_v,"Voltage gain (V/V)") +R_G=10*10^6; //(ohm) +// i_i=v_i*(1-A_v)/R_G +R_in=R_G/(1-(A_v)); +disp(R_in,"Input resistance (ohm)") +// v_DSmin=v_GSmin-V_t +v_i=V_t/(1+(-A_v)); // - sign to make A_v positive +disp(v_i," Largest allowable input signal (V)") \ No newline at end of file diff --git a/68/CH4/EX4.11/ex4_11.sce b/68/CH4/EX4.11/ex4_11.sce new file mode 100755 index 000000000..fe6bc75a2 --- /dev/null +++ b/68/CH4/EX4.11/ex4_11.sce @@ -0,0 +1,33 @@ +// Example 4.11: To determine all parameters of transistor amplifier +v_o=90; // (V) +v_i=9; // (V) +R_sig=100*10^3; // (ohm) +R_L=10*10^3; // (ohm) +v_sig=10; // (V) +A_vo=v_o/v_i; +disp(A_vo,"A_vo (V/V)") +G_vo=v_o/A_vo; +disp(G_vo,"G_vo (V/V)") +R_i=G_vo*R_sig/(A_vo-G_vo) +disp(R_i,"R_i") +disp("assume R_L = 10 kilo ohm is connected") +v_o=70; // (V) +v_i=8; // (V) +A_v=v_o/v_i; +disp(A_v,"A_v (V/V)") +G_v=v_o/A_vo; +disp(G_v,"G_v (V/V)") +R_o=R_L*(A_vo-A_v)/A_v; +disp(R_o,"R_o (ohm)") +R_out=R_L*(G_vo-G_v)/G_v; +disp(R_out,"R_out (ohm)") +R_in=(v_i*100)/(v_sig-v_i); +disp(R_in,"R_in (ohm)") +G_m=A_vo/R_o; +disp(G_m,"G_m (mho)") +A_i=A_v*R_in/R_L; +disp(A_i,"A_i (V/V)") +R_inL0=R_sig/((1+R_sig/R_i)*(R_out/R_o)-1); // R_in|R_L=0 (ohm) +disp(R_inL0,"R_in at R_L=0") +A_is=A_vo*R_inL0/R_o; +disp(A_is,"A_is (A/A)") \ No newline at end of file diff --git a/68/CH4/EX4.12/ex4_12.sce b/68/CH4/EX4.12/ex4_12.sce new file mode 100755 index 000000000..34a1833d9 --- /dev/null +++ b/68/CH4/EX4.12/ex4_12.sce @@ -0,0 +1,16 @@ +// Example 4.12 : Midband gain and upper 3dB frequency +R_sig= 100*10^3; // (ohm) +R_G=4.7*10^6; // (ohm) +R_D=15*10^3; // (ohm) +R_l=15*10^3; // (ohm) +g_m=1*10^-3; // (mho) +r_o=150*10^3; // (ohm) +C_gs=1*10^-12; // (F) +C_gd=0.4*10^-12; // (F) +R_L= 1/(1/r_o + 1/R_D + 1/R_l) +A_M=R_G/(R_G + R_sig)*g_m*R_L; +disp(A_M,"midband gain A_M (V/V)") +C_eq=(1+g_m*R_L)*C_gd; +C_in=C_gs+C_eq; +f_H=(R_G+R_sig)/(2*%pi*C_in*R_sig*R_G); +disp(f_H,"f_H (Hz)") \ No newline at end of file diff --git a/68/CH4/EX4.13/ex4_13.sce b/68/CH4/EX4.13/ex4_13.sce new file mode 100755 index 000000000..e64ae5690 --- /dev/null +++ b/68/CH4/EX4.13/ex4_13.sce @@ -0,0 +1,16 @@ +// Example 4.13 : Coupling capacitor values +R_G=4.7*10^6; // (ohm) +R_D=15*10^3; // (ohm) +R_L=15*10^3; // (ohm) +R_sig=100*10^3; // (ohm) +g_m=1*10^-3; // (mho) +f_L=100; // (Hz) +C_S=g_m/(2*%pi*f_L) +disp(C_S,"C_S (F)") +f_P2=1/(2*%pi*C_S/g_m); +f_P1=10; // (Hz) +f_P2=10; // (Hz) +C_C1=1/(2*%pi*(R_G+R_sig)*10) +disp(C_C1,"C_C1 (F)") +C_C2=1/(2*%pi*(R_D+R_L)*10) +disp(C_C2,"C_C2 (F)") \ No newline at end of file diff --git a/68/CH4/EX4.2/ex2.sce b/68/CH4/EX4.2/ex2.sce new file mode 100755 index 000000000..ef7ee335f --- /dev/null +++ b/68/CH4/EX4.2/ex2.sce @@ -0,0 +1,19 @@ +// Example 4.2: Design of given circuit to obtain I_D=0.4mA and V_D=0.5V +// NMOS transistor is operating in saturation region +I_D=0.4*10^-3; // (A) +V_D=0.5; // (V) +V_t=0.7; // (V) +uC_n=100*10^-6; // (A/V^2) +L=1*10^-6; // (m) +W=32*10^-6; // (m) +V_SS=-2.5; // (V) +V_DD=2.5; // (V) +V_OV=sqrt(I_D*2*L/(uC_n*W)); +V_GS=V_t+V_OV; +disp(V_GS,"V_t (V)") +V_S=-1.2; // (V) +R_S=(V_S-V_SS)/I_D; +disp(R_S,"R_S (ohm)") +V_D=0.5; // (V) +R_D=(V_DD-V_D)/I_D; +disp(R_D,"R_D (ohm)") \ No newline at end of file diff --git a/68/CH4/EX4.3/ex3.sce b/68/CH4/EX4.3/ex3.sce new file mode 100755 index 000000000..2eb0f9547 --- /dev/null +++ b/68/CH4/EX4.3/ex3.sce @@ -0,0 +1,15 @@ +// Example 4.3: Design of given circuit to obtain I_D=80uA +// FET is operating in saturation region +I_D=80*10^-6; // (A) +V_t=0.6; // (V) +uC_n=200*10^-6; // (A/V^2) +L=0.8*10^-6; // (m) +W=4*10^-6; // (m) +V_DD=3; // (V) +V_OV=sqrt(2*I_D/(uC_n*(W/L))); +V_GS=V_t+V_OV; +V_DS=V_GS; +V_D=V_DS; +disp(V_D,"V_D (V)") +R=(V_DD-V_D)/I_D; +disp(R,"R (ohm)") \ No newline at end of file diff --git a/68/CH4/EX4.4/ex4.sce b/68/CH4/EX4.4/ex4.sce new file mode 100755 index 000000000..f67abfc3a --- /dev/null +++ b/68/CH4/EX4.4/ex4.sce @@ -0,0 +1,14 @@ +// Example 4.4 : Design of given circuit to obtain V_D=0.1V +// MOSFET is operating in triode region +V_D=0.1; // (V) +V_DD=5; // (V) +V_t=1; // (V) +K=1*10^-3; // K=k'_n(W/L) +V_GS=5; // (V) +V_DS=0.1; // (V) +I_D=K*((V_GS-V_t)*V_DS-(V_DS^2)/2); +disp(I_D,"I_D (A)") +R_D=(V_DD-V_D)/I_D; +disp(R_D,"R_D (ohm)") +r_DS=V_DS/I_D; +disp(r_DS,"r_DS (ohm)") \ No newline at end of file diff --git a/68/CH4/EX4.5/ex5.sce b/68/CH4/EX4.5/ex5.sce new file mode 100755 index 000000000..1f133da78 --- /dev/null +++ b/68/CH4/EX4.5/ex5.sce @@ -0,0 +1,21 @@ +// Example 4.5: To determine all node voltages and currents through all branches +V_t=1; // (V) +K=1*10^-3; // K=k'_n(W/L) +V_DD=10; // (V) +R_G1=10*10^6; // (ohm) +R_G2=10*10^6; // (ohm) +R_D=6*10^3; // (ohm) +R_S=6*10^3; // (ohm) +p=poly([8 -25 18],'I_D', 'coeff'); +I_D=roots(p); +// I_D=0.89mA will result in transistor cut off hence we take the other root of the equation +V_G=V_DD*R_G2/(R_G2+R_G1); +I_D=I_D(1)*10^-3; +disp(I_D,"I_D (A)") +V_S=I_D*R_S; +disp(V_S,"V_S (V)") +V_GS=V_G-V_S; +disp(V_GS,"V_GS (V)") +V_D=V_DD-R_D*I_D; +disp(V_D,"V_D (V)") +// V_D>V_G-V_t the transistor is operating in saturation as initially assumed \ No newline at end of file diff --git a/68/CH4/EX4.6/ex6.sce b/68/CH4/EX4.6/ex6.sce new file mode 100755 index 000000000..cd91485de --- /dev/null +++ b/68/CH4/EX4.6/ex6.sce @@ -0,0 +1,13 @@ +// Example 4.6; Design of given circuit to obtain I_D=0.5mA and V_D=3V +// MOSFET is in saturation +V_DD=5; // (V) +V_D=3; // (V) +I_D=0.5*10^-3; // (A) +V_t=-1; // (V) +K=1*10^-3; // K=k'_n(W/L) +V_OV=sqrt(2*I_D/K); +V_GS=V_t+(-V_OV) +R_D=V_D/I_D; +V_Dmax=V_D-V_t; // - sign as magnitude of V_t is considered +R_D=V_Dmax/I_D; +disp(R_D,"R_D (ohm)") \ No newline at end of file diff --git a/68/CH4/EX4.7/ex4_7.sce b/68/CH4/EX4.7/ex4_7.sce new file mode 100755 index 000000000..f2bacf1b7 --- /dev/null +++ b/68/CH4/EX4.7/ex4_7.sce @@ -0,0 +1,24 @@ +// Example 4.7: To determine drain currents and output voltage +K_n =1*10^-3; // K_n=k_n*W_n/L_n (A/V^2) +K_p = 1*10^-3; // K_p=k_p*W_p/L_p (A/V^2) +V_tn= 1; // (V) +V_tp= -1; // (V) +V_I=-2.5:2.5:2.5; // (V) +V_DD=2.5; // (V) +R=10;// (kilo ohm) +// For V_I=0 +I_DP=(K_p*(V_DD-V_tn)^2)/2; +I_DN=I_DP; +disp(I_DP,I_DN,"I_DP (A) and I_DN (A) for V_I=0V") +disp(0,"V_O for V_I =0V") +// For V_I=2.5V +// I_DN=K_N(V_GS-V_tn)V_DS +// I_DN=v_O/R +// Solving the two equations we get +I_DN=0.244*10^-3; // (V) +V_O=-2.44; // (V) +disp(I_DN,V_O,"V_O and I_DN for V_I=2.5V") +// For V_I=-2.5V Q_N is cut off +I_DP=2.44*10^-3; // (A) +V_O=2.44; // (V) +disp(0,I_DP,V_O,"V_O(V), I_DP (A) and I_DN (A) for V_I=-2.5V") \ No newline at end of file diff --git a/68/CH4/EX4.9/ex4_9.sce b/68/CH4/EX4.9/ex4_9.sce new file mode 100755 index 000000000..17032c142 --- /dev/null +++ b/68/CH4/EX4.9/ex4_9.sce @@ -0,0 +1,21 @@ +// Example 4.9 : Design of given circuit to obtain I_D=0.5mA +I_d=0.5*10^-3; // (A) +I_S=0.5*10^-3; // (A) +V_t=1:0.5:1.5; // (V) +K_n=1*10^-3; // K_n=k_n*W/L (A/V^2) +V_DD=15; // (V) +V_D=10; // (V) +V_S=5; // (V) +R_D=(V_DD-V_D)/I_d; +R_S=V_S/I_S; +V_OV=sqrt(I_d*2/K_n); +V_GS=V_t+V_OV; +V_G=V_S+V_GS; +// V_t=1.5V +// I_D=K(V_GS-V_t)^2/2 +// 7=V_GS+10I_D +// solving above equations +I_D=0.455*10^-3; +deltaI_D=I_D-I_d; // Change in I_D (A) +change=deltaI_D*100/I_d; // Change in % +disp(change,"Change in I_D (%)") \ No newline at end of file -- cgit