L'obiettivo di questo esempio di progettazione è mostrare il modo di vincolare la TSE_RGMII. Questo esempio di progettazione è applicabile solo quando la funzione di ritardo (spostamento di 90 gradi) di TX_CLK e RX_CLK di PHY esterno sono attivati. Può funzionare su 3 velocità diverse, che sono 10 MHz, 100 MHz e 1000 MHz.
Si presuppone che l'utente conosca il core della proprietà intellettuale (IP) Triple Speed Ethernet, ALTDDIO, ALTPLL, TimeQuest e Static Timing Analysis e il concetto sincrono di origine double data rate (DDR).
Come vincolare
- Selezionare il metodo del vincolo di interfaccia: metodo incentrato sul sistema o Intel® FPGA metodo incentrato.
- Un metodo diverso richiede una formula diversa per calcolare il valore di ritardo nel comando set_input_delay e set_output_delay
- Questo esempio di progettazione utilizza il metodo incentrato sul sistema
- Decidere se attivare o disattivare la funzione di ritardo (±90 gradi) di PHY esterno in quanto determinerà il tipo di allineamento tra il clock e i dati.
- Spostamento di 90 gradi - > centro allineato
- Nessun spostamento -> edge allineato
- Questo esempio di progettazione è applicabile alle funzionalità di ritardo di TX e RX di PHY esterno attivate (solo spostamento di 90 gradi)
- Determinare la relazione di avvio e di chiusura desiderata.
- Esistono 4 tipi di relazione di avvio e chiusura. Sono relazioni Rise-Rise (RR), Rise-Fall (RF), Fall-Rise (FR) e Fall-Fall (FF)
- Le specifiche RGMII affermano che l'LSB dei dati [3:0] verrà inviato prima all'edge in aumento e MSB dei dati [7:4] viene inviato seguito dal bordo in caduta
- La progettazione di TSE con interfaccia RGMII acquisirà i dati all'edge in aumento, poi seguito da un edge in caduta. Implica che il clock deve essere spostato di +90 gradi invece di -90 gradi
- Relazione di avvio e latch di configurazione desiderata (freccia in rosso): RR e FF
- Relazione di avvio e chiusura della sospensione desiderata (freccia in blu): FR e RF
- Vincolo dell'interfaccia RGMII. I vincoli di progettazione Synopsys (SDC) si basano sulla progettazione e sull'applicazione. Tuttavia, sono necessari alcuni SDC principali per l'interfaccia RGMII.
TX
- create_clock
- il clock che latch i dati all'interno del Intel® FPGA prima di trasmettere a PHY esterno
- create_generated_clock:
- il clock con uno spostamento di fase di 90 gradi che aggaglia i dati alla PHY esterna
- set_false_path:
- È una relazione indesiderata da non analizzare nell'analisi dei tempi. In questo esempio di progettazione, la relazione indesiderata per l'installazione è RF e FR, mentre la relazione indesiderata per la sospensione è RR e FF
set_false_path -fall_from [data_clock] -rise_to [output_clock] -setup
set_false_path -rise_from [data_clock] -fall_to [output_clock] -setup
set_false_path -rise_from [data_clock] -rise_to [output_clock] -hold
set_false_path -fall_from [data_clock] -fall_to [output_clock] -hold
- set_output_delay
set_output_delay -clock output_clock\
-max [expr $data_delay_max + $tsu - $clk_delay_min] \
[get_ports data_out] \
-add_delay
set_output_delay -clock output_clock\
-max [expr $data_delay_max + $tsu - $clk_delay_min] \
[get_ports data_out] \
-clock_fall \
-add_delay
set_output_delay -clock output_clock \
-min [expr $data_delay_min - $th - $clk_delay_max] \
[get_ports data_out ] \
-add_delay
set_output_delay -clock output_clock \
-min [expr $data_delay_min - $th - $clk_delay_max] \
[get_ports data_out ] \
-clock_fall \
-add_delay
TSE_RGMII RX
- create_clock:
- un clock virtuale che attacca i dati all'interno del PHY esterno prima di trasmettere al Intel® FPGA
- creare _clock:
- il clock con uno spostamento di fase di 90 gradi che aggaglia i dati all'interno del Intel® FPGA
- set_false_path:
- È una relazione indesiderata da non analizzare nell'analisi dei tempi. In questo esempio di progettazione, la relazione indesiderata per l'installazione è RF e FR, mentre la relazione indesiderata per la sospensione è RR e FF
set_false_path -fall_from [data_clock] -rise_to [output_clock] -setup
set_false_path -rise_from [data_clock] -fall_to [output_clock] -setup
set_false_path -rise_from [data_clock] -rise_to [output_clock] -hold
set_false_path -fall_from [data_clock] -fall_to [output_clock] -hold
Come verificare
Ci sono alcuni report da controllare per verificare che il vincolo sincrono di origine sia vincolato correttamente.
- Report sull'orologio
- Controllare la frequenza di clock a 3 (125 MHz, 25 MHz e 2,5 MHz) e la sua fase
- Clock core TX (Intel® FPGA): 125 MHz, 25 MHz e 2,5 MHz
- RGMII_TX_Clock (PHY esterno): 125 MHz +90º, 25 MHz +90º e 2,5 MHz +90º
- RGMII_RX_Clock (Intel® FPGA): 125 MHz +90º, 25 MHz +90º e 2,5 MHz +90º
- RGMII_RX_Virtual_Clock (PHY esterno): 125 MHz, 25 MHz e 2,5 MHz
- Rapporto trasferimento clock
- Controllare tutta la relazione sulla configurazione e tenere premuta la relazione di avvio-chiusura dell'interfaccia RGMII per il trasferimento dell'orologio
- Configurazione desiderata: RR e FF
- Sospensione desiderata: FR e RF
- Tutti i report di I/O Timing
- Verificare se esiste un percorso di errore e una relazione di avvio-chiusura in base alla configurazione desiderata e mantenere la relazione di avvio-chiusura
- Input per registrarsi per l'installazione e la conservazione
- Registrati all'output per l'installazione e la conservazione
- Verificare se esiste un percorso di errore e una relazione di avvio-chiusura in base alla configurazione desiderata e mantenere la relazione di avvio-chiusura
Note:
- TSE_10_1_RGMII_SDC è il file SDC generato da Megafunction. Non copre il vincolo RGMII SDC. Il vincolo RGMII SDC è incluso nell'SDC RGMII.
- Modifica nel file TSE_10_1_RGMII_SDC.sdc:
- Commenta il derived_pll_clock (riga 246) in quanto impedirà di utilizzare il comando create_gererated_clock per il pll in RGMII.sdc
- Modificare il nome di FF_TX_CLK e FF_RX_CLK nella riga 59 e nella riga 60 in base al design
- Ci sono avvisi che possono essere ignorati durante l'analisi dei tempi. Per informazioni dettagliate, fare riferimento al file readme.txt disponibile in TSE_RGMII_With_SDC.qar.
- Scaricare il file utilizzato in questo esempio: TSE_RGMII_With_SDC.qar
L'utilizzo di questo progetto è regolato e soggetto ai termini e condizioni del Contratto di licenza Intel® Design Example.