[megoldva] PROM, PLA, PAL, GAL tartalom egyszerűsétés

Mostanság egyre többet szembesülök azzal, hogy a fenti cuccok tartalmát modern CPLD-be vagy FPGA-ba kellene implementálni. Ugye a fenti cuccok nem arról híresek, hogy tömören oldják meg a problémát. A PROM egy binaris tömb, a többi meg kötött módon ÉS/VAGY/NOT kapcsolatok.

Létezik valami amivel automatikusan lehet egyszerűsíteni a fentiek tartalmát? Ilyesmire gondolok:

https://www.dcode.fr/boolean-expressions-calculator

Ez nagyon prímán működik, csak nem egy felhasználó barát inputja van.

Update:

https://github.com/soumilkanwal80/Boolean-Expression-Simplifier

 

Update2 - minta, csak hogy érthető legyen a kérdés is:

A cucc egyik kimenetéhez rendelt eredeti logika:

q = (bcdef'ghi'jl)+(bcdef'gi'j'l)+(acdef'ghi'jl)+(acdef'gi'j'l)+(bcdef'ghi'jk'l')+(bcdef'gi'kl')+(acdef'ghi'jk'l')+(acdef'gi'j'k'l')+(def'ghi'jkl')+(def'gi'j'kl')

Quine–McCluskey algoritmussal egyszerűsítve:

q = l'j'h+l'ba+l'c+j'hb+j'hc+kba+kj'h+i'+lkja+f'+kc+d+e+g

Ha jól számoltam 88 logikai AND/OR kapcsolatot redukált le 30-ra. Ami majd újra jól szét lesz szintetizálva a CPLD-be.

Hozzászólások

Szerkesztve: 2023. 07. 08., szo – 20:38

PLA, PAL, GAL logikáját elviszi egy CPLD. Ha PROM alatt kicsit értesz, azt is.
CPLD-t tipikusan 32-512 makrocelláig kapsz. Sok termékben a makrocella 1 bites tároló + néhány vezetéknyi bemenő logikával rendelkezik. De van PROM alapú termék is.
Megírod a kapcsolati feltételeidet VHDL-ben vagy Verilogban és egy próbafordítás már kiadja, hogy melyikbe fog beleférni a kódod.

Mi lenne a cel?

 

Nem vagyok tul jaratos ezekben, de a PROM tartalmat szerintem nem lehet egyszerusiteni, az egyszeruen adat, max tomoriteni lehetne.

GAL/PAL/PLA eseten meg nem egy fuggvenyed van amit szeretnel megvalositani? Az miert nem jo, hogy megirod azt amit akarsz VHDL-ben, Verilogban, SystemC-ben, akarmiben aztan az megy az FPGA-ba (a CPLD-ket egyaltalan nem ismerem)?

/sza2

Digital? Every idiot can count to one - Bob Widlar

PROM akkor játszik amikor címdekódolásra használták. Ez a legritkább inkább hagyjuk is.

Az GAL/PLA/PAL esetén soha nem tudom mire gondolt a szerző, csak az van meg ami belekerült ezekbe a cuccokba. Ez ugye méretileg soha nem ideális, hanem az adott eszköz struktúrájához igazodik (AND/OR gate array). Addig nincs gond ez belefér a kiszemelt CPLD-be, ha nem fér bele akkor kellene az optimalizálás. Az a baj ilyenkor nem tudom mit akarok, csak egy régi dolgot akarok helyettesíteni.

„Az összeomlás elkerülhetetlen, a katasztrófa valószínű, a kihalás lehetséges.” (Jem Bendell)

Ha jól számoltam 88 logikai AND/OR kapcsolatot redukált le 30-ra. Ami majd újra jól szét lesz szintetizálva a CPLD-be.

Ha nem optimalizálsz külön, pusztán a kapcsolataidat egy normálisan megírt Verilog vagy VHDL kódban odaadod a fordítónak, az nem optimalizálta ezt hasonlóképpen ki?

Ha egy az egyben beírtam az eredeti kódot akkor nem. Ha kihagytam egy kimenetet, akkor megcsinálta és lófasznyi makrocellát használt el. Valószínűleg a makrocellák közötti interconnect volt a szűk keresztmetszet. Az eredetiben az AND tömb 16 bemenettel és 24 kimenettel rendelkezett, az OR tömb értelemszerűen 24 bemenettel és 8 kimenettel. Az újban az AND 12/8, az OR 8/4, de van belőle 128.

„Az összeomlás elkerülhetetlen, a katasztrófa valószínű, a kihalás lehetséges.” (Jem Bendell)