mikrocontroller.net

Forum: FPGA, VHDL & Co. Binärzahl und integer addieren


Autor: Fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: John-Eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Zennehoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Zennehoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, ich habs ausprobiert, und mit ieee.std_logic_1164.all und
ieee.std_logic_unsigned.all geht es auch einfach mit Konstanten
Integern. Bei mir jedenfalls...
Zen

Autor: Fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: john-eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bitte bitte.
mfg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.