Main Content

MOS Interconnect and Crosstalk

This example shows how to build and simulate an RC tree circuit using the RF Toolbox™.

In "Asymptotic Waveform Evaluation for Timing Analysis" (IEEE Transactions on Computer-Aided Design, Vol., 9, No. 4, April 1990), Pillage and Rohrer presented and simulated an RC tree circuit that models signal integrity and crosstalk in low- to mid-frequency MOS circuit interconnect. This example confirms their simulations using RF Toolbox software.

Their circuit, reproduced in the following figure, consists of 11 resistors and 12 capacitors. In the paper, Pillage and Rohrer:

  • Apply a ramp voltage input

  • Compute transient responses

  • Plot the output voltages across two different capacitors,C7andC12.

interconnect_with_crosswalk_rfckt.png

Figure 1:An RC tree model of MOS interconnect with crosstalk.

With RF Toolbox, you can programmatically construct this circuit in MATLAB and perform signal integrity simulations.

This example shows:

  1. How to usecircuit,resistor, andcapacitorwith theaddfunction to programmatically construct the circuit.

  2. How to useclone,setports, andsparametersobjects to calculate S-parameters for each desired output over a wide frequency range.

  3. How to uses2tfwithZsource = 0andZload = Infto compute the voltage transfer function from input to each desired output.

  4. How to userationalfitfunction to produce rational-function approximations that capture the ideal RC-circuit behavior to a very high degree of accuracy.

  5. How to usetimerespfunction to compute the transient response to the input voltage waveform.

Insert Node Numbers Into Circuit Diagram

Before building the circuit usingresistorandcapacitorobjects, we must number the nodes of the circuit shown in figure 1.

interconnect_with_crosswalk_rfckt_nodes.png

Figure 2:The circuit drawn with node numbers

Programmatically Construct Circuit

创建一个circuitand use theaddfunction to populate the circuit with namedresistorandcapacitorobjects.

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'))

Simulation Setup

The input signal used by Pillage and Rohrer is a voltage ramp from 0 to 5 volts with a rise time of one nanosecond and a duration of ten nanoseconds. The following MATLAB code models this signal with 1000 timepoints with asampleTimeof 0.01 nanoseconds.

The following MATLAB code also uses thelogspacefunction to generate a vector of 101 logarithmically spaced analysis frequencies between 1 Hz and 100 GHz. Specifying a wide set of frequency points improves simulation accuracy.

sampleTime = 1 e-11;t = (0:1000) * sampleTime;input = [(0:100)'*(5/100); (101:1000)'*0+5]; freq = logspace(0,11,101)';

Calculate S-Parameters For Each 2-Port Network

To calculate the response across both theC7andC12capacitors, two separate S-parameter calculations must be made: first, assuming theC7capacitor represents the output port, and second, assuming theC12capacitor represents the output port. To calculate the S-parameters for each setup:

  1. Copy the original circuitcktusing theclonefunction.

  2. Define the input and output ports of the network using thesetportsfunction.

  3. 计算出的参数使用sparametersobject.

Calculate S-parameters withC7capacitor represents the output port.

cktC7 = clone(ckt); setports(cktC7,[1 0],[8 0]) S_C7 = sparameters(cktC7,freq);

Calculate S-parameters withC12capacitor represents the output port.

cktC12 = clone(ckt); setports(cktC12,[1 0],[9 0]) S_C12 = sparameters(cktC12,freq);

Simulate Each 2-Port Network

To simulate each network:

  1. Thes2tffunction, withoption = 2, computes the gain from the source voltage to the output voltage. It allows arbitrary source and load impedances, in this caseZsource = 0andZload = Inf. The resulting transfer functionstfC7andtfC12are frequency-dependent data vectors that can be fit with rational-function approximation.

  2. Therationalfitfunction generates high-accuracy rational-function approximations. The resulting approximations match the networks to machine accuracy.

  3. Thetimerespfunction computes the analytic solution to the state-space equations defined by a rational-function approximation. This methodology is fast enough to enable one to push a million bits through a channel.

SimulatecktC7circuit.

tfC7 = s2tf(S_C7,0,Inf,2); fitC7 = rationalfit(freq,tfC7); outputC7 = timeresp(fitC7,input,sampleTime);

SimulatecktC12circuit.

tfC12 = s2tf(S_C12,0,Inf,2); fitC12 = rationalfit(freq,tfC12); outputC12 = timeresp(fitC12,input,sampleTime);

Plot Transient Responses

The outputs match Figures 23 and 24 of the Pillage and Rohrer paper. Plot ramp response of low- to mid-frequency MOS circuit interconnect with crosstalk.

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 contains an axes object. The axes object with title Ramp Response of Low- to Mid-Frequency MOS Circuit Interconnect with Crosstalk, xlabel Time (sec), ylabel Voltage (volts) contains 2 objects of type line. These objects represent Vinput, V(C7).

Plot crosstalk in low- to mid-frequency MOS circuit interconnect with ramp input.

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')

Figure contains an axes object. The axes object with title Crosstalk in Low- to Mid-Frequency MOS Circuit Interconnect with Ramp Input, xlabel Time (sec), ylabel Voltage (volts) contains 2 objects of type line. These objects represent Vinput, V(C12).

Verify Rational Fit Outside Fit Range

Though not shown in this example, you can also use thefreqrespfunction to check the behavior ofrationalfitfunction well outside the specified frequency range. The fit outside the specified range can sometimes cause surprising behavior, especially if frequency data near 0 Hz (DC) is not provided.

To perform this check for the rational-function approximation in this example, uncomment and run the following MATLAB code.

% 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))

For example on how to build and simulate this RC tree circuit using RFCKT objects, seeMOS Interconnect and Crosstalk Using RFCKT Objects.

Related Topics

Baidu
map