hallo, ist es Absicht des minimalistischen Designs oder Dummheit, dass unsigned signale keine Gleich/Ungleichoperationen in der numeric_std package mitbringen? Mein work-around besteht aus dem cast nach std_logic_vector mit anschliessendem Vergleich. Gruß
Hä? Das wäre ja ganz neu. Ich hab überall Vergleiche von unsigned Signalen mit der numeric_std drin, und das geht einwandfrei. Klingt eher als verwendest du die numeric_std parallel zu einer der alten Synopsis Libs...dann gibts lustige Fehler.
Christian R. schrieb: > Klingt eher > als verwendest du die numeric_std parallel zu einer der alten Synopsis > Libs...dann gibts lustige Fehler. eben nicht, ich habe dieses arith package nicht in Benutzung. es gibt keine Funktion die unsigned Signale mit einem konstanten Literal ala x"FF" vergleichen kann. Das ist doch zum Ko** :)
Mal schnell getestet:
1 | library IEEE; |
2 | use IEEE.STD_LOGIC_1164.ALL; |
3 | use IEEE.NUMERIC_STD.ALL; |
4 | |
5 | |
6 | entity Test is |
7 | Port ( Input : in STD_LOGIC_VECTOR (15 downto 0); |
8 | Equal : out STD_LOGIC; |
9 | Greater : out STD_LOGIC; |
10 | Less : out STD_LOGIC); |
11 | end Test; |
12 | |
13 | architecture Behavioral of Test is |
14 | |
15 | Signal InValue : unsigned(15 downto 0); |
16 | |
17 | begin
|
18 | |
19 | InValue <= unsigned(Input); |
20 | |
21 | Equal <= '1' when InValue = x"ABCD" else '0'; |
22 | Greater <= '1' when InValue > x"ABCD" else '0'; |
23 | Less <= '1' when InValue < x"ABCD" else '0'; |
24 | |
25 | end Behavioral; |
Keine Fehler bei der Synthese, keine im Simulator. Siehe Bild. Xilinx ISE 13.1 mit ISim.
PeterPan schrieb: > es gibt keine *Funktion* Nein. Aber die Operatoren = > < <= >= /= Und natürlich muß die Wortbreite passen: du kannst z.B. einen 10 Bit Vektor nicht mit x"321" vergleichen. Zeig doch einfach mal, WAS bei DIR nicht geht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.