Sparten 3e: in std_logic_vector mit einem festen Bit-Muster erstellen

Gast #2633591
Lesenswert?
• ▲
▼
Hallo!

Ich möchte das Eingangssignal a der Entity mit einem festen Bit-Muster 
versehen:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity generic_vector is
    Port ( a : in  STD_LOGIC_VECTOR(3 downto);
           y : out STD_LOGIC_VECTOR(3 downto 0)
   );
end generic_vector;

architecture struc_arch of generic_vector is
begin
  y <= a;
end struc_arch;

Das Signal a soll zb die Bitfolge "1111" gleich "mitdeklariert" 
bekommen, damit ich dieses direkt auf den Ausgang weitergeben kann um 
dann entsprechend dem Bit-Muster ein paar LEDs zum leuchten zu bringen.

Ich habe jetzt schon sehr viel ausprobier, Literatur gewälzt und 
gegoogelt, kann dieses, höchstwahrschienlich sehr einfache, Probleme 
aber derzeit nicht lösen.
Für Hilfe und Anregung bedanke ich mich im Voraus!
Moderator (Firma: Titel) Persönliche Seite #2633896
Lesenswert?
• ▲
▼
Thomas schrieb:
> Das Signal a soll zb die Bitfolge "1111" gleich "mitdeklariert"
> bekommen, damit ich dieses direkt auf den Ausgang weitergeben kann um
> dann entsprechend dem Bit-Muster ein paar LEDs zum leuchten zu bringen.
Das geht schon von der Idde her nicht, denn wie sieht deine Schaltung 
im FPGA aus? Richtig, das sind einfach nur Verbindungen, ganz ohne 
Speicherverhalten. So etwa:
1
  a(0) ---- y(0)
2
  a(1) ---- y(1)
3
  a(2) ---- y(2)
4
  a(3) ---- y(3)
Und wie willst du auf einer simplen Leitung etwas vorbelegen?

Wenn du einen Takt hättest und das so beschreiben würdest:
1
   y <= a when rising_edge(clk);
Dann könntest du einen Initialwert an die dadurch entstandenen 
y-Flipflops geben:
1
    Port ( a : in  STD_LOGIC_VECTOR(3 downto 0);
2
           y : out STD_LOGIC_VECTOR(3 downto 0) := "1111"
3
   );
Aber das würde auch nichts helfen, denn bei der ersten Taktflanke würde 
dieser Wert von dem Wert an a überschrieben.

Fazit: in beiden Fällen muss an a zum Start "1111" anliegen, damit an y 
"1111" herauskommt. Der Trick mit den Pullups/Pulldowns funktioniert 
nur, wenn ein hochohmiger Zustand an a eintritt (z.B. uC im Reset). Aber 
das wäre dann quasi Eingang auf Eingang, ein Zustand, der sowieso 
vermieden werden sollte...
Gast #2634770
Lesenswert?
• ▲
▼
@ Franke (Gast), Lothar Miller (lkmiller)

Vielen Dank für die Antworten!

Ich lag natürlich völlig falsch mit der Annahme, dass man ein 
Eingangsignal für die Entity einfach so festlegen könnte.

Ich bin generell mit der falschen Denkweise an die Sache rangegangen.

Ich konnte mein "Eingangs Bit-Muster" nun, wie schon befürchtet, auf 
höchst einfache Weise festlegen, indem ich in der architecture meiner 
Entity einfach ein Signal mit den gewünschten Eigenschaften erstellt 
habe:

signal input_pattern: std_logic_vector (Q-1 downto 0):="00000001";

Dieses Signal "missbrauche" ich dann beim port map als Eingangssignal.

MFG Thomas

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