Vergleichen eines langen std_logic_vectors mit Nullen

8

In der Simulation funktioniert das perfekt. Ist dies der beste Weg um zu überprüfen? Nullen für einen synthetisierbaren Code. Was würden die Ressourcen generiert?

%Vor%

Gibt es einen anderen optimalen Weg, diese Lösung unter Berücksichtigung von h / w-Mapping (mit optimaler Ressourcennutzung) zu implementieren.

Ich wäre mehr daran interessiert, die verwendeten Ressourcen zu verstehen.

    
powernest 25.09.2013, 15:12
quelle

3 Antworten

5

Es gibt keinen Weg, der für die Synthese mehr oder weniger Sinn macht. Schreibe den Code, der deine Absicht am besten zum Ausdruck bringt.

Wenn Sie einen Vektor für alle Nullen vergleichen, sollten die folgenden alle die gleichen Ergebnisse liefern, oder Sie sollten einen schwerwiegenden Fehler gegen das Werkzeug einreichen!

%Vor%

und tatsächlich für kürzere Vektoren, die in eine ganze Zahl passen:

%Vor%

ist genau dasselbe wie jeder 32-Bit Vektorvergleich.

(Übrigens, es gibt keine Notwendigkeit für Klammern um die Bedingung if - VHDL ist nicht C :)

    
Martin Thompson 26.09.2013, 13:16
quelle
6

Wenn der Bereich verfügbar ist, wie in Ihrem Beispielcode, dann der Vorschlag Lösung sieht gut aus, und ich würde erwarten, dass Synthese-Tools gemacht werden, um zu handhaben Konstruktionen wie diese.

Wenn der Bereich nicht verfügbar ist, kann der Vergleich mit Null wie folgt aussehen:

%Vor%

Ich würde erwarten, dass Synthesizer-Tools dies genauso handhaben wie beim Vergleich mit (vector_slv'range => '0') .

    
Morten Zilmer 26.09.2013 05:31
quelle
1

Was die Synthese angeht, ja, solche einfachen Konstrukte werden normalerweise vom Tool ziemlich gut optimiert. Das genaue Hardware-Layout hängt natürlich davon ab, was Ihr Ziel ist (FPGA, ASIC, ...).

Ich schlage vor, das Syntheseergebnis zu betrachten (z. B. Technology Map Viewer für Altera FPGAs). Wenn die Synthese es durchkreuzt, können Sie es manuell in einen binären Vergleichsbaum mit Null umwandeln, wobei Sie die verfügbaren Technologiegrundelemente berücksichtigen. Das kann viel schwieriger sein, als es sich anhört, besonders für FPGAs (es gibt mehr als LUTs, mit denen man spielen kann), und sollte nicht mit einem anständigen Werkzeug notwendig sein.

    
zennehoy 25.09.2013 15:56
quelle

Tags und Links