Multioperand Navíc ve VHDL?

V

vychutnat

Guest
Umožňuje Předpokládám q0, P0, P1, Q1 je 8 bitů bez znaménka vektory.

Chci vypočítat výraz:

delta = ((P0-q0) <<2 (P1-Q1) 4)>> 3
Výraz může nabývat hodnot mezi [-158.159],
tak delta musí být 9 bit délka včetně označení v 2'complement.

Je možné popsat ve VHDL jako multioperand navíc bez
samostatně provádí každý navíc?Přidáno po 37 minutách:A další otázka ohledně multioperand navíc.
Povšimněme si a, b, c, d nesignováno 8 bit vektory a následující výraz
vysledek = a b c d, výsledek musí být 10 bitů dlouhý.

Je následující výraz správně ve VHDL?
výsledek <= "00" & "00" & b "00" & c "00" a vývoje

 
Výraz je nesprávné, protože & nemají má precendence přes .Potřeby parantheses.

 
Máte naprostou pravdu fvm, zapomněl jsem je.

Ten správný je:
výsledek <= ("00" &) ("00" & b) ("00" & c) ("00" & d);

Řekněme například, že 9 bitů, 8 bitů b, c 7 bitů a D 7 kousky jsou nepodepsané a přidáme je do následující výraz:

vysledek = a b c d.

Maximální hodnota výrazu výše je 1020, takže výsledek musí být 10 bitů dlouhý.
Výraz VHDL bude:
výsledek <= ('0 '&) b c d;

Bude to výraz produkovat správné výsledky syntézu?

 
y převýšení u použití nepodepsané rozšíření bitwidth výsledku

 

Welcome to EDABoard.com

Sponsor

Back
Top