Hallo zusammen, nachdem ich mir diesen Thread hier: Beitrag "FPGA synthetisierung" zu gemühte geführt habe bin ich mir sicher das meine Frage nicht schlimmer sein kann!! Da ich mir schon vor geraumer Zeit mal ein kleines Eval Board mit dem Altera MAX EPM7128SLC84-15 gebastelt habe aber noch nie wirklich viel mit VHDL gearbeitet habe, wollte ich dies jetzt einfach mal nachholen. Als Aufgabe habe ich mit das Mariebad Spiel vorgenommen welches auch bekannt ist als Nim Spiel. http://de.wikipedia.org/wiki/Marienbad_(Spiel) Hierbei werden abwechselnd Streichhölzer weggenommen und wer das letzte nimmt hat verloren. Einziger unterschied zum Original, in meiner Variante darf man max. nur zwei Streichhölzchen nehmen und wer das letzte nimmt hat gewonnen! Das Spiel wird durch die eingabe_set Bestätigung des Spielers gestartet oder durch eine Delay Zeit x aber dann darf der PC zu erst ziehen. Der Spieler muss jede Eingabe mit eingabe_set bestätigen danach zieht die KI. Da ich mir nicht anders zu helfen wusste habe ich sehr sequentiell gearbeitet, soll heißen ich habe alles in Prozessen verarbeitet. Die Simulation des Programms geht jetzt auch so weit nur habe ich das Problem das er beim Compilieren mehr Makrozellen(399) braucht als der EPM7128SLC84-15(128) besitzt. Da ich mir ziemlich sicher bin das dies wahrscheinlich an meiner schlechten Programmierung in VHDL liegt, wollte ich mal fragen ob ihr nicht mal einen Blick auf meine VHDL Code werfen könnt und mir vielleicht ein paar Möglichkeiten der Optimierung zu zeigt. Ich habe das Programm mit QuartusII Version 7.2 geschrieben. Ich habe keine wait und auch keine SHARED VARIABLEN verwendet, dafür aber LOOPS bei denn ich mir auch nicht wirklich sicher bin ob dies so gut ist! Ich bin für jede Hilfe dankbar und wer weiß vielleicht habe ich ja glück und bringe es ja doch noch in den EPM7128SLC84-15 rein ;-). MFG
@ Kingdude (Gast) >Da ich mir nicht anders zu helfen wusste habe ich sehr sequentiell >gearbeitet, soll heißen ich habe alles in Prozessen verarbeitet. Die Das ist der normale Weg. >Simulation des Programms geht jetzt auch so weit nur habe ich das >Problem das er beim Compilieren mehr Makrozellen(399) braucht als der >EPM7128SLC84-15(128) besitzt. Da ich mir ziemlich sicher bin das dies Hmmm. >Ich habe das Programm mit QuartusII Version 7.2 geschrieben. Ich habe >keine wait und auch keine SHARED VARIABLEN verwendet, Schonmal gut ;-) > dafür aber LOOPS >bei denn ich mir auch nicht wirklich sicher bin ob dies so gut ist! Naja, prinzipiell kann man das machen. Aber das Ergebnis ist NICHT eine sequentielle Verarbeitung der Daten, sondern massiv parallele Logik. Und das frisst dir deine Makrozellen auf. VHDL ist kein C. >Ich bin für jede Hilfe dankbar und wer weiß vielleicht habe ich ja >glück und bringe es ja doch noch in den EPM7128SLC84-15 rein ;-). Dein Ansatz ist schonmal gut. Aber die loops musst du über Zähler und weitere States realisieren, erst dann wird das ganze wirklich sequentiell aufgebaut und verarbeitet. Wobei es fraglich ist wieviel man dadurch einsparen kann. Das Hölzchenspiel hat ja nur 7+5+3+1 Hölzchen, welche als Bits gespeichert werden müssen. Wahrscheinlich ist sie Resourceneinspaarung nicht soo gross dass es in 128 Makrozellen passt. MFG Falk
Hallo, >Ich bin für jede Hilfe dankbar und wer weiß vielleicht habe ich ja >glück und bringe es ja doch noch in den EPM7128SLC84-15 rein ;-). ich würde sagen, das geht nicht, es wird nicht in den CPLD passen. Nimm einen kleinen Mikrocontroller, damit wirst Du erfolgreicher sein. Oder muss das Spiel mit 50 MHz laufen? Wenn ja, dann Respekt... Gruß, Alex
Hallo, da es mir ja primär um Erfahrung im Umgang mit VHDL ging, ist es natürlich auch keine ding wenn man das Spiel jetzt nicht so weit optimieren kann das es doch auf die 128 Makrozellen käme! Was mich jedoch trotzdem Interessieren würde ist, ob der Code in dieser form vernünftig bzw. dem Gedanken von HDL entspricht? @Falk dein Kommentar zu den Loop’s hat mir auf alle Fälle schon sehr geholfen bezüglich des Verständnisses!! MFG Kingdude
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.