OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 17:36

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 6 ] 
Autor Zpráva
 Předmět příspěvku: CMT v FPGA
PříspěvekNapsal: 18.10.2021, 00:55 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Pro svuj virtualni pocitac jsem se rozhodl udelat stavovy automat co posle proud dat jako z kazetaku.

Pri tom jsem mel docela velky zasek. Problem je ve Vivado a projevuje se tak, ze kdyz se udela hw primo v hlavnim modulu, tak obcas Vivado spatne pochopi velikost klicoveho stavoveho registu. Pak neni schopen ukazovat jak to cele generuje data. Reseni je docela trivialni. Staci to co chci videt venku v ILA zpozdit o jeden takt a tak z toho udelat jine signaly, ktere nemuze Vivado ignorovat a pak vse funguje na prvni dobrou. Jinak Vivado klidne vezme nejaky signal nekde uvnitr treba z ILA modulu a ten rekne ze se bude pouzivat. Takze pak v ILA jsou nove signaly misto tech co clovek ocekava.

Ted muzu rici ze simulace kazetaku jak potrebuji pro dalsi pokusy funguje. V HDL mam dve tabulky, kazda ma ted velikost 128 bajtu. Prvni je hlavicka programu. Ta obsahuje ze program se jmenuje "3", ma velikost 128 bajtu a zacina na 1200h a startovaci adresa je take 1200h. V druhem poli je vlastni program. Ted ted dela jen to, ze do tri bajtu video ram zapise data, to i vidim a tak to funguje.

Vlastni stavovy automat ma 14 stavu. Kazdy dela jednu cinnost presne dle manualu. Kdyz dojde na konec, tak se to vrati na zacatek a opet zacne vysilat stejna data. To mam ted pro kontrolu. Cele trva nejakych 17 sekund, coz je cas co ocekavam. Casem samozrejme rapidne snizim dobu pro pilotni signaly, neni potreba 10 a 5 sekund.

Jinak cele jsem to udelal puvodne pri plne rychlosti FPGA a ILA. Takze to jelo na 177MHz. Na teto rychlosti to jete i ted ale kdyz to bylo cele hotove, tak jsem to 21281 krat zpomalil na realnou rychlost dat z CMT. Pak uz jsem jen zapnul FPGA a nechal jsem stisknout C.

Jinak CRC se pocita z dat jak jsou ven, nemusi se nic predpocitat. Hlavni cast funguje na zpracovani bajtu (automaticky na zacatku doplni long bit) - takze pujde udelat nejaky presun dat treba pres RS232.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CMT v FPGA
PříspěvekNapsal: 18.10.2021, 12:20 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1198
Has thanked: 359 times
Been thanked: 304 times
Dobra prace, koukam, ze si pekne hrajes. Maly dotaz: proc jsi to zpomalil prave 21281 krat? A co by se stalo, kdyby to bylo jen 21280 krat? Stale by to fungovalo?
Jinak, chapu to spravne, ze jsi se vrhnul na emulaci CMT v FPGA. S opacnym smerem se pocita take? IMHO to bude teprve vyzva ;-)

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CMT v FPGA
PříspěvekNapsal: 18.10.2021, 13:22 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Myslíš emulaci FPGA v CMT ? :lol:

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CMT v FPGA
PříspěvekNapsal: 18.10.2021, 15:33 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1198
Has thanked: 359 times
Been thanked: 304 times
Dobre, moje chyba. Myslel jsem emulaci zapisu CMT streamu na disk, samozrejme v FPGA.

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CMT v FPGA
PříspěvekNapsal: 18.10.2021, 17:27 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Zakladni frekvenci co pouzivam je 177343750 Hz, coz je clock cycle 5,64 ns.
Doba pro Short signal je cca 240/240us. Protoze signal mam 2x rychlejsi, tak zaklad neni 240us ale jen 120us. Takze 120000/5,64 je tech 21281. ( presne "+0,00012/(1/177343750)" )
Na presnosti cisla 21281 vubec nezalezi. Proste neco okolo 21200 bude vzdy dobre.

Jsou dva pristupy k problemu. Jeden co jsem ted zvolil ja, je zaklad 240us a ten se nasobi. Druhe reseni je presne udelat casovani podle technickeho manualu, to neni problem. A to mozna bude i v konecnem reseni. Prvni pristup ale ma zase vyhodu, ze se da rici, ze format je bitove kombatibilni s originalem, jen je to turbo rychlost 20000/1 misto maximalni 3/1 co se pouziva s realnym hw. Na prvni pohled blbost ale umim si predstavit dva Sharpy v jednom FPGA. Teoreticky by mozna sla udelat i rychlost 40000/1.

Druhy smer urcite budu chtit udelat ale zde bych chtel aby se to posilalo na nejaky RS232 pres USB a cil by v Python programu v PC.

Jinak protoze narozdil od jinych pocitacu nemame na CMT konektoru zadny kondenzator v ceste, tak jeden z budoucich pokusu bude umyslne porusit pravidlo ze log1 a log0 maji byt stejne dlouhe. Pro Long signal chci rapidne zkratit log0 a tak bude trva skoro jako Short signal. Tim dojde k zrychleni nahravani do Sharpu. Uvidime jak to zvladnou rutiny v romce.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: CMT v FPGA
PříspěvekNapsal: 20.10.2021, 15:51 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Tak jsem koukal na rutinky pro nahravani z CMT. Premyslel jsem kde by se dalo vysilani "upravit" aby to realny pocitac nepoznal ale nahrani Basicu netrvalo 5 minut.

Logika LOAD a SAVE je rozdilna. Samozrejme format dat je stejny ale rutinky v romce k tomu pristupuji hodne odlisne.

Pilotni signal by sel zkratit na 256 short impulsu. Jen prvni bajt v bloku co se cte MUSI byt long signal. U ostatnich na tom nezalezi, proste jen Edge, to by kazdy devaty bit zkratilo. Take long by sel jiste zkratit. Mozna o trosku i short.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 6 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 5 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz