Airhdl basado en navegador proporciona las herramientas que anhelan los desarrolladores de FPGA, pero sin las enormes barreras de entrada asociadas con las herramientas EDA tradicionales.
Airhdl basado en navegador proporciona las herramientas que anhelan los desarrolladores de FPGA, pero sin las enormes barreras de entrada asociadas con las herramientas EDA tradicionales.
Casi todos los diseños de FPGA actuales incluyen alguna forma de interacción hardware/software. En los diseños de sistema en chip (SoC), tanto el hardware como el software se ejecutan dentro del mismo chip. En los diseños de FPGA que incluyen interfaces PCI-Express, USB o Ethernet, el software se ejecuta en una computadora separada físicamente de la FPGA, pero aún existe interacción hardware/software.
El archivo de registro, que consta de registros de control y estado, es una parte particularmente importante de cualquier proyecto de FPGA porque tiene una ubicación única en el límite de hardware/software. De hecho, las definiciones de registros suelen ser más que una simple interfaz entre el hardware y el software. También son una interfaz entre las personas que desarrollan diferentes aspectos del diseño.
Desafortunadamente, muchos proyectos de FPGA aún administran las definiciones de registros de forma manual y ad-hoc. Es decir, se puede escribir una lista de registros en un documento de Microsoft Word o Excel y el personal de software y hardware utilizará ese documento como referencia para la implementación. Controlador y código RTL.
Hay al menos dos problemas con este enfoque. Primero, la implementación del archivo de registro es tediosa y repetitiva, y tediosa y repetitiva podría decirse que es propensa a errores. En segundo lugar, y lo más importante, las definiciones de registro nunca son inamovibles. Un proyecto comienza con una mejor suposición de los registros de control y estado que se necesitarán. Sin embargo, en el transcurso de un proyecto, se agregan, eliminan, trasladan registros a diferentes direcciones, etc., y aquí es donde suelen surgir los problemas. Alguien (generalmente un desarrollador de hardware) cambió la definición de un registro y se olvidó de notificar. equipo de software ¿Cuántos de nosotros no hemos “estado allí y hecho eso” todavía?
Soy el fundador y CEO de Noashik, una pequeña consultora de FPGA con sede en Alemania. Nosotros (desarrolladores de FPGA y diseñadores de sistemas) nos dimos cuenta de que había más que hacer que codificar a mano el archivo de registro. Luego dedico tiempo a rastrear errores como el software que intenta acceder a un registro que no existe en la dirección esperada.
Aunque este problema se puede abordar mediante la generación de código, hemos descubierto que muchos desarrolladores son reacios a adoptar nuevas herramientas. Razones como el costo, los problemas de licencia, las políticas de TI y las curvas de aprendizaje, además del “síndrome de lo que no se inventó aquí”, dificultan la adopción de nuevas herramientas EDA.
Entonces, ¿cómo puede proporcionar las herramientas que los desarrolladores necesitan desesperadamente sin las enormes barreras de entrada que vienen con las herramientas tradicionales de EDA? Mi respuesta es una aplicación basada en web llamada . aire hdl Los desarrolladores pueden usarlo en su navegador. Nada que instalar, nada que licenciar.Todo lo que tienes que hacer es registrarte en airhdl.com, puede comenzar inmediatamente a crear mapas de registro en su navegador y descargar los archivos necesarios generados. Es tan fácil como eso.
Dado que airhdl es básicamente un producto de comida de perro, utilizo esta herramienta casi todos los días en mi trabajo de diseño de FPGA. Mi empresa, que también es el Centro de diseño de FPGA de Enclustra, se especializa en diseño y verificación de VHDL. Mi proyecto FPGA actual utiliza un FPGA Xilinx Kintex-7. Cuenta con el motor PCI Express DMA, un núcleo IP comercial llamado Enclustra FPGA Manager. El núcleo tiene una interfaz de transmisión de datos y una interfaz de memoria mapeada AXI4 para control y estado. El archivo de registro generado por airhdl se conecta directamente a esa interfaz AXI4.
El modelo de datos airhdl es muy simple. Solo hay tres elementos: registro mapa, registro y campo. Primero, cree un mapa de registro, configure los registros de control, estado e interrupción, luego agregue campos a esos registros. Todo se hace gráficamente en su navegador, sin necesidad de piratear XML. También es fácil de cambiar. ¿Quiere convertir un registro de lectura y escritura en un registro de solo escritura con solo unos pocos clics del mouse?
Una vez que se completa la entrada del registro, las comprobaciones de reglas de diseño (DRC) de airhdl garantizan que el mapa del registro no contenga problemas como direcciones o campos de registro duplicados, registros vacíos o identificadores no válidos. Registre el archivo manualmente.
Una vez que hayan pasado todos los DRC, puede descargar los archivos que necesita para su proyecto. Airhdl actualmente ofrece los siguientes archivos generados para descargar:
- Encabezado C con todas las definiciones de registros y campos
- Componentes de archivo de registro VHDL y SystemVerilog sintetizables
- Banco de pruebas VHDL para el componente de archivo de registro
- documento HTML
- Definiciones de registros XML y JSON
Entonces, ¿cómo puede estar seguro de que todos los archivos que descarga son de la misma revisión de las definiciones de registro? Todos los archivos generados incluyen su ID de revisión, por lo que puede verificar fácilmente que los archivos descargados corresponden a las mismas definiciones de registro. El paranoico también puede automatizar el proceso: conecte la constante de ID de revisión a un registro de estado y haga que el controlador C verifique que la ID de revisión de hardware coincida con la ID de revisión de software.
de airhdl.com El sitio web comenzó como un experimento hace unos dos años y ha crecido constantemente desde entonces. Actualmente utilizado por cientos de desarrolladores en todo el mundo, mi objetivo es establecerlo como la solución de referencia para la generación de archivos de registro AXI4.
Actualmente es de uso gratuito, pero puede agregar funciones pagas en el futuro. El desarrollo y las operaciones son completamente autosuficientes por ahora, pero espero que algún día el sitio se pague solo.
Algunos usuarios quieren una versión autohospedada de airhdl que pueda ejecutarse dentro de su red corporativa. Esto es ciertamente posible. Otra idea es agregar funciones útiles por las que los usuarios querrán pagar. Las funciones colaborativas, como los mapas de registros compartidos, son candidatas para esto.
Estoy pensando en generar algo más que un archivo de registro, pero aún no estoy listo para anunciarlo. Mientras tanto, todos los comentarios, preguntas y sugerencias son bienvenidos.