infeasible opearotr

I

info_req

Guest
helo draga,
Ja sam koristeći (i) (std_logic_vector) * (cijeli broj) za pomak std_logic_vector pravo
ii) SLL, SHL, itd. za pomak lijevo / desno, ali to ne radi.Ja sam isto tako dodavanjem odgovarajuće knjižnice

ERROR je kao: infeasible operatora.

što svibanj biti problem?hvala unaprijed

 
Možete to učiniti ručno biste izbjegli taj problem:
Na primjer, 5 bitni broj biti pomaknut lijevo od 3:
num (4 downto 2) <= num (2 downto 0);
num (2 downto 0) <= "00";

Ako želite koristiti množenja, a zatim biste trebali koristiti binarni broj umjesto cijeli broj:
npr.:
num2 <= num1 * "100"; - pomak od 2, num2 je veličina treba biti veća od num1 by 2.
num1 <= num2 (4 downto 0); - ako se unutar procesa, održat će vrijednost prethodnog sata, budite oprezni.

i morate uključiti ieee.std_logic_unsigned .*;

Primjetite da je množenje način troši više hardver ako želite sintetizirati svoj kôd.

 
VHDL navika dopustiti te korištenje operatorima poput * na različite vrste podataka.To je vaš problem.
Ali, ako ste to učiniti, onda ćete morati definirati vlastite operatora, koji bi kao pisanje funkcija koje bi poduzeti std_logic_vector tipa, a cjelobrojnog tipa, umnožiti i vratiti rezultat u vrste podataka po Vašem izboru, to se također naziva oprator preopterećenja.
Kr,
Avi
http://www.vlsiip.com

 

Welcome to EDABoard.com

Sponsor

Back
Top