Anbieter zum Thema
Platzierung der Physischen Constraints
Man kann die Platzierung aus einer Vielzahl von Gründen heraus einschränken – etwa um das Timing zu gewährleisten, oder um genügend Isolation zwischen den einzelnen Sektionen des Designs zu schaffen. Dazu sind drei Arten von Constraints von Bedeutung:
- BEL – Basic Element of Logic - erlaubt ein Netlist-Element in einer Slice zu platzieren.
- LOC – Location - platziert ein Element der Netlist an irgendeinem Ort innerhalb eines Bausteins.
- PBlock – Mit dem physischen (PBlock) kann man Logikblocks auf einen FPGA-Bereich eingrenzen.
Während LOC also die Definition einer Slice oder eines anderen Orts im Baustein erlaubt, kann man mit einem BEL-Constraint eine feinere Granularität des Flip-Flops innerhalb der Slice erzielen. PBlocks lassen sich zur Gruppierung von Logik nutzen, wenn man große Bereiche des Designs segmentieren will. Eine weitere Einsatzmöglichkeit der PBlocks besteht in der Definition von logischen Bereichen, wenn man eine partielle Rekonfiguration durchführen möchte.
In einigen Fällen möchte man vielleicht weniger umfangreiche Logikfunktionen zusammen gruppieren, im Sinne des optimalen Timings. Dies kann man zwar auch mit PBlocks erreichen, doch ist es in diesem Szenario üblich, entsprechend (relativ) platzierte Makros zu nutzen.
Relativ platzierte Makros (RPMs) erlauben es, Schaltungselemente wie DSPs, Flip-Flops, LUTs und RAMs bei der Platzierung zusammenhängend zu gruppieren. Anders als PBlocks begrenzen die RPMs nicht die Anordnung dieser Elemente in einem bestimmten Bereich des Bausteins (wenn man dies nicht ausdrücklich beabsichtigt). Stattdessen gruppieren die RPMs diese Elemente bei der Platzierung.
Die enge Platzierung von Design-Elementen ermöglicht zwei Zielsetzungen. Sie verbessert die Ressourcen-Effizienz, und sie erlaubt die Feinabstimmung der Verbindungslängen zur besseren Timing-Performance.
Zur geeigneten Kolokation von Schaltungselementen kann man drei Arten von Constraints einsetzen. Sie lassen sich mit Hilfe der HDL-Source-Dateien definieren:
- U_SET ermöglicht die Definition eines RPM-Sets von Zellen unabhängig von deren Hierarchie.
- HU_SET erlaubt die Definition eines RPM-Sets von Zellen mit Hierarchie.
- RLOC erlaubt die Zuweisung von relativen Lokationen zum SET.
Die RLOC-Constraints verwenden die Definition RLOC = XmYm. Darin beziehen sich X und Y auf die Koordinaten des FPGA-Arrays. Bei der Definition eines RLOC erstellt man diese entweder als relative oder absolute Koordinaten, je nachdem, ob man das RPM_GRID Attribut hinzufügen will. Der Einschluss dieses Attributs macht die Definition nicht relativ, sondern absolut.
Da diese Constraints im HDL definiert werden, wie es Bild 4 zeigt, ist es oft erforderlich, zunächst eine Place-and-Route Iteration durchzuführen, bevor man die Constraints zur HDL-Datei hinzufügt, um die Platzierung korrekt zu definieren.
Fazit: Das genaue Verständnis des Zusammenhangs von Timing- und Placement-Constraints und deren richtiger Einsatz ist der Schlüssel für die beste Qualität des angestrebten Xilinx-basierten programmierbaren Logik-Designs.
* Adam Taylor ist Chief Engineer bei e2v
(ID:44009087)