Co já si vzpomínám, úspěch ZX Spectra nespočíval ani tak v úsporném provedení nebo v integraci logiky KVM do ULA, ale v rozšířenosti jednotné verze 48K, aspoň u nás.
Spousta lidí měla gumáka, a kdo ho měl, všem fungoval stejně. Nebo mi to tak aspoň tehdy připadalo. Všem tam běhalo Z80 na jednotné frekvenci; trvání každé instrukce trvalo přesný počet taktů, dalo se na mikrosekundu spočítat časování a dělat různá kouzla.
Těch důvodů asi bylo víc.
Já myslím, že svou roli hrál poměr cena / jednoduchost / schopnosti a možnost vystačit si s počítačem samotným, libovolnou TV a skoro jakýmkoli magnetofonem.
To, že se k ZX Spectru daly připojit neoriginální periferie myslím bylo taky docela zásadní. A že těch výrobců bylo mnoho (a ty originální byly poněkud zvláštní, což taky vedlo k rozvoji těch ostatních).
Někde jsem slyšel i názor, že ZX Spectrum bylo do určité míry a s jistou nadsázkou Arduinem / Rapsberry Pi své doby. Resp. v té době samozřejmě existovaly kutilské konstrukce, ale ZX Spectrum bylo na té správné hranici pro všechny - i pro ty, kteří ho chtěli jen zapnout a hrát hry, programovat, psát texty a tisknout atd...
Rad by som doplnil este jeden zaujimavy kusok, ktory dokaze emulovat obrovske mnozsvo starych konzol a "pocitacov" MiSTer - https://github.com/MiSTer-devel/Wiki_MiSTer/wiki
Mna by zaujimalo na co je to dobre. Ako v kontexte toho ze je to relativne specificky HW ale stale to nie je to retro. Preco je to lepsie ako RPI + emulator?
Mna by zaujimalo na co je to dobre. Ako v kontexte toho ze je to relativne specificky HW ale stale to nie je to retro. Preco je to lepsie ako RPI + emulator?
Nad tím se taky zamýšlím.
Vidím to tak, že různí lidé mají různé potřeby. Někdo chce originál hardware se vším všudy, protože si chce připomenout jak to tehdy bylo. Někdo jiný chce nový hardware, ale zároveň takový, který má nějakou pro něj zajímavou vlastnost. Někdo hraje hry, někdo si připomene tehdejší způsoby programování...
Od pár lidí jsem slyšel, že nechtějí softwarový emulátor, že chtějí, aby to běželo na skutečné Z80, jiným zas nevadí, že i ta Z80 je naprogramovaná v FPGA. Někteří chtějí samostatnou krabičku, někteří chtějí připojit periferie, někteří chtějí kompozitní video na CRT, jiní zas kvalitní obraz přes HDMI. Některým víc záleží na tom, aby to bylo ve stylové krabičce s autentickou klávesnicí (viz klon The Spectrum).
Musím přiznat, že často taky nevím jaký má ten který klon opodstatnění. Jen to, že si to své místo najde a že jsou uživatelé, kterým se to takto líbí.
Fakt je, že skutečný dobový hardware bývá občas nespolehlivý, vyžaduje údržbu, opravy, náhradní díly, nedá se zkombinovat úplně cokoli s čímkoli a to pro lidi nepostižené znalostmi elektroniky může být překážka. Takoví pak hledají hotové kompaktní řešení... a totéž se hodí i těm, kteří s tím cestují na různá setkání i když doma preferují hardware dobově autentický.
Opravdoví retromilci mají obvykle mnoho různých počítačů na výběr :)
30. 10. 2025, 09:49 editováno autorem komentáře
Výhoda FPGA je v tom, že se tam dá do budoucna syntetizovat i věc, která v simulátoru nebo jeho HW nejde. Třeba nový výstup na monitor, periferie pro všechny sběrnice apod.
Emulator jakkoli dobrej, se ti nikdu nebude chovat jako HW, vzdycky tam budou odlisnosti ... jedna pomerne zasadni tu i zaznela, na HW (byt neoriginalnim) umis zaridit, ze kdyz ma instrukce trvat 10 cyklu, bude drvat 10 cyklu. To ti zadnej emulator nezaridi. Neni jak.
A prave tohle je pro spoustu i zcela puvodnich aplikaci naprosto krucialni, protoze prave tahle matematika umoznovala delat vsemozne figle.
Spektráč jako emulátor v FPGA?
Emulator je ze na inej architekture spravis softwarovo napriklad ZX Spectrum a cely HW sa emuluje. Ale u FPGA uz riesis elektricky celu logiku. FPGA ZX Spectrum to je klon. Takisto ako sa Didaktik Gama nebovori emulator, ale klon. Robis to hardwarovo nie softwarovo. Tak aj u FPGA sa robi klon.
Z komentarov ludia hovoria o programovanie FPGA napriklad VHDL. To je tiez neapravne. Ty neprogramujes ale modelujes logiku. Modelujes ako ma software nastavit bitmapu a tym elektricke prepojenia medzi castami FPGA.
Klonem bych to mozna nazyval jen v pripade, ze to je "cycle accurate". Tj. dodrzuje presne identicky timing, takze nikdo nepozna, ze to je jiny.
Ve FPGA se typicky neco emuluje (resp simuluje) - kdyz se podivam na mnoho implementaci slozitych systemu, ktere bezi pouze treba na setine frekvence (omezujici faktor je zejmena interconnect mezi FPGA, protoze se to do jednoho uz nevejde).
HW klon je zas neco, co dela to same, prevazne se stejnymi obvody. Klon cipu je neco, u ceho obslehnes samotny silicon artwork.
A FPGA to nerobi hardwarovo.. (na to bys potreboval funkcionalitu zapect do asicu/ula) - porad je to "software" (resp. vhodnejsi termin gateware). "Program" se tam vytvari, edituje, vykonava. Jde ho smazat a nahrat jinej. Proto se tomu rika FPGA emulace :)
Neobstoji ani informace, ze FPGA nahrazuje hradla a cipy z puvodniho stroje. Protoze FPGA nema zadne hradla a logiku.. cele to jsou LUT-ky, tj. SRAM (resp. ROM), ktere jsou sikovne propojeny. Uz tahle zmena technologie zcela meni logiku fungovani stroje - a tim se meni z klonu na emulaci. Pouzije se jina technologie (jina architektura cipu) = emulace.
30. 10. 2025, 12:29 editováno autorem komentáře
Protoze FPGA nema zadne hradla a logiku..
S tím tedy rozhodně nemůžu souhlasit. LUT není nic jiného, než univerzální hradlo. To je kombinováno s D-KO, multiplexorem (obojí jsou základní logické moduly) a nějakým vstupem a výstupem přenosu. Plus propojovací matice.
FPGA to nerobi hardwarovo..
Samozřejmě, že to robí hardwarovo! Proto se to používá.
"Program" se tam vytvari, edituje, vykonava.
Žádný program se tam nevykonává. V HDL jazyce se napíše popis obvodu a ten se syntetizuje syntezátorem za využití logických a propojovacích prvků, jež jsou k dispozici v FPGA, kam se následně nahraje matice propojů-co s čím, nic víc, žádný program.
Proto se tomu rika FPGA emulace :)
V životě jsem se s tímto obratem nesetkal.
Klon cipu je neco, u ceho obslehnes samotny silicon artwork
Rozhodně ne, to by byla kopie. Klonem se často rozumí právě reimplementace bez znalostí maskwork (to je to slovo, které jste ve skutečnosti myslel), protože maskwork je předmětem průmyslově-právní ochrany, nikoli chování navenek.
na to bys potreboval funkcionalitu zapect do asicu/ula
A čo si predstavujete pod takým pojmem "zapéct"? Spousta ASIC chipů jsou ve skutečnosti jen FPGA s propojovací maticí vypálenou natvrdo.
Podle vás, když bych to celé implementoval na breadboardu pomocí 74xx obvodů, tak jsem udělal emulaci, protože ty drátové propoje můžu "editovat"?
Je videt ze tomu moc nerozumite a ani nechcete - ale mate zajem se hadat, tak budiz. Vezmeme to po jednom:
Chcete implementovat AND hradlo z puvodniho zapojeni.
Mate k dispozici jen 74xx NAND.. takze zapojite dve za sebe, jako NAND+NOT a mate KLON puvodniho produktu.
Mate k dispozici EEPROM ... naflashujete tam LUT s AND funkci .. a mate EMULACI puvodniho produktu.
Technologie a architektura hradel vs pameti je zcela jina, bavime se o emulaci. Nemusi to byt hned SW emulace pomoci generickeho CPU.
FPGA neni ciste HW reseni, protoze je to homogenni pole univerzalnich a programovatelnych LUTek - ktere klidne za chodu muzete modifikovat (sebemodifikujici FPGA a GA bylo tema uz pred 20 lety). Bitstream JE program - urcuje specificke chovani dane veci. Ze mu vase hlava nerozumi, neni duvod pro jinou klasifikaci. Navic existuji i FPGA ktere maji "multitasking" a stridaj nekolik bitstreamu (nejenom jako hromada research paperu, ale vim minimalne o jedne fyzicke implementaci tohoto rezimu).
Kdyz to porovnate s dobovymi ULA - polem logiky, kde jste meli k dispozici heterogenni pole predpripravenych SKUTECNYCH hradel a klopnych obvodu, ktere se pak pevne zapojovali skrze posledni metalickou vrstvu.. tak to je nebe a dudy. A o to me slo.
Hardware je to, co modifikovat NELZE, ne za chodu, ne bez vypadku.
FPGA emulace - podivejte se na produkty od Synopsys, rada HAPS. Casto se tomu rika prototypovani ASICu, ale to neni nejlepsi oznaceni, protoze za prototyp bych povazoval az pokus v cilove technologii. Kdyz nenavrhujete slozite ASICy, tak s tim neprijdete do styku.
Aha... Takže, podle vás, např. master-slave klopný obvod má nějakou kanonickou implementaci (řekněme tu "standardní", tak, jak se to učí ve školách) a všechny praktické implementace, které bývají úspornější co do počtu tranzistorů, jsou klony? Máte vy vůbec představu, jakým způsobem jsou hradla realizována prakticky v tom křemíku? Tušíte, že 7408 se od 7400 liší v tom, že na výstupech je po tranzistoru, který z NANDu udělá AND? Asi klon, podle vás... A wired-logic je podle vás asi emulace, že... Protože úplně jiná technologie - dráty vs. tranzistory. Jak je to ve vašem světě z tohoto hlediska se vztahy mezi technologiemi jako RTL/DTL/TTL/PECL apod. se radši ani neptám. :)
Abychom se tu vzájemně neosočovali z toho, že něčemu nerozumíme, tak bych to uzavřel tak, že váš pohled na věc je velice svérázný.
To, jak je to v kremiku - specialne ty vicevstupe hradla v TTL logice, nikdy nenaimplementujete ve FPGA. Stejne tak mnoho struktur, ktere vyuzivaji TG, ackoliv tech TG ve fpga je ohromne mnozstvi v propojovaci matici (a nevim o tom, ze by existovala prima a rychla cesta jak programem primo ridit konfiguraci propojek).
Proto je FPGA pouze emulace. A posledni dobou hodne digitalni a hodne diskretni - mysleno jako casovana simulace daneho RTL. A stejne jako kazdy program lze zastavit, krokovat i modifikovat promenne a pamet, tak lze i ve FPGA celou emulaci/simulaci zastavit, krokovat a pokud architektura pole dovoluje, tak sledovat kazdy signal, pametovou bunku a dokonce je i menit. Za me to je mnohem, mnohem bliz k programovani a SW, nez HW - ktere funguje ciste na analogovem a spojitem principu. V tomto ohledu je i skutecny fyzicky digitalni HW pouze analogova sit (s mnoha extremnimi zesilovaci) - na rozdil od FPGA, ktere emuluje dane chovani uz ciste v diskretni a digitalni domene.
Drzte se tematu a neplette do toho zas svoji sveraznosti signalizacni urovne.
Kdybych v tom nedelal skrz na skrz, tak by me nerozcilovalo to nepochopeni a naivni zjednodusovani .
Pokud vezmu 74151 a zapojim ho tak, aby se vystup Y choval dle pravdivostni tabulky jednoho hradla 7410, tak je to co? Emulace?
Odpoved vam poskytnou parametry "zpozdeni" a "spotreba".
Da se predpokladat, ze to optimalni nebude a vase reseni pokryje jenom specificke use cases - neco, kde vam nevadi ze to jede pomalu a neco kde vam nevadi ze to zere jako prase.
-> RDa: FPGA není emulace, logika v FPGA je reimplementace.
V FPGA není software, v FPGA je předpis, jak seskládat logiku. (teprve na té může běžet software, pokud logika je procesorem)
I ZX Spectrum ULA (uncommited logic array) je svým způsobem programovatelné hradlové pole, jen s tím rozdílem, že "programování" prováděl výrobce čipu Ferranti maskou při výrobě toho čipu. Podobně jako u GDG pro Sharp MZ-800, ASIC pro Sam Coupé a mnoha dalších počítačů se zákaznickými obvody v té době.
A pokud opravdu trváš na počítači z diskrétních logických obvodů řady 74xx, nic ti nebrání si pořídit třeba Nucleon (klon Pentagonu), kde se vyskytuje jeden jediný GAL a vše ostatní jsou obvody 74xx, nebo Superfo Harlequin 128 což je klon klasického ZX Spectrum 128k - viz zde https://www.8bity.cz/2017/nahrada-zx-spectrum-128k-bez-ula-harlequin-128k/ a není v něm žádné hradlové pole, jen obody 74HCxxx , SRAM, FLASH, Z80 ... viz https://github.com/DonSuperfo/Superfo-Harlequin-128
By mě zajímalo, jak pohlížíš na náhrady ULA, jako je vLA82, nebo vLA128... které jsou postavené, wait for it, na hradlovém poli (konkrétně CPLD Xilinx XC95144) a lidi je strkají do originálních dobových počítačů, když se jim původní čip porouchá.
A ano, žádný z klonů, který jsem zmínil nenahrazuje CPU, stejně jako eLeMeNt ZX má původní Z80 a tedy perfektní časování dané výrobcem procesoru, ale pokud je Z80 naimplementovaná v FPGA správně, nevidím problém, bude fungovat přesně stejně. I když pro ten pocit, že ano...
31. 10. 2025, 11:40 editováno autorem komentáře
CPLD (XC95144) neni *hradlove* pole - nelze tam mit "nekonecnou" kombinacni logiku. Od hradloveho pole to ma znatelne jinou architekturu (jak logickych prvku, tak zpusob konfigurace.. je to totiz flash based, a ma to instant-on.. a menit to po castech nelze na rozdil od FPGA).
Ve FPGA je "software". Muzete ho tam nahrat, snazat, zmenit, nahradit, jeden obvod/cip muze delat hromadu ruznych veci, v zavislosti na "software". Bez "software" se budete smutne koukat jen na hromadu zaspineneho prevareneho pisku ozdobeneho kusy kovu.
Hardware dela jednu vec, pevne a nemenne.
Pod pojmem software se totiz neskryvaji pouze strojove instrukce vykonavane sekvence, je to obecne vse, co se pridava do stroje a lze to menit, od toho to je "soft". Samozrejme FPGA neni "pocitac", ale programovat ho lze.
Kdyz si vezmete aktualni trend akceleratoru, tak je to FPGA rozdelene na dve casti - jedna rezidentni obsahuje komunikaci s hostitelem, a druha (vetsi cast pole) je volna na aplikacne specificky "software" nahravany z meneny za chodu. Zadny procesorovy pristup tam byt nemusi - muzete mit ten samej produkt na bazi GPU, DSP, FPGA (nebo kvantova vestecka koule), a do vsech prijde specificky "software", ktery zajisti, ze nad daty se provede urcity algoritmus - a je jedno jakym zpusobem, zda sekvenvne nebo paralelne.
Ono jak tomu rikas ty je uplne jedno. Svet tomu, co se strci do fpga rika bitstream. Ten jen nakonfiguruje propoje, prepinace, pameti. Jedine, cemu se da rikat nejaky software by byla napln pro pamet resici state machine. A v fpga samozrejme muzu udelat i logicke obvody bez hodin. Tedy asynchroni logiku, jako ze zakladnich 74xx
bitstream vs software u FPGA je stejny rozdil jako shader vs software u GPU :)
A stejne jako ze BIOS se klasifikuje jako software - byt obsahuje "software straps" (Intel), velice stejnou technologii jako vase FPGA - kde nastavujete propoje v chipsetu/SoC, aby dany HW byl nakonfigurovan nejakym konkretnim zpusobem. Ty straps fakt kodem nejsou, ale softwarem (firmwarem) se presto nazyvaji.
Software je simulace hardwaru. Program nahrazuje stavový automat.
FPGA není software, je to jenom další generace spojování součástek. Tak jako po kilometrech kabelů přišly tištěné spoje.
Bavime se snad o "konfiguraci FPGA" (bitstreamu), ktera softwarem je, ne o samotne soucastce.
Tato konfigurace (bitstream, software) neni vazana na fyzicke zdroje ktere je nutno do realizace vlozit - takze nemuzeme souhlasit s tim, ze to je v kategorii "generace tistenych spoju". Protoze to neni fyzicka vec (hardware), ale konfigurace hradloveho pole jsou "digitalni data", tj. software.
Software muzete neomezene kopirovat, duplikovat, prenaset skrze media nebo site - a bitstream - konfiguraci pole - taky tak. Chapete uz ktera bije?
Samozřejmě chápu, ale názor nesdílím.
Popis zapojení můžu také libovolně kopírovat a šířit, můžu s ním třeba nakrmit robota, který mi napíchá drátky do nepájivého pole, a libovolně ho měnit.
Popis zapojení je prostě software, a je úplně jedno jestli je to načmárané na papíře nebo naskriptované ve VHDL. Tady jeden takový máš: https://www.computerhistory.org/revolution/supercomputers/10/7/915
To se zas bavime o *zdrojovem kodu*, a ten je snad vzdy digitalne prenositelny - stejne jako schema zapojeni, netlist, layout desky, gerbery... ale to z techto dat HW nedela, protoze to jsou jenom zdrojove data - popis chovani nebo tvaru. Taky nebydlite v architektonickych studiich a projektove dokumentaci.. ale v byte/dome snad.
Bitstream ale je samotny SW (ekvivalent zkompilovane binarky), ktery ridi / ktera bezi na fyzickem hw (nebo virtualizovanem hw pro pripad simulace/emulace).
Software tj. program to fakt není. Program je implementace algoritmu tj. sekvenční posloupnosti kroků vedoucí k řešení dané úlohy. To fakt FPGA neobsahuje. Ten trochu zavádějící název „programovatelné pole” spíš IMHO referuje „programování” EEPROM, což ve své podstatě také není programování, ale vzniklo posunem významu z uchování programů v EPROM u počítačů (naprogramovat EPROM = uložit program do EPROM). V paměti FPGA ale opravdu program není.
Takze podle vas je software jenom to, co je SEKVENCNI, tj. imperativni?
Co je podle vas program napsany v Prologu ? Neni to software ??
cituji z wikipedie:
A logic program is a set of sentences in logical form, representing knowledge about some problem domain.
Takze mame i logicke programy. Coz vicemene odpovida tomu co bezi na FPGA.
Ja mel za to, ze lidi dokazou rozlisovat mezi HW (fyzicno) a SW (dusevno)... zrejme v dobe AI se uz rozum uplne vytratil.
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.
Delkou prispevku jste docela zazdil a ztratil svoji pointu, TLDR ?
A mixujete dohromady vyvojovou fazi (design entry, VHDL) a samotny beh vysledneho programu (bitstream natazeny do hradloveho pole).
Vzhledem k tomu ze s FPGA delam a vrtam se i v bitstreamech z opacneho konce, tak o moznostech vim. Vcetne toho, jak takove programy nacist, upravit, analyzovat, portovat. Nekdo ma IDA a Ghidru, my mame zas jine nastroje :)
A opravdu si pod stroji (HW) nepredstavujte pouze klasicke procesory, ktere vykonavaji strojove instrukce "sekvence" - i prakticky kazdy moderni CPU si vas hezky program rozbije na atomy, presklada a vykona je podle sveho uvazeni.. nikoliv podle vaseho. Takze nebudte omezenej :) Treba i jenom microcode-update je SW, byt to nastavuje nejake tabulky a filtry v cpu - nikdo tomu nerika databaze/bitmapa. Maximalne se dozvite ze je to "patch".
Co je podle vas program napsany v Prologu ? Neni to software ??
Jenže počítače záznamu v Prologu nerozumí. Počítač vykonává program, který zpracovává data/záznam v jazyku Prolog. A tuto úlohu vykonává počítač v sekvenční posloupnosti instrukcí, protože (konvenční) počítače jsou sekvenční stroje.
Je to pochopitelně otázka definice termínu program a programování. V širším slova významu máte pravdu. Stejně jako by ji měl někdo, kdo by tvrdil, že jakýkoli konfigurační soubor (v /etc třeba) je programem neboť nastavuje způsob výpočtu/zpracování dat....
Ale obávám se, že takto tento termín odborná veřejnost běžně nechápe. Zkuste někde říct, že „programujete” v HTML :-)
Já jsem pracoval ještě na analogovém počítači a ani tam jsme nemluvili o programování, ale o konfiguraci nebo nastavení úlohy.
Já jsem pracoval ještě na analogovém počítači a ani tam jsme nemluvili o programování, ale o konfiguraci nebo nastavení úlohy.
To jsem prave zvedav jak se tomu bude rikat u kvantovych pocitacu, ktere prece taky neoperuji na bazi sekvencni interpretace instrukci (wait, jak vlastne funguji qubity? vi to vubec nekdo? :D Nebo nejake moderni biologicky zalozene neuronky co se objevuji ve vyzkumu.
Pritom doposud se i pro tyto stroje (ci rostlinky) pouziva pojem programovani, ze ano.
Software je termín označující programové vybavení počítače. Do Bachovy Mše h-moll jistě není možné kopnout a třebaže ve své notové podobě představuje soubor instrukcí k zahrání a zazpívání tónů, z nichž je složena, není to software. Stejně tak projekt stavby není software - ani na papíře, ani v podobě CAD-souborů, zrovna tak elektrické schéma není software, ani v podobě grafických značek, ani v podobě netlistu, ani v podobě bitstreamu, ani v podobě HDL popisu.
Software je jistě věcí nehmotnou, leč věc nehmotná nerovná se software.
Prozradim vam tajemstvi. Bitstream neni "naha"/raw bitmapa s obsahem konfigurace lutek a propojovacich poli jak si zrejme naivne predstavujete. To mozna platilo v dobe PLD, byt i tam se ten payload radeji balil do operaci (SVF/XSVF) aby byl program snadneji "spustitelny".
Bitstream je opravdu sw. Sice s omezenym vyjadrovacim potencialem [1], ale ma to sve opcody (a ja si na to delal disasm), procesor co cte a vykonava bistream ma pak sve registry. Daji se s tim delat kouzla jako castecna rekonfigurace, failover a pod. V pripade, ze je v poli sifrovaci klic.. ktery nejde vycist, lze zkonstruovat bitstream, ktery vyuziva slabiny onoho procesoru/architektury [2] a tak dovoluje na danem poli zasifrovat vlastni payload - aby byl nasledne spustitelny na chranenem cipu. Pokud neco, co umi read/write/goto a poradi operace neni zavazne a lze to prehazovat - neni podle vas SW.. tak je to asi marny uz fakt.
[1] Xilinx UG470 (napr. strana 96+)
[2] The Unpatchable Silicon: A Full Break of the Bitstream Encryption of Xilinx 7-Series FPGAs / 978-1-939133-17-5
U toho bitstreamu připouštím, že máte pravdu, že to software je - vlastně podobně jako třeba postscript. Ale to, co reprezentuje, software není. To by byl pak z dnešního pohledu software opravdu skoro vše, včetně té Bachovy Mše, protože jistě můžu napsat program, který neumí nic jiného než zahrát tuto konkrétní skladbu. Ano, ten program by představoval software. Ale skladba samotná software není. Stejně tak ten postscript - v něm taky můžu napsat program, ale to neznamená, že Haškův Švejk je software, protože je možné ho uložit ve formátu ps. Nakonec i záznam na gramofonové desce by byl svým způsobem software, protože gramofon samotný je bez desky k ničemu. Ale nikdo příčetný by asi neřekl o gramofonové desce, že jde o software pro gramofon, nebo že gramofon vykonává program uložený na desce - a když, tak jedině v uvozovkách. Stejně jako neřeknu, že tady to.nepájivé pole vykonává program superhet podle tady toho schématu. Nebo že hradlové pole vykonává program ALU tady podle tohoto verilogového kódu.
velká škoda, že nelze dávat minusy. Ty vaše bláboly jsou opravdu neuvěřitelné. Četl jste někdy něco o programovatelných (syntetizovatelných) logických hradlových polích?
>>> Klonem bych to mozna nazyval jen v pripade, ze to je "cycle accurate". Tj. dodrzuje presne identicky timing.
Každý klon zmíněný v tomto článku se snaží dodržet časování nějakého klasického modelu. eLeMeNt ZX umí všechny, včetně modelu +3. S "timingem" to ale je ještě malinko složitější. V příštím díle o rozhraní MB03+ uvidíme v nastaveních vedle klasiky i položku pro FPGA modely. Přestože dodržují časování, chovají se občas malinko jinak než originály.
Přičemž já bych doplnil, že rozlišujeme tato základní časování.
* ZX Spectrum 48k se Z80 taktovanou na 3,500000MHz = gumák, plusko i Didaktik Gama 80k a vlastně cokoli postavené na (kopii) původní ULA
* ZX Spectrum 128k se Z80 taktovanou na 3,540000MHz = toastrack, šedá +2
* ruský Pentagon, protože mnoho moderních her a rozsáhlá demoscéna
* ty ostatní, kam lze zařadit třeba Didaktik M (Baltik) postavený na ruské ULA (4MHz, ale trochu zpomalený v celém adresním rozsahu), Sam Coupé (6MHz, ale taky se zpomalenou RAM)...
Software se primárně ladí na první dvě varianty originálních ZX Specter a obvykle se snažíme, aby fungoval i na těch ostatních, pokud tomu něco zásadního nebrání.
Klony počítačů obvykle jako etalon berou taktéž originální počítače (preferujeme ZX Spectrum 128k), obecně se považuje za chybu, pokud klon není plně kompatibilní alespoň s jedním z prvních tří jmenovaných. Některá dema nabízejí volbu mezi časováním ZX Spectrum 128k / Pentagon, některé programy umí rychlost detekovat a přizpůsobit se (typicky kvůli zobrazení "multicolor" grafiky, která obchází atributová omezení).
Tesim se na dalsi dil! Zajima me - v cem se to bude chovat jinak - a zda je to resitelny/neresitelny problem.
Kdyz se prece tolika snazili a panove tady vedle tvrdi ze to je identicky (klon) :-)
>>> Spektráč jako emulátor v FPGA? Emulator je ze...
Ano, to je sice nespravný, ale ještě dnes běžný laický pohled na klony v FPGA.
Proto je ta slovní reakce uvedena kurzívou.
Hmm..
ZX Spectrum ma ULA
RPi SBC maji RP1
Jak ULA tak RP1 jsou zakaznicke obvody, ktere nejsou v distribuci a zamezuji svobode si danou vec treba opravit (nebo vyuzivat podle vlastniho uvazeni).
Je zajimava souvislost, ze oba produkty jsou anglickym vymyslem a v podstate plivancem do tvare svym uzivatelum. Ano - je to levny, ale to je tak vsechno... a bohuzel existuje masa lidi, kterym tento faktor predci jakekoliv ostatni aspekty produktu.
Možná proto, že je to těm lidem jedno a stačí to? Úspěšné nejsou produkty, které jsou nejkvalitnější. Úspěšné jsou velmi často (a skoro bych řekl, že i obvykle) produkty, které právě tak stačí aby pokryly potřebu za nejnižší cenu. Co vás na tom překvapuje?
Ti lidi si bohuzel neuvedomuji cenu, kterou za neco (ne)plati.
( v blede modrem - socialni site a jine sluzby "zdarma" )
Ja mel Sharp MZ-800 (model MZ-821) - divod byl jasny, jako jediny byl diky pomoci JP CSSR dostupny, akceptovali platbu v drevenm kuchynskem nadobi misto deviz, tedy barter za jine zbozi.
WIKI Sharp_MZ-800 :
MZ-800 v Československu
V Československu byly počítače MZ-800 populární pro svoji dostupnost nejen v síti Tuzex, ale i v běžné maloobchodní síti prodejen s elektronikou. Byly prodávány za cenu 6600 Kčs (MZ-811) a 7800 Kčs (MZ-821). Pro porovnání v bývalé Německé spolkové republice byla maloobchodní cena 1198 DM.
Díky procesoru Z80 a také snaze českých programátorů vznikaly porty programů a her ze Sinclair ZX Spectrum a počítači se dodnes věnují kluby výpočetní techniky.
Máte tip na moderní Atari s FPGA? Pokud profi Atari, mám dobrou zkušenost se stroji ZeST a Suska-IV-B :-)
Bohužel nikoliv. Jedu na původním železe... Ale tohle, ačkoliv to není úplně FPGA klon, vypadá velice slibně.
Což o to, plošný spoj je to pěkný. Ale kde do toho sehnat čipy, klávesnici... a nekanibalizovat originál?
Pro ZX Spectrum takové desky taky existují. Např. ZX Spectrum 48k Issue 3 od autora podepsaného jako PABB z roku 2018 a ZX Spectrum 128k+ toastrack od z00ma (zveřejnil letos). V obou případech to jsou kopie původních plošných spojů, téměř dokonale 1:1 a samozřejmě je na ně potřeba osadit stejné, nebo ekvivalentní součástky, jako byly v originálních počítačích.
https://www.pcbway.com/project/shareproject/ZX_Spectrum_48_Issue_3B_Redrawn.html
https://github.com/z00m128/pcb-resources/tree/main/Toastrack
Podobně pro Commodore C64 a další počítače, ty se dají koupit tady https://www.tindie.com/products/bobsbits/sixtyclone-commodore-64-replica-pcbs/