Zdravim, pokusil jsem se schematicky navrhnout scandoubler pro FPGA Spartan3A :) Kazdopadne pokud by byl ten navrh funkcni, tak by asi nebyl problem realizovat to i s jakoukoliv normalni logikou. Takze bych vas chtel poprosit, pokud se bude nekomu chtit, zda byste se mohli podivat, jestli jsem neudelal v nejake uvaze chybku, a zda by vubec scandoubler mohl v teto podobe fungovat. Viz. prilozene schema. Zde je k nemu popis, resp. zbozne prani jak by to melo fungovat. Vstupy: - Clock, libovolny hodinovy signal alespon 36MHz a vyssi - SharpRGBI, 4 bity RGBI ze Sharpa - SharpVsync, 50Hz snimkova synchronizace ze Sharpa (s kazdou nabeznou hranou zacina novy snimek) - SharpHsync, 15.6115kHz horizontalni synchronizace ze Sharpa (s kazdou nabeznou hranou zacina novy radek) Popis soucastek: - Ram1 a 2, interni pamet 4096x4, pokud je WE a EN na urovni 1, tak s nabeznou hranou CLK zapisujeme do pameti stav ze sbernice D(3:0), pokud je WE ve stavu 0, tak na sestupne hrane CLK cteme na sbernici DO(3:0) - OUTBUFT4 jsou 3 stavove vystupni buffery, pokud je T ve stavu 0, tak propousteji, pokud je T = 1, tak jsou na vystupu uvedeny do tretiho stavu - vypnuto - Count1, 2, 4 a 5 jsou 2 bitove citace, Count3 je 16 bitovy - Muxy 1 a 2 prepinaji vystup tak, ze pokud je na S0 = 0, tak na vystupu je stav z D0, pokud S0 = 1, tak je na vystupu stav z D1 - tajemna soucastka OUTBUFT_16_vs_12 je pouha redukce mezi 16 a 12 bitovou sbernici Popis funkce: - Count1 funguje jako delicka hodinoveho signalu, jeji vystup Q0 slouzi jako zdrojovy signal k citaci adres (Count3) a zaroven je timto signalem pri kazdem prvnim taktu nastaveno WE = 1 u pameti Ram1 a 2 (tedy pri kazde prvni nabezne hrane z Clock budeme provadet scan RGBI vstupu) - Count2 pocita sude a liche radky scanovaneho snimku a podle toho urcuje, do ktere z pameti se bude zapisovat a ze ktere se bude cist, nulty radek se zapise do Ram1, prvni do Ram2 atd. - s prvni nabeznou hranou na Clock scanujeme / zapiseme stav RGBI na adresu #000 Ram1 - s prvni sestupnou hranou na Clock precteme / odesleme na VGA obsah Ram2 z adresy #000 - s druhou nabeznou se nedeje nic - s treti sestupnou opetovne precteme / odesleme na VGA obsah Ram2 z adresy #000 a zvedneme hodnotu citace adres Counter3 na #001 - takto postupne scanujeme cely nulty radek, zapisujeme jeho hodnotu do Ram1 a do VGA odesilame nejake nesmysly z Ram2 dokud vstup SharpHsync nezmeni svou hodnotu na 0 (konec radku), tim se prepne zapis na Ram2, cteni na Ram1, vynuluje se citac adres Count3 a jakmile SharpHsync oznami prechodem do 1 zacatek noveho radku, tak zacneme na VGA posilat nascanovane data nulteho radku z Ram1, zatimco do Ram2 se bude ukladat dalsi radek - Hodnota signalu SharpHsync je transparentne predavana do VgaHsync - Hodnota vstupu SharpVsync je pri prechodu na 0 zaznamenana do Count4 a do vystupu VgaVsync je odeslana se zpozdenim o delku jednoho obrazoveho radku pomoci Count5 Toz takhle nejak bych si to predstavoval :) I kdyz vlastne ani moc neverim, ze to bude fungovat, tak jsem zvedavy na vas nazor. Michal
Celé vlákno · 8 zpráv
Re: Scandoubler zase trochu jinak
Michal Hučík SHARP MZ-800
Tomuhle se na internetu tusim rika "selfpwned" :) az kdyz jsem si to po sobe precetl, tak jsem si uvedomil, ze jsem vlastne zdvojnasobil pocet sloupcu a nikoliv pocet radku! :))) No nic, tak priste :)) Michal
Re: Scandoubler zase trochu jinak
Michal Hučík SHARP MZ-800
Zdravim, vcera jsem nad tim prvnim schematem vysedaval docela dlouho a jak se zda, tak zvitezil zadek nad myslenkou :) Za to se omlouvam a posilam opravenou verzi, ktera uz je mnohem vic podobna puvodnimu zameru. - count3 ma zdroj Clock/2 a pocita adresy pro zapis - count4 ma zdroj Clock a pocita adresy cteni - count5 je reverzni citac, ma zdroj z Clock, na konci zdrojoveho obrazoveho radku (pri SharpHsync = 0) si tento counter nacte hodnotu z Count3, pri cteni / odesilani pak pocita soucasne s Count4 a jakmile Count5 dojde k nule, tak posle signal na VGA Hsync a vynuluje Count4, takze nasleduje opetovne cteni stejneho radku, dalsi reset Count3 a VgaHsync nasleduje pri SharpHsync Je dost pravdepodobne, ze jeste nemam uplne odladene hrany na tech citacich - chci to cele jeste projit v analyzatoru s nejakymi testovacimi daty. Pokud je vsak uvaha spravna, tak by tento scandoubler mel byt docela univerzalni a nezavisly na zadnych konstantnich hodnotach Clock a Hsync. Co myslite? Michal
Přílohy
-
scandoubler_schema2.jpgimage/jpeg · 99 kB · 1185 x 924 px -
3image/jpeg · 99 kB · 1185 x 924 px
Re: Scandoubler zase trochu jinak
Zdenek Adler SHARP MZ-800
Michale (a ostatní), na to abych odkontroloval správnost zapojení už mi asi odumřely potřebné buňky. Nicméně snad alespoň pomohu dokumentem, který mi kdysi dal hodně práce a zkoumání na skutečném MZ-800. Je v něm zanesena většina věcí, kterými se můj emulátor odlišoval od konkurence, díky kterým byl o krok blíž k reálnému stroji a dokázal věrně reagovat i na nestandartní programátorské postupy (např. přepínání grafických režimů s naplněnou videoram, nestandartní zápisy do registrů GDG aj. ). Jak jsem koukal, některé kapitoly zůstaly pouze nadepsány a byl jsem líný do nich své poznatky přepsat než jsem na ně zapomněl. To hlavní v něm snad ale k nalezení je. To co tě bude zajímat nejvíce bude v zazipovaném souboru - jedná se o průběh signálů starajících se o synchronizaci obrazu (je to prakticky grafický výpis portu 0xCE). V textovém dokumentu je to pak kapitola 2.1 kde jsou rozepsány parametry obrazu (v pixelech, doba jejich trvání) ve vztahu k procesoru - přepočet kdy se budou vztahovat k hlavnímu krystalu 17,xxxx MHz se provede jednoduše vynásobením 5-ti. Na závěr poprosím všechny, kteří údaje z těchto dokumentů použijí (ať už při tvorbě nového emulátoru, nebo při návrhu hardwaru apod.), aby se alespoň skromně zmínili, z jakého zdroje čerpali a kdo je jeho autorem (mimochodem, spolutvůrcem kapitoly o mapování paměti byl Roman Dolejší). Zdeněk
Zobrazit citovaný text (36 řádků)
----- Original Message ----- From: "Michal Hučík (sharpemupandora.cz)" <pandora.idnes.cz[doména skryta]> To: "Konference "Počítač SHARP MZ-800 a emulátory"" <sharpemupandora.cz> Sent: Friday, April 24, 2009 12:09 PM Subject: Re: Scandoubler zase trochu jinak > > Zdravim, > > vcera jsem nad tim prvnim schematem vysedaval docela dlouho a jak se zda, > tak zvitezil zadek nad myslenkou :) Za to se omlouvam a posilam opravenou > verzi, ktera uz je mnohem vic podobna puvodnimu zameru. > > - count3 ma zdroj Clock/2 a pocita adresy pro zapis > > - count4 ma zdroj Clock a pocita adresy cteni > > - count5 je reverzni citac, ma zdroj z Clock, na konci zdrojoveho > obrazoveho radku (pri SharpHsync = 0) si tento counter nacte hodnotu z > Count3, pri cteni / odesilani pak pocita soucasne s Count4 a jakmile > Count5 dojde k nule, tak posle signal na VGA Hsync a vynuluje Count4, > takze nasleduje opetovne cteni stejneho radku, dalsi reset Count3 a > VgaHsync nasleduje pri SharpHsync > > Je dost pravdepodobne, ze jeste nemam uplne odladene hrany na tech > citacich - chci to cele jeste projit v analyzatoru s nejakymi testovacimi > daty. Pokud je vsak uvaha spravna, tak by tento scandoubler mel byt docela > univerzalni a nezavisly na zadnych konstantnich hodnotach Clock a Hsync. > > Co myslite? > > Michal > > --- >
Přílohy
-
MZ800Undoc.docapplication/msword · 129 kB
-
out1-2.zipapplication/zip · 94 kB
Re: Scandoubler zase trochu jinak
Pavel Železo SHARP MZ-800
Ahoj Zdeňku, dík za zajímavé informace ! Pavel
Zobrazit citovaný text (8 řádků)
> ---------------------------------------- > > Michale (a ostatní), > > na to abych odkontroloval správnost zapojení už mi asi odumřely potřebné > buňky. Nicméně snad alespoň pomohu dokumentem, který mi kdysi dal hodně > práce a zkoumání na skutečném MZ-800. ... > Zdeněk
Re: Scandoubler zase trochu jinak
Michal Hučík SHARP MZ-800
Zdenku dekuji, alespon muzu do analyzatoru poslat vstupni data v realne podobe. Jak uz to tak chodi, tak v predchozim schematu je opet chybka - tentokrat pouze v muxech. Oprava: mux pro adresni sbernici funguje nyni jako krizovy prepinac. Nechci vam zbytecne plnit mailboxy obrazkama, takze pokud to nekoho zajima, tak schema je zde http://duna.ordoz.com/scandoubler/spartan3/scandoubler_schema3.jpg Michal Zdenek Adler (sharpemupandora.cz) napsal(a):
Zobrazit citovaný text (27 řádků)
> > Michale (a ostatní), > > na to abych odkontroloval správnost zapojení už mi asi odumřely > potřebné buňky. Nicméně snad alespoň pomohu dokumentem, který mi kdysi > dal hodně práce a zkoumání na skutečném MZ-800. Je v něm zanesena > většina věcí, kterými se můj emulátor odlišoval od konkurence, díky > kterým byl o krok blíž k reálnému stroji a dokázal věrně reagovat i na > nestandartní programátorské postupy (např. přepínání grafických režimů > s naplněnou videoram, nestandartní zápisy do registrů GDG aj. ). Jak > jsem koukal, některé kapitoly zůstaly pouze nadepsány a byl jsem líný > do nich své poznatky přepsat než jsem na ně zapomněl. To hlavní v něm> snad ale k nalezení je. > To co tě bude zajímat nejvíce bude v zazipovaném souboru - jedná se o > průběh signálů starajících se o synchronizaci obrazu (je to prakticky > grafický výpis portu 0xCE). V textovém dokumentu je to pak kapitola > 2.1 kde jsou rozepsány parametry obrazu (v pixelech, doba jejich > trvání) ve vztahu k procesoru - přepočet kdy se budou vztahovat k > hlavnímu krystalu 17,xxxx MHz se provede jednoduše vynásobením 5-ti. > Na závěr poprosím všechny, kteří údaje z těchto dokumentů použijí (ať > už při tvorbě nového emulátoru, nebo při návrhu hardwaru apod.), aby > se alespoň skromně zmínili, z jakého zdroje čerpali a kdo je jeho > autorem (mimochodem, spolutvůrcem kapitoly o mapování paměti byl Roman > Dolejší). > > Zdeněk
Zvukový čip SN76489 na rootu:
Pavel Železo SHARP MZ-800
Re: Scandoubler zase trochu jinak
Zdenek Adler SHARP MZ-800
Ještě na doplnění posílám něco obdobného - týká se to sice MZ-700, ale pár zajímavých informací se z toho dá načerpat (obzvlášt poslední 3 odkazy htiming + pixel + wramwait): http://www.maroon.dti.ne.jp/youkan/mz700/M60719/index.html Z.
Zobrazit citovaný text (55 řádků)
----- Original Message ----- From: "Michal Hučík (sharpemupandora.cz)" <ordoz[doména skryta]> To: "Konference "Počítač SHARP MZ-800 a emulátory"" <sharpemupandora.cz> Sent: Friday, April 24, 2009 1:39 PM Subject: Re: Scandoubler zase trochu jinak > > > Zdenku dekuji, alespon muzu do analyzatoru poslat vstupni data v realne > podobe. > > Jak uz to tak chodi, tak v predchozim schematu je opet chybka - tentokrat > pouze v muxech. Oprava: mux pro adresni sbernici funguje nyni jako krizovy > prepinac. > Nechci vam zbytecne plnit mailboxy obrazkama, takze pokud to nekoho > zajima, tak schema je zde > http://duna.ordoz.com/scandoubler/spartan3/scandoubler_schema3.jpg > > Michal > > > Zdenek Adler (sharpemupandora.cz) napsal(a): >> >> Michale (a ostatní), >> >> na to abych odkontroloval správnost zapojení už mi asi odumřely potřebné >> buňky. Nicméně snad alespoň pomohu dokumentem, který mi kdysi dal hodně>> práce a zkoumání na skutečném MZ-800. Je v něm zanesena většina věcí, >> kterými se můj emulátor odlišoval od konkurence, díky kterým byl o krok>> blíž k reálnému stroji a dokázal věrně reagovat i na nestandartní >> programátorské postupy (např. přepínání grafických režimů s naplněnou >> videoram, nestandartní zápisy do registrů GDG aj. ). Jak jsem koukal, >> některé kapitoly zůstaly pouze nadepsány a byl jsem líný do nich své >> poznatky přepsat než jsem na ně zapomněl. To hlavní v něm snad ale k >> nalezení je. >> To co tě bude zajímat nejvíce bude v zazipovaném souboru - jedná se o >> průběh signálů starajících se o synchronizaci obrazu (je to prakticky >> grafický výpis portu 0xCE). V textovém dokumentu je to pak kapitola 2.1 >> kde jsou rozepsány parametry obrazu (v pixelech, doba jejich trvání) ve >> vztahu k procesoru - přepočet kdy se budou vztahovat k hlavnímu krystalu >> 17,xxxx MHz se provede jednoduše vynásobením 5-ti. >> Na závěr poprosím všechny, kteří údaje z těchto dokumentů použijí (ať už >> při tvorbě nového emulátoru, nebo při návrhu hardwaru apod.), aby se >> alespoň skromně zmínili, z jakého zdroje čerpali a kdo je jeho autorem >> (mimochodem, spolutvůrcem kapitoly o mapování paměti byl Roman Dolejší). >> >> Zdeněk > > > ---