Этот пример показывает, как создать и моделировать схему дерева RC с помощью RF Toolbox.
В "Асимптотической Оценке Формы волны для Синхронизации Анализа" (Транзакции IEEE на Автоматизированном проектировании, Издании, 9, № 4, апрель 1990), Pillage и Rohrer представляют и моделируют схему дерева RC, которую соединяют целостность сигнала моделей и перекрестные помехи в низком - к среднечастотной МОП-схеме. Этот пример подтверждает их симуляции с помощью программного обеспечения RF Toolbox.
Их схема, воспроизведенная в следующей фигуре, состоит из 11 резисторов и 12 конденсаторов. В газете, Pillage и Rohrer:
Примените вход напряжения пандуса
Вычислите переходные ответы
Постройте выходные напряжения через два различных конденсатора, C7
и C12
.
Рисунок 1: модель дерева RC MOS соединяет с перекрестными помехами.
С программным обеспечением RF Toolbox можно программно создать эту схему в MATLAB и выполнить симуляции целостности сигнала.
Этот пример показывает:
Как использовать circuit
, resistor
, и capacitor
с add
функционирует, чтобы программно создать схему.
Как использовать clone
, setports
и sparameters
, чтобы вычислить S-параметры для каждого желаемого вывода по широкому частотному диапазону.
Как использовать s2tf
с Zsource = 0
и Zload = Inf
, чтобы вычислить передаточную функцию напряжения от входа до каждого желаемого вывода.
Как использовать rationalfit
, чтобы произвести приближения рациональной функции, которые получают идеальное поведение схемы RC в очень высокой степени точности.
Как использовать timeresp
, чтобы вычислить переходный ответ на форму волны входного напряжения.
Прежде, чем создать схему с помощью resistor
и объектов capacitor
, мы должны пронумеровать узлы схемы, показанной в фигуре 1.
Рисунок 2: схема чертится с числами узла
Создайте circuit
и используйте функцию add
, чтобы заполнить схему с именованным resistor
и объектами capacitor
.
ckt = circuit('crosstalk'); add(ckt,[2 1],resistor(10,'R1')) add(ckt,[2 0],capacitor(0.114e-12,'C1')) add(ckt,[3 2],resistor(72,'R2')) add(ckt,[3 0],capacitor(1.238e-12,'C2')) add(ckt,[4 3],resistor(34,'R3')) add(ckt,[4 0],capacitor(0.021e-12,'C3')) add(ckt,[5 4],resistor(96,'R4')) add(ckt,[5 0],capacitor(0.028e-12,'C4')) add(ckt,[6 5],resistor(72,'R5')) add(ckt,[6 0],capacitor(0.007e-12,'C5')) add(ckt,[7 6],resistor(10,'R6')) add(ckt,[7 0],capacitor(1.048e-12,'C6')) add(ckt,[8 7],resistor(120,'R7')) add(ckt,[8 0],capacitor(0.47e-12,'C7')) add(ckt,[12 8],resistor(24,'R8')) add(ckt,[12 0],capacitor(0.2e-12,'C8')) add(ckt,[10 2],resistor(48,'R9')) add(ckt,[10 0],capacitor(0.007e-12,'C9')) add(ckt,[11 10],resistor(24,'R10')) add(ckt,[11 0],capacitor(0.2e-12,'C10')) add(ckt,[9 8],capacitor(0.1e-12,'C11')) add(ckt,[9 0],resistor(1000,'R11')) add(ckt,[9 0],capacitor(1e-12,'C12'))
Входной сигнал, используемый 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)';
Чтобы вычислить ответ и через C7
и через конденсаторы C12
, два отдельных вычисления S-параметра должны быть сделаны: во-первых, принятие конденсатора C7
представляет выходной порт, и во-вторых, принимая, что конденсатор C12
представляет выходной порт. Вычислить S-параметры для каждой настройки:
Скопируйте исходную схему ckt
с помощью функции clone
.
Задайте порты ввода и вывода сети с помощью функции setports
.
Вычислите S-параметры с помощью функции sparameters
.
cktC7 = clone(ckt); setports(cktC7,[1 0],[8 0]) S_C7 = sparameters(cktC7,freq); cktC12 = clone(ckt); setports(cktC12,[1 0],[9 0]) S_C12 = sparameters(cktC12,freq);
Моделировать каждую сеть:
Функция s2tf
, с option = 2
, вычисляет усиление от исходного напряжения до выходного напряжения. Это позволяет произвольный источник и импедансы загрузки в этом случае Zsource = 0
и Zload = Inf
. Получившийся tfC7
передаточных функций и tfC12
являются зависимыми частотой векторами данных, которые могут быть подходящими с приближением рациональной функции.
Функция rationalfit
генерирует высокоточные приближения рациональной функции. Получившиеся приближения совпадают с сетями, чтобы обработать точность машинным способом.
Функция timeresp
вычисляет аналитическое решение уравнений пространства состояний, определенных приближением рациональной функции. Эта методология достаточно быстра, чтобы позволить той продвинуть миллион битов через канал.
tfC7 = s2tf(S_C7,0,Inf,2); fitC7 = rationalfit(freq,tfC7); outputC7 = timeresp(fitC7,input,sampleTime); tfC12 = s2tf(S_C12,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(freq,abs(tfC7),'+',widerFreqs,abs(respC7)) % respC12 = freqresp(fitC12,widerFreqs); % figure % loglog(freq,abs(tfC12),'+',widerFreqs,abs(respC12))
Для примера того, как создать и моделировать эту схему дерева RC с помощью объектов RFCKT, перейдите в: Межсоединение MOS и Перекрестные помехи Используя Объекты RFCKT.