6 FPGA-Designflow und Implementierungsparameter 6.1 Projekterstellung mit dem ISE 4.x Xilinx Project Navigator Mit dem Menue Project werden u ber Add Source die VHDL-Quellen in das erstellte Projekt eingebunden. Mit dem Menue Source Remove lassen sich VHDL- Quellen entfernen. Die Topentity ist der erste einzubindende File. Projekt Digitale Systeme 6-1
6.2 Syntheseparameter Projekt Digitale Systeme 6-2
Die zu synthetisierende VHDL-Topentity ist im Sources in Project Fenster zu selektieren. Danach ist Synthesis im Processes for Current Source Fenster anzuwahlen und mit der rechten Maustaste wird Properties selektiert. Einstellungen im Process Properties Fenster mit den FPGA Express Synthesis Options: Die gewu nschte Taktfrequenz kann fu r den gesamten Implementierungsprozess vorgegeben werden. Der Wert wirkt als Entwurfziel und kann insbesondere den Routing-Effort wahrend der Hardwareimplementierung unterstu tzen. Als Voraussetzung fur die Wirkung der Taktfrequenzvorgabe muss Export Timing Constraints angewahlt sein. Mit Preserve Hierarchy findet die Optimierung der Logikfunktionen nur im Rahmen der Komponentengrenzen statt. Ansonsten werden die Grenzen aufgelost und eine vollstandige Optimierung kann langerer Zeit in Anspruch nehmen. Insert I/O Pads erzeugt externe Pinkontakte fu r Topentities oder separate Einzelentities. Fu r die einzelne Synthese von Komponenten eines Strukturmodells ist dies nicht erforderliche. Mit dem FSM Encoding Algorithm wird die Zustandscodierung von Zustandsautomaten vorgegeben, wenn diese nicht explizit im Code mit dem Attribut enumencoding festgelegt ist. Die Synthese wird mit Anwahl von Synthesis und Run gestartet. Projekt Digitale Systeme 6-3
6.3 Implementierungsparameter Projekt Digitale Systeme 6-4
Die zu implementierende (Translate, Map, Place and Route) VHDL-Topentity ist im Sources in Project Fenster zu selektieren. Danach ist Implement Design im Processes for Current Source Fenster anzuwahlen und mit der rechten Maustaste wird Properties selektiert. Das Process Properties wird geoffnet und bietet sechs separate Fenster mit Vorgaben fu r die Implementierungsschritte, fu r die Reports der Postlayout-Timinganalyse und fu r die SDF-File basierte timingsimulation. Translate Parameters: Der User-Constraints File (*.ucf) ist zu selektieren, der die Zuordnung der Topentity-Signalnamen zu den Anschlusspins des FPGAs enthalt. Map Properties: Mit der Anwahl von Pack I/O Registers/Latches into IOBs werden die in den Input-Output Blocks des FPGAs verfu gbaren Flipflops fu r die ggf. im VHDL-Code vorgesehene Schnittstellensynchronisationen genutzt; CLB D-FFs lassen sich so einsparen. Place & Route Properties: Die Vorgabe fu r die zu erreichende Taktfrequenz wird nur beru cksichtigt, wenn Use Timing Constraints angewahlt ist. Post-Place and Route Static Timing Properties: Die Anzahl der in einem Fehler-Report aufzulistenden Timingpfade, die nicht die Taktfrequenzvorgabe erfu llen, kann hier festgelegt werden. Die Ergebnisse zu den Timingpfaden, die nicht der Frequenzvorgabe genu gen, sind im Place & Route Report aufgelistet. Eine genaue Liste der am Timingpfad beteiligten Signale und CLBs zwischen einem D-FF-Ausgang und dem nachsten D-FF-Eingang wird im Processes for Current Sources Fenster mit Post-Place & Route Timing Report abgerufen. Projekt Digitale Systeme 6-5
Fenster zur Vorgabe fu r Timing-Reports und Abfrage der Analyseergebnisse Projekt Digitale Systeme 6-6
6.4 Analyse der Post-Layout Reports Der Place & Route Report enthalt Angaben zu folgenden Ergebnisdetails: Pinnummern der Schnittstellensignale Device Utilisation Summary (CLBs, D-FFs, LUTs) Delay Summary Report Aus dem detaillierteren *.dly File geht hervor, dass hier im folgendem Signalverzogerungen (Routing Delay) von einem Funktionsgeneratorausgang (Driver Pin) zum nachsten eingang (Load Pin) aufgelistet sind: Net Delays. The Average Connection Delay for this design is: The Maximum Pin Delay is: The Average Connection Delay on the 10 Worst Nets is: Listing Pin Delays by value: (ns) 6.216 ns 44.679 ns 20.524 ns d < 9.00 < d < 18.00 < d < 27.00 < d < 36.00 < d < 45.00 d >= 45.00 --------- --------- --------- --------- --------- --------- 1613 254 41 31 21 0 Der Maximalwert 44.679 ns ist hier durch ein Reset-Signal verursacht, das weit verteilt wird. Projekt Digitale Systeme 6-7
Die nachstehende Liste gibt einen Vergleich zwischen der geforderten minimalen Taktperiode und der realisierbaren Periode aufgrund des sogenannten Path Delays (Logic Delay Net Delay Setup Time). Die Logic Levels geben an, wie viele LUTs in einer Signalkette enthalten sind. -------------------------------------------------------------------------------- Constraint Requested Actual Logic Levels -------------------------------------------------------------------------------- * TS_CLK = PERIOD TIMEGRP "CLK" 47 ns HI 47.000ns 48.786ns 17 -------------------------------------------------------------------------------- TS_P2P = MAXDELAY FROM TIMEGRP "PADS" TO 47.000ns 10.388ns 3 TIMEGRP "PADS" 47 ns -------------------------------------------------------------------------------- OFFSET = IN 47 ns BEFORE COMP "CLK" 47.000ns 26.881ns 4 -------------------------------------------------------------------------------- OFFSET = OUT 47 ns AFTER COMP "CLK" 47.000ns 20.403ns 2 -------------------------------------------------------------------------------- 1 constraint not met. Placement: Completed - No errors found. Routing: Completed - No errors found. Timing: Completed - 4 errors found. Projekt Digitale Systeme 6-8
Der Post-Place & Route Static Timing Report listet die Signalpfade auf, die die Taktfrequenzvorgabe nicht erfu llen (Path Delays). In dem folgenden Beispiel-Report besteht der langste Pfad zwischen einem Pipelining-Register, das dem Dual-Port RAM der Abtastwerte nachgeschaltet ist und einem Multiplizierer- Ausgangsregister. Die erste Spalte (location) gibt die Koordinaten der beteiligten CLBs mit Zeilen (rows) und Spalten (columns) an. Die Kennungen hinter dem Punkt geben den jeweiligen benutzten Eingang bzw. Ausgang der CLB an. In der zweiten Spalte (delay type) sind mit Txxx die Verzogerungszeiten aus dem Datenblatt des FPGAs angegeben. Z. B.: TCKO Clock K to Flip-Flop outputs Q. TILO F/G inputs to X/Y outputs. TICK Setup time via F/G inputs before clock K. Die Signallaufzeit zwischen den CLBs ist in der zweiten Spalte mit net gekennzeichnet. Die Verbindung zwischen dem D-FF Ausgang CLB_R15C12.YQ bis zum Eingang F4 der F-LUT in der CLB_R15C11.F4 verursacht also eine Verzogerung von 2.013 ns. Destination: MAC/YK_reg<18> Requirement: 47.000ns Data Path Delay: 48.786ns (Levels of Logic = 17) Negative Clock Skew: 0.000ns Source Clock: N_MCLK_N rising at 0.000ns Destination Clock: N_MCLK_N rising at 47.000ns Timing Improvement Wizard Data Path: CIRCULAR_B/STAGE_reg<2> to MAC/YK_reg<18> Projekt Digitale Systeme 6-9
Location Delay type Delay(ns) Physical Resource Logical Resource(s) ------------------------------------------------- ------------------- CLB_R15C12.YQ Tcko 2.090 MAC/C2/N23 CIRCULAR_B/STAGE_reg<2> CLB_R15C11.F4 net (fanout=10) 2.013 X1_INT<2> CLB_R15C11.X Tilo 1.590 MAC/C2/N116 MAC/C185 CLB_R15C16.F1 net (fanout=1) 3.807 MAC/C2/N116 CLB_R15C16.COUT Topcy 2.640 MAC/C2/N138 MAC/C44 CLB_R14C16.CIN net (fanout=1) 0.326 MAC/C2/N137 CLB_R14C16.COUT Tbyp 0.259 MAC/C2/N150 MAC/C2/C59 쳌 CLB_R4C18.G4 net (fanout=5) 4.395 MAC/C2/N373 CLB_R4C18.COUT Topcy 2.640 MAC/Y_INT<14> MAC/C2/C290 CLB_R3C18.CIN net (fanout=1) 0.326 MAC/C2/N805 CLB_R3C18.COUT Tbyp 0.259 MAC/N67 MAC/C2/C294 CLB_R2C18.CIN net (fanout=1) 0.326 MAC/C2/N817 CLB_R2C18.X Tsum 2.780 MAC/N69 MAC/C1177 CLB_R2C19.F2 net (fanout=1) 1.786 MAC/N69 CLB_R2C19.K Tick 1.210 MAC/Y_INT<18> MAC/C1300 MAC/YK_reg<18> ------------------------------------------------- --------------------------- Total 48.786ns (27.215ns logic, 21.571ns route) (55.8% logic, 44.2% route) Projekt Digitale Systeme 6-10
Prof. Dr. B. Schwarz 6.5 Ressourcenu berpru fung mit dem FPGA-Editor Projekt Digitale Systeme 6-11
Der editblock Modus eroffnet den Einblick in die Konfiguration der einzelnen CLBs. Projekt Digitale Systeme 6-12
CLB konfiguriert als Dual-Port RAM mit zwei Adresspfaden und einem Dateneingang bzw. ausgang. Projekt Digitale Systeme 6-13