Forum: FPGA, VHDL & Co. ISE WebPack + Netlist + Softmakro = 32 failing Constraints


von Ghisi (Gast)


Lesenswert?

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

von Ghisi (Gast)


Lesenswert?

sorry, der titel muss ISE + Netlist + .ucf + PAR lauten...

von Jan M. (mueschel)


Lesenswert?

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.

von Ghisi (Gast)


Lesenswert?

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?!?

von Jan M. (mueschel)


Lesenswert?

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
Noch kein Account? Hier anmelden.