Forum: FPGA, VHDL & Co. wie std_logic in std_logic_vector direkt konvertieren ?


von VHDL-ING (Gast)


Lesenswert?

Ich stehe, dank 2 Gläsern Wein, gerade komplett auf dem Schlauch:

Wie konvertiert man mit einer einizigen VHDL-Zeile einen std_logic in 
std_logic_vector?

Ich habe wieder mal das Problem, dass ich ein BRAM anschliessen muss, 
das ein enable vom typ "ena(0)" haben will, während das original ena ein 
std_logic ist.

Normalerweise takte ich ja immer mal was ein und schreibe "if ena(0) = 
'1' then ena2 <= '1'; else ...." etc.

Aber hier darf ich das nicht machen, nichtmal kombinatorisch, sondern 
MUSS dasselbe Signal verwenden, weil das andere am RAM nicht 
"gemonitort" werden kann. (Automatische Testbench mit vom Kunden 
bereitgestellten Designprogramm gemacht, das selber ModelSIm sripte 
schreiben kann - ach ist das toll).

Ich hätte gerne eine Funktion, die ich direkt am RAM anschliessen kann 
BRAM_ENA -> function(ena), als Ersatz für ein zweites ena(0),

Wie formuliert man das geschickt?

Wenn ich das Signal irgendwie übersetze, sehe ich nicht mehr das 
original enable, was ein formelles Problem ist.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

VHDL-ING schrieb im Beitrag #2765794:
> Wie formuliert man das geschickt?
Ich verstehe dein Problem nicht.
Du kannst immer und jederzeit ein einzelnes Element eines 
std_logic_vector statt eines std_logic verwenden, und umgekehrt geht das 
auch...
1
signal en0,en1,en2: std_logic;
2
signal env : std_logic(2 downto 0);
3
:
4
5
  port map (
6
       int_sl     => env(2),
7
       int_slv(2) => en2,
8
       : );
9
10
  en1 <= env(1);
11
  env(0) <= en0;


Oder du könntest z.B. auch einen Alias verwenden...
1
alias en1 : std_logic is ena(1);

VHDL-ING schrieb im Beitrag #2765794:
> BRAM_ENA -> function(ena)
Das geht nicht.
Typkonvertierungen/Funktionen sind in der port map nicht erlaubt.

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.