Onko mikro-ohjainta, jossa on 16 Mt RAM-muistia?
Kyllä. Ainoa, josta olen tietoinen, kuuluu kuitenkin Renesas SuperH -perheeseen eikä sisällä ROM-levyä - joten sinulla on oltava ulkoinen salama, mutta siinä on 16 Mt tavua SRAM-muistia.
Etsin kirjoittaa emulaattoria Sega Megadrivelle (Sega Genesis), joka toimii AVR: llä.
Atmel AVR -perheessä ei ole 16 Mt: n SRAM-mikrokontrollereita. Tai missä tahansa Atmel-tuotelinjassa.
Monilla Atmel AVR -mallin laitteilla on kuitenkin ulkoinen väyläliitäntä, jonka avulla voit liittää lisämuistia. Erityisesti ATxmega128A1U tukee jopa 16 Mt tavua ulkoista SRAM-muistia.
Joten olen etsinyt mikro-ohjainta, jolla on samanlaiset ominaisuudet kuin MegaDriven mukana toimitetulla Motorola 68k: lla.
...
Olen varma, että nykyaikainen SRAM ei ole läheskään sama kuin 68k: lla, mutta onko mahdollista saada AVR-mikro, joka vastaa 68 kt: n tehoa, katsonko tätä ongelmaa väärin? Täytyykö minun muuttaa mallini mukautumaan nykyaikaisiin mikroihin?
En tiedä, onko jokin ulkoinen muistilähde tarpeeksi nopea.
Ah, tässä on ongelma.
68 kt: n prosessori (ts. Motorola 68000) EI OLE mikrokontrolleri eikä sillä ole 16 Mt tavua sisäistä SRAM-muistia.
Vaikka prosessori on sisäisesti 32 bittiä, nastarajoitusten vuoksi se voi käsitellä vain 16 Mt tavua ulkoista muistia, mukaan lukien flash, sram ja kaikki muistikartoitetut laitteet.
Emulointiin ei tarvita mikro-ohjainta, jossa on 16 Mt sisäistä SRAM-muistia. 68k-prosessori.
Onko olemassa Atmel AVR 8-bittistä mikro-ohjainta, joka voi jäljitellä Motorolla 68000 -prosessoria?
Luulen niin. ATxmega128A1U: lla on yhtä suuri ulkoinen muistiväylä kuin 68 k: n prosessorin väylä, ja siinä on paljon salamaa ja RAM-muistia, joiden avulla se voi suorittaa 68 k: n mikrokoodiversiota.
Se voi toimia jopa 32 MHz: ssä, ja monet ohjeet vievät yhden jakson, mutta pahimmassa tapauksessa sisäisessä muistissa kestää 5 jaksoa. Ulkoinen käyttöliittymä on hitaampi, mutta jos valitset nopean muistin, se on silti paljon nopeampi kuin 68 k.
68 k: n prosessori ei vain toimi 4 kertaa hitaammin, mutta nopein toiminto vie vähintään 4 kellosyklit, ja monet vievät 2-4 kertaa pidempään, etenkin muistiyhteydet.
Joten jopa hitaalla (nykypäivän standardien mukaan) SRAM: lla (sanotaan, että 70nS 8 Mt: n osa on alle 10 dollaria), voit käyttää 0 odottamistilaa 32 MHz: n prosessorilla ja suorita ympyröitä 68 k: n ympäri 7 MHz: n taajuudella. Esimerkiksi yksinkertainen siirto-ohje 68k: lle, joka vie 4 jaksoa taajuudella 7,61 MHz, vie 525 nS. Samanlainen yksinkertainen siirto-ohje ATxmega128A1U: lla, joka toimii 32 MHz: llä, vie 31 nS. Joten AVR pystyi suorittamaan 16 siirtoa siihen mennessä, kun 68K tehtiin yhdellä. 68k vie 50 jaksoa joillekin keskeytystyypeille, kun taas AVR hyppää keskeytykseen 3 jaksossa - joten AVR pystyy käsittelemään kourallisen keskeytyksiä siinä ajassa, joka 68k: lla kestää vain siirtyä yhteen.
Odotan, että voit suorittaa sen syklin tarkasti varovasti, jos hyväksyt jonkin värinän, vaikka saatatkin saada sen toimimaan täydellisesti täysin tarkasti ilman värinää, jos olisit huolellinen. AVR-prosessorit toimivat hyvin kohtuullisella ylikellotuksella, joten voit todennäköisesti ajaa sen taajuudella 38,35 MHz ja sinulla on 5 AVR-jaksoa 68 kt: n sykliä kohti.
Tämä ei tarkoita, että se olisi helppoa, ja siinä voi olla muutama erittäin hankala ohje, joka vie AVR: llä kauemmin kuin muuten - mutta jopa nämä voidaan ottaa huomioon huolellisella suunnittelulla.
Voinko jäljitellä Sega Genesistä Atmel 8-bittisellä AVR: llä?
Ei. Sega Genesiksen sydämessä on 68 kt: n prosessori, mutta siinä on myös ääniprosessori (Z80) ja videoprosessori, joiden jäljittelemiseen tarvitset huomattavasti enemmän resursseja. Alla olevasta kaaviosta löydät 68 k: n prosessorin vasemmassa yläkulmassa - huomaa, että se on yksi pieni osa kaikesta, mitä tarvitaan täydellisen Sega Genesis -järjestelmän jäljittelemiseen.
Vaikka voisit helposti jäljitellä Sega Genesiksen 68 000 ydintä, et voi pelata Genesikselle tehtyjä pelejä vain yhdellä AVR-mikrokontrollerilla. Pelkän 68k: n jäljitteleminen yhdellä sirulla olisi tarpeeksi vaikeaa - vaikka yksinkertaistaisitkin asioita, epäilen, voisitko sijoittaa kaikki kolme prosessoria yhdeksi 32 MHz: n AVR-siruksi.
Voit kuitenkin todennäköisesti jäljitellä näitä kahta sirua kahdella lisää AVR: itä. Jos kohdistat yksinkertaisempaan graafiseen nestekidenäyttöön, joka ei vaadi outoja NTSC-ajoituksia ja luomista, saatat pystyä yksinkertaistamaan asioita hieman ja ehkä jopa laittaa molemmat toiminnot yhdeksi erilliseksi siruksi.
Tämä on kuitenkin valtava projekti, ei varmasti viikonlopun projekti. Jos olet vaiheessa, jossa olet vain tyytyväinen Arduino-kehityskortteihin, saattaa olla mielenkiintoista luoda yksinkertainen 68 kt: n prosessoriemulaattori ja liittää pieni ulkoinen ROM ja RAM muistikäyttöä varten. Arduino ATMegalla ei ole ulkoista muistiliitäntää, mutta voit piilottaa I / O-linjoja ja jäljitellä sitä. Jos saavut tarpeeksi kauas projektista siihen, missä voit jäljitellä yksinkertaisia 68k-ohjelmia, saattaa olla syytä poistaa du arduino, käyttämällä Atmel-kehitysympäristöä, ja parempi AVR-siru ulkoisella väyläliitännällä, ja voit aloittaa lukemisen ja suorittamisen patruunat. Saatat jopa pystyä välittämään video- ja äänitietoja tietokoneelle ja tulkitsemaan ne prosessoinnissa - se on silti liian hidasta (Arduino Mega on vain 16 MHz), mutta se antaa sinulle ainakin hyvän käsityksen työtä, joka sinun on tehtävä saadaksesi täyden nopeuden emuloinnin, ja voit aloittaa nokitsemisen kuinka paljon vaivaa olisi jäljitellä VDP- ja ääniprosessoreita.
Varmista, että emulointirutiinisi ovat kannettavia ja sinä Pystyn vaihtamaan parempaan prosessoriin riittävän helposti, ettet jää jumiin.
Jos yksinkertainen Arduino Mega -projekti ei koskaan pääse kovin pitkälle, et ole tuhlannut paljon resursseja tähän projektiin. Jos huomaat, että olet valmis suorittamaan sen, siirtyminen entistä kyvykkäämmälle Atmel-sirulle ei ole niin ylivoimaista.
Sanon kokeile sitä. Jotkut sanoistani ja toiset ovat saattaneet tuntua siltä, että tämä on ylitsepääsemätöntä, mutta älä anna meidän päästä tietäsi. Jatka kysymysten esittämistä aina, kun törmäät esteeseen, ja huomaat, että useimmat insinöörit nauttivat haasteesta ja antavat sinulle ymmärrystä ja apua, mitä sinun tarvitsee mennä pitkälle tälle polulle.
Emulointi on paljon hauskaa.