Simulación de FPGA - VHDL Testbench

1

He estado diseñando una placa FPGA que se convertirá en un nodo único de muchos en un clúster de computación que estoy construyendo para algunos computadores científicos. La esperanza es hacerlo escalable y permitirme actualizarlo para expandirlo a otras formas de computación (seguridad, simulaciones, etc.).

Esencialmente, he estado utilizando placas de desarrollo para simular y probar GPIO y USB, Ethernet y similares. Sin embargo, mi implementación actualmente utiliza 4 FPGA, y tengo la intención de aumentar ese número y mi presupuesto simplemente no admite la compra de múltiples tableros de desarrollo para probar la transferencia de datos de trabajo entre los FPGA.

Básicamente 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 El controlador de memoria DDR3 que pretendo 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 hace en Xilinx hasta ahora.

¿Alguna idea sobre dónde puedo comenzar con el desarrollo de un banco de pruebas VHDL?

    
pregunta Signus

2 respuestas

3

Todo depende de lo que quieras simular.

Es bastante fácil crear un banco de pruebas para crear un reloj, configurar algunos IO, etc., pero se complica mucho más si quiere simular USB u otros protocolos.

Esta página web le proporcionará una buena comprensión general sobre cómo hacerlo:

programación FPGA paso a paso

Hay algunas herramientas comerciales para ayudarlo con la creación de TB, pero también hay herramientas gratuitas como " The VHDL Test Bench "para ayudarte a crear TB más rápido y más fácil.

Para un proyecto grande como el tuyo (supongo que es grande ya que tienes 4 FPGA en tu diseño y muchas IPs), te sugiero que te sientes y decidas QUÉ quieres probar, cuál es tu objetivo con la simulación ¿Y cuánto tiempo quieres gastar en hacer esto? Luego haga una lista de los bloques que desea probar y busque archivos de estímulos para ellos o escríbalos usted mismo.

    
respondido por el FarhadA
1

Los bancos de prueba 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 en los bancos de pruebas.

En resumen, los escribe en un lenguaje HDL (VHDL, Verilog, ...). El banco de pruebas está desempeñando el papel del mundo fuera de su diseño / FPGA. Así podría generar algunos relojes de entrada u otras señales de entrada. Y podría comprobar si la salida de su diseño es lo que esperaba. Su diseño en sí mismo es un bloque instanciado (generalmente llamado DUT, Dispositivo bajo prueba) en su banco de pruebas.

Compila el banco de pruebas y el diseño con un compilador y simula con, por ejemplo, Modelsim (Mentor) o Isim (Xilinx).

    
respondido por el vermaete

Lea otras preguntas en las etiquetas