Межсоединение 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))
Для просмотра документации необходимо авторизоваться на сайте