Simulation of real-world systems generally requires quantisation in time and spatial domains.
There are two main forms of simulation modelling:
It is rarely used in SoC design (just for low-level electrical propagation and cross-talk modelling).
Finite-element difference equations: tnow += deltaT; for (n in ...) i[n] = (v[n-1]-v[n])/R; for (n in ...) v[n] += (i[n]-i[n+1])*deltaT/C;Basic finite-element simulation uses fixed spatial grid (element size is deltaL) and fixed time step (deltaT seconds).
Each grid point holds a vector of instantatious local properties, such as voltage, temperature, stress, pressure, magnetic flux.
Physical quantities are divided over the grid. Three examples:
Larger modelling errors with larger deltaT and deltaL, but faster simulation. Keep them less than 1/10th wavelength for good accuracy. Generally use a 2D or 3D grid for fluid modelling: 1D ok for electronics.
Typically want to model both resistance and inductance for electrical system.
When modelling inductance instead of resistance, then need a `+=' in the i[n] equation.
When non-linear components are present (e.g. diodes and FETs), SPICE simulator adjusts deltaT dynamically depending on point in the curve.