Forum: FPGA, VHDL & Co. pins zu vektor


von biggie (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine kleine Frage.

Ich betreibe einen AD-Wandler, der mir parallel den 8-Bit-Wert liefert. 
Dieser geht parallel an 8 Pins eines FPGA's. Nun möchte ich gerne diese 
8 Pins zu einem std_logic_vector zusammenfassen. Kann mir jemand kurz 
erklären, wie ich das machen kann?

Sorry für die blöde Frage!

Danke!

gruß
biggie

von Nephilim (Gast)


Lesenswert?

also wenn ich in der entity halt sowas habe wie

 Port(
      Pin1: in std_logic;
      Pin2: in std_logic;
      Pin3: in std_logic;
      Pin4: in std_logic;
      Pin5: in std_logic;
      Pin6: in std_logic;
      Pin7: in std_logic;
      Pin8: in std_logic;
)

.
.
.

würde ich in der architecture einfach nen signal anlegen das 8 bit breit 
ist

signal pin1_8: std_logic_vector (7 downto 0);

und dann einfach die eingangssignale auf das interne signal mappen

pin1_8(0) <= Pin1;
pin1_8(1) <= Pin2;
pin1_8(2) <= Pin3;
pin1_8(3) <= Pin4;
pin1_8(4) <= Pin5;
pin1_8(5) <= Pin6;
pin1_8(6) <= Pin7;
pin1_8(7) <= Pin8;

von Jan M. (mueschel)


Lesenswert?

Warum nicht gleich einen Eingangsvektor benutzen?

 Port(
  Data_in : std_logic_vector(7 downto 0)
  );

von Nephilim (Gast)


Lesenswert?

ok, geht auch ;)

von biggie (Gast)


Lesenswert?

hallo,

@ Jan M.
geht es einfach, dass ich dann später die einzelnen pins mit dem 
std_logic_vector verknüpfen kann?
bin leider noch sehr unbedarft in vhdl und kenne mich da nicht so gut 
aus...

Vielen Dank an alle!

gruß
biggie

von Nephilim (Gast)


Lesenswert?

jup, später die einzelnen pins einfach auf die Data_in(0)... usw. mappen

von biggie (Gast)


Lesenswert?

sehr schön, vielen Dank!

genau diese Info hab ich gebraucht :-)

DANKE!

gruß
biggie

von Berater Nummer 8 (Gast)


Lesenswert?

du kannst jederzeit noch Mapper, Signalgabeln und ähnliches 
hinzuaddieren, um einmal programmierte Strukturen zu wrappen.

Die PIN-Zuordung machst Du im FPGA ja sowieo im PinFile / 
SetConstraint-File. Dort heisst es dann eben :

(Altera) :
set_location_assignment PIN_B3 -to adc_input[0]
set_location_assignment PIN_B5 -to adc_input[1]
...

Rechnen tust du dann nur mit dem adc_input als Vektor.
Spart auch Tipperei in der entity

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.