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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.