Sin embargo el 'if-generate' tiene otro uso que no es muy conocido, pero es muy útil: condicionalmente puede incluir u omitir cierta parte del diseño. Usualmente la inclusión u omisión depende del valor de una constante genérica (generic), de modo que la expresión del 'if-generate' es globalmente estática.
Cuáles son los típicos usos de este 'if-generate'?, normalmente son dos :
- Lógica que se agrega al diseño solo con propósito de debug, pero que no se desea que sea implementada en el diseño final.
- Procesos o instanciación de componentes usados solos durante simulación.
A continuación hay un esquema de como se usa el 'if-generate' para generar o no cierta lógica del diseño en función del generic 'debug' definido en la entity:
1 entity my_system is
2 generic ( debug: boolean := true)
3 port (
4 . . .
5 );
6 end entity my_system;
7
8 architecture rtl of my_system is
9 . . .
10 begin
11 . . .
12 debug_comp: if debug generate
13 .. .
14 end generate debug_comp;
15 . . .
16 end architecture;
Have a grrrrrrrrreat day !
No hay comentarios:
Publicar un comentario