# How do I reduce the rise and fall time to ideal case of 0 in my LTSpice model?

Working with basic circuit with pulsed voltage yields a rise and fall time or 0.5ns. My maximum time step is 1ps. With no delay , rise or fall times assigned. ( default assigned to zero) .

How do I reduce the rise and fall time to ideal case of 0 in my LTSpice model ?

What are the minimum limits in LTSpice rise and fall times if it cannot be 0(zero) ?

In this example simulation I changed my simulation parameters to picoseconds range. Even then there is a rise and fall time of 0.05ps.

At a higher range the same happens. In the attachment simulation in the range of seconds is shown. Is there a setting that I need to change in LTSpice ?

• Memory serving, when you use exact "0" LTSpice considers that permission to use 5% up and 5% down. I think that's in the docs.
– jonk
Commented Jun 23, 2017 at 20:24
• LTSpice is an industry standard and designed for use in the real world. It's not an educational program. In the real world, 0s rise and fall times are impossible. All electronics are fundamentally analogue. I'm not even sure that the numerical solution underlying a transient analysis would converge to anything sensible. Commented Jun 23, 2017 at 20:36
• – jonk
Commented Jun 23, 2017 at 20:47

Rise & fall times can't be truly zero due to the way that SPICE works. A "zero" risetime by definition will have an infinite dV/dt. This doesn't make sense from the perspective of the solver, which in the case of LTSpice is a modified trapezoidal method. The tightest risetime you can muster will be the smallest timestep you use (dt).

This is OK, since in the real world risetimes aren't zero either. Even incredibly high speed digital communications buses will have rise times in the range of tens of picoseconds, and most practical signals the average EE deals with will be in the single or double digit nanosecond range.

For practical purposes, you shouldn't worry too much about sharp risetimes in SPICE. It can actually be detrimental, since it will (1) slow down your solver by requiring a tighter timestep, and (2) may introduce numerical instability. If I want a sharp risetime, I'll usually set the risetime on pulse trains to two or three orders of magnitude less than the period of the pulse, and then forget about it.

For more information on how LTSpice works internally, Mike Engelhardt (author of LTSpice) has a great blog entry: http://www.linear.com/solutions/5739.

EDIT: jonk in the comments above pointed out this very useful LTWiki link describing the default behaviour when zero risetime is specified: http://ltwiki.org/index.php5?title=Most_frequently_asked_questions_for_beginners#I_have_a_pulse_source_in_my_schematic_with_zero_transition_times..C2.A0_LTspice_only_shows_slow_transition_times_of_2ns..C2.A0_What.27s_going_on_here.3F.

• Thanks for the good catch with Mike's entry, too. +1 Nice. (I think including the link to the LTwiki about the default rise/fall may also help by capturing the fact in an answer instead of a comment. But that's just me.)
– jonk
Commented Jun 23, 2017 at 21:13
• @jonk: good call, I've added the link to my answer. Commented Jun 23, 2017 at 23:13

The numerical solver used in all flavours of SPICE, not just LTSPICE, assumes a finite risetime. In the real world, this is not a problem, as all phenomena have finite risetimes.

You can use arithmetic to solve it in the exact case of zero risetime, or calculus if it has capacitors or inductors in it, but then you'll be solving it outside a simulator.