VHDL - ruzne vysledky pro (predpokladane) stejnou konstrukci (Xilinx)...
David Belohrad
david na belohrad.ch
Úterý Únor 1 19:22:02 CET 2011
co je CONV_INTEGER(state_reg)? je to to same jako
to_integer(unsigned(state_reg)) ?
potrebujete aby to jelo na 240MHz?
ja takove veci resim obvykle jako deklaraci konstantniho recordu a pouzivam
ten record jako informaci jak vygenerovat VHDL kod pomoci genericu. Staci to
pole a pocet polozek v poli a je to.
mimochodem - dival jste se na RTL co Vam vygeneruje za schema v obou
pripadech?
2011/2/1 Marek Sembol <hwm.land na gmail.com>
> Prosim o pomoc s nasledujicim problemem. Doufam ze fragment meho kodu
> bude stacit:) Mam (v ramci jednoho procesu) konstrukci:
> case state_reg is
> when "0000" =>
> if (trigfiltered_reg(0) = '1') then
> state_next <=
> regset(0)(nextStateRange'range);
> end if;
> when "0001" =>
> if (trigfiltered_reg(1) = '1') then
> state_next <=
> regset(1)(nextStateRange'range);
> end if;
> -- a tak dale a tak dale az po
> when "1111" =>
> if (trigfiltered_reg(15) = '1') then
> state_next <=
> regset(15)(nextStateRange'range);
> end if;
> when others => null;
> end case;
>
> Vysledek je funkcni, pise mi to max. hodiny 240MHz.
> Myslel jsem, ze konstrukce:
> if (trigfiltered_reg(CONV_INTEGER(state_reg)) = '1')
> then
> state_next <=
> regset(CONV_INTEGER(state_reg))(nextStateRange'range);
> end if;
> bude shodna. Problem je, ze to nageneruje zcela jinak a vysledkem je
> max. takt 212MHz
>
> A ted moje otazky:
> 1) proc?
> 2) jak to vyresit aniz bych musel rucne psat vsechny ty vetve? (duvod:
> chci tu cast obecneji a pocet vetvi (4/8/16/32) ridit pomoci genericu.
> Dik za kazdou radu,
> Marek
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20110201/f8b2e675/attachment.htm>
Další informace o konferenci Hw-list