summaryrefslogtreecommitdiff
path: root/3866/CH7
diff options
context:
space:
mode:
Diffstat (limited to '3866/CH7')
-rw-r--r--3866/CH7/EX7.1/Ex7_1.sce25
-rw-r--r--3866/CH7/EX7.2/Ex7_2.sce26
-rw-r--r--3866/CH7/EX7.4/Ex7_4.sce18
-rw-r--r--3866/CH7/EX7.5/Ex7_5.sce10
-rw-r--r--3866/CH7/EX7.8/Ex7_8.sce23
5 files changed, 102 insertions, 0 deletions
diff --git a/3866/CH7/EX7.1/Ex7_1.sce b/3866/CH7/EX7.1/Ex7_1.sce
new file mode 100644
index 000000000..cd24f53cc
--- /dev/null
+++ b/3866/CH7/EX7.1/Ex7_1.sce
@@ -0,0 +1,25 @@
+clc; clear; close;
+
+Vdd=1.2;//in volts
+Vto=0.4;//in volts
+gam=0.2;//in vplts^(0.5)
+fi=0.88;//in volts
+//solving of quadratic equation
+a=1;
+b=(-2)*(Vdd-Vto+gam*sqrt(fi))-(gam^2);
+c=((((Vdd-Vto+gam*sqrt(fi))^2)-(gam^2)*fi));
+Vout=((-b)-sqrt(b*b-4*c))/2;
+disp(Vout,'Output(in volts) when input=1.2V and clock=1.2V:');
+Col=0.25;//in fF/um
+W=0.2;//in um
+Ceff=1;//in fF/um
+Cg=2;//in fF/um
+Cf=Col*W; disp(Cf,'Cf(in fermifarad)=');
+Cgnd=Ceff*W; disp(Ceff,'Cef(in fermifarad)=');
+Vout1=Vout-((1.2*Cf)/(Cf+Cgnd));
+disp(Vout1,'Output(in volts) when input=1.2V and clock=low:');
+mprintf('\n\n When input=0V then output=0V irrespective of clock\n\n');
+Cf1=(0.5*Cg*W)+(Col*W);
+Vout2=0-((1.2*Cf1)/(Cf1+Cgnd));
+disp(Vout2,'output(in volts) when input=0V and device is in linear region:');
+//answers vary due to round off error
diff --git a/3866/CH7/EX7.2/Ex7_2.sce b/3866/CH7/EX7.2/Ex7_2.sce
new file mode 100644
index 000000000..db1d54ecb
--- /dev/null
+++ b/3866/CH7/EX7.2/Ex7_2.sce
@@ -0,0 +1,26 @@
+clc; clear; close;
+
+//a
+C1=100;//in fF
+C2=20;//in fF;
+V1=0//in volts
+V2=1.2;//in volts
+V=(C1*V1+C2*V2)/(C1+C2);
+disp(V,'A) V*(in volts)=');
+
+//b
+C1=20;//in fF
+C2=20;//in fF;
+V1=0//in volts
+V2=1.2;//in volts
+V=(C1*V1+C2*V2)/(C1+C2);
+disp(V,'B) V*(in volts)=');
+
+//c
+C1=20;//in fF
+C2=100;//in fF;
+V1=0//in volts
+V2=1.2;//in volts
+V=(C1*V1+C2*V2)/(C1+C2);
+disp(V,'C) V*(in volts)=');
+mprintf('\n Last solution is not possible since V cannot rise above Vdd-Vtn\n');
diff --git a/3866/CH7/EX7.4/Ex7_4.sce b/3866/CH7/EX7.4/Ex7_4.sce
new file mode 100644
index 000000000..30b000637
--- /dev/null
+++ b/3866/CH7/EX7.4/Ex7_4.sce
@@ -0,0 +1,18 @@
+clc; close; clear;
+
+mprintf('For 1st model:\n\n');
+mprintf(' Total delay=T1\n');
+mprintf(' T1=Rinv*C1+(Rinv+Rtg)*C2+(Rinv+2*Rtg)*C3\n');
+mprintf(' Rinv=R and Rtg=R\n');
+mprintf(' C1=(3*Ceff*W)+(Cg*W)+(2*Ceff*W)\n');
+mprintf(' C2=(Cg*W*2)+(6*Ceff*W)\n');
+mprintf(' C3=(4*Ceff*W)+(Cg*W)+(3*f*Cg*W)\n');
+mprintf(' T1=R*W*((29*Ceff)+(8*Cg)+(9*f*Cg))\n\n\n');
+mprintf(' For 2nd model:\n\n');
+mprintf(' Total delay=T2\n');
+mprintf(' T2=Rinv*C4+(Rinv+Rtg)*C5\n');
+mprintf(' Rinv=R and Rtg=R\n');
+mprintf(' C4=(3*Ceff*W)+(2*Ceff*W)+(Cg*W)\n');
+mprintf(' C5=(8*ceff*W)+(Cg*W)+(3*f*Cg*W)\n');
+mprintf(' T2=R*W*((21*Ceff)+(3*Cg)+(6*f*Cg))\n\n');
+mprintf(' Comparing two models, MUX1 is slower than MUX2');
diff --git a/3866/CH7/EX7.5/Ex7_5.sce b/3866/CH7/EX7.5/Ex7_5.sce
new file mode 100644
index 000000000..c325355f2
--- /dev/null
+++ b/3866/CH7/EX7.5/Ex7_5.sce
@@ -0,0 +1,10 @@
+clc; clear; close;
+
+LE_input_a1=4*2/3;
+LE_input_sel1=2/3;
+LE_input_a2=(4*5)/(3*4);
+LE_input_sel2=(4*5)/(4*3);
+disp(LE_input_a1,'LE Input A(for 1st case)=');
+disp(LE_input_sel1,'LE Input sel(for 1st case)=');
+disp(LE_input_a2,'LE Input A(for 2nd case)=');
+disp(LE_input_sel2,'LE Input A(for 2nd case)=');
diff --git a/3866/CH7/EX7.8/Ex7_8.sce b/3866/CH7/EX7.8/Ex7_8.sce
new file mode 100644
index 000000000..7af050a61
--- /dev/null
+++ b/3866/CH7/EX7.8/Ex7_8.sce
@@ -0,0 +1,23 @@
+clc; clear; close;
+
+mprintf('A)\n');
+mprintf(' F=AB+C\n\n');
+mprintf(' B)\n');
+Cg=2;//in fF/um
+Wp=16*0.05;//in um
+lam=0.05;
+Ceff=1;//in fF/um
+Vclk=1.2;//in volts
+Vdd=1.2;//in volts
+Cf=Cg*Wp/2;
+Cgnd=(Ceff*40*lam)+(Cg*30*lam);
+delV=(Cf*Vclk/(Cf+Cgnd));
+disp(delV,'DELVx(in volts)=');
+Vout=Vdd+delV;
+disp(Vout,'Output voltage(in volts)=');
+mprintf('\nSince output voltage is above Vdd , it is not a problem\n\n');
+mprintf(' C)\n');
+Cy=Ceff*16*lam;
+V=Cgnd*Vdd/(Cy+Cgnd);
+disp(V,'Worst case charge sharing V*(in volts)=');
+//answers vary due to roundoff error