Soy nuevo en FPGA y actualmente estoy tomando la clase HDL (Verilog particularmente). Tengo suficiente conocimiento en diseño digital como circuitos combinacionales y secuenciales.

Quiero crear un proyecto similar a el que se muestra en este video de YouTube .

También sé que Xilinx ISE puede procesar señales lógicas y simular formas de onda. ¿Tiene capacidad adicional como obtener las señales de entrada a través de USB, cámara, etc. y enviarlas a su computadora?

¿Es posible ejecutar este proyecto (como una simulación en computadora) sin comprar una placa FPGA real? Lo que quiero decir es, ¿puedo construir, codificar y ejecutar ese proyecto en mi computadora, y simplemente conectar mi cámara a través de USB, luego dejar que las señales de video entrantes sean procesado por simuladores HDL como Xilinx ISE, etc. (sin comprar realmente una placa FPGA y sintetizar su proyecto allí, actualmente no tengo el presupuesto para tener una)

( Lo que realmente quiero decir es conectar el diseño HDLl en fuentes del mundo real, código C, etc.)

Comentarios

  • No ‘ No sé si puedes hacer eso con el simulador de Xilinx ‘ s, pero algo como Icarus Verilog permitirá que tu simulación se conecte al código C que podría obtener fuentes del mundo real; sin embargo, es probable que se ejecute en órdenes de magnitud más lento que en tiempo real, por lo que procesar una fuente de video en vivo sería difícil.
  • Ah, esa es la frase que estoy encontrando, interactuando con fuentes del mundo real
  • @vvavepacket vota a favor de los comentarios / publicaciones para agradecer al comentarista / cartel.
  • La FPGA en el video se parece a Altera DE2. Cuesta ‘ entre 200 y 600 USD, según la licencia y el chip. Hay ‘ simuladores en csc.kth.se/~emille/niisim
  • El Terasic DE0-nano cuesta alrededor de $ 80 y puede conectarse a cámaras y LCD; de hecho, tienen demostraciones de eso en su sitio web. No está afiliado a ellos, pero los DE0-nano ‘ tienen un pequeño FPGA bastante agradable en una placa a un precio decente. ‘ siempre he odiado lo caras que son la mayoría de las placas de desarrollo.

Respuesta

Las herramientas de Xilinx no pueden interactuar en tiempo real hasta donde yo sé, ni ModelSim (utilizado por el IDE Libero de Actel)
No sé acerca de los simuladores de código abierto, hay algunos proyectos exóticos por ahí, por lo que es posible que haya algo que pueda hacer esto.

Sin embargo, esta puede ser una respuesta que no solicitó (la eliminaré si no es útil), pero consideraría construir su propia placa FPGA para hacer esto o al menos Empezar en el camino hacia él. Grabé mi primera placa FPGA y aunque era muy simple (la placa no el proceso ;-)), me enseñó muchísimo con bastante rapidez.

Pros:

  • Barato
  • Sumérjase en lo más profundo y aprenda todo lo que necesita saber sobre las consideraciones de hardware. Le obliga a leer la mayoría de las hojas de datos primero y escribir las suyas código de inicio, que en mi humilde opinión es a menudo mejor que el enfoque de aprendizaje del tablero de desarrollo plug and play.
  • Solo ponga en el tablero lo que necesita.
  • Lleve más lejos hacia su objetivo de un diseño de trabajo real con posiblemente el mismo esfuerzo / investigación que el de averiguar cómo simularlo todo en tiempo real.

Contras:

  • Aún es necesario comprar un programador, aunque se pueden encontrar versiones económicas de los programadores de Xilinx / Altera en eBay.
  • Si el diseño y los problemas de integridad de la señal / PCB no son algo en lo que desee concentrarse, es posible que no le interese mucho del conocimiento que se obtendrá al hacerlo de esta manera.

Entiendo que grabar tu propia placa probablemente sea innecesario, solo lo hice porque tenía los FPGA allí, estaba impaciente y no quería esperar 2 semanas para que llegara una placa. Hay ofertas extremadamente baratas aquí para placas de 2 capas, que servirían para ejecutar al menos su diseño (posiblemente a velocidades más bajas de lo que finalmente se desea; normalmente, el recuento mínimo de capas para un diseño FPGA de alta velocidad sería 4, pero estos son mucho más caro)

De todos modos, Spirit Circuits hace una oferta de PCB «básica» de 2 capas completamente gratis (una al mes, un diseño, sin máscara ni serigrafía) que es útil para un diseño único .
Además, para obtener placas prototipo baratas adecuadas de 2 y 4 capas, ITead y Seed Studio cuestan tan solo $ 10 por 10 placas (o posiblemente 5 a ese precio) servicios.

Comentarios

  • ¡muy interesante versión de esto! y también alentador

Responder

El Webpack estándar Xilinx ISE (la versión gratuita que puede descargar desde xilinx.com) incluye un simulador llamado iSim. No es un gran simulador, pero es completamente funcional y el precio es justo.

Aunque no he utilizado las herramientas de Altera, me sorprendería que no se incluyera un simulador.

Pero … necesitas saber lo que un simulador puede y no puede hacer . Para empezar, no puede simular una FPGA funcionando a toda velocidad. De hecho, son bastante lentos. Dependiendo de la complejidad de la FPGA que se está simulando, no me sorprendería ver que se tarda 1 minuto en simular 1 ms de «simulación tiempo «. Si desea simular una hora de» tiempo simulado «, necesitaría 1000 horas de tiempo real.

Además, una FPGA simulada no puede comunicarse directamente con cosas como su puerto USB. La FPGA simulada se comunica con un «banco de pruebas». El banco de pruebas es un fragmento de código VHDL o Verilog que alimenta las entradas de la FPGA (o partes de la FPGA) y verifica la salida de su FPGA. Puede hacer algunas cosas bastante complejas en un banco de pruebas , como usar números de punto flotante, leer y escribir archivos y ejecutar lógica que es imposible de sintetizar.

Comentarios

  • A ltera ‘ s obtuvo ediciones gratuitas de Quartus que incluyen ModelSim. La versión gratuita de ModelSim limita la velocidad de simulación y la versión gratuita de Quartus limita el número de núcleos de CPU que se utilizan para sintetizar, pero por lo demás son completamente funcionales.
  • Altera ModelSim no admite la co-simulación de VHDL y Verilog en el mismo diseño.

Respuesta

No conozco ningún simulador que interactúe directamente a las señales que llegan a un puerto USB (u otro hardware).

Al menos en teoría, sería posible escribir algún software que tomara las señales que llegan a un puerto y las traduzca a un archivo de banco de pruebas que un simulador podría procesar. Desafortunadamente, no conozco ningún software existente para hacer esto, y escribirlo usted mismo sería decididamente nada trivial.

Comentarios

  • entonces la mejor manera es obtener una placa fpga de nivel de entrada y bajo costo para n00bs como yo
  • No ‘ en realidad no tiene que pasar por una archivo de banco de pruebas si tiene un simulador que h admite una interfaz para código personalizado como VPI; sin embargo, dado que el simulador se ejecutará en órdenes de magnitud más lento que en tiempo real, puede ser más fácil manejar los datos capturados en un archivo que se puede leer a la velocidad de la simulación.
  • @ChrisStratton Estoy interesado en la idea de los datos capturados en un archivo. ¿Algún recurso para eso? Gracias
  • Dependerá por completo de los periféricos que desee utilizar como fuentes de datos.

Respuesta

Necesitará utilizar interfaces de co-simulación (DPI, VPI, VHPI, FLI) que le permitan escribir código que se enganche en el simulador y, por lo tanto, haga un puente entre el RTL que se ejecuta en simulación y el hardware real de su máquina .

Los problemas importantes que encontrará (aparte de las interfaces mal documentadas) están relacionados con la sincronización y el tiempo. RTL que se ejecuta en simulación es mucho más lento que el hardware real; necesitará poder pasar por las interacciones con la interfaz externa para igualar la velocidad de simulación. ¡Algunas interfaces de hardware no les gusta esto! Por ejemplo, si utiliza TCP, es posible que deba modificar los temporizadores de la pila del kernel para evitar retransmisiones falsas, etc.

Icarus admite el VPI y es gratis para que pueda experimentar sin gastar dinero en licencias. Es posible que desee examinar los marcos existentes que hacen parte del trabajo pesado de la co-simulación y proporcionan una abstracción más limpia para el simulador. Uno de esos marcos es Cocotb , una biblioteca de código abierto que proporciona una interfaz Python para el simulador. ( Exención de responsabilidad: Soy uno de los desarrolladores de cocotb.)

Un ejemplo que puede ser relevante: ayer hice un RTL para responder a las solicitudes de ping y creé un banco de pruebas que abre una interfaz TUN. Luego puede hacer ping a la interfaz usando el comando ping y el RTL que se ejecuta en simulación recibe el ping y responde. ¡Todo el banco de pruebas tiene menos de 50 líneas de Python! El código fuente de este ejemplo está en Github y se ejecuta en Icarus en Linux.

Respuesta

En la gran mayoría de los casos, cualquier cosa que haga en la simulación permanece en la simulación. No puede acceder al hardware real desde allí; debe tener un modelo de simulación del hardware real.

Sin embargo, si está dispuesto a esforzarse, la mayoría de los simuladores tienen una interfaz para código arbitrario. En Verilog es una interfaz bastante estándar, según tengo entendido, por lo que el lado Verilog de las cosas se trasladará entre simuladores. En VHDL-land, hay una forma estándar de hacerlo, pero al menos uno de los grandes proveedores tiene su propia forma de hacerlo!

También tenga en cuenta que la interfaz en tiempo real (es decir, a la velocidad a la que lo haría la FPGA) es muy poco probable, y el resto de su simulación (el HDL) no se ejecutará en tiempo real. -Tiempo tampoco.Como se señaló en los comentarios, el procesamiento simulado de video en tiempo real no es factible de esta manera.

Personalmente, nunca tuve la necesidad de probar esto, creo que soy más productivo en modelos de escritura de el hardware y ejecutándose todo en VHDL.

Pero, no pase por alto los beneficios de hacer simulación: es una forma mucho más rápida de saber si las cosas están funcionando (la compilación toma segundos) y luego la construcción de flujos de decenas de minutos a horas) y probándolos en hardware.

Comentarios

  • Falso, vea los comentarios a la pregunta.
  • De acuerdo, debería ‘ haber sido más claro: estaba limitando mi respuesta a la » I ‘ m nuevo en FPGA » nivel 🙂 Respuesta actualizada

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *