Problem mit Wishbone Builder "and/or"

#3697174
Lesenswert?

Hallo zusammen,

ich kann mit dem Wishbone Builder zwar ein Wishbone Intercon erstellen,
aber es gibt hier Probleme beim "übersetzen".

Hier ein Teil des VHDL Codes:
1
   signal wbs1_dat_i : in  std_logic_vector(15 downto 0);
2
   signal wbs2_dat_i : in  std_logic_vector(15 downto 0);
3

4
   signal wbs1_ss : std_logic;
5
   signal wbs2_ss : std_logic;
6

7
   signal readdata : std_logic_vector(15 downto 0);
8

9
   readdata <= (wbs1_dat_i and wbs1_ss) or (wbs2_dat_i and wbs2_ss);

Ich benutze Quartus II 11.1sp2 und bekomme folgende Fehlermeldung:

Error (10476): VHDL error at wb_intercon.vhd(147): type of identifier 
"wbs1_ss" does not agree with its usage as "std_logic_vector" type

Die gleiche Fehlermeldung auch noch mal für wbs2_ss. Eigentlich sollte
hier ein Multiplexer aufgebaut werden. Beim Wishbone Builder hat man
die Möglichkeit zwischen "and/or" und "mux" zu wählen.

Würde der Code mit readdata evt. bei Xilinx oder anderen funktionieren?

Ich habe jetzt einen Multiplexer wie folgt umgesetzt:
1
   readdata <= wbs1_dat_i when (wbs1_ss = '1') else
2
               wbs2_dat_i when (wbs2_ss = '1') else (others => '0');

Damit funktioniert es natürlich.

Viele Grüße,
Michael
#3697229
Lesenswert?

Der 'and' Operator in VHDL-93 kann nur mit gleichen Datentypen links und 
rechts vom Operator umgehen.

Der Zitierte Source Code ist gültig in VHDL-2008.

Michael Fischer schrieb:
> Würde der Code mit readdata evt. bei Xilinx oder anderen funktionieren?

Definitiv nicht, Xilinx hat keine VHDL-2008 unterstützung und 
interessiert sich auch nicht dafür, dass die Kunden das wollen. Leider.

Bei Lattice lässt sich damit arbeiten aber man kann gewisse Funktionen 
der IDE nicht mehr nutzen.

Bei Altera oder Microsemi bin ich nicht auf dem Laufenden.

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