Probleme mit VHDL Beschreibung

Gast #3343398
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
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #3343416
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...).
Gast #3343450
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
Moderator (Firma: Titel) Persönliche Seite #3343464
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...  ;-)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.