В этом примере показано, как создать и симулировать схему дерева 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
объект.
Вычислите S-параметры с C7
конденсатор представляет выходной порт.
cktC7 = clone(ckt); setports(cktC7,[1 0],[8 0]) S_C7 = sparameters(cktC7,freq);
Вычислите S-параметры с C12
конденсатор представляет выходной порт.
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
функция вычисляет аналитическое решение уравнений пространства состояний, определенных приближением рациональной функции. Эта методология достаточно быстра, чтобы позволить той продвинуть миллион битов через канал.
Симулируйте cktC7
схема.
tfC7 = s2tf(S_C7,0,Inf,2); fitC7 = rationalfit(freq,tfC7); outputC7 = timeresp(fitC7,input,sampleTime);
Симулируйте cktC12
схема.
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.