SPICE (" Programa de simulación con énfasis en circuitos integrados ") [1] [2] es un simulador de circuitos electrónicos analógicos de código abierto y propósito general . Es un programa utilizado en el diseño de circuitos integrados y a nivel de placa para comprobar la integridad de los diseños de circuitos y predecir el comportamiento de los circuitos .
A diferencia de los diseños a nivel de placa compuestos de partes discretas, no es práctico montar circuitos integrados en placa antes de fabricarlos. Además, los altos costos de las máscaras fotolitográficas y otros requisitos previos de fabricación hacen que sea esencial diseñar el circuito para que sea lo más perfecto posible antes de construir el circuito integrado por primera vez.
La simulación del circuito con SPICE es la forma estándar de la industria de verificar el funcionamiento del circuito a nivel de transistor antes de comprometerse a fabricar un circuito integrado. Los simuladores SPICE ayudan a predecir el comportamiento del CI en diferentes condiciones de funcionamiento, como diferentes niveles de voltaje y corriente, variaciones de temperatura y ruido. [3]
Los diseños de circuitos a nivel de placa a menudo se pueden incluir en una placa de pruebas para realizar pruebas. Incluso con una placa de pruebas, algunas propiedades del circuito pueden no ser precisas en comparación con la placa de circuito impreso final, como las resistencias parásitas y las capacitancias , cuyos efectos a menudo se pueden estimar con mayor precisión mediante simulación. Además, los diseñadores pueden querer más información sobre el circuito de la que está disponible en una sola maqueta. Por ejemplo, el rendimiento del circuito se ve afectado por las tolerancias de fabricación de los componentes. En estos casos, es común utilizar SPICE para realizar simulaciones de Monte Carlo del efecto de las variaciones de los componentes en el rendimiento, una tarea que no es práctica si se utilizan cálculos a mano para un circuito de una complejidad apreciable.
Los programas de simulación de circuitos, de los cuales SPICE y sus derivados son los más destacados, toman una lista de conexiones de texto que describe los elementos del circuito ( transistores , resistencias , condensadores , etc.) y sus conexiones, y traducen [4] esta descripción en ecuaciones para ser resueltas. Las ecuaciones generales producidas son ecuaciones algebraicas diferenciales no lineales que se resuelven utilizando métodos de integración implícita , el método de Newton y técnicas de matriz dispersa .
SPICE fue desarrollado en el Laboratorio de Investigación Electrónica de la Universidad de California, Berkeley por Laurence Nagel con la dirección de su asesor de investigación, el profesor Donald Pederson . SPICE1 es en gran parte un derivado del programa CANCER, [5] en el que Nagel había trabajado con el profesor Ronald Rohrer. CANCER es un acrónimo de "Análisis informático de circuitos no lineales, excluyendo la radiación". [6] En esa época se desarrollaron muchos simuladores de circuitos bajo contratos con el Departamento de Defensa de los Estados Unidos que requerían la capacidad de evaluar la resistencia a la radiación de un circuito. Cuando el asesor original de Nagel, el profesor Rohrer, dejó Berkeley, el profesor Pederson se convirtió en su asesor. Pederson insistió en que CANCER, un programa propietario, se reescribiera lo suficiente para que se pudieran eliminar las restricciones y el programa pudiera ponerse en el dominio público . [7]
SPICE1 se presentó por primera vez en una conferencia en 1973. [1] SPICE1 está codificado en FORTRAN y para construir las ecuaciones del circuito utiliza análisis nodal , que tiene limitaciones en la representación de inductores, fuentes de voltaje flotante y las diversas formas de fuentes controladas. [8] SPICE1 tiene relativamente pocos elementos de circuito disponibles y utiliza un análisis transitorio de paso de tiempo fijo . La verdadera popularidad de SPICE comenzó con SPICE2 en 1975. [2] SPICE2, también codificado en FORTRAN, es un programa muy mejorado con más elementos de circuito, análisis transitorio de paso de tiempo variable utilizando el método trapezoidal ( método Adams-Moulton de segundo orden ) o el método de integración Gear (también conocido como BDF ), formulación de ecuaciones a través de análisis nodal modificado (evitando las limitaciones del análisis nodal), [9] y un innovador sistema de asignación de memoria basado en FORTRAN. [10] Ellis Cohen dirigió el desarrollo desde la versión 2B hasta el estándar industrial SPICE 2G6, la última versión de FORTRAN, lanzada en 1983. [11] [12] SPICE3 fue desarrollado por Thomas Quarles (con A. Richard Newton como asesor) en 1989. Está escrito en C , utiliza la misma sintaxis de lista de conexiones y agregó el trazado del sistema X Window . [13]
Como uno de los primeros programas de dominio público con código fuente disponible, [14] SPICE se distribuyó y utilizó ampliamente. Su ubicuidad llegó a ser tal que "hacer un circuito con SPICE" sigue siendo sinónimo de simulación de circuitos. [15] El código fuente de SPICE fue distribuido desde el principio por la UC Berkeley por un cargo simbólico (para cubrir el costo de la cinta magnética). La licencia originalmente incluía restricciones de distribución para países que no se consideraban amigos de los EE. UU., pero el código fuente está actualmente cubierto por la licencia BSD .
El nacimiento de SPICE fue nombrado un hito del IEEE en 2011; la entrada menciona que SPICE "evolucionó hasta convertirse en el simulador de circuitos integrados estándar a nivel mundial". [16] Nagel recibió el premio IEEE Donald O. Pederson de 2019 en circuitos de estado sólido por el desarrollo de SPICE. [17]
No se han publicado versiones más nuevas de Berkeley SPICE después de la versión 3f5 en 1993. [18] Desde entonces, las continuaciones académicas o de código abierto de SPICE incluyen: XSPICE, [19] desarrollado en Georgia Tech , que agregó "modelos de código" analógicos/digitales mixtos para simulación de comportamiento; CIDER [20] (anteriormente CODECS), desarrollado por UC Berkeley y la Universidad Estatal de Oregón, que agregó simulación de dispositivos semiconductores ; Ngspice , [21] [22] basado en SPICE 3f5; WRspice, [23] una reescritura en C++ del código spice3f5 original. Otros simuladores de código abierto no desarrollados por académicos son QUCS , QUCS-S, [24] Xyce, [25] y Qucsator.
Berkeley SPICE inspiró y sirvió como base para muchos otros programas de simulación de circuitos, en el ámbito académico, en la industria y en productos comerciales. La primera versión comercial de SPICE es ISPICE, [26] una versión interactiva en un servicio de tiempo compartido, National CSS . Las versiones comerciales más destacadas de SPICE incluyen HSPICE (originalmente comercializada por Ashawna y Kim Hailey de Meta Software, pero ahora propiedad de Synopsys ) y PSPICE (ahora propiedad de Cadence Design Systems ). La industria de circuitos integrados adoptó SPICE rápidamente, y hasta que las versiones comerciales estuvieron bien desarrolladas, muchas casas de diseño de circuitos integrados tenían versiones propietarias de SPICE. [27]
En la actualidad, algunos fabricantes de circuitos integrados, normalmente las empresas más grandes, tienen grupos que siguen desarrollando programas de simulación de circuitos basados en SPICE. Entre ellos se encuentran ADICE y LTspice en Analog Devices , QSPICE en Qorvo , MCSPICE, seguido de Mica en Freescale Semiconductor , ahora NXP Semiconductors , y TINA-TI [28] en Texas Instruments . Tanto LTspice como TINA-TI vienen con modelos de sus respectivas empresas. [29] [30] Otras empresas mantienen simuladores de circuitos internos que no se basan directamente en SPICE, entre ellas PowerSpice en IBM , TITAN en Infineon Technologies , Lynx en Intel Corporation y Pstar en NXP Semiconductors también. [31]
SPICE se hizo popular porque contenía los análisis y modelos necesarios para diseñar circuitos integrados de la época, y era lo suficientemente robusto y rápido como para ser práctico de usar. [32] Los precursores de SPICE a menudo tenían un solo propósito: el programa BIAS [33] , por ejemplo, hacía simulación de puntos de operación de circuitos de transistores bipolares; el programa SLIC [34] solo hacía análisis de señales pequeñas. SPICE combinaba soluciones de puntos de operación, análisis transitorios y varios análisis de señales pequeñas con los elementos de circuito y modelos de dispositivos necesarios para simular con éxito muchos circuitos.
SPICE2 incluye estos análisis:
Dado que SPICE se utiliza generalmente para modelar circuitos con elementos no lineales , los análisis de señales pequeñas están necesariamente precedidos por un cálculo del punto de reposo en el que se linealiza el circuito. SPICE2 también contiene código para otros análisis de señales pequeñas: análisis de sensibilidad , análisis de polos y ceros y análisis de distorsión de señales pequeñas . El análisis a varias temperaturas se realiza actualizando automáticamente los parámetros del modelo de semiconductores para la temperatura, lo que permite simular el circuito a temperaturas extremas.
Desde entonces, otros simuladores de circuitos han añadido muchos análisis más allá de los de SPICE2 para abordar los cambiantes requisitos de la industria. Se añadieron barridos paramétricos para analizar el rendimiento del circuito con tolerancias de fabricación o condiciones de funcionamiento cambiantes. Se añadieron cálculos de ganancia de bucle y estabilidad para circuitos analógicos. Se añadieron análisis de equilibrio armónico o de estado estable en el dominio del tiempo para el diseño de circuitos de RF y de condensadores conmutados. Sin embargo, todavía no ha surgido un simulador de circuitos de dominio público que contenga los análisis y las características modernas necesarias para convertirse en un sucesor en popularidad de SPICE. [32]
Es muy importante utilizar análisis apropiados con parámetros cuidadosamente seleccionados. Por ejemplo, la aplicación del análisis lineal a circuitos no lineales debe justificarse por separado. Además, la aplicación del análisis transitorio con parámetros de simulación predeterminados puede llevar a conclusiones cualitativamente erróneas sobre la dinámica del circuito. [35]
SPICE2 incluye muchos modelos compactos de dispositivos semiconductores : tres niveles de modelo MOSFET , un modelo bipolar combinado de Ebers-Moll y Gummel-Poon , un modelo JFET y un modelo para un diodo de unión . Además, tenía muchos otros elementos: resistencias, condensadores, inductores (incluidos los de acoplamiento ), fuentes de tensión y corriente independientes, líneas de transmisión ideales , componentes activos y fuentes controladas por tensión y corriente.
SPICE3 agregó modelos MOSFET más sofisticados, que eran necesarios debido a los avances en la tecnología de semiconductores. En particular, se agregó la familia de modelos BSIM , que también se desarrolló en UC Berkeley.
Los simuladores SPICE comerciales e industriales han añadido muchos otros modelos de dispositivos a medida que la tecnología avanzaba y los modelos anteriores se volvían inadecuados. Para intentar estandarizar estos modelos de modo que se pueda utilizar un conjunto de parámetros de modelo en diferentes simuladores, se formó un grupo de trabajo de la industria, el Compact Model Council [36] , para elegir, mantener y promover el uso de modelos estándar. Los modelos estándar actuales incluyen BSIM3, BSIM4, BSIMSOI, PSP, HICUM y MEXTRAM.
Spice puede utilizar modelos de dispositivos de PDK de fundición .
SPICE2 toma una lista de conexiones de texto como entrada y produce listados de impresoras de líneas como salida, lo que se adapta al entorno informático de 1975. Estos listados son columnas de números que corresponden a salidas calculadas (normalmente voltajes o corrientes) o "gráficos" de caracteres de impresoras de líneas . SPICE3 conserva la lista de conexiones para la descripción del circuito, pero permite que los análisis se controlen desde una interfaz de línea de comandos similar al shell C. SPICE3 también añadió gráficos X básicos , a medida que las estaciones de trabajo UNIX y de ingeniería se hicieron comunes.
Los proveedores y varios proyectos de software libre han añadido interfaces de captura esquemática a SPICE, lo que permite dibujar un diagrama esquemático del circuito y generar automáticamente la lista de conexiones y transferirla a varios backends de SPICE. Además, se han añadido interfaces gráficas de usuario para seleccionar las simulaciones que se van a realizar y manipular los vectores de salida de tensión y corriente. Además, se han añadido utilidades gráficas muy capaces para ver formas de onda y gráficos de dependencias paramétricas. Hay disponibles varias versiones gratuitas de estos programas ampliados.
Como SPICE generalmente resuelve ecuaciones algebraicas diferenciales no lineales, puede aplicarse para realizar simulaciones más allá del ámbito eléctrico.
Las simulaciones térmicas son las más destacadas , ya que los sistemas térmicos pueden describirse mediante elementos de circuitos concentrados que se asignan a los elementos electrónicos SPICE (capacidad térmica → capacitancia, conductancia/resistencia térmica → conductancia/resistencia, temperatura → voltaje, flujo de calor o calor generado → corriente [37] ). Como los sistemas térmicos y electrónicos están estrechamente vinculados por la disipación de potencia y los sistemas de refrigeración, la simulación electrotérmica actual cuenta con el apoyo de los fabricantes de dispositivos semiconductores que ofrecen modelos (transistores) con nodos eléctricos y térmicos. [38] Por lo tanto, se puede obtener la disipación de potencia eléctrica, lo que da como resultado el autocalentamiento que causa variaciones de parámetros, y la eficiencia del sistema de refrigeración en una sola ejecución de simulación.
SPICE puede simular perfectamente la parte electrónica de un motor, pero también describirá bien el modelo electromecánico del motor. Esto se consigue también mediante la asignación de elementos mecánicos a los eléctricos (par → tensión, velocidad angular → corriente, coeficiente de fricción viscosa → resistencia, momento de inercia → inductancia). [39] Por tanto, el modelo final consta únicamente de elementos de circuito agrupados compatibles con SPICE, pero durante la simulación se obtienen datos mecánicos junto con los eléctricos. [40]
El modelado electromagnético es accesible a un simulador SPICE a través del método PEEC (circuito equivalente de elementos parciales). [41] Se han mapeado las ecuaciones de Maxwell, se han modelado RLC, efecto pelicular, materiales dieléctricos o magnéticos y campos incidentes o radiados.
Sin embargo, a partir de 2019, SPICE no se puede utilizar para "simular fotónica y electrónica juntas en un simulador de circuito fotónico ", [42] y, por lo tanto, todavía no se considera un simulador de prueba para circuitos integrados fotónicos.
Se han modelado circuitos microfluídicos con SPICE [43] creando un FET neumático.
SPICE se ha aplicado para modelar la interfaz entre sistemas biológicos y electrónicos , por ejemplo, como herramienta de diseño para biología sintética y para la creación de prototipos virtuales de biosensores y laboratorios en chip. [44]
SPICE se ha aplicado en la investigación de operaciones para evaluar cadenas de suministro perturbadas . [45]