Spartan-3A a AN -signed/unsigned matematika
balu@home
balu na k-net.fr
Pondělí Prosinec 30 15:11:55 CET 2013
s 8 bitmi pokryjete 0..255, nie 256 :-)
Pokial tato hodnota vstupuje do matematickej operacie a predpokladate
overflow (napriklad pripocitavate konstantu, alebo nasobite koeficientom
>1) tak treba zvysit pocet bitov.
Ak pouzijete ieee.numeric_std ten podporuje aj signed aj unsigned
operacie. Ako bude k vektoru pristupovat kompilator zavisi od toho ake
kniznice pouzite a ako signal zadefinujete.
Vytlacte si tento obrazok
http://www.doulos.com/knowhow/vhdl_designers_guide/numeric_std/numeric_std_conversions.gif
a mozete veselo tycastovat :-)
FPGAcku je jedno co ten signal prenasa a aky ma format, pren su to len
bity. Ja zvyknem vsetko dratovat ako std_logic_vector
PocetPulzov : in std_logic_vector (11 downto 0)
lokalny signal (nikdy nepouzivat premenne!!)
signal Loc_CelkovyPocetPulzov: unsigned (11 downto 0);
a potom si zadefinujem typ az pri konkretnej operacii, napriklad
Loc_CelkovyPocetPulzov <= Loc_CelkovyPocetPulzov +
Unsigned(PocetPulzov);
a na konci vnutorny signal vytiahnete von a skonvertujete znova na
genericku zbernicu
CelkovyPocetPulzov <= std_logic_vector(Loc_CelkovyPocetPulzov);
Ak pracujete so signalom stale ako s cislom tak ho mozete samozrejme
deklarovat len raz a prenasat stale ako cislo.
Pokial prechadzate z unsigned na signed tak treba urobit riadnu
konverziu a pridat znamienkovy bit. Sign extension sa robi v 2's
complement tak ze okopirujete znamienko do vsetkych volnych MSB bitov.
b.
On 30/12/2013 09:29, hw na itherm.cz wrote:
> Pokud tedy dobre chapu, pokud mam citac zadefinovane jako vector(9 downto 0
> ) a potrebuju citat do 627 tak musim pridat bit.
> Tyka se to tedy vseho nad cim se delaji matematicke operace.
>
> Co kdyz mam 8bit branu ze ktere jde unsigned hodnota (0-256) a tato
> vstupuje do nejake matematicke operace. Bude k ni pristupovano jako k
> signed, tzn nebude vypocet sedet, nebo se pletu?
> Jak se resi takove situace? Musim to presunout do interni promenne a pridat
> tam 0 na zacatek?
>
> Pavel
>
Další informace o konferenci Hw-list