Table of Contents Table of Contents
Previous Page  41 / 86 Next Page
Information
Show Menu
Previous Page 41 / 86 Next Page
Page Background

DIGITAL

FPGA

41

- ELETTRONICA OGGI 451 - GENNAIO/FEBBRAIO 2016

sviluppatori devono anche adottare un certo nume-

ro di tecniche già note come ad esempio retiming

dei registri, pipelining e ottimizzazione del progetto.

All’aumento delle prestazioni concorrono sia l’uso

di queste tecniche sia i miglioramenti apportati

a livello architetturale. Per quando concerne l’ar-

chitettura, la modifica più importante è l’aggiunta di

un gran numero di registri (denominati Hyper-Reg-

ister) in ogni segmento di routing delle interconnes-

sioni e agli ingressi di ogni blocco funzionale. L’imp-

iego di questi registri consente agli sviluppatori di

effettuare il retiming dei percorsi critici e di utilizza-

re registri di pipeline per eliminare i ritardi dovuti

al routing. Con questo approccio i registri per il re-

timing e il pipelining di tipo bypassabile di fatto “in-

terrompono” il collegamento tra i registri funzionali

presenti nei moduli ALM (Adaptive Logic Module) e

i registri utilizzati per il retiming e il pipelining.

Tutti i segmenti di routing hanno un Hyper-Register

opzionale integrato nel multiplexer di routing pro-

grammabile che consente al segmento di routing di

essere di tipo registrato o combinatorio. Questi Hy-

per-register sono disponibili ovunque nella struttu-

ra del nucleo dell’FPGA come riportato in figura 1.

Gli Hyper-Registers sono rappresentati dal piccolo

quadrato posti all’intersezione di ogni segmento di

routing orizzontale e verticale.

Con un’architettura di questo tipo non è necessario

ricorrere a un ALM solamente per utilizzare un regi-

stro di pipeline. Ciascuna linea di interconnessione orizzontale

e verticale presente nel dispositivo contiene un Hyper-Regis-

ter che può essere attivato o disattivano configurando l’FPGA.

Gli Hyper-Register sono registri di tipo bypassabile a un in-

gresso e un’uscita senza multiplexer di instradamento in in-

gresso controllabili mediante bit di configurazione. Si tratta di

dispositivi economici che occupano un’area limitata di silicio.

Poiché gli Hyper-Register sono dovunque nella struttura del

core, i progettisti non hanno alcun limite per quanto riguar-

da il numero di registri da impiegare. Essi possono effettuare

operazioni di retiming e pipelining quando necessario senza

consumare risorse aggiuntive dei LAB (Logic Array Block). In

molti casi il progetto utilizza un numero inferiore di risorse di

un LAB poiché si utilizzano i registri per implementare gli Hy-

per-Register invece di utilizzare parzialmente un modulo ALM

(ovvero solamente per utilizzare il suo registro).

Retiming…

Nelle architetture di tipo tradizionale il software esegue il re-

timing individuando un registro di un ALM non utilizzato che

si trova nelle vicinanze per includerlo nel circuito. I limiti di

questa tecnica sono imputabili alla granularità del posizion-

amento del registro del modulo ALM in quanto quest’ultimo

può essere ubicato in una posizione non particolarmente van-

taggiosa, provocando in tal modo un ritardo addizionale che

quindi deve essere contemplato nel progetto. Inoltre è nec-

essario tener contro del ritardo imputabile all’instradamento

dall’ALM al registro.

Nella figura 2 è riportato un esempio di routing prima e dopo

il retiming nel caso di un’architettura di tipo tradizionale.

Nel caso dell’architettura Hyperflex il retiming dei registri, de-

nominato Hyper-Retiming, è caratterizzato da una granularità

è estremamente fine, essendo riconducibile al ritardo di un

singolo filo di routing, che può essere stimato dell’ordine di

poche decine di picosecondi. E’ quindi possibile eliminare i

compromessi richiesti quando si cerca di individuare i regi-

stri di retiming nelle architetture tradizionali (si faccia riferi-

mento alla Fig. 2) e i percorsi brevi (dell’ordine di alcuni na-

nosecondi) possono essere suddivisi senza problemi durante

l’Hyper-Retiming, come riportato in figura 3.

Poiché l’Hyper-Retiming non ha alcuna influenza sui blocchi

LAB e sui moduli ALM, non è necessario eseguire operazioni

Fig. 2 – Esempio di routing prima e dopo il retiming nel caso di architetture di tipo

tradizionale

Fig. 3 – L’operazione di Hyper-Retiming nell’architettura HyperFlex