Come ingegnere esperto ( 3 anni con progettazione FPGA e sistemi integrati ), ti sto dicendo che è necessario controllare la scheda e la guida dell'utente FPGA. Non è una risposta semplice.
Devi rendere il tuo FIT di progettazione il tipo FPGA che hai scelto. Alcuni FPGA hanno FlipFlops progettati per il ripristino Asincrono, altri per il ripristino della sincronizzazione.
Devi controllare la guida dell'utente FPGA per quale tipo di FlipFlops hai.
Il responsabile dell'implementazione / Mapper sceglierà percorsi dedicati per il ripristino (il codice può essere eseguito con frequenza più elevata e occupa meno spazio ) se abbini il codice con il tipo di primitive FPGA.
Il tuo progetto funzionerà in QUALSIASI caso , ma a volte l'attuatore FPGA farà di tutto per far funzionare la tua logica ( aggiunge più logica ), ma ciò causerà una frequenza massima inferiore e / o più risorse FPGA.
Esempio: testato con ZYNQ di Xilinx ( FPGA è progettato per il reset sincronizzato - consultare la guida per l'utente delle primitive ). Modificando il reset da asincrono a sincronizzare , la frequenza massima stabile è passata da 220 MHz a 258 MHz e quindi ho superato il mio margine di frequenza.
Potrei anche aggiungere che l'implementatore non sa cosa sia un segnale di clock e reset. Assegna i pin di Flip-flop ai segnali per ORDINE, non per nome. Quindi in alcuni FPGA, l'implementatore sceglie il primo segnale dopo "process () begin" in VHDL come clock, in alcuni come reset, a seconda dell'FPGA su cui è impostato l'implementatore.