VHDL, scitacka a CarryOut
Jan Smrz
jan.smrz@htc.honeywell.cz
Čtvrtek Duben 20 09:43:29 CEST 2006
Tak tak, zkuste tohle:
CntAdd <= '0'&Cnt + AddReg;
process (Fin) begin
if (Fin='1' and Fin'event) then
Cnt <= CntAdd(7 downto 0);
end if;
end process;
J.S.
Daniel Valuch wrote:
>naformatujte si ten 8 bitovy vektor do 9 bitoveho tak ze MSB bude nula
>(spojite 8 bitovy vektor a konstantu '0'). Potom scitate, viete ze k
>preteceniu nemoze dojst a viete ze MSB bude carry out. Nemam tu moje
>poznamky (som v Bratislave), takze konkretne vam neporadim.
>Jedna zo zakladnych vlastnosti VHDL je jednoznacnost. Pri vsetkych
>operaciach mozete pouzivat len rovnake (alebo definovane) operandy.
>Zamedzi sa tym veciam typu sucet signed a unsigned vektora a podobne.
>b.
>
>p.s. nemali by byt vsetky operacie vo vnutri procesu?
>
>
>Hynek Sladky wrote:
>
>
>
>>Uz zas nevim, jak dal. Potrebuju dostat signal CarryOut ze scitacky, ale
>>nejak se nedari...
>>
>>mam registr
>> signal AddReg: std_logic_vector (7 downto 0) := "10000000";
>>dale vysledek
>> signal CntAdd: std_logic_vector (8 downto 0);
>>a operace
>> CntAdd <= Cnt + AddReg;
>> process (Fin) begin
>> if (Fin='1' and Fin'event) then
>> Cnt <= CntAdd(7 downto 0);
>> end if;
>> end process;
>>
>>Myslel jsem, ze CntAdd(8) bude obsahovat CarryOut, ale zda se, ze ne.
>>Preklad vyhodi Warning:
>>Width mismatch. <CntAdd> has a width of 9 bits but assigned expression
>>is 8-bit wide.
>>
>>Jak by se to dalo vyresit?
>>
>>Diky,
>>Hynek Sladky
>>
>>
>>
>>
Další informace o konferenci Hw-list