OldComp.cz

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


Právě je 28.03.2024, 16:27

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 1488 ]  Přejít na stránku Předchozí  1 ... 92, 93, 94, 95, 96, 97, 98 ... 100  Další
Autor Zpráva
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 24.06.2020, 11:41 
Offline
Kecálek

Registrován: 28.10.2016, 21:03
Příspěvky: 122
Has thanked: 13 times
Been thanked: 50 times
Při snaze pochopit obrázek jsem si to přepsal do textové formy, a ve výsledku
mi vyšlo to stejné co psal suksoft, jen v jiném formátu.
Kód:
; VA,VC - vram contents
; DT - written data

; similarly for VA1out...VA7out
VA0out=
  nand(
    nand(
     nand(DT0, sel1va),
     VA0,
     sel2va),
    nand(
     DT0,
     nand(VA0, sel1va),
     sel3va))

; similarly for VC1out...VC7out
VC0out=
  nand(
    nand(
     nand(DT0, sel1vc),
     VC0,
     sel2vc),
    nand(
     DT0,
     nand(VC0, sel1vc),
     sel3vc))

; sel1, sel2, sel3 are determined by write format register bits 7,6,5
; and plane selection bit
WR7 WR6 WR5 PlaneSel -> sel1 sel2 sel3
0   0   0   0           0    1    0      va       Single write
0   0   0   1           0    0    1      dt
0   0   1   0           0    1    0      va       Exor
0   0   1   1           1    1    1      dt^va
0   1   0   0           0    1    0      va       Or
0   1   0   1           0    1    1      dt|va
0   1   1   0           0    1    0      va       Reset
0   1   1   1           1    1    0      !dt&va
1   0   0/1 0           0    0    0      0        Replace
1   0   0/1 1           0    0    0      dt
1   1   0/1 0           1    1    0      !dt&va   Pset
1   1   0/1 1           0    1    1      dt|va

Nejsem si jistý, že správně rozumím tomu, jaký je rozdíl ve VA0 a VC0. To jsou
různé roviny, tj. složením dvou rovin dostanu 4 barvy? A nejsou potom v GDG
celkem 4 roviny?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 24.06.2020, 12:11 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
V Sharp MZ800 jsou dve banky video ram. Prvni, jiz zapajena uz od vyrobce se sklada ze dvou kusu 4x16Kbitu dram a je pripojena k vyvodum GDG oznaceno jako VA. Celkem je to 8 bitu. Druha banka se sklada ze dvou patic a tam si "bohatsi" Sharpista mohl dokoupit dalsi stejnou pamet a dohromady je to 16x16K bitu pameti. Druha banka je pripojena na vyvody oznacene VC. Vlastni GDG pracuje s jednou bankou 2x. Proto je tam to FirstCycle a SecondCycle. Hezky je to videt v technickem manualu na stane 16. Nejrive se zpracuje u VA planeI a u VC planeIII. Nasledne se udela planeII a planeIV.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 26.06.2020, 14: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 aktualni stav u mne s GDG je takovyto. Zmapoval jsem cestu RFR - hodne cest jsem prejmenoval. Je to ta cast obrazku na strane 13 technickeho manualu kde data vstupuji z GDG a vystupuji na sbernici sharpa. Na zadny tajny rezim jsem nenarazil. Vse je presne podle technickeho manualu.

Vcera jsem mapoval Horizontal line counter, to je strana 9 technickeho manualu. Ten se sklada ze tri synchronnich citacu LC0, LC1 a LC2. Presne dle obrazku se pres AND aktivuje zapis adresy DAG citace.

Jinak uvnitr GDG je vice citacu, docela mnoho. Prvni je horizontalni a vertikalni citac. Ty se pouzivaji pro rezim MZ800. Pro rezim MZ700 je tam tzv. DAG citac a prave tento Horizontal line counter co ma 3 bity (8 kombinaci). Pozor vsechny citace bezi porad a je nutno vedet ze i DAG se nezastavuje, jen se ve spravnou dobu resetuje. Takze na miste kde se zobrazuje prvni znak je DAG vynulovan.

Zacal jsem se divat jake informace vedou ven smerem do adresove sbernice VRAM. To prave pomohlo identifikovat to LC0-2. Cele je to hodle slozite. Nejslozitejsi je vyvod VAD6 - to ma hodne slozitou strukturu. Podle nastaveni grafickeho rezimu a stavu FSM se aktivuji ruzne multiplexory a tak se nastavuje adresa bunky ve video ram. Je to zajimave lusteni.

Ted se dostavam do situace kdy planuji vybrat par bloku a udelat z toho jadro FSM. To bude ovladat dalsi obvody, co uz jsou pomocne pro urcite casti GDG. Musim to spravne zvolit aby to nebylo prilis slozite na cteni.

Microlane, podle mne dulezity obvod je "zpozdovac" mezi generatorem pixel signalu a konvertorem co z paralelnich dat dela seriove. Urcite moc dobre vedi proc je tam tolik negaci zasebou. To muze byt presne to co se hledalo na TM.

Strucne napsano. Jsou dva generatory pixelu (dve rychlosti), ty se spojuji a vysledek jde hlavne do vystupu grafiky smerem ven, takze vsechny 4 "barvy" jsou vzajemne synchronizovane. Ale par/ser konvertor tento siganal dostava pozdeji a tak muze pripravit data pozdeji. Logicky z toho vyplyva ze posledni cast GDG zpracovava data jeden (56ns) takt pred par/ser. Uvidime co se zjisti na analyzatoru.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 28.06.2020, 14:05 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Tak ted jsem opet trosku pokrocil. Ted jsem se zabyval vystupen na adresovou sbernici video ram.

V technickem manualu je to strana 9 uplne dole. Schema vypada trivialne ale realita je hodne slozitejsi. Takze z 90% mam jasno jak to funguje ale cast se musi jeste rozkodovat. Jsou zde drobne veci co budu muset vyresit.

Napr. v navodu se pise:

2000 CGRAM
3000 TEXT
3800 ATB

Ale v realite je to videt v plane1? Uz jen proto ze WFR a RFR je naplnen cislem 1. Vysvetleni je to, ze kdo psal navod videl blokove schema GDG a z toho toto vycetl ale neviml si, ze se to jeste 3x na ceste neguje. Takze do vlastni video ram jdou negovana data.

---

Predelal jsem C# program aby generoval relativni cesty a kdyz uz jsem to menil tak jsem to rozsiril tak abych mohl exportovat z gdg ne 9 ale 16 signalu. To jsem ted i vyuzil. Vzal jsem 16 ruznych signalu co delaji nejake casovani uvnitr GDG a nechal jsem si je zobrazit. Ukazuje to hodne signalu co aktivuji ruzne casti GDG. Ted prejmenuji pixel_clock na LOAD. Take udelam LD64 a nove i LD32.

Tusim jaky kopny obvod je DISP (cpu cycle/disp cycle) - podle vseho je to soucasne i TEXT_ATB vs CGRAM. Tak se nam to puzzle pekne sklada do sebe. Zatim to nemam potvrzene ale ten signal TEXT_ATB pri cteni dat z video ram je v TEXT a ATB v rezimu MZ700 ale vycitani CGRAM je adresova sbenice v rezimu MZ800.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 29.06.2020, 12:57 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Microlane na http://www.radeksuk.cz/sharp/gdg/program/data20200620/ jsem dal aktualizovanou verzi dat. Cele je to ted delane tak, ze do tohoto projektu se prekopirovavaji data z druheho projektu. Takze se zde "automaticky" doplnuji potrebne soubory. V budoucnu bude uplne stacit jen aktualizovat adresar "sharp" a vse bude aktualni.

Jinak opet jsem v noci pokrocil. Puvodne jsem chtel zobrazit par signalu ale zvrhlo se to k velkemu premisteni funkcnich bloku. Treba VRWR je strasne dulezity signal. Ridi hodne funkci. Take mimo jine ridi klopny obvod nDisplay/Cpu. Soucasne jsem zjistil ze jiny obvod presne dela funkci nTEXT/ATB. Pak se hodne veci na adresove sbernici video ram okamzite vyjasnilo. Klidne muzu rici, ze aktualni data jsou uz hodne presna. Obvod okolo WAIT GDG uz ma take logicke vysvetleni. Zadny utajeny rezim jsem nenasel. Jeste bude muset se par tydnu data "docistovat".


Naposledy upravil suksoft dne 29.06.2020, 13:25, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 29.06.2020, 13:12 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Díky, funguje to na 1. dobrou!

//Paráda, zredukováno na 417 buněk

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 29.06.2020, 16:43 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Microlane asi bude lepsi rici 417 modulu. V tomto projektu je pro mne bunka cast GDG se ctyrmi tranzistory. Z bunek se skladaji funkcni bloky (presne dane firmou NEC) a z techto bloku se skladaji tyto moduly. Obsah modulu jsem urcil ja. Snazil jsem se vzdy aby u sebe bylo neco co k sobe patri. Premyslel jsem zda neudelat jeste jednu vrstvu modulu nad tim. Zatim jsem to nedelal, protoze to nebylo uplne dulezite a jednoduche. Hlavne by byl problem s vyvedenim signalu ven z GDG. Obesel jsem to tou predponou pred jmenem modulu.

Stale jako nejdulezitejsi je ted udelat casovou osu kdy se jaky signal aktivuje a co ho aktivuje.

Jedna z uvah je zamenit casti GDG za jiny obvod, ktery bude popsan ve HDL (umyslne nerikam Verilog, SystemVerilog ci VHDL). Soucasne pri tom vyhodit kompletne TEST signal a vse co neni v beznem Sharpovi aktivni. Ono se to nezda ale tech dummy hradel je uvnitr docela dost. Treba comparator nechat prekladacem optimalizovat, i toto neskutecne zjednodusi vysledek. Stale by to ale byl puvodni GDG. Je jen otazka casu nez nekdo udela novou desku pro Sharpa a zda treba video ram nevymeni za jiny typ pameti, napr. SRAM. Nebo dokonce vyuzije ramku v FPGA. Tak nebo tak, je uz ted jasne ze velka cast GDG se da prepsat trivialni rovnici, lehce citelnou. Dalsi cast se da prepsat do FSM. Trosku problem bude zamenit latche za flip-flop obvody ale po casove analyze i toto pujde. Uvnitr GDG je mraky synchronnich citacu, ted se to vse dela zbytecne slozite, prekladac by to umel rapidne lepe udelat, kdyz se mu da jine zadani.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 17.07.2020, 17:59 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Microlane na http://www.radeksuk.cz/sharp/gdg/program/data20200717/ jsem dal aktualni soubory. Trosku to porad upravuji.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 18.07.2020, 06:59 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Díky,

mrknu na to.

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 10.08.2020, 10:09 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Microlane na http://www.radeksuk.cz/sharp/gdg/program/data20200810/ jsem ulozil aktualni data. Pred 14 dny jsem byl na dovolene a tam jsem trosku to posunul. Ted jsem dal nektere hradla do jineho modulu aby to bylo vice logicke a kompaktni. Hodne jsem predelal vystup adresni sbernice na video ram. Jeste na tom budu pracovat.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 11.08.2020, 06:57 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Díky za informaci, ale jsem na dovolené, tak na to mrknu až za týden.

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 19.08.2020, 14:27 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1198
Has thanked: 359 times
Been thanked: 304 times
Resim tady takovou vec ve VHDL. Potrebuji definovat hradlo, jsou to v podstate dva invertory za sebou, ale tak, aby se mi to pri synteze nezredukovalo na 'dratovou propojku'. Deje se to i kdyz mam vypnute veskere optimalizace. Proste syntezator pozna, ze jsou to dva invertory a tuto dvojici vyhodi z navrhu.
Nasel jsem na netu nejakou moznost, pri synteze to udela presne to, co chci, ale zacne to vypisovat hromadu warningu ve smyslu "Warning (10325): VHDL Choice warning at std_1164_vhdl1993.vhd(1113): ignored choice containing meta-value "'U'""
Duvod: potrebuji zpozdit signal o cas dany jednim nebo dvema hradly. V GDG se to pouziva pro ustabilizovani zapisoveho impulzu do FF hradel, a docela casto.

_________________
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: GDG foto cipu
PříspěvekNapsal: 19.08.2020, 14:41 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
V překladu do VHDL se absolutně nevyznám, ale co zkusit mezi ivertory vložit fiktivní výstupní signál. Nevím co to udělá, když se nakonec ten signál nikam nepřipojí.
//Nakonec by se ale mohly ty signály sečíst na nějakém vícevstupém hradle a napojit na nějaký nepoužitý pin.

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 19.08.2020, 15:34 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Toto je u mne definice bloku typu 103

(* keep_hierarchy = "yes" *)
(* DONT_TOUCH = "yes" *)
module F103_NOT24 (input GCLK, input I, output nO );

`ifdef PREKLAD_PRO_VIVADO
(* ASYNC_REG = "TRUE" *) reg funkce1;
`else
reg funkce1;
`endif

initial begin
funkce1 = 1'b0;
end

always @(posedge GCLK)
funkce1 = !I;

`ifdef PRIDAT_VYSTUPNI_LATCH
assign nO=funkce1;
`else
assign nO=!I;
`endif

endmodule

Pomaham si nastavenim:
(* keep_hierarchy = "yes" *)
(* DONT_TOUCH = "yes" *)
(* ASYNC_REG = "TRUE" *)
Samozrejme toto funguje jen u Xilinxe. U Intelu bych zkusil (* dont_merge *) a podobne.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: GDG foto cipu
PříspěvekNapsal: 19.08.2020, 15:41 
Offline
Radil

Registrován: 08.10.2013, 18:00
Příspěvky: 296
Has thanked: 12 times
Been thanked: 228 times
A tohle by nefungovalo ?
Kód:
output <= NOT input AFTER 3 ns;


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ů: 1488 ]  Přejít na stránku Předchozí  1 ... 92, 93, 94, 95, 96, 97, 98 ... 100  Další

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


Kdo je online

Uživatelé procházející toto fórum: nalimko33 a 8 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