1 / 43

Gliederung Kapitel 8 – Kompaktierung

Gliederung Kapitel 8 – Kompaktierung. 8.1 Einführung 8.2 Begriffe, Modelle, Datenstrukturen 8.3 Symbolische Kompaktierung 8.4 Kompaktierungsalgorithmen 8.4.1 Schnittkompaktierung 8.4.2 Abstandsgraph-Kompaktierung. 8.1 Einführung. ENTITY test is. port a: in bit;. end ENTITY test;.

manon
Download Presentation

Gliederung Kapitel 8 – Kompaktierung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gliederung Kapitel 8 – Kompaktierung 8.1 Einführung 8.2 Begriffe, Modelle, Datenstrukturen 8.3 Symbolische Kompaktierung 8.4 Kompaktierungsalgorithmen 8.4.1 Schnittkompaktierung 8.4.2 Abstandsgraph-Kompaktierung

  2. 8.1 Einführung ENTITY test is port a: in bit; end ENTITY test; Systemspezifikation Architekturentwurf Partitionierung VerhaltensentwurfLogischer Entwurf Floorplanning Schaltungsentwurf Platzierung Layoutsynthese Layoutverifikation Verdrahtung Herstellung Kompaktierung Verpackung/Test Chip

  3. 8.1 Einführung Gegeben ist • ein entwurfsregel-korrektes Schaltungslayout (Maskenlayout) mit der Platzierung aller Komponenten und der Verdrahtung aller Netze oder • ein symbolisches Layout mit einer abstrakten Darstellung aller Komponenten und deren Verdrahtung. Gesucht ist ein kompaktiertes Layout mit • minimaler Fläche, • invarianter Struktur von Platzierung und Verdrahtung sowie • strikter Einhaltung von Entwurfsregeln.

  4. 8.2 Begriffe, Modelle, Datenstrukturen 1- und 2-dimensionale Kompaktierung • Bei der 1-dimenisonalen Kompaktierung werden die Layoutelemente nur in einer Richtung bewegt bzw. „zusammengeschoben“ (z.B. zuerst in x-Richtung, dann in y-Richtung) • Bei der 2-dimensionalen Kompaktierung werden x- und y-Verschiebung gleichzeitig betrachtet.

  5. 8.2 Begriffe, Modelle, Datenstrukturen 1D-Kompaktierung Ausgangslayout12 x 12  Ergebnis8 x 12  1. x-Kompaktierung 12  8  2. y-Kompaktierung 12  12  Entwurfsregeln: 2 x 2  Mindestabstand 2  Randabstand 1 

  6. 8.2 Begriffe, Modelle, Datenstrukturen 1D-Kompaktierung Ausgangslayout12 x 12  Ergebnis8 x 12  1. x-Kompaktierung 12  8  2. y-Kompaktierung 12  12  Ergebnis12 x 8  Entwurfsregeln: 2 x 2  Mindestabstand 2  1. y-Kompaktierung 12  8  2. x-Kompaktierung 12  12  Randabstand 1 

  7. 8.2 Begriffe, Modelle, Datenstrukturen 2D-Kompaktierung Ausgangslayout12 x 12  Ergebnis8 x 8  2D-Kompaktierungx-Kompaktierung: 12  8 y-Kompaktierung:12  8  Entwurfsregeln: 2 x 2  Mindestabstand 2  Randabstand 1 

  8. 8.2 Begriffe, Modelle, Datenstrukturen 1  A B C C A B D F F D E E G G • Bei der rasterbasierten Kompaktierung werden die Layoutobjekte mittels der Zuordnung zu Rasterpunkten modelliert. • Festes Raster (Fixed grid): Rasterabstand entspricht der kleinsten technologisch realisierbaren Layouteinheit

  9. 8.2 Begriffe, Modelle, Datenstrukturen 2 2 3 1 3 2 A B C C A B D F F D E E 2 2 3 4 2 1 G G 1 2 3 • Bei der rasterbasierten Kompaktierung werden die Layoutobjekte mittels der Zuordnung zu Rasterpunkten modelliert. • Festes Raster (Fixed grid): Rasterabstand entspricht der kleinsten technologisch realisierbaren Layouteinheit • Virtuelles Raster (Virtual grid): Abstände der einzelnen Rasterlinien sind nicht fest vorgegeben, sondern entsprechen jeweils den Mindestabständen der sich auf den Rasterlinien befindlichen Layoutelemente 7 7

  10. 8.2 Begriffe, Modelle, Datenstrukturen 6 5 2 A B C A B C 2 5 6 2 2 F D D 2 R E L 2 8 8 R L E F 2 2 2 6 6 G 7 G 7 2 • Bei der graphenbasierten Kompaktierung wird das Layout in Form eines sog. Abstandsgraphen (Constraint graph) repräsentiert, wobei die Knoten die verschiedenen Layoutobjekte und die Kanten die minimalen Abstandsregeln zwischen diesen Objekten widerspiegeln

  11. 8.2 Begriffe, Modelle, Datenstrukturen up right h left down w (xlb, ylb) Corner Stitching • Abbildung des Layouts in Rechtecken, 1984 von John Ousterhout eingeführt • Einfaches Konzept, Einbeziehung von unbelegten Flächen (White spaces), effektive Ausführung von Layoutoperationen, z.B. Kompaktierung • Jedes Rechteck wird dargestellt durch • Linke untere Eckkordinate (xlb, ylb) • Breite w und Höhe h • Vier „Fäden“ (Stitches) zur Nachbarschaftsbestimmung: up, right, left, down

  12. 8.2 Begriffe, Modelle, Datenstrukturen Corner Stitching • Unbelegte Flächen werden in maximale Horizontalbereiche aufgeteilt • Worst-case Komplexität von Layoutmodifikationen, z.B. Blockeinfügung oder –löschung, ist O(n) mit n = Anzahl der Rechtecke; durchschnittliche Komplexität NULL pointer

  13. 8.2 Begriffe, Modelle, Datenstrukturen Corner Stitching • „Snowplowing“:

  14. 8.2 Begriffe, Modelle, Datenstrukturen • Maskenlayout: Exakte Koordinaten aller Layoutelemente bekannt Vdd Kontakt (contact cut) Metallebene (metal) In Out Polyebene (polysilicon) Diffusionsschicht (p/n diffusion) GND Maskenlayout

  15. 8.2 Begriffe, Modelle, Datenstrukturen • Maskenlayout: Exakte Koordinaten aller Layoutelemente bekannt • Symbolisches Layout: Nur Nachbarschaftsbeziehungen der Layoutelemente bekannt, konkreter Abstand ohne Bedeutung Vdd Kontakt Verbindung In Out p-Kanal-Transistor n-Kanal-Transistor GND Symbolisches Layout

  16. 8.2 Begriffe, Modelle, Datenstrukturen Vdd Kontakt (contact cut) Metallebene (metal) In Out Polyebene (polysilicon) n Diffusionsschicht (ndiff) Stick-Diagramm p Diffusionsschicht (pdiff) GND • Maskenlayout: Exakte Koordinaten aller Layoutelemente bekannt • Symbolisches Layout: Nur Nachbarschaftsbeziehungen der Layoutelemente bekannt, konkreter Abstand ohne Bedeutung • Beispiel: Stick-Diagramm • Symbolische Layoutdarstellung, die alle Komponenten und deren relative Platzierung darstellt • Nicht dargestellt: Exakte Platzierung, Transistorgröße, Leiterzuglängen und –breiten

  17. 8.2 Begriffe, Modelle, Datenstrukturen Vdd Beispiel: CMOS-Inverter In Out In Out GND Schaltplansymbol Transistorschaltung Vdd Vdd Kontakt Kontakt (contact cut) Verbindung Metallebene (metal) In Out In Out p-Kanal-Transistor Polyebene (polysilicon) n-Kanal-Transistor Diffusionsschicht (p/n diffusion) GND GND Symbolisches Layout Maskenlayout

  18. 8.2 Begriffe, Modelle, Datenstrukturen Vdd Kontakt (contact cut) Metallebene (metal) In Out Polyebene (polysilicon) n Diffusionsschicht (ndiff) p Diffusionsschicht (pdiff) GND Stick-Diagramm Vdd Beispiel: CMOS-Inverter In Out In Out GND Schaltplansymbol Transistorschaltung Vdd Kontakt (contact cut) Metallebene (metal) In Out Polyebene (polysilicon) Diffusionsschicht (p/n diffusion) GND Maskenlayout

  19. Kapitel 8 – Kompaktierung 8.1 Einführung 8.2 Begriffe, Modelle, Datenstrukturen 8.3 Symbolische Kompaktierung 8.4 Kompaktierungsalgorithmen 8.4.1 Schnittkompaktierung 8.4.2 Abstandsgraph-Kompaktierung

  20. 8.3 Symbolische Kompaktierung • Kompaktoren werden auch bei der symbolischen Layoutentwicklung eingesetzt (symbolische Kompaktierung, Symbolic compaction) • Symbolische Layoutentwicklung • Basiert auf symbolischer Layoutdarstellung, z.B. Stick-Diagramm • Ermöglicht Vereinfachung der Layoutentwurfs durch Umgehung der Vielzahl von Entwurfsregeln und der aufwendigen Überführung von einer Technologie zur nächsten • Symbolische Kompaktierung • Überführung eines symbolischen Layouts in eine reale Technologie-Implementierung • Abstrahierung aller Abstands- und Weitenregeln aus symbolischen Layout und Nutzung von Kompaktierungsalgorithmen zur Optimierung des Maskenlayouts • Kompaktierung dient damit zur Technologie-Anpassung

  21. Kapitel 8 – Kompaktierung 8.1 Einführung 8.2 Begriffe, Modelle, Datenstrukturen 8.3 Symbolische Kompaktierung 8.4 Kompaktierungsalgorithmen 8.4.1 Schnittkompaktierung 8.4.2 Abstandsgraph-Kompaktierung

  22. 8.4.1 Schnittkompaktierung • 1970 erstmals von Akers, Geyer und Roberts vorgestellt • Layout enthält Verdichtungsstreifen, die frei von platzierten Elementen sind und in denen alle Leiterzüge senkrecht zur Streifenrichtung verlaufen • Streifenbereich wird aus der Schaltung entfernt und die betreffenden Koordinaten der Schaltungselemente auf die neue Layoutgröße umgerechnet Durchgehender Verdichtungsstreifen (Simple cut) Zusammengesetzter Verdichtungsstreifen (Rift line cut)

  23. 8.4.1 Schnittkompaktierung Scherlinie ? DurchgehenderVerdichtungsstreifen Zusammengesetzte Verdichtungsstreifen

  24. 8.4.1 Schnittkompaktierung Algorithmus • Für eine vorgegebene Kompaktierungsrichtung • Abbildung der Layoutelemente auf einem binären Raster • Ermitteln von durchgehenden bzw. zusammengesetzten Verdichtungsstreifen • Entfernen der Verdichtungsstreifen. Bei zusammengesetzten Verdichtungsstreifen erfolgt die Entfernung nur nach Untersuchung der Scherlinie auf Layoutkonflikte. • Falls bei zwei aufeinander folgenden Durchläufen keine Entfernung von Verdichtungsstreifen möglich ist, weiter mit Schritt 3 • Wechsel der Kompaktierungsrichtung, weiter mit Schritt 1 • Rückabbildung der Rastertopologie in reale Layoutkoordinaten, ENDE.

  25. 8.4.1 Schnittkompaktierung Implementierung • Zur Identifizierung der zur Kompaktierung geeigneten Verdichtungsstreifen werden die Rasterpunkte binär, d.h. mit 0 oder 1, gekennzeichnet. • Rasterpunkte, denen in der jeweiligen Kompaktierungsrichtung nicht zusammenschiebbare Layoutelemente (Bereiche mit Zellenbelegung oder senkrecht zur aktuellen Kompaktierungsrichtung verlaufenden Leiterzügen) zugeordnet sind, markiert man mit 0. • Anschließend werden alle verbleibenden, für die aktuelle Kompaktierungsrichtung kompaktierfähigen Layoutbereiche mit 1 gekennzeichnet.

  26. 8.4.1 Schnittkompaktierung: Beispiel A B C D F E G Ausgangslayout; horizontale Kompakierung

  27. 8.4.1 Schnittkompaktierung: Beispiel 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 A B C D F E G Ausgangslayout Schritt 1a: Abbildung auf binärem Raster; Horizontal nicht zusammenschiebbare Layoutelemente mit 0 und horizontal kompaktierfähige Layoutbereiche mit 1 kennzeichnen

  28. 8.4.1 Schnittkompaktierung: Beispiel 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 A B C D F E G Ausgangslayout Schritt 1a: Abbildung auf binärem Raster ZusammengesetzteVerdichtungsstreifen DurchgehendeVerdichtungsstreifen 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 Schritt 1b: Ermitteln von Verdichtungsstreifen

  29. 8.4.1 Schnittkompaktierung: Beispiel 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 ZusammengesetzteVerdichtungsstreifen DurchgehendeVerdichtungsstreifen 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 1 0 0 Schritt 1b: Ermitteln von Verdichtungsstreifen A B C D F E G Ausgangslayout Schritt 1a: Abbildung auf binärem Raster C A B D F E G Schritt 1c: Entfernen der Verdichtungsstreifen Schritt 3: Rückabbildung der Rastertopologie

  30. 8.4.2 Abstandsgraph-Kompaktierung • Die Abstandsgraph-Kompaktierung beruht auf der Suche nach dem längsten Pfad in einem Graphenmodell, welches die Nachbarschaft von Layoutelementen und deren Mindestabstände abbildet • Eine Layoutgruppe umfasst jeweils die Layoutelemente, die gemeinsam bewegt werden müssen • Ein Abstandsgraph ist ein gerichteter, kantenbewerteter Graph mit folgenden Eigenschaften: • Jedes Layoutelement entspricht einem Knoten. • Zwischen zwei Knoten befindet sich eine gerichtete Kante, sofern zwischen den Layoutelementen einzuhaltende Abstandsregeln gelten. • Die Kantengewichtung entspricht den Abstandsregeln der Kantenknoten. • Layoutränder sind ebenfalls als Knoten abzubilden.

  31. 8.4.2 Abstandsgraph-Kompaktierung: Abstandsgraph Erzeugung eines horizontalen Abstandsgraphen Layoutgruppe B C 1 A

  32. 8.4.2 Abstandsgraph-Kompaktierung: Abstandsgraph Erzeugung eines horizontalen Abstandsgraphen Layoutgruppe 4 B BC C 1 1 L R A A 2 xA xBC

  33. 8.4.2 Abstandsgraph-Kompaktierung: Abstandsgraph Erzeugung eines horizontalen Abstandsgraphen Layoutgruppe Mittenabstände 4 BC 1 B BC 3 3 2 C 1 1 2 R A L R L A A Mindestabstand zwischen Layoutelementen bzw. zum Rand: 1  2 xA xBC

  34. 8.4.2 Abstandsgraph-Kompaktierung: Abstandsgraph – Beispiel D 2 2 D BC G BC 1 3 3 3 4 1 3 3 4 1 R L 4 2 6 1 3 G R L 5 2 H A 2 2 2 3 1 2 3 6 5 F 1 A 3 3 H F 3 2 E E 2 Längster Pfad von L nach R

  35. 8.4.2 Abstandsgraph-Kompaktierung • Bestimmung des längsten Pfades  minimale Layoutbreite bzw. -höhe • Layoutelemente entlang dieses Graphen werden mit minimalem Abstand platziert  kompaktiertes Layout • Layoutsegmente, die nicht auf dem längsten Pfad liegen: Mittelposition • Für jeden Knoten v wird dazu eine untere, hier z.B. linke Grenze l(v) und eine obere, hier z.B. rechte Grenze r(v) seiner möglichen horizontalen Positionen ermittelt • l(v) = (längster Weg von linker Kante zum Knoten v) • r(v) = (längste Pfadlänge) – (längster Weg von Knoten v zur rechten Kante)

  36. 8.4.2 Abstandsgraph-Kompaktierung Algorithmus • Zusammenfassung zu Layoutgruppen; Ordnen sämtlicher Kompaktierungsobjekte nach steigenden x-Koordinaten. • Erzeugung eines gerichteten horizontalen Abstandsgraphen GH, wobei • horizontale Nachbarschaften als Kanten {i, j}  GH und • horizontale Kompaktierungsobjekte als Knoten (v = 1, 2, … n)  GH, • Mindestabstände als Kantengewichte dij abgebildet werden. • Berechnung der Grenzen l(v) und r(v) der zulässigen horizontalen Positionen jedes Knotens v • Das durch den Knoten v abgebildete Kompaktierungsobjekt wird auf die Position x(v) gesetzt, mit • x(v) = l(v) = r(v) falls v im längsten Pfad liegt, • x(v) = [l(v) + r(v)] / 2 falls v nicht im längsten Pfad liegt. • Weiter mit Schritt 1 zur Durchführung einer entgegengesetzten (vertikalen) Kompaktierung bzw. ENDE, falls in zwei Durchgängen keine Verschiebung.

  37. 8.4.2 Abstandsgraph-Kompaktierung: Beispiel A C F B D G E Gegeben: Mindestabstand eine Gittereinheit (1 ) Minimale horizontale Mittenabstände:dAC = 5 dAD = 5 dBC = 6 dBD = 6 dBE = 5 dCF = 4 dCG = 5 dDF = 4 dDG = 5 dEG = 4

  38. 8.4.2 Abstandsgraph-Kompaktierung: Beispiel A C F B D G E Gegeben: Mindestabstand eine Gittereinheit (1 ) Minimale horizontale Mittenabstände:dAC = 5 dAD = 5 dBC = 6 dBD = 6 dBE = 5 dCF = 4 dCG = 5 dDF = 4 dDG = 5 dEG = 4 a) Gruppierung von Elementen mit Schritte 1 und 2 : Erzeugen des horizontalen vertik a len Ve r bindungen: ( C , D ) Abstandsgraphen mit längstem Pfad A CD F L R G B E

  39. 8.4.2 Abstandsgraph-Kompaktierung: Beispiel A C F B D G E Gegeben: Mindestabstand eine Gittereinheit (1 ) Minimale horizontale Mittenabstände:dAC = 5 dAD = 5 dBC = 6 dBD = 6 dBE = 5 dCF = 4 dCG = 5 dDF = 4 dDG = 5 dEG = 4 5 4 A CD F 1 2 L 6 R 5 3 2 G B E 5 4

  40. 8.4.2 Abstandsgraph-Kompaktierung: Beispiel Schritt 3: Berechnung der Grenzen l(v) und r(v) jedes Knotens v 13|15 2|4 9|9 5 4 A CD F 1 2 16|16 0|0 L 6 R 5 3 2 B E G r(v) = (längste Pfadlänge) - LengthToR(v) 5 4 3|3 8|10 14|14 Knoten R: l(R) = 16LengthToR(R) = 0 r(R) = 16-0 = 16 Knoten F: l(F) = 13LengthToR(F) = 1 r(F) = 16-1 = 15 Knoten G: l(G) = 14LengthToR(G) = 2 r(G) = 16-2 = 14 Knoten CD: l(CD) = 9LengthToR(CD) = 7 r(CD) = 16-7 = 9 Knoten E: l(E) = 8LengthToR(E) = 6 r(E) = 16-6 = 10 Knoten A: l(A) = 2LengthToR(A) = 12 r(A) = 16-12 = 4 Knoten B: l(B) = 3LengthToR(B) = 13 r(B) = 16-13 = 3 Knoten L: l(L) = 0LengthToR(L) = 16 r(L) = 16-16 = 0 l(v) = längste Pfadlänge von L zu v LengthToR(v) = längste Pfadlänge von v zu R

  41. 8.4.2 Abstandsgraph-Kompaktierung: Beispiel Schritt 4: Berechnung von x(v) und Anpassung des Layouts Knoten R: l(R) = 16r(R) = 16x(R) = 16 Knoten F: l(F) = 13r(F) = 15x(F) = 14 Knoten G: l(G) = 14r(G) = 14x(G) = 14 Knoten CD: l(CD) = 9r(CD) = 9x(CD) = 9 Knoten E: l(E) = 8r(E) = 10x(E) = 9 Knoten A: l(A) = 2r(A) = 4x(A) = 3 Knoten B: l(B) = 3r(B) = 3x(B) = 3 Knoten L: l(L) = 0r(L) = 0x(L) = 0 A C F B D G E 0 2 4 6 8 10 12 14 16 18

  42. 8.4.2 Abstandsgraph-Kompaktierung: Modifikationen 2dAB A B A A B B xB  xA + dAB dABmit xB = xA + dAB |xA  xB| dAB Nach Sait, S. M., Youssef, H.: VLSI Physical Design Automation +dAB  dAB +dAB A A B B A B  dAB  dAB Minimaler Mittenabstand Maximaler Mittenabstand Fester Mittenabstand

  43. Zusammenfassung Kapitel 8 – Kompaktierung 8.1 Einführung 8.2 Begriffe, Modelle, Datenstrukturen 8.3 Symbolische Kompaktierung 8.4 Kompaktierungsalgorithmen 8.4.1 Schnittkompaktierung 8.4.2 Abstandsgraph-Kompaktierung

More Related