В этом примере показано, как создать и моделировать схему дерева RC с помощью RF Toolbox™.
В «Asymptotic Waveform Evaluation for Timing Analysis» (IEEE Transactions on Computer-Aided Design, Vol., 9, No. 4, April 1990), Пиллаж и Рорер представили и моделировали схему дерева RRC, которая моделирует целостность сигнала и перекрестные помехи в схеме MMos Этот пример подтверждает их симуляции с использованием программного обеспечения RF Toolbox.
Их схема, воспроизведенная на следующем рисунке, состоит из 11 резисторов и 12 конденсаторов. В статье Пиллаж и Рорер:
Примените напряжение наклона входа
Вычисление переходных процессов
Постройте график выхода напряжений на двух разных конденсаторах, 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
объект, показанный на фигура. 2-портовые базовые блоки затем соединяются с помощью rfckt.cascade
объект, как показано фигура 6 или rfckt.series
объект, как показано на фигура.
Фигура 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});
Входной сигнал, используемый Пиллажем и Рорером, представляет собой усиление напряжения от 0 до 5 вольт со время нарастания одной наносекунды и длительностью десять наносекунд. Следующий код MATLAB моделирует этот сигнал с 1000 временными точками с 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)';
Чтобы симулировать каждую сеть:
The analyze
функция извлекает S-параметры в заданной частотной области значений.
The s2tf
функция, с option = 2
, вычисляет коэффициент усиления от входного напряжения до выхода напряжения. Это позволяет произвольные входные и нагрузочные сопротивления, в этом случае Zsource = 0
и Zload = Inf
. Получившиеся передаточные функции tfC7
и tfC12
являются частотно-зависимыми векторами данных, которые могут соответствовать рационально-функциональной аппроксимации.
The rationalfit
функция генерирует высокоточные рациональные функциональные приближения. Получившиеся приближения совпадают с точностью машины.
The 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 документа «Граф и Рорер». Постройте график линейной характеристики цепи MOS низкой и средней частоты, соединенной с перекрестными помехами.
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');
Постройте график перекрестных помех в схеме MOS с низкой или средней частотой, соединенной с входом клина.
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))