Präsentation herunterladen
Veröffentlicht von:Gevehard Wellner Geändert vor über 9 Jahren
1
Linear Rückgekoppelte Schieberegister und Tristate Treiber
FPGA Praktikum WS 00/01 Linear Rückgekoppelte Schieberegister und Tristate Treiber
2
Gewöhnlicher Zähler Ripple-Carry Zähler werden mit zunehmender Größe langsamer. & ≠ DFF & ≠ DFF & ≠ DFF & ≠ DFF 1
3
Alternative Manchmal gibt es eine Alternative zu Ripple-Carry Zählern
LFSR: Linear Feedback Schift Register Linear Rückgekoppelte Schieberegister Bestimmte Bits eines Schieberegisters werden über ein XNOR an den Eingang Rückgekoppelt
4
Beispiel 4-Bit LFSR = DFF DFF DFF DFF 0 0 0 0 0 1 1 0 0 0 1 1
5
Nachteile LFSR Durchläuft nur 2n-1 Zustände
Verschiedene Schrittgrößen sind nicht möglich (+3, etc) Die Reihenfolge ist ziemlich zufällig Kein effizienter Vergleich „>“ möglich.
6
Vorteile LFSR Extrem schnell und klein Rückwärts zählen ist möglich
Nur ein LUT auch bei 168-Bit Zählern Rückwärts zählen ist möglich Mit Zusatzaufwand ist eine Erweiterung auf 2n Zustände möglich Die Reihenfolge ist ziemlich zufällig Rauschgenerator (z.B. C64 SID) Zufallsmuster z.B. für Selbsttest (BIST)
7
Paramter Es gibt keine geschlossene Form, um auszurechnen, welche Bits rückgekoppelt werden müssen. Es gibt Tabellen z.B. von Xilinx Bits XNOR from Bits XNOR from 3 3, ,5 4 4, ,7 5 5, ,9 6 6, ,6,4,1 7 7, ,4,3,1 8 8,6,5, ,5,3,1
8
Tristate Treiber Ein normales Gatter treibt an seinen Ausgang immer entweder 0 oder 1. Der Zustand ‘X‘ in der Simulation bedeutet nur, daß der Simulator nicht weis, welchen Wert der Ausgang hat. Tristate Treiber können zusätzlich als dritten Zustand den Ausgang ausschalten. Diesen Zustand nennt man „hochohmig“, „tristated“ oder „high impedance“ Abgekürzt wird er mit ‘Z‘
9
Tristate Treiber Eigenschaften
So sieht ein Tristate Treiber im Schaltplan aus: Die Wertetabelle sieht so aus: Enable In Out Z Z Vorsicht: Es gibt auch Treiber mit invertiertem Enable Enable In Out
10
Anwendung 1: Bidirektionale Signale
Write/notRead output output input input So werden beispielsweise RAMs an Prozessoren angeschlossen Das selbe Signal wird zum lesen und Schreiben von Daten verwenden. Der Prozessor teilt dem RAM mit einem zusätzlichen Signal die Richtung der Datenübertragung mit.
11
Anwendung 2: Große Multiplexer
Standard N-zu-1 Multiplexer aus 2-zu-1 Muxes Kosten: N-1 LUTs N-2 zusätzliche Signale Signallaufzeit O(log(N)) Kodierte Eingänge
12
Anwendung 2: Große Multiplexer
In1 Sel1 In2 Sel2 InN SelN ... N-zu-1 Multiplexer aus Tristate Treibern Kosten: 0 LUTs N Tristate Treiber (Bei Xilinx praktisch gratis) 0 zusätzliche Signale Signallaufzeit O(1), bei kleinen Muxes jedoch größer als die LUT Variante. Dekodierte Eingänge
13
Anwendung 2: Wired-OR (Open Collector)
b out R a gnd Die Eingänge treiben den Ausgang auf 1 oder Z, nie jedoch auf 0. Wenn beide Eingänge auf Z treiben, kann der schwache Widerstand das Signal auf 0 ziehen. Die Schaltung berechnet also ein ODER aus allen Eingängen. Sie ist relativ langsam und wird vor allem auf Platinen verwendet, wenn die Anzahl der Eingänge nicht im Voraus bekannt ist. (z.B. Steckkarten) Im FPGA macht diese Technik Sinn, wenn ein ODER aus sehr vielen Eingängen berechnet werden soll. Wired-AND geht über die DeMorgan Regel
14
Tristate in VHDL Bidirektionale Ports werden als „inout“ deklariert.
In VHDL könnt ihr einem IEEE.STD_LOGIC Signal den Wert ‘Z‘ zuweisen. Ein Tristate Treiber sieht dann z.B. so aus: if enable=‘1‘ then out <= in; else out <= ‘Z‘; end if; Bidirektionale Ports werden als „inout“ deklariert.
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.