В этом примере показано, как создать и моделировать схему дерева 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 и выполнить симуляции целостности сигнала.
Этот пример показывает:
Как использовать 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'))
Входной сигнал, используемый Пиллажем и Рорером, представляет собой усиление напряжения от 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)';
Чтобы вычислить ответ через оба 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);
Чтобы симулировать каждую сеть:
The s2tf
функция, с option = 2
, вычисляет коэффициент усиления от входного напряжения до выхода напряжения. Это позволяет произвольные входные и нагрузочные сопротивления, в этом случае Zsource = 0
и Zload = Inf
. Получившиеся передаточные функции tfC7
и tfC12
являются частотно-зависимыми векторами данных, которые могут соответствовать рационально-функциональной аппроксимации.
The rationalfit
функция генерирует высокоточные рациональные функциональные приближения. Получившиеся приближения совпадают с точностью машины.
The 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 документа «Граф и Рорер». Постройте клиновую характеристику цепи 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(freq,abs(tfC7),'+',widerFreqs,abs(respC7)) % respC12 = freqresp(fitC12,widerFreqs); % figure % loglog(freq,abs(tfC12),'+',widerFreqs,abs(respC12))
Для получения примера о том, как создать и симулировать эту древовидную схему RC с использованием объектов RFCKT, смотрите MOS Interconnect и Crossstalk с использованием объектов RFCKT.