Global defineres i VHDL

P

pastro

Guest
Hej alle, jeg arbejder på VHDL firmware til et projekt, der involverer en masse FPGA'er. De fleste af FPGA'er har lignende firmware, med kun ting som deres ID skifter fra FPGA til FPGA. Jeg ønsker at oprette en VHDL-fil med konfiguration data, hvor alle konstanter specifikke for FPGA er opført, og derefter have en form for "omfatte" erklæring om henvisning af konstanter i hvert VHDL modul. Hvad er den rigtige måde at gøre dette? Tak!
 
Du kan placere alle de respektive konstanter i en pakke fx "defs" og importere den i alle design enheder, der henviser til det.
Code:
 pakke DEFS er konstant MAJOR_VERSION: INTEGER: = 0; KONSTANT MINOR_VERSION: INTEGER: = 16 - end pakke DEFS; I udformningen filerne BIBLIOTEK arbejde; BRUG work.defs.all
Det faktiske navn Den defs filen kan variere, kan du også gennemføre et hierarki af general definerer og målrette specifikke definitioner.
 
Bemærk, at dette vil kræve en re-compile/synth/PAR for hver chip, der fører til en unik bitstrøm per chip. Hvis udstyret er faktisk ens, bortset fra nogle få parametre, kan en løsning være at lade disse parametre, der skal lastes * efter konfiguration og power-on-reset, men før chippen gør noget rigtigt arbejde. * Indlæst: nogle supervisor CPU med en skrive-interface til hver chip. eller hver chip har logik til at trække config ud af en config EEPROM. eller en anden metode.
 
Hvis enhederne er faktisk ens, bortset fra nogle få parametre, kan en løsning være at lade disse parametre, der skal lastes * efter konfiguration og power-on-reset, men før chippen gør nogen reel arbejde.
Længde konfiguration er en alternativ selvfølgelig, og efter min mening burde det ikke være begrænset til lastning parametre "før chippen gør noget rigtigt arbejde". Men udover det overhead til konfiguration registre, kan det indebære en betydeligt højere logik element og routing ressourcer krav. Den største fordel frem for at spare samlingstiden forenkle software variant opgørelse.
 
Der er også en sag, hvor software er udviklet uafhængigt af firmwaren og det bruger den version register for at kontrollere kompatibilitet eller se, hvilke funktioner der er tilgængelige.
 
Noget med lav overhead kunne være at gemme parametrene for alle mulige chips i »bundt" i bit fil som array (r). Så brug et par ellers ubrugte I / O ben til statisk kode for ", som chip / funktion / ID er jeg?" Så er dine parametre: = PARAM_ARRAY (to_unsigned (IdPins (5 downto 0));
 

Welcome to EDABoard.com

Sponsor

Back
Top