Hallo, ich bin Anfänger bei der der VHDL Beschreibung und habe ein Problem bei meinem aktuellem Projekt. Auf meiner Platine ist ein Spartan 6 mit einem PIC32 über die PMP-Schnittstelle gekoppelt. Der PIC soll später auf Register im Spartan 6 zugreifen können. Dieser Zugriff ist asynchron. Die Behavioral Simulation funktioniert auch ganz gut. Sobald ich aber auf Post-Translate Simulation umschalte funktioniert gar nichts mehr. Was mache ich falsch? Gibt es sonst noch Anmerkungen zu meinem Code. Ich bin über jede konstruktive Kritik dankbar. Danke Michael
Michael schrieb: > Was mache ich falsch? Das da: > Sobald ich aber auf Post-Translate Simulation umschalte Gib einfach Constraints an, dann brauchst du die Timing-simulation nicht. > Gibt es sonst noch Anmerkungen zu meinem Code. Jede Menge asynchroner Signale, die nicht einsynchronisiert werden: if ACLK = '1' and ACLK'event then when ADDR => if(pm_all = '1' and pm_alh = '1') then : if(pm_wr = '1') then Das wird dir seltsamste Effekte bescheren. Denn die Takte haben keinen Phasenbezug zueinander. Statt das zigmal zu kopieren: if RESETn = '0' then STATE <= RESET; end if; hätte es gereicht, diesen synchronen Reset einfach ganz hinten hinter end case; zu schreiben. Denn in einem Prozess "gewinnt" die letzte Zuweisung an ein Signal... > Gibt es sonst noch Anmerkungen zu meinem Code. Häng besser die vhd Dateien hier einzeln an. Nur die wenigsten ziehen sich den Schuh an, dein Porjekt zu entpacken und bei sich aufzusetzen (man kann es z.B. auch nicht, wenn man mit dem Handy surft...).
Hallo, wau das geht ja schnell hier. Danke für die prompte Hilfe. Ist die Post-Translate Simulation nicht sinnvoll? Ich dachte bei einem Funktionieren Design sollte die auch ohne Probleme laufen. Naja ich kümmere mich jetzt auf jeden fall mal um die passende Constraints. Die Signale pm_all, pm_alh, pm_wr sind relativ langsam (mindestens 3 FPGA Takte lang) und Triggern eine Zustandsmaschine. Ich dachte nicht, dass so noch ein ungewolltes Verhalten auftreten kann. Der Reset ist schon umgestellt. Ist so wirklich viel übersichtlicher. >Häng besser die vhd Dateien hier einzeln an. Nur die wenigsten ziehen >sich den Schuh an, dein Porjekt zu entpacken und bei sich aufzusetzen >(man kann es z.B. auch nicht, wenn man mit dem Handy surft...). Danke das du dir die Mühe gemacht hast. Danke Michael
Michael schrieb: > Ich dachte bei einem Funktionieren Design sollte die auch ohne Probleme > laufen. Ja, schon, aber welchen Nutzen versprichst du dir? > Die Signale pm_all, pm_alh, pm_wr sind relativ langsam (mindestens 3 > FPGA Takte lang) und Triggern eine Zustandsmaschine. Ich dachte nicht, > dass so noch ein ungewolltes Verhalten auftreten kann. Jedes asynchrone signal hat das Potential, deine FSM durcheinander zu bringen. Das hatten wir gestern wieder mal im Beitrag "Re: Drehgeber (rotary encoder) - VHDL" > Danke das du dir die Mühe gemacht hast. Keine Ursache, aber ich habe auch nicht das ganze Projekt aufgesetzt, sondern nur die VHDL Dateien rauskopiert... ;-)
Tja immer die gleichen Fragen. Taktgrenzen sind aber auch kniffelig MfG Michael
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.