Tudva azt, hogy egy ilyen kis CPLD nem éppen matekra van kitalálva, poénból generáltam egy szorzó áramkört. A 8 bites az - természetesen - nem fért el, a legnagyobb, ami sikerült, az egy 4×4 bites szorzó, ami sima kombinációs logikaként még belefér. Hogy ezzel lehetne-e bármit kezdeni...
...
Nem jól kezdtél neki, azért lett nagy. Szorzó áramköröket háromféleképpen lehet csinálni:
1. puszta kombinációs hálózat (rengeteg logikai elemmel amelyek mindig számolnak, ha a bemenetük változik), előnye viszont, hogy piszok gyors!!!
2. órajelvezérelten, ami állapotgépszerűen működik időben eltolva, lassú, de nem kell sok logika, mert a számolást mindig ugyanaz a cella végzi
3. az első kettő kombinációja,
pl. 8x8-as szorzás felépíthető 4db 2x2-es szorzóból + (4-1) db összeadócella (utánagondoltam és ez nem igaz)
A jó öreg 'C <= A * B' nem sajnos adja ki a legmegfelelőbb eredményt, mert az 1. opciót veszi. Érdemes rá inkább entitást írni. Egyébként milyen nyelven konfigurálod a CPDL-t?
Kérdezzük meg Zozo-t, hogy mennyi gépi kódú utasítás kell egy 8x8-as szorzási művelet elvégzésére a Z80-nál?