Už se těším. Docela bych rád věděl, jak se v C řeší užití paralelních jednotek - například CPU, CLA a FPU - tak, aby pracovaly paralelně, jestli to řeší kompilátor nebo ne. I když se obávám, že je to nad rámec tohoto seriálu. Je také zajímavé (nevím jak u původních verzí) je , že DMA nebo CLA periférie používají jen omezenou, nestejnou část RAM. S tímhle mikrem bude ještě sranda :-)
Co DSP, to je ještě celkem v pohodě, tam se to dá ještě nějak algoritmizovat (teď dělej to, potom tamto) a jenom si dávat majzla na to, jak se to vlastně provádí (např. nebyly možný některý sekvence instrukcí, protože operand ještě visel v násobičce. Když ty pasti člověk vychytá a potřebuje něco řídit, jsou k nezaplacení. Posledně ten QPSK demodulátor stál za to... :D Asi jako přechod od plaza k ptákovi.
Co je ale přechod od plaza ke stromu, to jsou PLD, ať už CPLD nebo FPGA. Tam se věci dějí tak nějak současně, následnost kroků se řídí víceméně jenom stavovým automatem nebo pipeline... O rychlosti běhu a využití čipu (a tím i ceně zařízení) rozhoduje například jeho zapojení (kam namapuju GPIO) atd. Tam bych to v biologii přerovnal jako přechod od plazů ke stromům... Však si to prubni, kit s MachXO se dá sehnat kolem 600-700 CZK.
Btw, právě proto, že DSP umí něco a CPU něco jinýho, dělají u TI brouky řadu OMAP. Tzn. DSP 1-2GHz + ARM 400+ MHz (nevím z hlavy aktuální nabídku, nějak bych to momentálně neměl jak využít)...
Tohle srovnávání nemám rád, protože se tu srovnává nesrovnatelné. HDL popis je de facto do slov převedené schema, tedy popis zapojení. Tak jako u schématu rádia by nikoho asi příliš nepřekvapilo, že ve všech těch drátech tam vyobrazených teče proud tak nějak současně najednou a ty tranzistory pracují každý sám za sebe, nezávisle na ostatních, jen na základě toho, co je jim přivedeno na B-C-E, nemělo by to překvapovat ani v HDL popisu.
Schema rádia nám neříká, jak rádio funguje. Popisuje nám, jak je zapojeno. Teprve až analýzou schematem vyobrazeného obvodu bychom přišli na to, jak to vlastně funguje.
U HDL je třeba míti vždy na paměti, že neprogramuji, ale navrhuji obvod. Jenom to nedělám pomocí tužky a čtverečkovaného papíru, ale verbálně. Nekreslím sčítačku, ale píšu plus. Nekreslím komparátor nebo multiplexor, ale píšu if, when apod. Nekreslím hradla, ale píšu and, or atd. Nemaluju čáry, ale píšu, co je s čím propojeno pomocí něčeho, co by v programování vypadalo jako přiřazení do proměnné. Ale tady to nemá s proměnnou nic společného! Nečtu "do Áčka přiřaď hodnotu Béčka a pak do Céčka hodnotu Déčka", ale "vývod A nechť je propojen s vývodem B, vývod C s D" atd., jako bych to postupně maloval do schematu. Ale až to postupně namaluju, tak to tam bude vyobrazené samozřejmě současně. Je buřt, nakreslím-li nejdřív spodní čáru a pak horní nebo naopak. Nekreslím klopné obvody, ale píšu, že se má něco s něčím propojit až s příchodem hrany hodinového signálu. A přestože by se programátorovi mohlo zdát, že to je skoro to samé jako to výše popsané "přiřazení", jenom je to uvnitř jakéhosi bloku, tak elektrotechnik ví, že je to něco diametrálně odlišného!
Návrh obvodu pomocí HDL není prací pro programátory, nýbrž pro elektrotechniky. Spoustu lidí mate, že to na první pohled vypadá jako program, ale není to program, je to popis obvodu! Pokud měl někdo problémy s elektrotechnikou, bude mít problémy i s HDL návrhem. Protože to je elektrotechnika a s programováním to ve skutečnosti nemá společného víc než kreslení elektrického schema.
Připadá-li někomu nezvyklé, že se v PLD dějí věci tak nějak současně, tak by mu mělo připadat nezvyklé, že mu může v bytě současně svítit lampa v obýváku i v koupelně a ještě při tom v kuchyni současně běžet lednička. Ani o ždibeček větší kouzla se v PLD nedějí.
(Samozřejmě jsem neměl na mysli behaviorální popis pro účely simulací. Jenže takovým popisem velmi často končí návrh, pokud ho dělá programátor, který si neuvědomuje, že toto opravdu není programování. Syntezátor se mu samozřejmě snaží vyhovět seč mu síly stačí, ale to co z něj vypadne, pokud se mu to podaří, je pak neuvěřitelné zvěrstvo.)