Anbieter zum Thema
Banking Rules und IBIS-Modell
Moderne FPGAs unterstützen eine Vielzahl von Single- und Differential-I/O-Standards. Diese werden über die I/O-Constraints definiert. Allerdings muss man sicherstellen, dass die I/O Banking Rules eingehalten werden, die durch die endgültige Pin-Platzierung gegeben sind.
Was sind diese I/O Banking Rules? Die User-I/Os in einem FPGA werden als eine Anzahl von Bänken gruppiert, die eine Anzahl von I/Os umfassen. Diese Bänke verfügen über unabhängige Stromversorgungen, was die Unterstützung einer breiten Vielfalt von I/O-Standards ermöglicht. Auf dem Zynq-7000 All Programmable SoC (und anderen Bausteinen der Xilinx Serie 7) werden die I/O-Bänke weiter gekennzeichnet durch ihre Zugehörigkeit zu einer von zwei Gruppen: High Performance und High Range. Diese Kategorien legen weitere Constraint-Klassen für ihre Performance fest. Das macht es erforderlich, dass der Entwickler die richtige Klasse für das richtige Interface einsetzt.
Die High-Performance (HP) Klasse ist für höhere Datenraten optimiert. Sie verwendet niedrigere Betriebsspannungen bietet keine Unterstützung von LVCMOS 3v3 und 2v5. Die andere Klasse, High Range (HR), ist für breitere I/O-Standards optimiert, die nicht von HP unterstützt werden. HR unterstützt deshalb das traditionelle 3v3- und 2v5-Interface. Bild 3 zeigt diese Bänke.
Nachdem man entschieden hat, welche Bänke für welche Signale verwendet werden, kann man immer noch die Signal-Teiberfähigkeit und die Flankensteilheit abändern. Diese Metrik ist von großem Interesse für die involvierten Hardware-Entwickler, die sicherstellen wollen, dass die Signalintegrität auf dem Board optimal ist. Die hier getroffene Wahl beeinflusst auch das Timing des Board-Designs. Dazu kann man auch ein Tool für die Signal-Integrität (SI) einsetzen.
Die SI-Tools verlangen ein IBIS-Modell. Ein solches IBIS-Modell des angestrebten Designs kann man aus den Vivado-Tools extrahieren, wenn das implementierte Design offen ist, und zwar über die Modell-Option File->Export->Export IBIS. Man kann diese Datei dazu nutzen, um die SI-Fragen auf der Systemebene zu beantworten und die Timing-Analyse des gewählten PCB-Layouts abzuschließen.
Wenn das Design-Team mit der SI-Performance und dem Timing des Systems als Ganzes zufrieden ist, erhält man eine Anzahl von Constraints, wie nachfolgend für die I/Os im Design dargestellt:
set_property PACKAGE_PIN G17 [get_ports {dout}] set_property IOSTANDARD LVCMOS33 [get_ports {dout}] set_property SLEW SLOW [get_ports {dout}] set_property DRIVE 4 [get_ports {dout}] Mit den HP I/O-Bänken kann man auch die digital gesteuerte Impedanz verwenden, um die I/Os korrekt zu terminieren und die Signalintegrität des Systems ohne Einsatz externer Terminierungen zu erhöhen. Dabei muss man die I/O-Effekte beachten, falls diese nicht mit Signalen beaufschlagt sind, etwa beim Anschluss an einen externen Verbinder. In diesem Fall kann man die I/O-Constraints zur Implementierung eines Pullup- oder Pull-down-Widerstandes einsetzen, um das Floaten des Eingangssignals am FPGA zu verhindern, was Probleme im Systemverhalten hervorrufen kann.
Natürlich kann man physische Constraints auch zur Verbesserung des System-Timing nutzen, indem man das letzte Ausgangs-Flip-Flop innerhalb des I/O-Blocks implementiert. Das reduziert das Clock-to-Output Timing. Dasselbe kann man auch auf den Eingangssignalen ausführen. Damit kann das System die Anforderungen an das Pin-to-Pin Setup-and-Hold Timing erfüllen.
(ID:44009087)