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

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.