2017-12-30 9 views
-1

Ich mache ein paar einfache Tests, um zu bewerten, wie Taktfrequenz in einer digitalen Schaltung beim Pipelining zunimmt.Pipeline Muxes in HDL

Ich pipeline einen 10to1 Mux mit 2 5to1 und 1 2to1. Ich erhöhe die Taktfrequenz vom fpga synthesizer (altera). Dann füge ich eine weitere Stufe hinzu und ersetze die He 5to1 Muxes durch 2to1 und 3to1 und entsprechende Register. Im letzteren Fall sinkt die Taktrate. Ich verstehe nicht, warum das Hinzufügen von Registern und Pipelinestufen die Taktgeschwindigkeit verringern würde.

+0

Fpga hat keine Muxes. Das Synthesewerkzeug übersetzt und optimiert Ihren VHDL-Code in eine Logik, die in die FPGA-Bausteine ​​passt. Die Routing-Verzögerung zwischen den Blöcken ist häufig dominierend. – JHBonarius

Antwort

0

Das minimale logische Gatter in den meisten FPGAs ist eine Nachschlagetabelle (LUT). Sie kamen mit 3 bis 6 Eingängen. Alteras ALMs sind in vielerlei Hinsicht konfigurierbar. In beiden Fällen, wenn eine Multiplexergröße kleiner ist als die äquivalente LUT-Größe, wird es keine weitere Fmax-Verbesserung geben.

Sie könnten alle Multiplexergrößen als Bäume von 2: 1-Multiplexern beschreiben. Die Synthese optimiert die resultierenden Gleichungen und ordnet sie LUT-Strukturen und Konfigurationen Ihres FPGA-Geräts zu.

Sie weiterhin eine benutzerdefinierte rising_edge Funktion können Sie eine Variable Pipelining erstellen:

function registered(signal Clock : std_logic; constant IsRegistered : boolean) return boolean is 
begin 
    if IsRegistered then 
    return rising_edge(Clock); 
    end if 
    return TRUE; 
end function; 

(Quelle: PoC-Library-components Paket)

Mit dieser Funktion können Sie Pipeline-Stufen selectivly aktivieren und deaktivieren .

+0

meinst du, dass, wenn die minimale LUT Eingabe Nummer 3 ist, es nicht empfohlen wird, einen 4to1 Mux in zwei 2to1 zu 'brechen'? – user2609910

+0

Zum Beispiel Xilinx hat LUT6-Strukturen. Dies entspricht einem 4: 1-Multiplexer mit 4 Dateneingängen und 2 Auswahlsignalen. Jeder kleinere Mux führt zu einer LUT6-Struktur mit ungenutzten Fähigkeiten. – Paebbels