Segnali sfasati di 90° fase e quadratura in VHDL per FPGA

In questo articolo andremo a vedere come realizzare in VHDL 4 differenti segnali sfasati di 90° ciascuno o, in altri termini, posti rispettivamente in fase ed in quadratura partendo da un segnale di clock comune. Il codice VHDL realizzato è sia simulabile che sintetizzabile da qualsiasi tool di sintesi e fitting per FPGA.

In alcune particolari applicazioni è necessario realizzare un segnale in fase ed uno in quadratura partendo da un segnale di clock comune. Questo può essere necessario, ad esempio, all’interno di DSP oppure per realizzare campionamenti molto “estremi” oltre il classico DDR (Dual Data Rate) utilizzato nelle memorie DDR.

Realizzare questi 4 segnali è molto semplice ed istruttivo ed è realizzabile usando 2 Flip-Flop di tipo D (FFD) ed una porta logica NOT. In VHDL questa applicazione può essere descritta con l’utilizzo di 2 processi a descrivere i due FFD ed una manciata di porte NOT.

Schematicamente l’applicazione è implementabile in questo modo:

Segnali fase quadratura

Segnali in Fase ed in Quadratura

 

dove CLK è il segnale di clock a frequenza f mentre ogni uscita è sfasata di 90° ed ha una frequenza pari a f/2. Notare come il secondo FF sia identico al primo a meno della porta NOT che inverte il segnale di clock in ingresso.

Questo semplice circuito digitale può essere descritto in VHDL dal seguente codice che non penso abbia necessità di molti commenti.

 

Il codice è stato simulato tramite QuestaSim e nel seguito lo screenshot della simulazione dove sono ben visibili le 4 forme d’onda sfasate ed il clock globale.

Fase Quadratura Simulazione

Fase Quadratura Simulazione

Il codice non è solo simulabile ma anche sintetizzabile su qualsiasi FPGA di qualsiasi costruttore, Intel, Xilinx, Microsemi, Lattice, ecc. Quindi…buona sintesi e buon divertimento.

 

Saluti ed alla prossima!!!

 


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *