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 de uso general . Es un programa utilizado en circuitos integrados y diseño a nivel de placa para verificar 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 por piezas discretas, no es práctico realizar una placa de circuitos integrados antes de su fabricación. 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.
Simular el 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 bajo diferentes condiciones operativas, 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 integrar en una placa para realizar pruebas. Incluso con una placa de pruebas, algunas propiedades del circuito pueden no ser precisas en comparación con la placa de cableado impresa final, como las resistencias y capacitancias parásitas , cuyos efectos a menudo se pueden estimar con mayor precisión mediante la simulación. Además, es posible que los diseñadores quieran obtener 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 Monte Carlo del efecto de las variaciones de los componentes en el rendimiento, una tarea que no resulta práctica utilizando cálculos manuales para un circuito de 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 texto que describe los elementos del circuito ( transistores , resistencias , condensadores , etc.) y sus conexiones, y traducen [4] esta descripción en ecuaciones a resolver. 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 matrices dispersas .
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 Prof. Donald Pederson . SPICE1 es en gran medida un derivado del programa CANCER, [5] en el que Nagel había trabajado con el profesor Ronald Rohrer. CÁNCER es un acrónimo de "Análisis por computadora de circuitos no lineales, excluyendo la radiación", una alusión al liberalismo de Berkeley en la década de 1960: [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 dureza 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 como para poder eliminar las restricciones y poner el programa 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 flotantes 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 usando el trapezoidal ( método Adams-Moulton de segundo orden ) o el Método de integración de engranajes (también conocido como BDF ), formulación de ecuaciones mediante 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 netlist y agregó el trazado del sistema X Window . [13]
Como uno de los primeros programas de software de dominio público con código fuente disponible, [14] SPICE se distribuyó y utilizó ampliamente. Su ubicuidad llegó a ser tal que "darle sabor a un circuito" sigue siendo sinónimo de simulación de circuitos. [15] El código fuente de SPICE fue distribuido desde el principio por UC Berkeley por un cargo nominal (para cubrir el costo de la cinta magnética). La licencia originalmente incluía restricciones de distribución para países no considerados amigables con los EE. UU., pero el código fuente actualmente está cubierto por la licencia BSD .
El nacimiento de SPICE fue nombrado hito del IEEE en 2011; la entrada menciona que SPICE "evolucionó hasta convertirse en el simulador de circuito integrado estándar mundial". [16] Nagel recibió el premio IEEE Donald O. Pederson 2019 en circuitos de estado sólido por el desarrollo de SPICE. [17]
No se han lanzado 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ó "código" mixto analógico/digital. "modelos" para simulación de comportamiento; CIDER [20] (anteriormente CODECS), desarrollado por UC Berkeley y Oregon State University, que agregó simulación de dispositivos semiconductores ; Ngspice , [21] [22] basado en SPICE 3f5; WRspice, [23] una reescritura en C++ del código original de Spice3f5. 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ó de base para muchos otros programas de simulación de circuitos en el mundo académico, industrial y comercial. La primera versión comercial de SPICE es ISPICE, [26] una versión interactiva de un servicio de tiempo compartido, National CSS . Las versiones comerciales más destacadas de SPICE incluyen HSPICE (comercializada originalmente por Ashawna y Kim Hailey de Meta Software, pero ahora propiedad de Synopsys ) y PSPICE (ahora propiedad de Cadence Design Systems ). La industria de los circuitos integrados adoptó SPICE rápidamente y, hasta que las versiones comerciales se desarrollaron bien, muchas casas de diseño de circuitos integrados tenían versiones propietarias de SPICE. [27]
Hoy en día, unos pocos fabricantes de circuitos integrados, generalmente las empresas más grandes, tienen grupos que continúan desarrollando programas de simulación de circuitos basados en SPICE. Entre ellos se encuentran ADICE y LTspice en Analog Devices , QSPICE en Qorvo , MCSPICE, seguidos por 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 ellos PowerSpice de IBM , TITAN de Infineon Technologies , Lynx de Intel Corporation y Pstar de 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 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, simulaba puntos de funcionamiento de circuitos de transistores bipolares; el programa SLIC [34] sólo realizó análisis de pequeñas señales. SPICE combinó soluciones de puntos operativos, 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 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 el circuito se linealiza. SPICE2 también contiene código para otros análisis de señales pequeñas: análisis de sensibilidad , análisis de polo cero 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 en temperaturas extremas.
Desde entonces, otros simuladores de circuitos han agregado muchos análisis más allá de los de SPICE2 para abordar los requisitos cambiantes de la industria. Se agregaron barridos paramétricos para analizar el rendimiento del circuito con tolerancias de fabricación o condiciones operativas cambiantes. Se agregaron cálculos de estabilidad y ganancia de bucle para circuitos analógicos. Se agregaron análisis de equilibrio armónico o de estado estacionario en el dominio del tiempo para el diseño de circuitos de condensadores conmutados y de RF. Sin embargo, aún no ha surgido un simulador de circuito de dominio público que contenga los análisis y características modernos necesarios para convertirse en un sucesor en popularidad de SPICE. [32]
Es muy importante utilizar análisis adecuados con parámetros cuidadosamente elegidos. Por ejemplo, la aplicación del análisis lineal a circuitos no lineales debería 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, contaba con muchos otros elementos: resistencias, condensadores, inductores (incluido el acoplamiento ), fuentes independientes de tensión y corriente, líneas de transmisión ideales , componentes activos y fuentes controladas de tensión y corriente.
SPICE3 añadió modelos MOSFET más sofisticados, que eran necesarios debido a los avances en la tecnología de semiconductores. En particular, se añadió la familia de modelos BSIM , que también se desarrollaron en UC Berkeley.
Los simuladores SPICE comerciales e industriales han agregado muchos otros modelos de dispositivos a medida que la tecnología avanzaba y los modelos anteriores se volvían inadecuados. Para intentar la estandarización de estos modelos para que un conjunto de parámetros del modelo pueda usarse 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 red de texto como entrada y produce listados de impresora de líneas como salida, lo que se adapta al entorno informático de 1975. Estos listados son columnas de números correspondientes a salidas calculadas (normalmente voltajes o corrientes) o "trazados" de caracteres de impresora de líneas. " . SPICE3 conserva la lista de redes para la descripción del circuito, pero permite controlar los análisis desde una interfaz de línea de comandos similar al shell C. SPICE3 también agregó trazado X básico , a medida que UNIX y las estaciones de trabajo de ingeniería se volvieron comunes.
Los proveedores y varios proyectos de software libre han agregado interfaces de captura esquemática a SPICE, lo que permite dibujar un diagrama esquemático del circuito y generar y transferir automáticamente la lista de conexiones a varios backends de SPICE. Además, se agregaron interfaces gráficas de usuario para seleccionar las simulaciones a realizar y manipular los vectores de salida de voltaje y corriente. Además, se han agregado 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, se puede aplicar para simular más allá del ámbito eléctrico.
Las más destacadas son las simulaciones térmicas , ya que los sistemas térmicos pueden describirse mediante elementos de circuito agrupados que se asignan a los elementos electrónicos SPICE (capacidad calorífica → 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 los sistemas de disipación de energía y enfriamiento, la simulación electrotérmica hoy en día cuenta con el respaldo de los fabricantes de dispositivos semiconductores que ofrecen modelos (de transistores) con nodos eléctricos y térmicos. [38] Por lo tanto, se puede obtener disipación de energía eléctrica, lo que resulta en un autocalentamiento que causa variaciones de parámetros, y eficiencia del sistema de enfriamiento en una sola ejecución de simulación.
SPICE bien puede simular la parte electrónica de un motor. Sin embargo, describirá igualmente bien el modelo electromecánico del motor. Nuevamente, esto se logra mapeando elementos mecánicos sobre los elementos eléctricos (par → voltaje, velocidad angular → corriente, coeficiente de fricción viscosa → resistencia, momento de inercia → inductancia). [39] Entonces, nuevamente, el modelo final consta solo de elementos de circuito agrupados compatibles con SPICE, pero se obtienen datos mecánicos junto con datos eléctricos durante la simulación. [40]
El modelado electromagnético es accesible mediante un simulador SPICE a través del método PEEC (circuito equivalente de elemento parcial). [41] Se han mapeado las ecuaciones de Maxwell, se han modelado RLC, efecto piel, 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, aún no se considera un simulador de prueba para circuitos integrados fotónicos.
Se han modelado circuitos de microfluidos con SPICE [43] mediante la creación de un FET neumático.
SPICE se ha aplicado para modelar la interfaz entre sistemas biológicos y electrónicos , por ejemplo, como herramientas de diseño para biología sintética y para la creación de prototipos virtuales de biosensores y laboratorios en chips. [44]
SPICE se ha aplicado en la investigación de operaciones para evaluar cadenas de suministro perturbadas . [45]