Материалы сайта
Это интересно
Проектирование логического ключа в n-МОП базисе с квазилинейной нагрузкой. (МСХТ)
Программа расчета параметров ключа SOLVE.PAS. Program SOLVE; const U1 : Real=(6.0); {В} U0 : Real=(0.8); {В} Upu : Real=(0.5); {В} P : Real=(0.4); {мВт} n : Real=(0.3); { коэффициент влияния подложки } dok : Real=(50); {нм} eok : Real=(4); e0 : Real=(8.85e-12); {Ф/м} un : Real=(500); {см2/Вс} xj : Real=(0.7); {мкм} cn : Real=(1); {пФ} lamda: Real=(2); {мкм} var I0, Uin : real; Wn, Ln, Wk, Lk : real; Kn, Kk, Kyd : real; A, B, C, K : real; Up, Unop0, U3 : real; Uv1, Uv2, Uv : real; procedure WL(a:real;var W,L:Real); { процедура нахождения W и L } begin if a<1 then begin W:=2*lamda;L:=round(W/a); end else begin L:=2*lamda;W:=round(L*a); end; end; begin Up:=U1; writeln('Напряжение источника питания Uип=',Up:3:3,' В'); Uin:=U1; writeln('Входное напряжение ключа Uвх=',Uin:3:3,' В'); Unop0:=U0+Upu; write('Пороговое напряжение транзисторов Uпор0='); writeln(Unop0:3:3,' В'); I0:=2*P*1e-3/Up; writeln('Максимальный ток лог. "0" Io=',I0*1e6:3:6,' мкА'); U3:=Up*(1+n)+Unop0; write('Напряжение на затворе Uз > ',U3:3:3,' В'); U3:=round(U3)+1;writeln(', принимаем Uз=',U3:3:3,' В'); K:=U0*(2*(Uin-Unop0)-U0*(1+n)); K:=K/((Up-U0)*(2*(U3-Unop0)-(Up+U0)*(1+n))); writeln('Отношение крутизн Kн/Kк=',K:3:6); A:=(1+n)*(2+K); B:=2*(2*(Uin-Unop0)+K*(U3-Unop0)); C:=Up*K*(2*(U3-Unop0)-Up*(1+n)); writeln('Коэффициенты в квадратном уравнении для расчета U'':'); writeln('A=',A:3:6,'; B=',B:3:6,'; C=',C:3:6,';'); Uv1:=(B-sqrt(sqr(B)-4*A*C))/(2*A); Uv2:=(B+sqrt(sqr(B)-4*A*C))/(2*A); if Uv1> U''=',Uv:3:3); Kn:=2*I0/((Up-Uv)*(2*(U3-Unop0)-(Up+Uv)*(1+n))); Kk:=I0/(Uv*(2*(Uin-Unop0)-Uv*(1+n))); Kyd:=un*1e-4*eok*e0/(dok*1e-9); write('Рассчитанные крутизны [мкB/A2]: Kуд=',Kyd*1e6:3:3); writeln('; Kн=',Kn*1e6:3:6,'; Kк=',Kk*1e6:3:6,';'); WL(Kn/Kyd,Wn,Ln);WL(Kk/Kyd,Wk,Lk); write('Округленные значения размеров канала [мкм]: Wн=',Wn:3:1); writeln(', Lн=',Ln:3:1,'; Wк=',Wk:3:1,', Lк=',Lk:3:1,';'); write('*** Пересчет параметров с учетом округленных '); writeln('значений ширины и длины канала ***'); Kn:=Kyd*Wn/Ln;Kk:=Kyd*Wk/Lk; write('Значения крутизн [мкB/A2]: '); writeln('Kн=',Kn*1e6:3:6,'; Kк=',Kk*1e6:3:6,';'); K:=Kn/Kk;writeln('Отношение крутизн Kн/Kк=',K:3:6); A:=(1+n)*(1+K); B:=2*(Uin-Unop0+K*(U3-Unop0)); C:=Up*K*(2*(U3-Unop0)-Up*(1+n)); writeln('Коэффициенты в квадратном уравнении для расчета Uo:'); writeln('A=',A:3:6,'; B=',B:3:6,'; C=',C:3:6,';'); Uv1:=(B-sqrt(sqr(B)-4*A*C))/(2*A); Uv2:=(B+sqrt(sqr(B)-4*A*C))/(2*A); if Uv1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15