Un caso, que probablemente no se aplique, es si está usando un estándar más antiguo que VHDL-2002. Antes de eso, buffer
no podía conectarse directamente a out
. Por lo tanto, en un diseño jerárquico, la ruta de la señal debería declararse como buffer
en todos los niveles. Además, al adherirse a estos estándares más antiguos, algunas herramientas tienen problemas para sintetizar buffer
s correctamente. Pueden o no advertirte sobre esto.
Esto ya no debería ser un problema si está utilizando un estándar más nuevo. Desde el VHDL-2002 Standard :
a) Para un puerto formal de modo en , el real asociado debe ser un
puerto de modo en , inout o búfer .
b) Para un puerto formal de modo fuera , el real asociado debe ser un
puerto de modo fuera , inout o búfer .
c) Para un puerto formal de modo inout , el real asociado debe ser
un puerto de modo inout o buffer .
d) Para un puerto formal de modo búfer , el real asociado debe ser
un puerto de modo out , inout o buffer .
e) Para un puerto formal de modo enlace , el real asociado puede ser
un puerto de cualquier modo.
A menudo también veo consejos que indican que un buffer
nunca debe ser declarado en tres. Si necesita la capacidad de tri-estado de un bus, entonces debería usar out
. No pude encontrar ninguna referencia directa a cómo buffer
s manejó la declaración triple en el estándar. Pero probablemente sea un buen consejo a seguir. Nuevamente, sus herramientas pueden o no quejarse si intenta sintetizar un búfer de tres estados.