¿Qué es un Software de Diseño de Circuitos?
El software de diseño de circuitos es una herramienta informática que facilita el diseño de circuitos integrados, dispositivos electrónicos y circuitos eléctricos.
A menudo se le conoce como EDA (automatización del diseño electrónico) en conjunto con el hardware de apoyo al diseño de circuitos. Anteriormente, el diseño de dispositivos electrónicos se realizaba manualmente, pero ahora se puede realizar en gran medida de forma automática mediante software de diseño de circuitos, lo que acelera el desarrollo y garantiza un diseño seguro y libre de errores.
En contraste con el diseño manual basado en diagramas de circuitos, el diseño mediante software de diseño de circuitos implica la descripción de funciones utilizando un lenguaje de diseño específico y su conversión automática en circuitos.
Usos del Software de Diseño de Circuitos
El software de diseño de circuitos se utiliza en diversos campos donde se diseñan y desarrollan circuitos electrónicos y eléctricos. En el ámbito de los fabricantes de semiconductores, este software se emplea en todas las etapas del diseño, que abarcan desde el diseño de dispositivos y arquitecturas de circuitos integrados, hasta el diseño lógico, de circuitos y trazados, así como la simulación en cada fase.
Asimismo, el software de diseño de circuitos resulta útil en áreas como servidores, dispositivos IoT, equipos médicos, equipos industriales y equipos de telecomunicaciones. Por ejemplo, se utiliza en el diseño de placas de circuitos impresos, la ubicación y enrutamiento de componentes electrónicos en dichas placas, así como en las pruebas funcionales.
Principios del Software de Diseño de Circuitos
El diseño de circuitos se lleva a cabo en el siguiente flujo:
1. Diseño Mediante HDL
En primer lugar, las funciones necesarias se expresan en un lenguaje de descripción de hardware (HDL: hardware description language) como verilog. Esta parte suele realizarla manualmente el diseñador, no el software de diseño de circuitos.
Algunos sistemas pueden convertir automáticamente de un lenguaje de diseño de nivel de sistema superior a HDL a HDL, pero en estos casos, el diseño de nivel de sistema se realiza manualmente.
2. Conversión a Circuitos Lógicos
Una vez completado el diseño en HDL y verificado en un banco de pruebas para comprobar que funciona según lo previsto, el software de diseño de circuitos sintetiza el HDL en un circuito lógico. El software de diseño de circuitos dispone de una biblioteca de información sobre los dispositivos existentes y selecciona automáticamente el dispositivo adecuado de la biblioteca según las reglas de diseño.
3. Simulación
El software de diseño de circuitos realiza la simulación de los circuitos lógicos creados por la síntesis lógica y verifica que se cumplen las funciones requeridas, de forma similar a un banco de pruebas tras el diseño HDL. En esta etapa de la verificación, también se incluye la información de temporización de los dispositivos de la biblioteca, por lo que la verificación no es una simple comprobación de si el valor de la señal es 0 o 1, sino también una verificación funcional que incluye el estado en el que el valor de la señal es indefinido (X).
4. Diseño de la Disposición
Una vez comprobado que el circuito lógico cumple los requisitos funcionales, los dispositivos se colocan de forma eficiente en un chip o placa de un tamaño definido y se enrutan entre las señales. Esta etapa posterior se denomina diseño de disposición, no diseño de circuitos, y generalmente no se incluye en el software de diseño de circuitos.
Más Información sobre Software de Diseño de Circuitos
Tipos de Lenguajes de Descripción de Hardware
Existen dos tipos de lenguajes de descripción de hardware para el diseño de circuitos: verilog y VHDL.
1. Verilog
Verilog es más conciso que otros HDL y más fácil de aprender para los principiantes. Es rico en funciones de simulación y se estandarizó como IEEE 1364 en 1995.
2. VHDL
Con un estilo de notación y sintaxis similar a ALGOL y Ada, y con tipos de datos rigurosos, se considera que el lenguaje de descripción de hardware (HDL, por sus siglas en inglés) es difícil de manejar para los principiantes. Es un lenguaje rico en características y altamente abstracto, y se estandarizó como IEEE 1076 en 1987.
Existen diferencias fundamentales entre el HDL y los lenguajes de programación de software. En la programación de software, el procesamiento se lleva a cabo principalmente de manera secuencial, en el orden en que se describe el código. Esto se debe a que el software se ejecuta en una única unidad central de procesamiento (CPU) y no contempla múltiples procesos que se ejecuten en paralelo al mismo tiempo.
Por otro lado, los circuitos descritos en HDL funcionan de manera concurrente. Esto se debe a que los componentes que conforman el hardware pueden funcionar siempre que reciban una señal de entrada.