Межсоединение MOS и перекрестные помехи Используя объекты RFCKT

В этом примере показано, как создать и симулировать схему дерева RC с помощью RF Toolbox.

В "Асимптотической Оценке Формы волны для Синхронизации Анализа" (Транзакции IEEE на Автоматизированном проектировании, Издании, 9, № 4, апрель 1990), Pillage и Rohrer представляют и симулируют схему дерева RC, которую соединяют целостность сигнала моделей и перекрестные помехи в низком - к среднечастотной МОП-схеме. Этот пример подтверждает их симуляции с помощью программного обеспечения RF Toolbox.

Их схема, воспроизведенная в следующем рисунке, состоит из 11 резисторов и 12 конденсаторов. В газете, Pillage и Rohrer:

  • Примените вход напряжения пандуса

  • Вычислите переходные процессы

  • Постройте выходные напряжения через два различных конденсатора, C7 и C12.

Рисунок 1: модель дерева RC MOS соединяет с перекрестными помехами.

С программным обеспечением RF Toolbox можно программно создать эту схему в MATLAB и выполнить симуляции целостности сигнала.

Этот пример показывает:

  1. Как использовать rfckt.seriesrlc, rfckt.shuntrlc, rfckt.series, и rfckt.cascade программно создать схему как две различных сети, в зависимости от желаемого выхода.

  2. Как использовать analyze извлекать S-параметры для каждой сети с 2 портами по широкому частотному диапазону.

  3. Как использовать s2tf с Zsource = 0 и Zload = Inf вычислить передаточную функцию напряжения от входа до каждого желаемого выхода.

  4. Как использовать rationalfit произвести приближения рациональной функции, которые получают идеальное поведение схемы RC в очень высокой степени точности.

  5. Как использовать timeresp вычислить переходный процесс к форме волны входного напряжения.

Перерисуйте схему как отличные сети с 2 портами

Чтобы скопировать оба выходных графика, программное обеспечение RF Toolbox вычисляет выходное напряжение через C7 и C12. С этой целью схема должна быть выражена как две отличных сети с 2 портами, каждый с соответствующим конденсатором при выходе. Рисунок 2 показывает 2 конфигурации порта для вычисления напряжения через C7. Рисунок 3 показывает настройку для C12. И сети с 2 портами сохраняют исходную топологию схемы и совместно используют большую часть той же структуры.

Рисунок 2: схема, чертившая как сеть с 2 портами с выходом через C7.

Рисунок 3: схема, чертившая как сеть с 2 портами с выходом через C12.

Используя базовые блоки RLC

Все базовые блоки формируются путем выбора соответствующих значений с rfckt.shuntrlc функция показана в рисунке 4 или rfckt.seriesrlc функция показана в рисунке 5. Базовые блоки с 2 портами затем соединяются с помощью rfckt.cascade как показано в рисунке 6 или rfckt.series как показано в рисунке 7.

Рисунок 4: сеть с 2 портами создается rfckt.shuntrlc функция.

Рисунок 5: сеть с 2 портами создается rfckt.seriesrlc функция.

Рисунок 6: Соединение сетей с 2 портами с rfckt.cascade функция.

Рисунок 7: Соединение сетей с 2 портами с rfckt.series функция.

Разделяемые части сетей с 2 портами

Следующий код MATLAB создает фрагмент сети, совместно использованной этими двумя вариантами.

R1 = rfckt.seriesrlc('R',10);
C1 = rfckt.shuntrlc('C',0.114e-12);
R9 = rfckt.shuntrlc('R',48);
C9 = rfckt.shuntrlc('C',0.007e-12);
R10 = rfckt.shuntrlc('R',24);
C10 = rfckt.shuntrlc('C',0.2e-12);
R10C10 = rfckt.series('Ckts',{R10,C10});
C9R10C10 = rfckt.cascade('Ckts',{C9,R10C10});
R9C9R10C10 = rfckt.series('Ckts',{R9,C9R10C10});
R2 = rfckt.seriesrlc('R',72);
C2 = rfckt.shuntrlc('C',1.238e-12);
R3 = rfckt.seriesrlc('R',34);
C3 = rfckt.shuntrlc('C',0.021e-12);
R4 = rfckt.seriesrlc('R',96);
C4 = rfckt.shuntrlc('C',0.028e-12);
R5 = rfckt.seriesrlc('R',72);
C5 = rfckt.shuntrlc('C',0.007e-12);
R6 = rfckt.seriesrlc('R',10);
C6 = rfckt.shuntrlc('C',1.048e-12);
R7 = rfckt.seriesrlc('R',120);
R8 = rfckt.shuntrlc('R',24);
C8 = rfckt.shuntrlc('C',0.2e-12);
R8C8 = rfckt.series('Ckts',{R8,C8});
sharedckt = rfckt.cascade('Ckts', ...
    {R1,C1,R9C9R10C10,R2,C2,R3,C3,R4,C4,R5,C5,R6,C6,R7,R8C8});

% Additional shared building blocks used in both 2-port networks.
C7 = rfckt.shuntrlc('C',0.47e-12);
R11C12 = rfckt.shuntrlc('R',1000,'C',1e-12);

Создайте каждую сеть с 2 портами

Рисунок 2 показывает что, создавая сеть с 2 портами с выходным портом через C7 требует создания C11 использование rfckt.shuntrlc, затем объединение C11 с R11 и C12 использование rfckt.series, и наконец объединение C11R11C12 с остальной частью сети и C7 использование rfckt.cascade.

Точно так же рисунок 3 показывает что, создавая сеть с 2 портами с выходным портом через C12 требует создания другой версии C11 (C11b) использование rfckt.seriesrlc и объединение всех частей вместе с помощью rfckt.cascade.

C11 = rfckt.shuntrlc('C',0.1e-12);
C11R11C12 = rfckt.series('Ckts',{C11,R11C12});
cktC7 = rfckt.cascade('Ckts',{sharedckt,C11R11C12,C7});

C11b = rfckt.seriesrlc('C',0.1e-12);
cktC12 = rfckt.cascade('Ckts',{sharedckt,C7,C11b,R11C12});

Setup симуляции

Входной сигнал, используемый Pillage и Rohrer, является изменением напряжения от 0 до 5 вольт со временем нарастания одной наносекунды и длительностью десяти наносекунд. Следующий код MATLAB моделирует этот сигнал с 1 000 моментов времени с sampleTime из 0,01 наносекунд.

Следующий код MATLAB также использует logspace функция, чтобы сгенерировать вектор 101 логарифмически расположенной с интервалами аналитической частоты между 1 Гц и 100 ГГц. Определение широкого набора точек частоты улучшает точность симуляции.

sampleTime = 1e-11;
t = (0:1000)'*sampleTime;
input = [(0:100)'*(5/100); (101:1000)'*0+5];

freq = logspace(0,11,101)';

Симулируйте каждую сеть с 2 портами

Симулировать каждую сеть:

  1. analyze функционируйте извлекает S-параметры по заданному частотному диапазону.

  2. s2tf функция, с option = 2, вычисляет усиление от исходного напряжения до выходного напряжения. Это позволяет произвольный источник и импедансы загрузки в этом случае Zsource = 0 и Zload = Inf. Получившиеся передаточные функции tfC7 и tfC12 зависимые частотой векторы данных, которые могут быть подходящими приближением рациональной функции.

  3. rationalfit функция генерирует высокоточные приближения рациональной функции. Получившиеся приближения совпадают с сетями, чтобы обработать точность машинным способом.

  4. timeresp функция вычисляет аналитическое решение уравнений пространства состояний, определенных приближением рациональной функции. Эта методология достаточно быстра, чтобы позволить той продвинуть миллион битов через канал.

analyze(cktC7,freq);
sparamsC7 = cktC7.AnalyzedResult.S_Parameters;
tfC7 = s2tf(sparamsC7,50,0,Inf,2);
fitC7 = rationalfit(freq,tfC7);
outputC7 = timeresp(fitC7,input,sampleTime);

analyze(cktC12,freq);
sparamsC12 = cktC12.AnalyzedResult.S_Parameters;
tfC12 = s2tf(sparamsC12,50,0,Inf,2);
fitC12 = rationalfit(freq,tfC12);
outputC12 = timeresp(fitC12,input,sampleTime);

Постройте переходные процессы

Выходные параметры совпадают с рисунками 23 и 24 газеты Pillage и Rohrer.

figure
plot(t,input,t,outputC7,'LineWidth',2)
axis([0 2.5e-9 0 5.5])
title('Ramp Response of Low- to Mid-frequency MOS Circuit Interconnect with Crosstalk')
xlabel('Time (sec)')
ylabel('Voltage (volts)')
legend('Vinput','V(C7)','Location','NorthWest')

figure
plot(t,input,t,outputC12,'LineWidth',2)
axis([0 5e-9 0 .5])
title('Crosstalk in Low- to Mid-frequency MOS Circuit Interconnect with Ramp Input')
xlabel('Time (sec)')
ylabel('Voltage (volts)')
legend('Vinput','V(C12)','Location','NorthEast')

Проверьте рациональную подгонку вне подходящей области значений

Хотя не показанный в этом примере, можно также использовать freqresp функционируйте, чтобы проверять поведение rationalfit хорошо вне заданного частотного диапазона. Подгонка вне заданной области может иногда вызывать удивительное поведение, особенно если данные о частоте около 0 Гц (DC) не были обеспечены.

Чтобы выполнить эту проверку для приближения рациональной функции в этом примере, не прокомментируйте и запустить следующий код MATLAB.

% widerFreqs = logspace(0,12,1001);
% respC7 = freqresp(fitC7,widerFreqs);
% figure
% loglog(freqs,abs(tfC7),'+',widerFreqs,abs(respC7))
% respC12 = freqresp(fitC12,widerFreqs);
% figure
% loglog(freqs,abs(tfC12),'+',widerFreqs,abs(respC12))