Los libros y las conferencias te dirán que hay dos formas: de abajo hacia arriba y de arriba hacia abajo.
En mi opción, los principiantes deberían comenzar de arriba a abajo, porque sabes lo que quieres (el sistema) y puedes dividirlo en módulos como los que describió Dave.
Si acumuló algo de experiencia, probablemente tendrá algún tipo de colección de módulos o su objetivo de diseño no es construir un sistema, sino un componente como un controlador VGA.
De esta manera, puede construir su componente a partir de su colección de módulos y agregar un poco de lógica de pegamento y algunos FSM. Para probar este componente, también deberá escribir un nivel superior en el que los empleados de su componente.
Así que esta es una especie de estrategia de diseño ascendente o una mezcla de ambas. Creo que hay un cambio en el estilo de diseño de arriba abajo a más abajo si reúnes más experiencia.
Además de su colección de módulos, también recopilará algún tipo de patrones de diseño y protocolos que demostraron en el pasado que son útiles para resolver un problema: el uso de una interfaz fifo para pasar flujos de datos o algún tipo de protocolo de protocolo de enlace. para acoplar FSMs.
A menudo, los estudiantes tienden a comenzar a codificar sin ningún dibujo y wounder por VHDL se comporta en simulación y / o hardware de una manera diferente. Trato de convencerlos de que dibujen esquemas de RTL de alto nivel y, si necesitan RTL de bajo nivel, también. Esto tiene 3 ventajas:
- puedes transformar el RTL en código
- no escribirás código no sintetizable
- puede comparar la salida de su herramienta con su dibujo
Desafortunadamente, los esquemas y diagramas de tiempo para los diseños HDL no están tan extendidos como los diagramas UML para sistemas de software complejos.