Gast
#671819
Hallo, Da ich gerade anfange mich mit VHDL zu beschäftigen probiere ich gerade viel mit dem Xilinx-Webpack und Altera Quartus herum. Dabei ist mir neben vielen anderen Eigenheiten aufgefallen das Quartus offensichtlich deutlich anderen RTL-Kode erzeugt. Aus dem folgenden Kode erzeugt das Xilinx Webpack eine Lookuptable in einem Blockram, Quartus dagegen eine Kette von 16 Multiplexern.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
Die derzeitigen Entwürfe sind sicher unkritisch, aber irgenwie kommt mir diese Variante mit den Multiplexern ziemlich ineffizient hinsichtlich Ressourcen und Geschwindigkeit vor. Wenn die Logikelemente eh aus Lookuptables bestehen könnte man die doch zusammenfassen, oder übersehe ich da etwas? An einer anderen Stelle fügt Quartus 3 Multiplexer mit identischen Eingängen ein anstatt die Selectsignale miteinander zu verknüpfen. Überhaupt scheint Quartus nur Multiplexer, Adder, Fli-Flops und Vergleicher zu kennen. Ich habe im RTL-View noch keine aufgelöste Logik gefunden. Gibt es irgendwelche Schalter wo ich die Synthesergebnisse beeinflußen kann? Jens