Ich versuche eine (sehr einfache) GPU auf einem Spartan-6 FPGA mit VHDL zu erstellen. Das große Problem, auf das ich gestoßen bin, ist, dass mein Verständnis von HDL ziemlich begrenzt ist - ich habe meinen Code mit verschachtelten for
Schleifen für Ray Tracing/Scanline Rasterisierungsalgorithmen geschrieben, ohne zu bedenken, dass diese enormen Schleifen mehr als 100% verbrauchen der DSP schneidet, wenn die Schleifen bei der Synthese aufgetrennt werden.Serialisierungscode in VHDL
Meine Frage ist, wenn, ich habe eine Uhr ausgelöst Zähler anstelle einer for
Schleife (mit dem Zähler als Index und Reset auf 0 bei seiner max), würde dies bedeutet, dass die gesamte Logik wird nur einmal generiert? Ich kann das sehen, wenn ich Raytracing auf einem 600x800 Bildschirm mit einem 200 MHz Takt führe, dass die gesamte Bildwiederholrate des gesamten Bildschirms auf 625 Hz fallen würde, aber das sollte theoretisch noch schnell genug sein.
Vielen Dank!
Entschuldigung - ich verstehe, dass der erste Teil über das Synthese-Tool für jeden Wert einmal implementiert (was zu massiven Hardware), aber ich verstehe nicht ganz den zweiten Teil der Interleaving-Verarbeitung? – davidhood2
Siehe Update zur Antwort. –
Zur Verdeutlichung der VHDL-Struktur - nach meiner eng verwandten Frage - werden alle 'Funktions'-Anweisungen in einem einzigen Zyklus ausgeführt (und wenn nicht, wie kann eine Funktion über mehrere Taktzyklen hinweg erstellt werden) oder kann die Berechnung über mehrere Zyklen verteilt werden nur mit Entitäten gemacht werden? – davidhood2