¿Cuál es la mejor manera de entender un gran núcleo HDL existente?

3

Groundhog es un núcleo de adaptador de bus de host SATA de código abierto escrito en Verilog. Me preguntaba si alguien tenía consejos sobre cómo comenzar a entender cómo funciona. ¿Es para pasar del nivel alto al nivel bajo? ¿o viceversa? ¿Dibujo dibujos FSM para todo lo que veo? ¿Cuáles son algunos de los consejos y trucos útiles?

Nota: esta pregunta se encuentra en el contexto de una persona que ya comprende Verilog o VHDL, pero que solo tiene problemas para entender mejor los diseños HDL grandes.

    
pregunta cksa361

1 respuesta

2

Esta es una pregunta muy abierta, y será difícil de responder correctamente en el formato SE. Sin embargo, acabo de hacer un ejercicio como este recientemente, así que voy a dejar algunos pensamientos.

Definitivamente tome un enfoque de arriba hacia abajo y de afuera hacia adentro. Asegúrese de saber qué se supone que debe hacer el núcleo y cómo se supone que se comportan las interfaces externas con bastante detalle. Piensa un poco en cómo te gustaría implementarla. Luego, observe la implementación del módulo de nivel superior y vea cómo se divide (con suerte :-) en submódulos funcionales que tienen sentido.

Continúe, tome notas, dibuje diagramas de bloques, y sí, indique los diagramas donde corresponda, sobre la marcha. Al mirar las interfaces entre los submódulos, es probable que haya poca documentación, por lo que tendrá que aplicar ingeniería inversa a muchos de los detalles de las implementaciones dentro de los submódulos. Con suerte, habrá patrones consistentes que se utilizarán en varios lugares.

Un simulador puede ser invaluable para separar detalles, lo cual es otra razón por la que debe tener un buen manejo de las interfaces externas. Esto le permite escribir un banco de pruebas significativo para ejercitar el módulo (asumiendo que uno no existe).

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas