ece 2c, hw 3 solutions spring 2013

8
Id (mA) Id (mA) Vds (V) Vds (V) ECE 2C, HW 3 Solutions Spring 2013 P1. (a). (b) Red dashed line is the load line. 0 0.5 1 1.5 2 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 Ids (mA) vs Vds (V) 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.5 1 1.5 2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Ids (mA) vs Vds (V)

Upload: others

Post on 19-Feb-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Id (mA)

Id (mA)

Vds (V)

Vds (V)

ECE 2C, HW 3 Solutions

Spring 2013

P1. (a).

(b) Red dashed line is the load line.

0 0.5 1 1.5 20

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5Ids (mA) vs Vds (V)

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.5 1 1.5 20

0.1

0.2

0.3

0.4

0.5

0.6

0.7Ids (mA) vs Vds (V)

Vout (V)

Vin (V)

(c) Find the intersecting points from (b). Note that the range of Vgs (=Vin)

is from 0.3 to 2 V in the following graph.

Vin=1 V corresponds to Vout=1 V.

(d) Draw a tangent line at Vout=1 V. The gain would be the slope of this

line shown with the red dashed line above. Av = -2.8 V/V.

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2Vout (V) vs Vin (V)

Sample MATLAB Code:

clear all; % ************************* part (a) ******************************* % Define Variables C = 1; % mA/V^2 lambda = 0; RL = 2; % kOhm VDD = 2.0; Vth = 0.3; % V Vgs = 0.3:0.1:1.0; Vds = linspace(0,VDD,100); % Find Id as a function of Vds and Vgs. for i_Vg = 1:1:length(Vgs) Vgs_x = Vgs(i_Vg); Id(:, i_Vg) = C * (Vgs_x-Vth)^2 * (1+lambda*Vds); Vds_Linear = Vds( Vds<(Vgs_x-Vth) ); Id(Vds<(Vgs_x-Vth), i_Vg) = C * (2*(Vgs_x-Vth)*Vds_Linear - Vds_Linear.^2) .* (1+lambda*Vds_Linear); end; % Plot figure; plot(Vds, Id, 'LineWidth', 3); title('Ids (mA) vs Vds (V)'); legend(num2str(Vgs')); % ************************* part (b) ******************************* Iload = (VDD-Vds)/RL; figure; plot(Vds, Id, '-k', 'LineWidth', 3); hold on; plot(Vds, Iload, '--r', 'LineWidth', 3); title('Ids (mA) vs Vds (V)'); % legend(num2str(Vgs')); ylim([0, 0.7]); % ************************* part (c) ******************************* % Part (c): Let's improve the input voltage spacing, and the limits of Vgs Vth = 0.3; % V Vgs = 0.3:0.01:2.0; Vds = linspace(0,VDD,1000); Iload = (VDD-Vds)/RL; clear Id for i_Vg = 1:1:length(Vgs) Vgs_x = Vgs(i_Vg); Id(:, i_Vg) = C * (Vgs_x-Vth)^2 * (1+lambda*Vds); Vds_Linear = Vds( Vds<(Vgs_x-Vth) );

Id(Vds<(Vgs_x-Vth), i_Vg) = C * (2*(Vgs_x-Vth)*Vds_Linear - Vds_Linear.^2) .* (1+lambda*Vds_Linear); [temp_I, ind] = min(abs(Id(:, i_Vg)-Iload')); Vout(i_Vg) = Vds(ind); Vin(i_Vg) = Vgs_x; % [Vout(i_Vg), Vin(i_Vg)] = min(abs(Id(:, i_Vg)-Iload')); end; figure; plot(Vin, Vout, 'LineWidth', 3); title('Vout (V) vs Vin (V)'); % ************************* part (d) ******************************* dVout_dVin = diff(Vout)./diff(Vin); dVout_dVin(length(Vin)) = dVout_dVin(length(Vin)-1) figure; plot(Vin, dVout_dVin, 'LineWidth', 3); title('Gain (V/V) vs Vin (V)');

U3
Sticky Note
Gds=dIds/dVds