Hallo, ich habe ein Design auf einem Spartan-6 programmiert, wo ich mit einem KCPSM6 einen SPI-Generator ansteuere. In der "Behavioural Simulation" sehe ich in ISIM, dass meine Signale korrekt sind. In der "Echten Welt" (also an den Ausgangspins) stimmen sie nicht mehr. Ich möchte mich also Stück für Stück über die verschiedenen Simulationsarten vorarbeiten und sehen, wo der Fehler ist. Leider scheitere ich schon an der "Post-Translate"-Analyse: Alle meine Signale werden im ISIM durcheinander gewürfelt und umbenannt. Wo ich im "Behavioural" meine "out_port" und "write_strobe" noch sehr einfach gefunden habe heisst jetzt alles "processor_inst_KCPSM6_STROBES_processor_inst_STROBES_DMUX_DELAY" und ich habe keine Ahnung ob das das richtige Signal ist. Welche Möglichkeit habe ich, meine Signale zu finden? Christian
Wenn Du in dieser Hinsicht Probleme hast gibt es zwei Gründe die zu 90% Wahrscheinlichkeit dafür verantwortlich sind: - Deine Sensitivity-Listen sind nicht vollständig, es wird was anderes simuliert, als dann synthetisiert wird. - Deine Timing-Constraints sind nicht korrekt oder unvollständig. Wenn diese beiden Dinge korrekt sind, wird Dein FPGA machen, was Du ihm sagst, flächendeckende Post-Place-Sim sind der falsche Ansatz. Um einzelne Signale zu erhalten, benutze ich jeweils Synopsys-Pragmas (nach der Signal-Deklaration, vor dem Architektur-Beginn), z.B.: attribute keep : boolean; attribute keep of CurSeqInstrxS : signal is true; Ob das in ISE genau gleich tut, weiss ich nicht, aber ähnlich wird es sein.
:
Bearbeitet durch User
Danke, ich arbeite mich mal in die Pragmas ein. Christian
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.