Forum: FPGA, VHDL & Co. [VHDL] Komponenten Einbinden und wegoptimieren von Signalen verhindern


von A. M. (am85)


Angehängte Dateien:

Lesenswert?

Hi

Ich weiß gerade nicht so recht, wie ich mein Problem beschreiben soll,
weswegen es vielleicht am sinnvollsten ist, mein Design und die Ausgabe
des Synthesewerkzeugs (ISE 12.x) zu posten.

Ich verstehe nicht, waurm die Komponenten wegoptimiert werden. Zumindest
"KOMP1" wird nicht konstant betrieben und der Ausgang ("SPEED_REG") wird
im Prozess "PSEUDOGEN" abgefragt, sollte dann also doch verbunden sein.

Vielleicht ist ja jemand so freundlich und schaut sich den Code an. Ich
bin offen für alle konstruktiven Verbesserungsvorschläge. Mein Problem
ist weiterhin, dass ich noch zu sehr in Software als in Hardware denke
:-/

von Valko Z. (hydravliska)


Lesenswert?

Hi,

Dein Zustandsautomat hängt im INIT state.
Dein Defaultzuweisung hilft dir dabei nicht.
Du musst den FSM vollständig kodieren.

Gruss,
Valentin

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


Lesenswert?

Das hier:
>> INFO:Xst:2679 - Register <EN_COUNT_10MS> in unit <Main> has a constant
>> value of 0 during circuit operation. The register is replaced by logic.
und alle folgenden gleichen Meldungen sind eigentlich schon 
aussagekräftig genug! XST meint auf unwiderbringliche Art&Weise, diese 
Stelle im Code nie zu erreichen:
         EN_DEVIDE_10MS  <= '1';

Und wenn dieses Enable dauernd LOW ist, dann fäält das meiste aus dem 
Code raus. Und damit erreichst du eine Taktfrequenz von >400MHz...

Diese 400MHz wist du mit dem bin2bcd.vhd NIEMALS erreichen, denn dort 
sind viele Addierer und genausoviele Vergleicher 
hintereinandergeschaltet. Weil das nur für eine schnarchlangsame 
Anzeige ist, brauchst du nie und nimmer diese Geschwindigkeit.


Da wird dir nichts anderes übrig bleiben, als das Ding zu simulieren. 
Der Simulator ist der Debugger der Hardware. Messungen mit einem LA oder 
Oszi kommen viel zu spät...


BTW: TEILEN auf englisch heißt DIVIDE...


Valko S. schrieb:
> Dein Zustandsautomat hängt im INIT state.
> Dein Defaultzuweisung hilft dir dabei nicht.
> Du musst den FSM vollständig kodieren.
Nein, das ist nicht der Fehler. Er muß einfach mal aus dem INIT 
rausspringen...
1
:
2
    when INIT        =>    LCD_SEL  <= 1;
3
                           F_ZUSTAND <= GO;
4
:

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.