mikrocontroller.net

Forum: FPGA, VHDL & Co. case langsamer als verschachtelte if-abfragen?


Autor: Andi Z. (duderino65)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich habe in meinem vhdl design ein prozess mit einigen if abfragen. der 
prozess berechnet 3 zähler uber die andere prozesse gesteuert werden.

bei einem timing-constraint von 25mhz hatte ich keinerlei timingprobleme 
und die max frequenz die vom nach dem routing usw berechnet wurde lag 
bei ca 77Mhz.

Report Summary - (if-then-else)
--------------
------------------------------------------------------------------------ 
---
Preference                              |   Constraint| 
Actual|Levels
------------------------------------------------------------------------
                                        |             |           |
FREQUENCY PORT "RXC" 25.000000 MHz ;    |   25.000 MHz| 77.435 MHz|   2
                                        |             |           |
------------------------------------------------------------------------


nun habe ich diesen prozess so umgeschrieben, dass dieser 4 states 
enthält und in 3 davon eine if und elsif abfrage läuft.
also so wie im anhang.
auch hier gabs keine errors. jedoch war die max frequenz bei ca 72Mhz.

Report Summary  - (case)
--------------
------------------------------------------------------------------------
Preference                              |   Constraint| 
Actual|Levels
------------------------------------------------------------------------
                                        |             |           |
FREQUENCY PORT "RXC" 25.000000 MHz ;    |   25.000 MHz| 72.098 MHz|   2
                                        |             |           |
------------------------------------------------------------------------


mich irritiert es etwas da ich dachte das case-anweisungen doch 
"schneller" sind. also hier gibt es keine priorisierung.

im Pathtracer habe ich nun nachgesehn und dort ist mir aufgefallen, dass 
der längste pfad im if-then-else prozess steckt.
beim design mit den states ist der längste pfad in einem anderen 
prozess.
sprich: laut pathtracer ist das design mit den states schneller.

das ist alles aber irgendwie wiedersprüchlich...

weiss jemand was da passiert? die max. freq wird ja aus dem längsten 
kombi. pfad berechnet.

ich verwende den lattice machXO 2280 und den ispLever7.2.

mfg

Andi

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich schätze mal:
nachdem dein timing-constraint so easy zu erfüllen ist und dein baustein 
vielleicht so gut wie leer ist(?) schmeißt der einfach alle teile 
irgendwo zufallsmässig in den baustein und spart sich die optimierung, 
weil die eh nur zeit braucht und nicht benötigt wird ;)

wenn du das gleiche nochmal durchlaufen lässt werden wohl andere werte 
rauskommen. kannst du das mal ausprobieren? würd mich interessieren ;)

Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

nein da ändert sich nichts.
du hast da schon recht. ich habe mehrere module die jedoch getrennt sind 
und ich diese auch getrennt teste. also noch ist nichts auf dem chip. 
den hab ich noch nicht :-). später kommen dann noch mehr module parallel 
zusammen. sowohl von diesem design als auch von einem anderen. vom platz 
her wirds schon reichen. dann werden sich die werte aber doch stark 
ändern. das hab ich aber noch nicht ausprobiert. bekomme in den nächsten 
tagen meine platinen mit den MachXOs drauf und dann muss ich erstmal 
jedes modul testen. vllt wird sich dann das case-design doch rechnen?!?!

mfg

Andi

Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...

also der platzbedarf des designs liegt gerade bei ca 6-7%. inklusive des 
distributed ram der auf den pfu's (?) liegt.

kann ich dem eigentlich sagen das er nur für den dist. ram die pfu's 
verwenden soll. also das die restliche logik auf den normalen LUTs 
liegen soll??

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du könntest den optimierer mal ärgern und das timing constraint so weit 
hochschrauben bis es nicht mehr erfüllbar ist.

was bei beiden implementierungen rauskommt müsste man ja im RTL 
schematic sehen..

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> was bei beiden implementierungen rauskommt müsste man ja im RTL
> schematic sehen..
Das RTL wird unabhängig von den Timing-Constraints gleich bleiben...
Bestenfalls kann der Placer und der Router noch was gutmachen.

Autor: Andi Z. (duderino65)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

habe die constrains mal hochgeschraubt. im case fall sieht es denke ich 
doch besser aus. bei 100mhz entsteht z.b. ein fehler der jedoch in einem 
anderen process steckt und diese nur aus if-else-abfragen besteht.

habe mal die reports angehängt.
beide designs jeweils mit 80 und 100 mhz constraints


mfg

Andi

Autor: Andi Z. (duderino65)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups die html dateien gehen nicht...
doofe sache...

Autor: Andi Z. (duderino65)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so nochmal...

naja die fehlerhaften pfade sind da doch alle in anderen prozessen.
mal sehn wie es dann aussieht wenn alles zusammen läuuft. irgendwann...

mfg

Andi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.