Binärzahl und integer addieren

Gast #251140
Lesenswert?

Hallo...
Ich muss noch ein mal eine Frage loswerden.
Ich habe eine Binäre Zahl die ich mit einem Integer addieren möchte.
Das ergebniss soll wieder ein Signal sein.
Der relevante auszug aus dem Programm schaut so aus.

entity Screen_editor is
    Port ( Clock40   : in std_logic;
           x     : in std_logic_vector(9 downto 0);
           y     : in std_logic_vector(9 downto 0);
:
:
usw
:
:

SIGNAL x_k1     : std_logic_vector(7 downto 0);
SIGNAL y_k1     : std_logic_vector(7 downto 0);
SIGNAL x_k2     : std_logic_vector(7 downto 0);
SIGNAL y_k2     : std_logic_vector(7 downto 0);
SIGNAL x_k3     : std_logic_vector(7 downto 0);
SIGNAL y_k3     : std_logic_vector(7 downto 0);

constant achse_k1_x : integer := 15;
constant achse_k1_y : integer := 10;
constant l_linie : integer := 257;
constant raster : integer := 300;

begin

x_k1 <= x - achse_k1_x;
y_k1 <= y - achse_k1_y;
x_k2 <= x - achse_k1_x + raster;
y_k2 <= y - achse_k1_y;
x_k3 <= x - achse_k1_x;
y_k3 <= y - achse_k1_y + raster;

Anscheinent funktioniert es aber nicht eine Constante mit einem Signal
zu addieren und es einem Signal zuzuweisen oder???
Das Webpack meldet keinen Fehler, aber die Funktion ist nicht gegeben.
Wo liegt der Fehler, bzw habt ihr einen Tipp wie ich aus einer
Variablen oder einer Constanten ein Signal machen kann?

Danke euch
Gast #251141
Lesenswert?

Hallo.
Kannst du die Constante nicht einfach als std_logic_vector
deklarieren?
oder muss es unbedingt integer sein.
sprich
======
constant achse_k1_x : std_logic_vector(7 downto 0) := x"0E";
constant achse_k1_y : std_logic_vector(7 downto 0) := X"0A";
usw.
vieleicht geht das ja.
denke mal aber schon, da beide im gleichen format sind.

mfg
john-eric
Gast #251142
Lesenswert?

Wenn du IEEE.STD_LOGIC_ARITH und IEEE.ST_LOGIC_UNSIGNED noch nicht
"use"est, probier das mal. Ich glaube das sollte gehen.

Wenn nicht, kannst du aus einem "integer" einen "std_logic_vector"
machen:
x_k1 <= x - CONV_STD_LOGIC_VECTOR(achse_k1_x,9);

Zen
Gast #251143
Lesenswert?

Hmmm also erstmal danke... die libs werden schon geused :-)

Bei
x_k1 <= x - CONV_STD_LOGIC_VECTOR(achse_k1_x,9);
steht das ,9 für die Binärstellen?
Das ist ja nicht blöde... ich habe den vorschlag von John Eric auch
schon beherzigt... ich denke die vorschläge sollten mich
weiterbringen.
Danke rstmal... meld mich dann wenn es klappt... oder auch nicht :-)
Gast #251145
Lesenswert?

Jupp super... jetzt scheint es zu klappen... also bei mir lags aber
nicht an den Libs sondern ich habe die konstanten nun direkt als
std_logic_vector definiert. Nun scheint es zu klappen. Nun hab ich
eigendlich nur noch ein problem, aber ich denke da werd ich mal nen
neuen Thread aufmachen. Sonst wird es glaub ich zu unübersichtlich.
Aber danke für die hilfe...

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