Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Радиоэлектроника, компьютеры и периферийные устройства. /

Проектирование лог. ключа в n-МОП базисе с квазилинейной нагрузкой (МСХТ)

Документ 1 | Документ 2 | Документ 3 | Документ 4 | Документ 5 | Документ 6 | Документ 7 | Документ 8 | Документ 9 | Документ 10 | Документ 11 | Документ 12 | Документ 13 | Документ 14 | Документ 15 | Документ 16 | Документ 17 | Документ 18

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;

      writeln('Пороговое напряжение транзисторов Uпор0=',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))/((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<U0 then Uv:=Uv1 else Uv:=Uv2;

      write('Решения квадратного уравнения [В]: U''(1,2)=(');

      writeln(Uv1:3:3,',',Uv2:3:3,') < ',U0:3:3,' =>> 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<Uv2 then Uv:=Uv1 else Uv:=Uv2;

      writeln('Рассчитанное значение уровня лог. "0" Uo=',Uv:3:3,' В');

      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<Uv2 then Uv:=Uv1 else Uv:=Uv2;

      writeln('Перерассчитанное значение U''=',Uv:3:3,' В');

      I0:=Kk*(Uv*(2*(Uin-Unop0)-Uv*(1+n)));

      writeln('Заново рассчитанный MAX ток лог. "0" Io=',I0*1e6:3:6,' мкА');

      P:=Up*I0/2;

      write('Максимальная мощность потребления ЛЭ P=');

      writeln(P*1e3:3:6,' мВт');

end.


Copyright © 2005—2007 «RefStore.Ru»