Blame | Last modification | View Log | Download | RSS feed | ?url?
Ôóíêöèè epm3032 â íüþÃÑå
I.
Êîììóòèðîâàòü êëîê. Íà âõîä èäóò 24 è 20 ìãö, ñèãíàëû âûáîðà êëîêà,
íà âûõîäå - âûáðàííûé êëîê.
âõîäû:
clk24in - 24ìãö
clk20in - 20ìãö
clkout - âûõîä (êëîê íà Z80 è ãëàâíóþ ÔÏÃÓ)
clksel1 - âûáîð
clksel2 - êëîêà
{clksel1,clksel2} | ×àñòîòà, ÌÃö
-------------------+----------
0 0 | 24
0 1 | 12
1 0 | 20
1 1 | 10
II.
Ðóëèòü ïàìÿòüþ çåòíèêà, êîãäà îñíîâíàÿ ôïãà íå çàãðóæåíà è å¸ íàäî çàãðóçèòü. Ôè÷è:
âõîä cold reset (coldres_n), ïî íåìó ãåíåðèòñÿ warmres_n è nCONFIG íà ôïãà, ñáðàñûâàåòñÿ ïðîö è ôïãà â ðåæèì
êîíôèãóðèðîâàíèÿ ââîäèòñÿ.
 ýòîì ðåæèìå ñòàðøèå àäðåñà ïàìÿòè è ÖÑû - ïóëëàïëåíû 1êîì, 3032 ðóëèò òîëüêî mema14 è mema15, romcs_n è ramcs0_n,
ò.å. âèäÿòñÿ ñòàðøèå 64êá 1îé ìñõ ÎÇÓ è ÏÇÓ.
ìàïïèíã:
0000-3fff - ïåðâûå 16êá ÏÇÓ (èç âûøåóêàçàííîãî êóñêà 64êá)
4000-7fff - ïåðâûå 16êá ÎÇÓ
8000-ffff - ëþáàÿ ïîëîâèíêà 64êá ÎÇÓ èëè ÏÇÓ, ñì. îïèñàíèå ïîðòîâ.
Ïîðòû (ìëàäøèé àäðåñ, ñòàðøèé - ïîôèãó)
%00xxxxxx - äëÿ ÔÏÃÀ
%01xxxxxx, ÷òåíèå: d7=cold reset flag, 0 - áûë cold reset, 1 - íå áûëî
%01õõõõõõ, çàïèñü: d7=1 â 32êá ñòðàíè÷êå ÎÇÓ,0 - ÏÇÓ, d0=0 ìëàäøèå 32ê â ñòðàíè÷êå,1 - ñòàðøèå (ñì. âûøå)
%10xxxxxx, ÷òåíèå: d7 - nSTATUS, d0 - CONF_DONE
%10xxxxxx, çàïèñü: d7=1 - óñòàíîâèòü â 1 cold reset flag, 0 - íå ìåíÿòü; d0 - çàäàòü nCONFIG
%11xxxxxx, çàïèñü áàéòà êîíôèãóðàöèè â ÔÏÃÀ
%11xxxxxx, ÷òåíèå áàéòà ãîòîâíîñòè èç ÔÏÃÀ
ñ ïðîöà èäóò ñèãíàëû:
a14,a15,a6,a7,d7,d0
/iorq, /mreq, /rd, /wr
íà ïðîö: /res (ê warmres_n)
íà ïàìÿòü:
mema14,mema15,ramcs0_n,romcs_n,memoe_n,memwe_n
ñ ãåíåðàòîðà ñáðîñà/êíîïêè: coldres_n
íà/ñ ÔÏÃÀ:
nCONFIG, nSTATUS, CONF_DONE
åù¸: cs,INIT_DONE
Êàê 3032 óçíà¸ò, êîãäà îíà ðóëèò, à êîãäà ÔÏÃÀ:
1. ïî ñèãíàëó coldres_n îíà ãåíåðèò ÔÏÃÀøêå nCONFIG â íîëü, à òàêæå warmres_n (íà ïðîö),
2. ñèãíàë nCONFIG ñáðàñûâàåò àñèíõðîííî òðèããåð 'ðóëåðñòâà', ò.å. 3032 ñ÷èòàåò, ÷òî îíà ðóëèò
ïàìÿòüþ äëÿ ïðîöà.
3. Ïîëîæèòåëüíûé ôðîíò INIT_DONE óñòàíàâëèâàåò òðèããåð 'ðóëåðñòâà', ò.å. òåïåðü ÔÏÃÀøêà
ðóëèò ïàìÿòüþ è âñåì îñòàëüíûì, ïðè ýòîì ñðàçó æå âûäà¸òñÿ èìïóëüñ warmres_n, ñáðàñûâàþùèé ïðîö è ÔÏÃÀøêó
(óæå îòêîíôèãóðåííóþ), è ïðîö íà÷èíàåò ðàáîòó óæå ïðî ÔÏÃÀøêîé.
4. åñëè õî÷åòñÿ ïåðåêîíôèãóðèòüñÿ íà õîäó, ÷åðåç ïîðò îáíóëÿåì nCONFIG. Ñáðîñà ïðè ýòîì íå áóäåò, íî
êîíòðîëü íàä ïàìÿòüþ âåðí¸òñÿ ê 3032, òóò íàäî ñäåëàòü òàê, ÷òîáû ïðîö ïðîäîëæèë âûïîëíÿòü îñìûñëåííóþ ïðîãðàììó.
Äàëåå, ïî ïðèõîäó INIT_DONE ïðîö+ÔÏÃÀ ñáðîñÿòñÿ. Ñîâñåì íàëåòó - íå âûéäåò.
Òðèããåð 'ðóëåðñòâà' ðóëèò:
Z-ñîñòîÿíèåì ñèãíàëîâ óïðàâëåíèÿ ïàìÿòüþ, ñèãíàëîì cs íà ÔÏÃÀ.