В этом примере показано, как создать и симулировать схему дерева RC с помощью RF Toolbox™.
В "Асимптотической Оценке Формы волны для Синхронизации Анализа" (Транзакции IEEE на Автоматизированном проектировании, Издании, 9, № 4, апрель 1990), Pillage и Rohrer представили и симулировали схему дерева RC, которую соединяют целостность сигнала моделей и перекрестные помехи в низком - к среднечастотной МОП-схеме. Этот пример подтверждает их симуляции с помощью программного обеспечения RF Toolbox.
Их схема, воспроизведенная в следующем рисунке, состоит из 11 резисторов и 12 конденсаторов. В газете, Pillage и Rohrer:
Примените вход напряжения пандуса
Вычислите переходные процессы
Постройте выходные напряжения через два различных конденсатора, C7
и C12
.
Рисунок 1: модель дерева RC MOS соединяет с перекрестными помехами.
С программным обеспечением RF Toolbox можно программно создать эту схему в MATLAB и выполнить симуляции целостности сигнала.
Этот пример показывает:
Как использовать rfckt.seriesrlc
, rfckt.shuntrlc
, rfckt.series
, и rfckt.cascade
возразите, чтобы программно создать схему как две различных сети, в зависимости от желаемого выхода.
Как использовать analyze
функционируйте, чтобы извлечь S-параметры для каждой сети с 2 портами по широкому частотному диапазону.
Как использовать s2tf
функция с Zsource = 0
и Zload = Inf
вычислить передаточную функцию напряжения от входа до каждого желаемого выхода.
Как использовать rationalfit
функционируйте, чтобы произвести приближения рациональной функции, которые получают идеальное поведение схемы RC в очень высокой степени точности.
Как использовать timeresp
функция, чтобы вычислить переходный процесс к форме волны входного напряжения.
Чтобы скопировать оба выходных графика, RF Toolbox вычисляет выходное напряжение через C7
и C12
. С этой целью схема должна быть описана как две отличных сети с 2 портами, каждый с соответствующим конденсатором при выходе. Рисунок 2 показывает 2 конфигурации порта для вычисления напряжения через C7
. Рисунок 3 показывает настройку для C12
. И сети с 2 портами сохраняют исходную топологию схемы и совместно используют большую часть той же структуры.
Рисунок 2: схема, чертившая как сеть с 2 портами с выходом через C7
.
Рисунок 3: схема, чертившая как сеть с 2 портами с выходом через C12
.
Все базовые блоки формируются путем выбора соответствующих значений с 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
объект.
Следующий код 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 портами с выходным портом через C7
требует создания C11
использование rfckt.shuntrlc
объект, затем комбинируя C11
с R11
и C12
использование rfckt.series
объект, и наконец объединяющийся C11R11C12
с остальной частью сети и C7
использование rfckt.cascade
объект.
Точно так же рисунок 3 показывает что, создавая сеть с 2 портами с выходным портом через C12
требует создания другой версии C11
(C11b
) использование rfckt.seriesrlc
возразите и комбинирующий все части вместе с помощью rfckt.cascade
объект.
Создайте шунт схема RLC.
C11 = rfckt.shuntrlc('C',0.1e-12); C11R11C12 = rfckt.series('Ckts',{C11,R11C12}); cktC7 = rfckt.cascade('Ckts',{sharedckt,C11R11C12,C7});
Создайте схему серии RLC.
C11b = rfckt.seriesrlc('C',0.1e-12); cktC12 = rfckt.cascade('Ckts',{sharedckt,C7,C11b,R11C12});
Входной сигнал, используемый 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)';
Симулировать каждую сеть:
analyze
функционируйте извлекает S-параметры по заданному частотному диапазону.
s2tf
функция, с option = 2
, вычисляет усиление от исходного напряжения до выходного напряжения. Это позволяет произвольный источник и импедансы загрузки в этом случае Zsource = 0
и Zload = Inf
. Получившиеся передаточные функции tfC7
и tfC12
зависимые частотой векторы данных, которые могут быть подходящими приближением рациональной функции.
rationalfit
функция генерирует высокоточные приближения рациональной функции. Получившиеся приближения совпадают с сетями, чтобы обработать точность машинным способом.
timeresp
функция вычисляет аналитическое решение уравнений пространства состояний, определенных приближением рациональной функции. Эта методология достаточно быстра, чтобы позволить той продвинуть миллион битов через канал.
Симулируйте cktC7
схема.
analyze(cktC7,freq); sparamsC7 = cktC7.AnalyzedResult.S_Parameters; tfC7 = s2tf(sparamsC7,50,0,Inf,2); fitC7 = rationalfit(freq,tfC7); outputC7 = timeresp(fitC7,input,sampleTime);
Симулируйте cktC12
схема.
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))