CONV_INTEGER

OP #2340424
Lesenswert?

hi kurze frage:

ich habe als eingang eines entity eine binärzahl und will diese als 
integer benutzen.

1
library IEEE;
2
use IEEE.std_logic_1164.all; 
3
use ieee.std_logic_arith.all; 
4

5
entity Teiler_Motor is
6
  
7
  port (
8
    CLK: in STD_LOGIC;
9
    clk_m: out STD_LOGIC;
10
    drehzahl: in STD_LOGIC_VECTOR(7 downto 0)   -- Binärzahl
11
  );
12
end Teiler_Motor ;
13

14
architecture behavior of Teiler_Motor is
15

16
signal n : integer :=1;
17

18
begin
19

20
  process(drehzahl) -- wenn sich drehzahl ändert, wird teiler verhätlnis über for-schleife neu berechnet
21
  
22
  variable dez_dz : integer := conv_integer(drehzahl); -- Konvertierung
23
.
24
.
25
.

Fehlermeldung: "Type integer is not an array type and cannot be 
indexed."

Aber sämtliche beispiele im intnernet funktionieren so.
Wo ist also der Fehler?
Moderator (Firma: Titel) Persönliche Seite #2340739
Lesenswert?

danny w. schrieb:
> ich musste noch die ieee.std_logic_unsigned.all einbinden
Hättest du doch besser gleich die numeric_std genommen.

> wenn ich allerding die simulation starte hat dez_dz den wert 0.
> kann sich da einer ein reim drauf machen?
Ja.
danny w. schrieb:
> variable dez_dz : integer := conv_integer(drehzahl); -- Konvertierung
Teil das doch besser mal so auf:
1
  process(drehzahl) -- wenn sich drehzahl ändert, wird teiler verhätlnis über for-schleife neu berechnet
2
  variable dez_dz : integer; -- Deklaration
3
  begin
4
     dez_dz := conv_integer(drehzahl); -- Konvertierung
5
     :
6
  end process;

Du sollltest dir eines zwingend vergegenwärtigen:
Das ist NICHT C, was du hier "programmierst"!
Sondern es ist VHDL, mit der du eine Hardware beschreibst.
Die Unterschiede sind wesentlich größer als du denkst. Die 
Gemeinsamkeiten sind bestenfalls bei einzelnen Sprachelementen (wie 
for, while...). Das Verhalten dieser Sprachelemente ist KOMPLETT 
anders!


> hi kurze frage:
Warum schon wieder ein neuer Thread?
Haben dir die Antworten im alten 
Beitrag "vhdl: signalinitialisierung funktioniert nicht" nicht gefallen?
Oder hast du die Antworten gar nicht gelesen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren