He estado diseñando una placa FPGA que se convertirá en un solo nodo de muchos en un clúster de computación que estoy construyendo para computación científica. La esperanza es hacerlo escalable y permitirme actualizarlo para expandirlo a otras formas de computación (seguridad, simulaciones, etc.).
Esencialmente, he estado usando placas de desarrollo para simular y probar GPIO y USB, Ethernet y similares. Sin embargo, mi implementación actualmente usa 4 FPGA, y tengo la intención de aumentar ese número y mi presupuesto simplemente no admite la compra de múltiples placas de desarrollo para probar el movimiento de datos de trabajo entre los FPGA.
Esencialmente, necesito simular mi entorno y, aunque tengo mucha capacidad computacional (tengo un laboratorio completo a mi disposición), actualmente estoy tratando de desarrollar un banco de pruebas para mover datos entre los FPGA, así como un controlador de memoria DDR3. que tengo la intención de implementar para el movimiento y la manipulación de grandes datos.
Dado que la mayor parte de mi trabajo con FPGA me ha permitido evitar el uso de un banco de pruebas, todavía tengo que desarrollar uno para verificar mis resultados simulados. Todo lo cual se ha hecho en Xilinx hasta ahora.
¿Alguna idea sobre dónde puedo comenzar con el desarrollo de un banco de pruebas VHDL?
Todo depende de lo que quieras simular.
Es bastante fácil crear un banco de pruebas para crear un reloj, configurar algunas E/S, etc., pero se vuelve mucho más complicado si desea simular USB u otros protocolos.
Esta página web le dará una comprensión general bastante buena sobre cómo hacer esto:
Programación de FPGA paso a paso
Existen algunas herramientas comerciales para ayudarlo con la creación de TB, pero también hay herramientas gratuitas como " The VHDL Test Bench " para ayudarlo a crear el TB de manera más rápida y sencilla.
Para un proyecto grande como el suyo (supongo que es grande ya que tiene 4 FPGA en su diseño y muchas IP), le sugiero que se siente y decida QUÉ quiere probar, cuál es su objetivo con la simulación y cuánto. tiempo que desea gastar en hacer esto. Luego haga una lista de los bloques que desea probar y busque archivos de estímulo para ellos o escríbalos usted mismo.
Los bancos de pruebas no son tan difíciles. Un punto de partida en la lectura podría ser el sitio web de Doulos . Allí encontrará una breve introducción a los bancos de pruebas.
En resumen, los escribes en un lenguaje HDL (VHDL, Verilog, ...). El banco de pruebas está jugando el papel del mundo fuera de su diseño/FPGA. Entonces podría generar algunos relojes de entrada u otras señales de entrada. Y podría verificar si el resultado de su diseño es lo que esperaba. Su diseño en sí mismo es entonces un bloque instanciado (generalmente llamado DUT, Dispositivo bajo prueba) en su banco de pruebas.
Compile el banco de pruebas y diseñe con un compilador y simule con, por ejemplo, Modelsim (Mentor) o Isim (Xilinx).
Signus
FarhadA