Forum: FPGA, VHDL & Co. Probleme mit VHDL Beschreibung


von Michael (Gast)


Angehängte Dateien:

Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...).

von Michael (Gast)


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...  ;-)

von Michael (Gast)


Lesenswert?

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