¿Cómo se puede usar Python en el diseño de hardware?

Convencionalmente, el diseño de sistemas de hardware digital se realiza utilizando un lenguaje de descripción de hardware especializado (HDL), como VHDL y Verilog. Esta selección se basa en la idea de que el diseño de hardware tiene sus propios requisitos únicos.

MyHDL es una plataforma de código abierto desarrollada por Jan Decaluwe para usar Python, un lenguaje de alto nivel de propósito general para el diseño de hardware. Un diseñador que use este software puede beneficiarse del poder del lenguaje Python, así como de los méritos de un software gratuito de código abierto.

El software se puede instalar en cualquier plataforma que admita Python. La guía de instalación de MyHDL en un sistema Linux o Unix típico está presente en el sitio web oficial de MyHDL. Las plataformas no Linux, como Windows, también tienen un procedimiento de instalación similar.

Funcionalidades clave de la herramienta.
La visión principal detrás del desarrollo de esta herramienta de código abierto es capacitar a los ingenieros de hardware con el poder, la claridad y la simplicidad de Python. Echemos un vistazo a las principales funciones de este software en detalle.

Modelado de alto nivel. Python es un lenguaje de muy alto nivel, famoso por dar soluciones elegantes a problemas complejos de modelado. Aparte de esto, la capacidad de Python de desarrollo rápido de aplicaciones y experimentación es sobresaliente. Todas estas características de MyHDL lo convierten en una solución ideal para el modelado de hardware.

Para modelar la concurrencia de hardware, MyHDL utiliza generadores Python. Los generadores utilizados en MyHDL se parecen a los bloques Always en Verilog y los procesos en VHDL. El software modela un módulo de hardware como una función que devuelve generadores. Una amplia gama de características, como la jerarquía arbitraria, la asociación de puertos con nombre, las matrices de instancias y la instanciación condicional, pueden ser fácilmente compatibles debido a este enfoque directo. Las clases en MyHDL admiten conceptos tradicionales de descripción de hardware. Hay una clase de señal para admitir la comunicación entre generadores, una clase para admitir operaciones orientadas a bits y una clase para tipos de enumeración.

Convirtiendo el diseño a Verilog y VHDL. Aunque existen algunas limitaciones, los diseños en MyHDL se pueden convertir a Verilog o VHDL. Por supuesto, el subconjunto convertible está restringido. Pero es mucho más amplio que el subconjunto de síntesis estándar. Incluye características que se pueden usar para modelado de alto nivel y bancos de prueba. Además, las limitaciones de conversión solo son aplicables para el código dentro de los generadores. La potencia total de Python se puede usar sin comprometer la convertibilidad fuera de los generadores. La conversión proporciona un camino hacia el flujo de diseño tradicional, incluida la síntesis y la implementación.

Varias tareas complejas en VHDL y Verilog, como el manejo de problemas aritméticos firmados, pueden automatizarse directamente con la ayuda del convertidor en MyHDL. El convertidor funciona en un diseño completamente elaborado e instanciado. Como resultado, la estructura de diseño original puede ser arbitrariamente compleja.

Funciones de simulación y verificación. MyHDL tiene un simulador incorporado que se ejecuta sobre el intérprete de Python, que admite la visualización de formas de onda. El seguimiento de los cambios de la señal en un archivo VCD permite ver la forma de onda. El software permite que el marco de prueba de la unidad Python se use en diseños de hardware.

Las pruebas unitarias son una técnica de verificación muy popular en la ingeniería de software moderna. Pero cuando se trata de una plataforma de hardware, las pruebas no son tan comunes. En el caso de los diseños de Verilog, también podemos usar MyHDL como lenguaje de verificación de hardware mediante co-simulación con simuladores HDL tradicionales.

Cómo MyHDL beneficia a los usuarios
En esta sección intentemos analizar algunas de las razones por las cuales un diseñador de hardware debería considerar la herramienta MyHDL.

Para principiantes
Gratis y de código abierto. Como principiante, estará menos interesado en comprar un software costoso. MyHDL es un software de código abierto bien documentado del que un principiante realmente puede beneficiarse.

Un ejemplo de código MyHDL

La simplicidad de Python. Un ingeniero que trata de dominar el diseño de hardware digital necesita esforzarse mucho. La elección de un lenguaje de desarrollo adecuado facilita su tarea. Entre los lenguajes de programación de alto nivel, Python es uno de los más simples de aprender, y MyHDL tiene como objetivo brindar el mismo nivel de simplicidad en el diseño de hardware.

Además de esto, la conversión automática de diseño en Verilog / VHDL también facilita el trabajo de un diseñador como principiante.