VHDL - hloupe otazky

hw na itherm.cz hw na itherm.cz
Čtvrtek Leden 2 10:08:36 CET 2014


Me pri otazce slo hlavne o to jestli neni nejaky jeste lepsi postup nez
stavovy automat.
Premyslel jsem nad tim to udelat i jako velky posuvny registr a proste to
precist najednou ;-)

Pavel

-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Marek Peca
Sent: 2. ledna 2014 8:54
To: HW-news
Subject: Re: VHDL - hloupe otazky

>> Ako pisal kolega David, klucove slovo je stavovy automat, alebo 
>> anglicky state machine.
>
> Coz je presne to, co kolega sam navrhoval (akorat nevedl, jak se tomu 
> spravne nadava), viz:
>
> "Napada me udelat si process s citacem do 19 a pomoci CASE a WHEN pro 
> jednotlive byte vzdy udelat spravnou udalost (povolit prijem, zapsat 
> do registru, zvysit citac o 1)"

Coz NENI obecny, a casto ani spravne udelany, stavovy automat ve VHDL.
Jak znamo, synteza HDL->makra zatim jeste neni na urovni soudobych
optimalizujicich kompilatoru, spise je na urovni Fortranu pro Cray -- kdy se
neco optimalizuje a neco je ponechano konstrukterovi. Volbou jazykovych
struktur se voli, co zhruba synteza vyprodukuje. Muzeme se hadat o tom, zda
je to filosoficky dobre, nebo blbe... ale to bych nerad.

Nuze, stavovy automat ve sve obecnosti muze mit spoustu konkretnich
implementaci, lisicich se v synchronnim svete vlastne pouze volbou kodovani
stavoveho slova. Co je uvedeno vyse, je kodovani v celych cislech 0..N-1.
Coz je ovsem ve spouste pripadu krute nevyhodne, napr. kdyz jde o rychlost.
Casto je lepsi mit treba kodovani "one-hot": 1000, 0100, 0010,
0001 atd., tedy misto citace delky ceil(log2(N)) s dekoderem je pak pouzit
vlastne posuvny registr delky N.

Proto doporucuji v techto pripadech neprasit a napsat automat jako automat,
a ne jako citac. Tedy pouzit abstraktni vyctovy typ misto celeho cisla. A
pak treba v Synplify zadat nestandardni atribut, ktery zajisti one-hot
kodovani.

Samozrejme mnohem slozitejsi oblasti je, kdyz pocty stavu jsou do stovek az
miliard a koncept stavoveho automatu uz tak nejak splyva bud s CPU, nebo s
obecne intuitivne popropojovanou mnozinou podobvodu.

Jeste stoji za zminku pouziti hierarchickych stavovych automatu, kdy stav
nadrazeneho automatu povoluje (enable) krokovani vnorenych masin.
To je dost uzitecna vec, zejmena pro slozitejsi sekvencery.


ZdraviM.
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list