6 votos

¿Cómo alguien inicialmente el diseño de un sistema digital para el HDL?

Así que realmente he estado golpeando el ejemplo de código duro esta semana en un intento de comprender mejor algunos de HDL fundamentos de diseño, específicamente los FPGAs con VHDL. El libro que estoy usando (si a alguien le interesa) es "FPGA prototipo de VHDL EJEMPLOS de" Pong P. Chu.

Después de un par de ejemplos, me estoy empezando a extrañar.

¿Cómo alguien inicialmente el diseño de un sistema digital para el HDL?

(Diagrama de flujo/diagrama de Bloques? La señal de la lista? etc)

Por ejemplo, me encanta el uso de Logisim para carne simples de circuitos digitales. La interfaz gráfica es fácil de seguir y puedo conseguir sobre la marcha simulaciones sin todas las síntesis. Pero cuando estoy satisfecho con mi Logisim diseño, me parece difícil la transferencia que el diseño en HDL.

Es allí una manera de entender cómo se debe estructurar el diseño HDL, o simplemente tiene que venir con la práctica?

8voto

GSerg Puntos 33571

Yo por lo general toma un enfoque de diseño, y yo comience por dibujar un diagrama de bloques que muestra las interfaces entre el nivel superior de los bloques. Yo, a continuación, dibuje diagramas adicionales que representan las implementaciones de nivel superior de los bloques en términos de nivel inferior de los bloques.

Esta jerarquía de diagramas de bloques se traduce bastante directamente a la jerarquía de la HDL módulos. Una vez que llegue a un nivel lo suficientemente bajo de detalle de los diagramas de bloques, he de empezar a codificar y dejar de dibujar diagramas.

Los diagramas de bloques que funcionan también como diagramas de flujo de datos, ya que muestran en cada etapa de cómo los flujos de datos de un módulo a otro.

Cuando se trata de interfaces específicas entre los módulos, también estoy de sorteo de temporización diagramas que muestran los detalles de la interfaz de protocolo. Yo también uso de la sincronización de los diagramas para mantener un control del flujo de datos a través de la canalización de las etapas dentro de un módulo. En ambos casos, estos diagramas sirven como referencia a la hora de mirar las formas de onda en el simulador durante la verificación.

4voto

Paebbels Puntos 1646

Los libros y las conferencias se dirá que hay dos maneras: bottom-up y top-down.

En mi opción, los principiantes deben empezar de arriba hacia abajo, porque usted sabe lo que quiere (el sistema) y se puede dividir en módulos como Dave descrito.

Si usted se reunieron algunas de experiencia que probabily tienen algún tipo de un módulo de recogida o de su diseño objetivo no es construir un sistema, sino más bien un componente como un controlador VGA. Así que de esta manera usted puede construir su salida del componente del módulo de recolección y añadir un poco de pegamento a la lógica y algunos FSMs. Para probar este componente también tendrá que escribir un nivel superior que los empleados de su componente.

Esto es una especie de abajo hacia arriba, la estrategia de diseño o una mezcla de ambos. Creo que hay un cambio en el estilo de diseño de arriba a abajo, de abajo hacia arriba si se reúnen más de experiencia.

Además de su colección de módulos, también reunir algún tipo de patrones de diseño y los protocolos que se constata en el pasado que son útiles para resolver un problema: el uso de un sistema de interfaz para pasar cadenas de datos o algún tipo de protocolo de comunicación a la par de FSMs.

A menudo, los estudiantes tienden a comenzar la codificación sin ningún tipo de dibujos y wounder por VHDL se comporta en la simulación y/o hardware de una manera diferente. Trato de convencer a dibujar de alto nivel RTL esquemas y, si es necesario bajo nivel de RTLs, demasiado. Este tiene 3 ventajas:

  1. usted puede transformar el RTL en el código
  2. usted no escribe unsynthesizeable código
  3. usted puede comprobar el resultado de la herramienta en contra de su dibujo

Por desgracia, esquemas y diagramas de temporización para el HDL diseños no son tan habituales como los diagramas UML para sistemas complejos de software.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X