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!
Thomas schrieb: > Port ( a : in STD_LOGIC_VECTOR(3 downto); das heisst natürlich richtig: Port ( a : in STD_LOGIC_VECTOR(3 downto 0);
hi, Aktiviere doch einfach die pullups/oulldowns an den ios, schon gibts du ein pattern mit, Wobei mir der Sinn der Schaltung noch nicht erschliesst... Gruß
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...
@ 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
Thomas schrieb: > Dieses Signal "missbrauche" ich dann beim port map als Eingangssignal. Du kannst den Vektor beim port map auch direkt angeben
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.