# SPICE

SPICE es un acrónimo inglés de Simulation Program with Integrated Circuits Emphasis (Programa de simulación con énfasis en circuitos integrados). Fue desarrollado por la Universidad de California, Berkeley en 1973 por Donald O. Pederson y Laurence W. Nagel.
Es un estándar internacional cuyo objetivo es simular circuitos electrónicos analógicos compuestos por resistencias, condensadores, diodos, transistores, etc. Para ello hay que describir los componentes, describir el circuito y luego elegir el tipo de simulación (temporal, en frecuencia, en continua, paramétrico, Montecarlo, etc.).

## Historia

SPICE fue desarrollado en el laboratorio de investigación electrónica (Electronics Research Laboratory) de la Universidad de California, Berkeley, por Larry Nagel bajo la dirección de su asesor de investigación Donald Pederson. La primera versión de SPICE, se desarrolló sobre las premisas establecidas por las herramientas BIAS, CANCER (Computer Analysis of Nonlinear Circuits), TIME y SLIC (Simulator for Linear Integrated Circuits) creadas por el mismo laboratorio durante principios de los años 70.
Hasta ese momento varios simuladores de circuitos eléctricos habían sido desarrollados por el departamento de defensa de los Estados Unidos, entidad que requería evaluar la radiación de un circuito. Cuando el director original del proyecto, el profesor Rohrer, abandonó Berkeley, el profesor Pederson tomó el puesto de director. Este nuevo director consiguió que el programa fuera reescrito desde su antecesor CANCER, el cual era un programa con licencia privativa, para poder poner esta nueva versión del programa bajo dominio público.
SPICE1 tuvo su primera presentación en una conferencia de 1973. Fue programado en FORTRAN y usaba la técnica de análisis de nodos para construir el sistema de ecuaciones del circuito. Esta técnica de análisis tenía inconvenientes al representar inductancias, fuentes de tensión sin referencia y fuentes controladas. Esta versión del programa contaba con pocos elementos; usaba un paso fijo para los análisis transitorios.
En el año 1975 apareció la versión SPICE2, con la cual se popularizó su uso. Esta versión del programa también estaba compilada en FORTRAN, tenía más elementos, análisis transitorio con paso variable, usaba las técnicas de integración trapezoidal o integración de Gear, conseguía las ecuaciones de los circuitos por una técnica modificada del tradicional análisis de nodos, la que permitía resolver los inconvenientes de su versión anterior y usaba una innovación del programa FORTRAN que permitía controlar la memoria. Este último adelanto fue desarrollado por el estudiante de posgrado Ellis Coheb.
La última versión de SPICE en FORTRAN fue la versión 2G.6 en 1983. La siguiente versión, SPICE3, fue desarrollada en lenguaje C por Thomas Quarless y como director A. Richard en el año de 1989. La versión SPICE3 usaba la misma sintaxis que sus antecesoras y tenía una interfaz gráfica X Window.
Como un programa de código abierto, SPICE fue ampliamente usado. El código de SPICE fue distribuido desde sus comienzos bajo un costo por la Universidad de Berkeley, el cual retribuía el costo de las cintas magnéticas. El programa tenía la restricción de no poderse distribuir en países que no eran considerados amigos por los Estados Unidos. Actualmente el programa está cubierto por la licencia BSD.
SPICE promovió y sirvió de base para otros programas de simulación en las universidades y la industria. La primera versión comercial del SPICE fue ISPICE. La versión comercial más destacada de SPICE incluía HSPICE y PSPICE. Las versiones académicas de SPICE incluían XSPICE, desarrollada en el Instituto Tecnológico de Georgia, versión en la que se agregaron códigos de análisis analógicos y digitales y Cider, que permitía simular dispositivos semiconductores.

## Características del programa
### Análisis

SPICE realiza los siguiente tipos de análisis:
* DC - Función de transferencia.
* AC - Respuesta en frecuencia de circuito.
* Transitorio - Evolución del circuito en el tiempo.
Dependiendo del software utilizado y versión del mismo, se encuentran implementados análisis avanzados, que pueden ir desde un sencillo cálculo de respuesta en frecuencia, hasta la simulación de diseños de radio frecuencia y análisis térmico, entre ellos:
* Punto operativo CD
* Análisis de CA
* Análisis de CA de Frecuencia Única
* Análisis de Transitorio
* Análisis de Fourier
* Análisis de Ruido
* Análisis de Figura de Ruido
* Análisis de Distorsión
* Análisis de CD
* Análisis de Peor-caso.
* Comportamiento de Monte Carlo
* Sensibilidad
* Barrido de Parámetro
* Barrido de Temperatura

### Dispositivos y componentes
#### Resistencias

El modelo de resistencias en SPICE corresponde al modelo clásico de la teoría de circuitos, más el modelo de variación del valor de este dispositivo por efecto de la temperatura.

#### Inductancias mutuas

Si por una bobina fluye una corriente que varía en el tiempo, se produce un flujo magnético y por ende un voltaje en esta. Si acercamos otra bobina observamos que las líneas de flujo inciden de manera que recíprocamente en esta se induce un voltaje y si existe trayectoria posible, también existirá una corriente. El voltaje que se induce en la segunda bobina es proporcional al cambio de la corriente de la primera bobina.

#### Condensadores

Es un dispositivo con la capacidad de acumular cargas eléctricas dentro de si, muy utilizado en circuitos.

#### Líneas de transmisión (parámetros distribuidos)
### Ejemplos

La forma de modelar una señal cuadrada es Vnodo Nodo 0 PULSE (V1 V2 TD TR TF PW PER) con:
* V1: Valor inicial
* V2: Valor final
* TD: Latencia inicial del pulso
* TR: Tiempo de subida
* TF: Tiempo de bajada.
* PW: Ancho del pulso
* PER: Periodo del pulso.
Una de las formas de modelar un transistor MOS es MNúmero nD nG nS nB tipo W= L= PD= AD= PS= AS= con:
* Mnúmero: identifica al transistor
* nD: número nodo drenador
* nG: número nodo puerta
* nS: número nodo surtidor
* nB: número nodo substrato
* tipo: NMOS / PMOS
* W: anchura del canal
* L: longitud del canal
* PD / PS: perímetros del drenador / surtidor
* AD / AS: área del drenador / surtidor
Uniendo varios de estos dispositivos por medio de los nodos se describe el circuito completo que luego será empleado para la simulación.

## Programas para ordenador
### Software no libre

* PSpice/OrCAD
* HSpice (para estaciones de trabajo)
* MicroCad
* Dr. Spice
* Proteus Design Suite
* Intusoft
* Spice-It!
* SIMetrix Intro
* TopSPICE
* Spice Opus
* LTSPICE (freeware)
* Mentor Graphics
* Tina Pro
* Multisim
* Altium Designer

### Software libre

* ASCO tool
* gEDA
* Gnucap Gnucap es GNU Circuit Analysis Package
* MacSpice
* NG-spice (next generation spice)
* Oregano Implementa ngspice.
* Qucs
* TclSpice
* Spice OPUS