Le configurazioni VHDL possono essere utilizzate per associare componenti a entità con un nome diverso e persino con porte completamente diverse. [see this article for more info]Le configurazioni VHDL avanzate sono mai state utilizzate nella vita reale?
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;
Qualcuno di voi ha mai visto accadere in un progetto progetto commerciale? Qual era lo scopo di abbandonare un'entità apparentemente non correlata? Perché non hanno semplicemente modificato il codice di istanziazione?
Posso inventare situazioni ipotetiche, ma sono interessato a un caso di utilizzo nella vita reale.
Grazie per avermi fatto questa domanda - Sono anche molto interessato. Nella mia esperienza, non l'ho mai visto usato da solo e ho lavorato su basi di codice di grandi dimensioni per più schede/sistemi FPGA. – Josh
Lo stesso per me. Il VHDL sembra avere un paio di elementi linguistici che lo fanno sembrare molto vecchio e specificato per una base utente diversa e più piccola rispetto agli attuali ingegneri FPGA. Elenchi di sensibilità, configurazioni, etichette obbligatorie, mancanza dell'equivalente di un preprocessore C, insistendo sul fatto che l'ultimo elemento in una lista non deve avere un coma finale, o distinguere tra std_logic e bool quando mai lo sviluppatore assumerà '1' = vero e nome il segnale di conseguenza. I concetti di base vanno bene, ma qualcuno ha bisogno di ridisegnare la lingua da zero. – maxy
@maxy: alcuni di questi sono d'accordo, e altri no. Le liste di sensibilità sono una reliquia di quando i compilatori/sim non erano così capaci, quindi te lo darò. Trailing virgola, sì okay, ma non sto perdendo il sonno su di esso. Le configurazioni sono potenti e utili (sebbene l'esempio sopra non sia necessario). Non voglio un preprocessore. Hai visto le cose orribili che le persone fanno con esso? I generici ti prendono il 90%, ma applicano la struttura. std_logic vs bool è un artefatto di avere un linguaggio rigidamente tipizzato e la rigida tipizzazione è una buona cosa per RTL IMHO. Etichette ... perché non etichettate qualcosa? :-) –