Software de simulación de circuitos analógicos
Ngspice [2] [3] [4] es un simulador de circuitos electrónicos de señal mixta y nivel mixto de código abierto . Es el sucesor de la última versión estable de Berkeley SPICE , la versión 3f.5, que se lanzó en 1993. Un pequeño grupo de mantenedores y la comunidad de usuarios contribuyen al proyecto ngspice proporcionando nuevas funciones, mejoras y correcciones de errores.
Ngspice se basa en tres paquetes de software libre de código abierto : Spice3f5, Xspice y Cider1b1:
- SPICE [5] es el origen de la mayoría de los simuladores de circuitos electrónicos modernos, sus sucesores son ampliamente utilizados en la comunidad electrónica.
- Xspice [6] es una extensión de Spice3 que proporciona modelos de código en lenguaje C adicionales para soportar el modelado de comportamiento analógico y la co-simulación de componentes digitales a través de un algoritmo rápido impulsado por eventos.
- Cider [7] añade un simulador numérico de dispositivos a ngspice. Combina el simulador a nivel de circuito con el simulador de dispositivos para proporcionar una mayor precisión de simulación (a costa de un mayor tiempo de simulación). Los dispositivos críticos se pueden describir con sus parámetros tecnológicos (modelos numéricos), todos los demás pueden utilizar los modelos compactos originales de ngspice. Es el sucesor de CODECS. [8]
Descripción general
Tipos de análisis
Ngspice implementa tres clases de análisis:
- Análisis de corriente continua no lineal
- Análisis transitorios no lineales
- Análisis lineal de CA
El análisis transitorio incluye simulación de ruido transitorio. El análisis de CA incluye simulación de ruido de señal pequeña, análisis de polos y ceros y de función de transferencia: [9]
- Análisis de ruido
- Ruido de pequeña señal (CA)
- Ruido transitorio
- Análisis del punto de operación: determina el punto de operación de CC del circuito con inductores en cortocircuito y capacitores abiertos.
- Análisis de barrido del punto de operación: determina los valores de las variables de salida mientras se pasa por encima de una o dos fuentes de corriente o voltaje independientes especificadas
- Análisis polo-cero (AC)
- Análisis de distorsión de señal pequeña y análisis de respuesta de frecuencia (AC)
- Análisis de sensibilidad (CC/CA)
- Análisis de la función de transferencia
- Análisis transitorio
- Análisis periódico del estado estacionario
- Análisis de parámetros S
Modelos de dispositivos
Ngspice implementa varios elementos de circuitos, como resistencias , capacitores , inductores (simples o mutuos), líneas de transmisión y un número creciente de dispositivos semiconductores como diodos , transistores bipolares , MOSFET (tanto masivos como SOI), MESFET , JFET y HFET .
Listas de red
Ngspice admite listas de conexiones paramétricas (es decir, las listas de conexiones pueden contener parámetros y expresiones). Los macromodelos paramétricos compatibles con PSPICE , que suelen publicar los fabricantes, se pueden importar tal cual en el simulador. Hay fuentes polinómicas disponibles. Ngspice proporciona un lenguaje de programación interno para facilitar los flujos de control de evaluación y simulación complejos.
Definiendo nuevos modelos
Para la simulación de circuitos de señal mixta, ngspice permite a los usuarios crear un archivo de definición de nodo (UDN) definido por el usuario de una nueva interfaz de modelo de dispositivo. La implementación del nodo se crea y simula utilizando lenguaje C con macros que se compilan con compiladores estándar de C/C++.
Se pueden agregar nuevos modelos al simulador usando:
- Modelado del comportamiento: las fuentes internas B, E y G, así como los dispositivos R, C y L, ofrecen modelado mediante expresiones matemáticas, impulsadas por voltajes de nodo, corrientes de rama, parámetros y constantes.
- La interfaz de modelo de código de Xspice: esta es una interfaz de código C que ayuda al proceso de modelado al simplificar el acceso a la estructura interna del simulador.
- Modelos compactos Verilog-A: interfaz OSDI para cargar dinámicamente modelos Verilog-A compilados con OpenVAF.
- Modelos codificados en lenguaje C con formato spice: como proyecto de código abierto, Ngspice permite vincular nuevos modelos a las fuentes y compilarlos.
Desarrollo
Ngspice se puede compilar en una biblioteca compartida (*.dll o *.so) para integrarla fácilmente en un programa que la llame. Su interfaz proporciona acceso a todos los parámetros de simulación y a los datos de entrada y salida. tclspice, otra versión de biblioteca compartida, ofrece una interfaz con Tcl / Tk (software) para una mejor integración con software como XCircuits .
Ngspice tiene licencia BSD-3-Clause . Esta licencia de código abierto permisiva permite su integración como motor de simulación en varias herramientas EDA ( propietarias o libres ) como KiCad , [10] [11] EAGLE (programa) , [12] CoolSPICE , Altium y otras.
Ngspice tiene una interfaz de entrada de línea de comandos y ofrece capacidad para realizar gráficos. Qucs-S ofrece una interfaz gráfica de usuario de código abierto con entrada de esquemas, simulación y gráficos.
El progreso de Ngspice se presentó en las conferencias FOSDEM [13] y FSiC en 2019. [14]
Véase también
Notas
- ^ Más de 67 colaboradores han trabajado en ngspice a lo largo del tiempo
- ^ Depende del compilador. Consulte compiladores de lenguaje C como GCC , clang o MS Visual C++ para obtener información sobre ISA y plataformas compatibles específicas.
Referencias
- ^ "Simulador de circuitos Ngspice - Autores". ngspice.sourceforge.net . Consultado el 26 de mayo de 2022 .
- ^ NGSPICE: avances recientes y planes futuros, P. Nenzi et al., MOS-AK, Bucarest 2014, http://www.mos-ak.org/bucharest/
- ^ "El simulador de circuitos NGSPICE". archive.fosdem.org . Consultado el 15 de febrero de 2024 .
- ^ "ngspice, situación actual y desarrollos futuros". archive.fosdem.org . Consultado el 15 de febrero de 2024 .
- ^ Análisis de problemas de rendimiento y convergencia para simulación de circuitos, T. Quarles, tesis doctoral, Memorándum n.º UCB/ERL M89/42, Berkeley 1989, http://www.eecs.berkeley.edu/Pubs/TechRpts/1989/ERL-89-42.pdf
- ^ Modelado a nivel de código en XSPICE, FL Cox ea, Actas del Simposio Internacional IEEE sobre Circuitos y Sistemas, 1992 (ISCAS 92), vol. 2, págs. 871-874, 10-13 de mayo de 1992
- ^ Gates, David A. (junio de 1993). "Simulación de dispositivos y circuitos de nivel mixto orientados al diseño - Tesis doctoral" (PDF) . Universidad de California, Berkeley . Consultado el 28 de agosto de 2023 .
- ^ CODECS: Un simulador de circuitos y dispositivos de nivel mixto, K. Mayaram, Memorándum No. UCB/ERL M88/71, Berkeley, 1988, http://www.eecs.berkeley.edu/Pubs/TechRpts/1988/ERL-88-71.pdf
- ^ "ngspice / ngspice / [c4efe2] /ANALYSES". sourceforge.net . Consultado el 26 de mayo de 2022 .
- ^ "Tutorial: cómo configurar ngspice y Eeschema para KiCad". ngspice . Consultado el 18 de julio de 2019 .
- ^ Simulación integrada de especias con Kicad, T. Wlostowski, FOSDEM, Bruselas 2017, https://archive.fosdem.org/2017/schedule/event/spice_kicad/
- ^ Simulación SPICE, parte 1, S. Sattel, Soporte y aprendizaje de Autodesk, 2017, https://www.autodesk.com/products/eagle/blog/spice-simulation-part-1/
- ^ "ngspice, estado actual y desarrollos futuros". Reunión Europea de Desarrolladores de Software Libre y de Código Abierto (FOSDEM) . Consultado el 25 de junio de 2019 .
- ^ "ngspice - un simulador de circuitos de señal mixta de código abierto". Free Silicon Foundation (F-Si) . Consultado el 25 de junio de 2019 .
Enlaces externos
- Sitio web oficial
- Sitio de descarga
- Manual de ngspice