Las configuraciones de VHDL se pueden usar para vincular componentes a entidades con un nombre diferente e incluso con puertos completamente diferentes. [see this article for more info]¿Las configuraciones VHDL avanzadas se utilizan alguna vez en la vida real?
configuration c2 of testbench is
for str
for dut_inst : dut
use entity work.unrelated(rtl)
port map(
port1 => a,
port2 => b,
port3 => c,
port4 => "unused"
);
end for;
end for;
end configuration c2;
¿Alguno de ustedes ha visto que esto suceda en un proyecto de proyecto comercial? ¿Cuál fue el propósito de caer en una entidad aparentemente no relacionada? ¿Por qué no solo cambiaron el código de instanciación?
Puedo inventar situaciones hipotéticas, pero estoy interesado en un caso de uso real.
Gracias por hacer esta pregunta - También estoy muy interesado. En mi experiencia, nunca lo he visto utilizar y he trabajado en grandes bases de código dirigidas a múltiples placas/sistemas FPGA. – Josh
Lo mismo para mí. VHDL parece tener un par de elementos de lenguaje que lo hacen sentir muy viejo y especificado para una base de usuarios diferente y más pequeña que los ingenieros de FPGA de hoy en día. Listas de sensibilidad, configuraciones, etiquetas obligatorias, falta del equivalente de un preprocesador C, insistiendo en que el último elemento de una lista no debe tener coma en cola, o distinguir entre std_logic y bool cuando el desarrollador asume '1' = verdadero y el nombre la señal en consecuencia. Los conceptos básicos están bien, pero alguien necesita rediseñar el lenguaje desde cero. – maxy
@maxy: Algunos de ellos estaré de acuerdo, y otros no. Las listas de sensibilidad son una reliquia de cuando los compiladores/simuladores no eran tan capaces, así que te daré eso. Las comillas finales, sí, está bien, pero no estoy perdiendo el sueño por eso. Las configuraciones son potentes y útiles (aunque el ejemplo anterior parece innecesario). No quiero un preprocesador. ¿Has visto las cosas horribles que las personas hacen con eso? Los genéricos te dan el 90% allí, pero imponen la estructura. std_logic vs bool es un artefacto de tener un lenguaje rígidamente tipeado, y la tipificación rígida es algo bueno para RTL en mi humilde opinión. Etiquetas ... ¿por qué no etiquetarías algo? :-) –