Forum: FPGA, VHDL & Co. ieee.numeric_std.all


von PeterPan (Gast)


Lesenswert?

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ß

von Christian R. (supachris)


Lesenswert?

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.

von PeterPan (Gast)


Lesenswert?

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** :)

von Christian R. (supachris)


Angehängte Dateien:

Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.