Hallo Leute, ich hab leider ein Problem mit einer Netlist und dem PAR unter ISE WebPAck. Ich habe von einer Firma ein Modul für den Spartan2e entwickeln lassen, dieses ist an einen PCI Controller angebunden. Wenn ich die von der Firma entwickelte Netlist und das zugehörige .ucf File in ISE PAR möchte bekommen ich 32 failing constraints errors wie: MET = No; Constraint = COMP "D(11)" OFFSET = OUT 10 ns AFTER COMP "clk" Check = MAXDELAY; Worst Case Slack = -2,757ns; Best Case = 12.757ns Timing Errors = 1; Timing Score = 2757 Ich habe im Studium gelernt das eine Verletzung der Setup und Hold Zeiten zu Instabilitätem im Betrieb führen. Ist das eine deutliche Verletzung dieser Zeiten? Was kann man dagegen tun? Ich meine der Entwickler hätte nicht auf ISE entwickelt, vll. hat er es desewegen nicht gemerkt? Bin für jeden Tipp dankbar, Ghisi
sorry, der titel muss ISE + Netlist + .ucf + PAR lauten...
Jetzt müsste man genauer wissen, wann die Daten die aus dem FPGA kommen von der Gegenstelle gelesen werden. Der Fehler sagt nämlich, dass die Ausgänge des FPGAs erst etwa 12ns nachdem am Takteingang eine steigende Flanke war valide sind. Liest die Gegenstelle also erst z.B. 15ns später, ist alles in Ordnung. Schreib bitte, was die Gegenstelle ist, wann die liest und welchen Takt sie dafür verwendet, dann kann man genaueres sagen.
Also, am (FPGA) Softmakro und am PCI Controller (PLX PCI9030) liegt eine gemeinsame Taktleitung, die mit 33 MHz über einen konfigurierbaren Taktgenerator getaktet ist. Der Takt ist ist also der Systemtakt des Softmakros und gleichzeitig der synchrone Takt zwischen Softmakro und lokalen PCI Bus. Der lokale Bus ist nicht gemultiplext. Es Read Fall: FPGA->PCI Controller Table 12-6. AC Electrical Characteristics (Local Inputs) over Operating Range Signals (Synchronous Inputs) CL = 50 pF, VCC = 3.0V, Ta = 85 °C Bus Mode SIgnale Bus-Type TSETUP (ns) (Worst Case) THOLD (ns) (Worst Case) BTERM# All 7.0 1 LAD[31:0] (Data) Multiplexed 5.0 1 LD[31:0] Non-Multiplexed 5.0 1 LPMESET All 5.0 1 LREQ All 5.0 1 READY# All 7.0 1 Input Clocks Bus Mode Min Max Local Clock Input Frequency All 0 60 MHz PCI Clock Input Frequency All 0 33 MHz Write Fall:FPGA->PCI Signals (Synchronous Outputs) VCC = 3.0V, Ta = 85 °C Bus Mode Output TVALID (Max) ADS# All 10.0 BLAST# All 10.0 CS[3:0]# All 10.0 LA[27:2] All 10.0 LAD[31:0] (Data) Multiplexed 10.0 LBE[3:0]# All 10.0 LD[31:0] Non-Multiplexed 10.0 LGNT All 11.0 LLOCKo# All 10.0 LPMINT# All 10.0 LW/R# All 10.0 RD# All 10.0 WAITo# All 10.0 WR# All 10.0 Hoffe das ist so lesbar. Für mich sieht es so aus, als ob die Gegenstelle schon nach 1ns valide Daten erwartet... oder interpretiere ich das Falsch?!?
Wenn ich das richtig entschluessele (Screenshot der formatierten Tabelle waere besser gewesen), ist tsetup 5ns und thold 1ns. Die Daten muessen also 5ns for der Clockflanke bis 1ns danach valide sein. Hat dein lokaler Bus nun 33MHz, also ~30ns taktdauer, muessen die Daten spaetestens 25ns nach der vorhergehenden Taktflanke valide sein. Du kannst die constraints also ruhig von 10ns auf z.B. 15ns erhoehen ("OUTPUT xy VALID 15 ns AFTER CLK_xy RISING").
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.