Odpověď na názor

Odpovídáte na názor k článku FPGA: cesta k dokonalému klonu počítače ZX Spectrum. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 3. 11. 2025 23:15

    ce4aser

    VHDL : VHSIC Hardware Description Language , cize jazyk ako opisat hardware. Nie je to programovaci jazyk softwaru. Mozeme pomocou toho opisat jak kombinacne logicke obvody ale aj sekvencne logicke obvody.

    Klon nemusi byt 1:1 , zx spectrum klonov mame neurekon. V nasich koncinach su zname Didaktik Gama a Didaktik M. U didaktik gama su odlisnosti. Nie je pouzity ZX80 ale rusky klon ZX80. ULA by mala byt originalna dovezena cez vtedajsiu juhoslaviu. Dalej je tam pridany obcod MHB pomocou ktoreho sme sme mohli napriklad ovladat ktora banka ma byt pouzita. ROM bola tiez upravena, napriklad bola opravena jedna chyba v ZX ROM vdaka comu niektore hry ktore vyuzivali tu chybu nesli. Alebo boli pridane nilejake rutiny do ROM. U Didaktik M bol sice uz ZX80 ale uz neboli originalne ULA tak je tam klon ULA vdaka comu obraz bol deformovany, casova ine. Talze dema, hry ktore vyuzivali vykreslovanie do borderu nefungovali atd. Tiez nemusim hovorit ze pamate sa pouzivali take ake boli, bud TESLA alebo Ruske.

    Mame ine projekty kde klon nebyuzival ULA ako IO ale celu delegaciu zakladnych logickych obvodoch. Tiez nehovorime o emulatore ale o klone.

    To co sa nahra do FPGA je bitmapa ako maju byt logicke bloky poprepajane, ako maju byt nastavene LUT, FlipFlop atd. Ale nie je to software. To je to iste ako keby si PDF suboru zacal hovorit ze je software. Alebo HTML suboru ze je to software. Software mozeme hovorit napriklad python kod, javascript kod, php atd. Cize je tam definovane co ma robit. A nasledne sa krok po kroku vykonavaju instrukcie v urcitom poradi, hodnotach ktoreho vysledkom je urcita funkcnost.

    Vo VHDL popises HW , A mozes tam mat paralizaciu. Tym myslim X logickych casti ktore vykonavaju nezavisle nejaku logicku funkciu od kombinacnych az po sekvencnych obvodoch.

    Zobere si specialny pripad kedy by sme v ZX Spectrum vo fpga mohli hovorit o emulacii. Ale z povahy veci je to nezmysel a omnoho zlozitejsie. Mame aj FPGA kde nemusis popisovat CPU , niektore FPGA maju v sebe aj CPU tusim RISC. Nasledne mozeme spravit okolo toho CPU logiku pomocou ktoreho mozmene na nom spravadzkovat linuxoveho jadro. Nainstalujeme potrebne depedencies , spustime emulator napriklad FUSE. Ale zlozitost je taka ze to nema zmysel robit na kolko je jednoduchsie a lepsie robit cely HW.

    Na strankach si stiahnes VHDL popis Z80. T80. Coz je klon Z80 s malymi odlisnostami ako sa s nim pracuje. Popises si ULA. Navrhnes logiku ktory bude respektovat ci ma do pamate pristupit procak, alebo ram, cibsa jedna o ovladanie portu atd atd. A vo vysledku dostanes logicku funkcnost zx spektra. Mozes kludne mat obrazovy vystup na ktoreho zapojis analogovy elektricky obvod pre video signal. Alebo su povies ze budes generovst VGA , to je uz na uzivatelovi. Pouzijes tam originalny ROM a mas klon ZX Spectra . Nie emulator.

    A ako som pisal vyssie klon nemusi byt 1:1 a moze mat jemne odlisnosti tak ako Didaktik Gama , Didaktik M, ale aj ruske klony ZX Spectra mali tiez svoje odlisnosti. Jednym z nim moze byt ze pamat je taka rychla, ze ked chce procak aj ula pristupit do video pamati sucasne tak pamat ich dokaze tak rychlo obsluzit ze freeze CPU je zanedbatelne.

    Vo vysledku sme spravili klon ZX Spectra na HW novsich technologiach.

    Este taka zaujimavost. Mame napriklad obvod 4xNAND , 2 vstupy 1 vystup pre kazde NAND. TTL: 7400 seria ktora ma x variant ako 74L00, 74H00, 74LS00 ... Cize je to ten isty obvod s jemnymi odlisnostami napriklad rychlost atd. Ale to neznamena ze 74L00 je emulacia 7400, je to len akysi klon 7400, ktory robi tu istu logicku funkciu ale s inymi elektrickymi a casovymi parametrami. Ale mame aj CMOS ako 4011 a zase tie maju niekolko variant , a zase mame to iste ako u 7400 ale po novom mame inu technologiu obvodu. Ale stale to vykonava tu istu logicku funkciu.

    A teraz ked ti poviem ze pomocou EEPROM, EPROM mozes spravit ten isty obvod s tou istou logickou funkciou? Existuju EEPROM aj EPROM kde neni CLK. Ale vystup je zavisli len na altualnom vstupe. Cize pamatovy kombinacny obvod. A mozem nahrat potrebne data data tak, ze mozem spravit tu istu logicku funkciu 4xNAND alebo aj o vacsom pocte NAND. Zase sa dovavame tam ze pouzivame inu technologiu s rovnakym logickou funkciou.

    A toto sa vyvojarom zacalo pacit, zacali tusit ze toto je dobry smer. Ze by bolo dobre mat univerzalny obvod pomocou ktoreho by mohlo byt schopne spravit akykolvek logicky obvod, cize kombinancy, sekvencny , rozne stavove automaty atd atd. A isiel vyvoj, niektore do slepej ulicky a niektore postupnymi vylepseniami az do dnesnych FPGA.

    Aj vo FPGA moze vytvorit 4xNAND , vyberem si piny na ktore to namapujem a mozes spravit klon povodnej 7400. A tiez tomu nebudeme hovorit ze to emulujem. Pravda je taka ze vytvaram 4x NAND. Ina technologia, ine pristup. Ale jento elektricky NAND je to kombinacny obvod.

    Pre porovnanie si zoberem napriklad Raspberry Pi Pico a v micropythone spravim 4xNAND na gpio. A toto uz je emulacia. Pretoze to je sekvencny obvod. Cize aj napriek tomu ze som to tak naprigramovat tak vystup je zavisli na CLK. Neplati ze vystup je definovani len vstupmi. Cize emulujeme 7400.

    Snad si uz pochopil tie rozdiely. Rozdiely medzi software a popisom. Alebo emulaciou a klonom.