Simulation of a transmission line

Hi, everybody.
I ask for help in modeling the transmission line. I made a simple model using a transmission line. The line is matched on the transmitter side and on the receiver side. The voltage waveform on the receiver has mysterious voltage spikes. Can you tell me what the error might be?


I don’t think if I know the answer, but I guess if you zoom in to it, you may help others to answer

A transmission line is a device where timestep is crucial, as it essentially functions as a delay element. Adding .option maxstep=50p in this case can help prevent glitches in the computation results in your case.

Remark: Your test signal is a pulse with 500ps rise and fall times. I suggest setting the maxstep value at least 10 times less than this. If you reduce the rise and fall times, you will need to reduce the value of maxstep too.

I just recall a special trick… you can add a 1pF capacitor in parallel to input voltage source. This capacitor will alter the timestep during rising and falling as simulation has to calculate its charging and discharging current. Now, the timestep during rising and falling can automatically modified.

Anyway, the key is that, you need to ensure there is enough timestep around rise and fall event.

For example, this is what the voltage waveform looks like at 580 ns.

This is the result of having .option maxstep=50p
Are you still having that glitch waveform?

Tline.qsch (4.0 KB)

By decreasing timestep, the amount of voltage spike decreases.


The circuit with the added capacitor works best of all.

Thanks for your help, KSKelvin!

Great! Just remember, analog delay elements can give you weird thing if timestep is not set properly. Transmission line and B-source delay() function are two things that need to be pay particular attention.

Delay represents storing past data for present computation throughout entire simulation. In dynamic timestep (SPICE simulation), look into the past and that exact time may requires interpolation, and that why computation give error. Smaller timestep give you better charge of having a correct interpolated results at that exact delay time.