Gibt es Unterschiede zwischen
(x downto y) and (y to x)?
Wo sollen wir verwenden (x nach unten bis y)? Die gleiche Frage gilt für (y bis x).
Notation: x und y sind ganze Zahlen
Gibt es Unterschiede zwischen
(x downto y) and (y to x)?
Wo sollen wir verwenden (x nach unten bis y)? Die gleiche Frage gilt für (y bis x).
Notation: x und y sind ganze Zahlen
Antworten:
Hier können Sie feststellen, dass VHDL von einem Regierungsausschuss erfunden wurde. Wenn VHDL konsistent ausgelegt wäre, würde das, was Sie als "to" bezeichnen, als "upto" bezeichnet - wie im Gegenteil von "downto". In dieser Antwort werde ich auf "bis" verweisen. Verstehe nur, dass ich diesen Begriff aus Gründen der Klarheit verwende - er ist immer noch kein offizielles VHDL-Schlüsselwort.
Vektoren oder Arrays können einen absteigenden oder ansteigenden Bereich haben. Zum Beispiel:
signal foo :std_logic_vector (7 downto 0);
signal bar :std_logic_vector (0 to 7);
Dies ist streng genommen eine Nummerierungskonvention und hat wenig mit der resultierenden logischen Effizienz zu tun. Meistens hängt die richtige Verwendung davon ab, was für den Verfasser des Codes am sinnvollsten ist.
Verwenden Sie jedoch niemals "bis", es sei denn, Sie müssen. Was folgt, ist meine persönliche Meinung, aber sie basiert auf 20 Jahren professionellem Schreiben von VHDL und 30 Jahren Schreiben von Software:
Das Mischen von Downto und Upto im selben Code ist immer problematisch. Dies ist möglich, erfordert jedoch eine sorgfältige Planung und Notation, um die richtigen Ergebnisse zu erzielen. Selbst dann ist der Code später schwer zu lesen und zu ändern. Es ist sehr leicht zu verwechseln, welche Signale nach unten und welche nach oben gerichtet sind.
Die meisten Busse sind mit "N bis 0" nummeriert, wobei Bit 0 am wenigsten signifikant und N am signifikantesten ist. Aus diesem Grund ist Downto das wichtigste von beiden. Und da wir nicht Downto und Upto mischen wollen, erhält Upto den Boot. In jedem Fall, in dem ich bis verwendet habe, habe ich es bereut und normalerweise den Code neu geschrieben.
Verstehen Sie, dass die Verwendung / der Missbrauch von bis zu hauptsächlich ein Problem in großen "Programmen" wird. Es macht es schwierig, Module gemeinsam zu nutzen (auch bekannt als Code-Wiederverwendung) und Code zu warten und zu debuggen. Wenn Sie nur ein oder zwei Seiten von VHDL schreiben, spielt dies möglicherweise keine Rolle. Wenn Sie jedoch FPGAs mit mehr als 30.000 VHDL-Zeilen schreiben, ist dies ein großes Problem.
Es gibt nur wenige Nachteile, nur Downto zu verwenden. Aber die Nachteile sind winzig im Vergleich zu den Problemen, auf die ich beim Mischen von Downto und Upto gestoßen bin.
Als Randnotiz: Der Typ, der beschlossen hat, die PowerPC-Busse umzukehren (wobei Bit 0 das wichtigste Bit ist), sollte tariert und gefiedert sein. Oder zumindest gezwungen, Richard Simmons in Einzelhaft rund um die Uhr zu beobachten. Ich sag bloß.
Sie sind gleichwertig und es ist nur eine persönliche Präferenz, welche Sie verwenden. downto
wird häufig für Adress- oder Datenbusse verwendet, bei denen das Lesen von links nach rechts mit dem Bit höchster Ordnung beginnt.