Gast
#3960875
Hallo Leute Ich muss in einem Design, welches eigentlich für ein möglichst kleines FPGA gedacht war, nun mehrere lookup-tables einbauen welche nach kurzer Überschlagsrechnung die zur Verfügung stehenden Resourcen empfindlich verknappen könnten. Es geht um insgesamt 8 Tabellen mit 4096 Einträgen zu je 8 bit - also 12 bit rein, 8 raus. Da bei vielen der Tabellen sehr viele Nullen vorkommen würde es sich anbieten die Tabellen als Truth Tables zu verstehen und diese dann möglichst weit zu vereinfachen. Ich frage mich jetzt, ob sich der Aufwand hierfür überhaupt lohnt, oder ob das Synthese Tool nicht eine lookup-Tabelle schon selbständig so weit wie möglich eindampft. Und wenn ja, welches die geeignete Form ist in der der Synthese die Tabellen übergeben werden sollten. Die momentane Implementierung erfolgt in Verilog als ein großes case statement mit 4096 cases und pro case je einem 8-bit Ausgabewert. Ist dies eine Form mit der das Tool klar kommt? Wäre es besser die vielen Null-Bytes vorher durch ein einziges default zu ersetzen? Die Synthese erfolgt mit Altera Quartus oder u.U. mit dem entsprechenden Tool von Latice (der FPGA-Typ steht bislang noch nicht fest) Wer hat diesbezüglich irgendwelche Erfahrungen beizusteuern? Andere Alternativen die ich gerade verfolge: * Block-Ram (32k Bytes dürfen für kleine FPGAs schon viel sein) - nur wie kommen die Daten da rein? Kann das FPGA beim booten RAMs gleich laden? * externes (Flash-/EP-)ROM mit den Tabellen (könnte vom I/O pincount knapp werden und ist ein extra Bauteil) * Sonst noch welche???