Kysymys:
Onko olemassa mikrokontrolleria, jossa on 16 Mt RAM-muistia?
baordog
2015-09-29 03:17:22 UTC
view on stackexchange narkive permalink

Tässä on tilannettani:

Henkilökohtaisena projektina aion kirjoittaa emulaattorin AVR: llä toimivaan Sega Megadriveen (Sega Genesis). Joten olen etsinyt mikro-ohjainta, jolla on samanlaiset ominaisuudet kuin Motorola 68k: lla, joka toimitettiin MegaDriven mukana. Olen kuitenkin huomannut, että 68k: n tekniset tiedot verrattuna useimpiin harrastajamikroihin. Valitsen AVR: n ARM: n sijaan, koska pidän arkkitehtuurista ja ajattelin, että se olisi hyvä haaste.

  M68K: 32-bittinen CPU 16-bittinen tietoväylä Jopa 20 MHz16 Mt RAM-muistia Ei I / O-portteja  

Tässä on Arduino Leonardon tiedot:

  Tulojännite (suositus) 7-12VItulojännite (rajoitukset) 6-20VDigitaaliset I / O-nastat 20PWM-kanavat 7Analogiset tulokanavat 12DC -virta I / O-nastaa kohti 40 mADC-virta 3,3 V: n nasta 50 mAFlash-muistia 32 kt (ATmega32u4), josta 4 kt bootloader käyttää SRAM 2.5 KB (ATmega32u4) EEPROM 1 KB (ATmega32u4) Kellonopeus 16 MHz Pituus 68,6 mmLeveys 53,3 mmPaino 20g  

Tämä näyttää melko tyypilliseltä alemmalle modernit mikrot. En koskaan näe, että ram pääsee paljon mbs: ään.

Nyt olen varma, että moderni SRAM ei ole melkein sama kuin mitä 68 k: lla oli, mutta onko mahdollista saada AVR-mikro, joka sopii 68k: n teho, katson tätä ongelmaa väärin? Täytyykö minun muuttaa mallini mukautumaan nykyaikaisiin mikroihin?

En tiedä onko jokin ulkoinen muistilähde tarpeeksi nopea.

[Wikipedian mukaan] (https://en.wikipedia.org/wiki/Sega_Genesis#Technical_specifications) Sega Genesis juoksi taajuudella 7,6 MHz ja sillä oli vain 72 kt RAM-muistia, ei 16 MB, ja 64 kt ylimääräistä videomuistia.
Hmm näyttää siltä, että menin pois huonoista 68 k: n teknisistä tiedoista.
Käytä sovellusprosessoria tai FPGA: ta.
Ei tunne sovellusta
AVR: ssä on 16-bittinen muistiosoiteväylä.Se ei periaatteessa pysty käyttämään yli 64 kt: n muistia.Voit * lisätä * sitä ohjelmistohakkeilla, kuten muistihaku, mutta AVR-arkkitehtuuri ei missään nimessä kykene ** natiivisti ** osoittamaan 8 Mt tavua muistia.
Lisäksi ** puuttuu kokonaan emuloinnin ** yleiskustannus.* SNES: n (joka käyttää ~ 21 MHz: n prosessoria) oikea emulointi vaatii uskollisesti ** 3 + GHz: n tietokoneen ** (katso [täällä] (http://arstechnica.com/gaming/2011/08/accuracy-takes-Power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator / 1 /)).Vähintään ** **, jotta voit jäljitellä Megadrive / genesis, joka käyttää 7,6 MHz: n ja 3,58 MHz: n prosessoria, sinun pitäisi odottaa tarvitsevasi yli 100 MHz: n isäntälaitetta.
Joten olettaen, että haluat reaaliaikaisen (esim. Pelattavan) emuloinnin, mitä etsit, on periaatteessa mahdotonta AVR: llä.Jos olet kunnossa paljon, paljon, hitaammin (100 kertaa hitaammin kuin reaaliajassa), voit todennäköisesti tehdä sen ohjelmistohakemistolla ulkoisella SRAM: lla AVR: llä, mutta epäilen, että yrität tehdä niin.
On * mahdollisuuksia ([dynaaminen uudelleenkokoelma] (https://en.wikipedia.org/wiki/Dynamic_recompilation) tulee mieleen), jotka voivat auttaa suorituskykyongelmissa, mutta ne kaikki ovat todella, todella monimutkaisia, eikä se oleKuulostaa siltä, että haluat viettää suurimman osan projektistasi mukautetun transpilerin käyttöönotossa (ja oikean optimoivan kääntäjän toteuttaminen AVR: llä on * myös * todennäköisesti kohtuuttoman hidasta), joten olet kiinni yllä olevasta.
Suoraan sanottuna, sinun on todella kirjoitettava emulaattori ensin, mieluiten kannettavaan C: hen..Suoraan sanottuna luulen, ettet ymmärrä, kuinka hämmästyttävän oikeat, uskolliset emulaattorit ovat mukana.Jopa yksinkertaisten vanhempien konsolien mallintaminen ja jäljitteleminen on todella, todella ** vaikeaa, koska yksikään niistä ei ole täysin digitaalinen, niillä kaikilla on paljon analogisia omituisuuksia.
Esimerkiksi mitä tarkoitan sanoessani "hidas" ulkoiselle, ohjelmistohakuiselle muistille, [täällä] (http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit) on kaveri, joka kirjoitti x86-emulaattorin AVR: lle ulkoisella SIMM-muistilla.Emuloitu suorittimen nopeus on noin ** 6,5 KILOhertz ** ((ylikellotettu) 24 Megahertzin kellokello), ja käynnistyminen kestää vain 2 tuntia vain yksinkertaisella bash-kehotteella.
@ConnorWolf Olen samaa mieltä useimpien havaintojesi kanssa.Yritin ehdottaa 700 MHz: n vadelma Pi: n käyttöä (joka mielestäni olisi toiminut ihmeellisesti), mutta OP vaatii AVR: n käyttöä.Löysin 32-bittisen AVR: n, joka käy 84 MHz: ssä ja joka saattaa * vain * tehdä sen, jos hän kirjoittaa emulaattorin suolen kokoonpanokielellä ja vetää kaikki pysäkit.(Ei ole epätavallista, että emulaattorit vaativat vain 10 kertaa nopeammat suorittimet.) Hänen on emuloitava myös kaikki muut Genesiksen laitteistot.Toivottavasti hänellä on prosessorin kaaviot ja muistikartta.
@ConnorWolf Huomaa: Dynaamisen uudelleenkääntämisen toteuttaminen AVR: llä on käytännössä mahdotonta, koska et voi suorittaa koodia datamuistista.(Voit tallentaa ohjelmamuistiin, mutta se on hidasta ja syö salamasykliä!)
@ConnorWolf: Dmitry Grinbergin ARM-emulaattori AVR: lle, johon linkitit, on hämmästyttävä ja merkityksellinen.Se jäljittelee ARM-prosessoria Intel PXA255.Onko kukaan kirjoittanut x86-emulaattoria AVR: lle?
Vau nämä ovat hienoja kohtia.Voi olla parempi löytää tapa levittää romeja avr: ksi ja välttää käännösvaihetta isäntäsirulla.Ehkä tämä on paremmin toteutettavissa, jos vietän osan raskaasta nostosta fpg: hen?Tämän suorituskykyvaaste on itse asiassa se, mikä houkutteli minua avr: iin, joka on aseistettu.
@davidcary - Hups, se on ARM, ei x86.Derp.Hyvä pointti.
@duskwuff - En edes ajatellut koodien / tietojen erottamista, olet täysin oikeassa.
@tcrosley - Väitän, että AVR32-prosessorit eivät todellakaan ole "AVR: itä", koska ne eivät enää käytä AVR-prosessorin ydintä.Se on vain brändäystä, todella.Enimmäkseen yritin osoittaa, että AVR-prosessorin ytimen rajoitus tekee tämän projektin periaatteessa mahdottomaksi.
@ConnorWolf Ymmärrän, että Atmel kutsuu heitä AVR32: ksi, ei pelkästään AVR: ksi.Luulen, että se on sama asia Microchipin kanssa, onko PIC32 edelleen PIC?(Mielessäni kyllä, mutta se on vain mielipiteeni.)
@tcrosley, onko se edelleen mahdotonta AVR32: lla?
@baordog AVR32: n, kuten sen, johon on liitetty vastauksessani huomautettu 8 Mt ulkoista RAM-muistia, pitäisi toimia hyvin ja todennäköisesti olla riittävän nopea käsittelemään myös videota.Pidän vain Raspberry Pi: stä, koska siinä on laitteisto laitteella komposiitti- ja HDMI-videoiden ja -äänen tekemiseen.Kummassakin tapauksessa AVR32: n ja ARM: n 32-bittiset rekisterit sopivat paremmin 68000: n 32-bittisiin rekistereihin ja välttävät kaikkien suorittimiin liittyvien toimintojen suorittamista neljässä 8-bittisessä toiminnossa yhden 32-bittisen toiminnon sijaan.bittioperaatio.
@baordog - On olemassa AVR32-mikrokontrollereita, jotka ovat riittävän suuria linuxin suorittamiseen, MMU: lla ja kaikella.Se ei myöskään ole AVR millään muulla tavalla kuin markkinoinnin nimeäminen.AVR32-osat ovat pohjimmiltaan vain Atmelin valmistamia MIPS-MCU: ita.
@ConnorWolf - Eikö ole enää kiehtovaa Harvardin arkkitehtuuria?Näen mihin olet menossa tämän kanssa.
@baordog - mielestäni kysymys on enemmän "Miksi olet niin asetettu AVR: lle"?Jos se johtuu siitä, että pidät AVR-suorittimesta, et ole periaatteessa vaihtoehtoja haluamallesi.Jos haluat vain AVR-nimen, AVR32 on todennäköisesti OK mitä haluat, olettaen, että menet ison, tehokkaan nimen kanssa.
Kuusi vastused:
tcrosley
2015-09-29 03:40:09 UTC
view on stackexchange narkive permalink

Vaikka Motorola 68000 ja Sega Genesis ovat melko vanhoja (1980-luvun alku), et aio löytää matalan luokan (ts. 8-bittistä) AVR: ää, joka voi jäljitellä koko pelikonetta.

Sega Genesis juoksi taajuudella 7,61 MHz ja sillä oli 72 kt RAM-muistia (plus 64 kt ylimääräistä videomuistia). Peliohjelmat kuitenkin asuivat ROM-levyllä, joten tarvitset lisää RAM-muistia niiden pitämiseen (ellet aio pystyä kytkemään alkuperäisiä kasetteja jotenkin). Suurin osa pelikaseteista oli alle 4 Mt, mutta on ainakin yksi peli (Pier Solar, julkaistu vuonna 2010), jossa on 8 Mt: n ROM.

Lisäksi järjestelmässä on varmasti oltava järjestelmän ROM, joka toimi jonkinlaisena johtajana ja olisi myös tarjonnut yhteisen I / O-kirjaston patruunoille (en löydä mitään viitteitä siitä, kuinka suuri tämä oli). Sinun on löydettävä ROM-levyt (tai ROM-kuvat) heille ja kopioitava ne myös RAM-muistiin (tai lisättävä osa ROM-järjestelmästäsi).

IMO, jota haluat käyttää 32-bittinen mikrokontrolleri. Jos aiot käyttää alkuperäisiä kasetteja ja ohjelman ROM-levyä etkä tarvitse Mt: n RAM-muistia, voit käyttää useimpia 32-bittisiä mikro-ohjaimia, joissa on tarpeeksi tilaa emulaattorillesi. Jos aiot ladata kasetit ja järjestelmän ROM-kuvan RAM-muistiin, tarvitset vähintään 8 Mt RAM-muistia varten mikro-ohjainta, jolla on ulkoinen muistiväylä (et voi saada 8 Mt sama siru kuin mikrokontrolleri).

Koska haluat pitää kiinni AVR: stä, ehdotan prosessoria, kuten AT32UC3A3256, jossa on 256 kt Flashia, 128 KB RAM-muistia , ja se toimii taajuudella 84 MHz. Gotcha on, että se on 144-nastainen pinta-asennettava laite, jota on vaikea juottaa.

On kuitenkin olemassa arviointipakkaus tälle prosessorille Element 14: ltä vain 31,25 dollaria. Joten sinun ei tarvitse huolehtia juottamisesta. Lisäksi aluksella on 8 Mt ulkoista RAM-muistia, joten voit ladata kasetin RAM-muistiin.

enter image description here

Pelkästään ennätykseksi , mielestäni kannattaa silti harkita Raspberry Pi -taajuutta, joka toimii 700 MHz: n taajuudella ja 512 Mt RAM-muistia hieman vähemmän kuin kehityskortin kustannukset edellä. Tällä nopeudella ajettaessa sinulla ei ole ongelmia 68000-koodin jäljittelemisessä ja I / O: n suorittamisessa oikealla nopeudella.

Olitpa sitten AVR- tai Raspberry Pi -reitti, 68000: n lisäksi Sega Genesis mukana myös Zilog Z80 ja useita erikoiskäyttöisiä siruja, mukaan lukien Yamaha YM2612 ja Texas Instruments SN76489A. Z80: ta käytettiin äänen hallintaan ja yhteensopivuus taaksepäin aiemman Sega Master -järjestelmän kanssa. Yamaha-siru oli FM-äänisyntetisaattori ja TI-siru oli ohjelmoitava äänigeneraattori (tällä koneella oli paljon äänivaihtoehtoja). Siellä oli myös virtuaalinäyttöprosessori (VDP). Voit todennäköisesti ohittaa äänen (mikä tarkoittaa, että sinun ei tarvitse huolehtia Z80: sta tai Yamaha- tai TI-siruista), mutta sinun on jäljiteltävä grafiikkalaitteita.

Pari resurssia:

EASy68K - 68000: n toimittaja / koostaja / simulaattori. Avoin lähdekoodi, joten sinun pitäisi pystyä kaivamaan 68K-simulointikoodi

Cyclone 68000 - emulaattori 68000 mikroprosessorille, kirjoitettu ARM 32-bittiseen kokoonpanoon. Hyödyllinen vain, jos päätät käyttää Raspberry Pi

Lopuksi, jos et ole vielä perehtynyt 68000-ohjeisiin, suunnittele viettää viikkoja (tai enemmän) asiantuntijaksi tulemiseen. Suuri osa virheenkorjauksesta jää emulaattoritasolle yrittäen selvittää, miksi osa 68000 koodia pelikasetissa ei toimi oikein. (Tämä tarkoittaa, että luultavasti haluat pystyä määrittämään virtuaalisen katkaisupisteen kasettikoodiin.) Tarvitset myös purkimen, joten sinun ei tarvitse käsitellä konekoodia; tässä on lähde yhdelle.

Harkitsin sitä, mutta haluan rajoittaa itseni keskimääräiseen arvoon.
@baordog Olen päivittänyt vastaukseni kahdella ehdotetulla AVR-sirulla.
Huomaa, että mainitsemasi kaksi prosessoria ovat molemmat AVR32-osia.Nämä eroavat melkein kokonaan OP: n tuntemista AVR-arkkitehtuuriosista, ja molemmat ovat Atmelin valmistamia.
@duskwuff Hän ei tule toimeen millään vähemmän tehokkaalla kuin nämä, ja AVR-prosessorit valmistaa Atmel.
@baordog muutti vastaustani uudelleen - löysin 32-bittisellä AVR: llä varustetun kehityskortin, joka sisältää 8 Mt ulkoista RAM-muistia hintaan 31 dollaria.
duskwuff -inactive-
2015-09-29 03:43:45 UTC
view on stackexchange narkive permalink

Ei tapahdu.

ATmega-linjan suurin mikrokontrolleri, joka tukee ulkoista muistia, on ATmega1284, mutta vain tällä on 8 kt sisäistä SRAM-muistia ja se voi käsitellä jopa 64 kt. ulkoinen muisti. Tämä ei riitä jäljittelemään Genesistä, jolla oli 72 kt RAM ja vielä 64 kt videomuistia. Saattaa olla mahdollista toteuttaa lisämuistin käyttö pankkikytkimellä, mutta tämä tekisi muistista pääsyn AVR: ltä erittäin kalliiksi.

ATmega-linjassa on joitain osia, joissa on enemmän sisäistä SRAM-muistia, kuten ATmega1284 (16 kt), mutta nämä eivät tue ollenkaan ulkoista muistia. Pitkä tarina, lyhyt, yli 64 kt: n RAM-muistin jakaminen ATmegasta on melko vaikeaa.

(En ole varma, mistä sait 16 Mt: n. 68000: lla ei ole sisäistä muistia ollenkaan rekisterien lisäksi; muistin määrä 68000 järjestelmässä voi vaihdella dramaattisesti.)

Lisäksi Genesiksen 68000 keskusyksikkö toimii taajuudella 7,6 MHz. Tämän jäljitteleminen 16 MHz: n AVR: llä ei ole mahdollista - vaikka AVR: n kellotaajuus on tosin hieman korkeampi, 68000 on 32-bittinen CPU, joten yhden sen ohjeiden jäljitteleminen vaatii usein paljon enemmän kuin yhden käskyn AVR. (Jopa yksinkertainen lisäys vaatii todennäköisesti muutamia kymmeniä ohjeita.)

Jos haluat jäljitellä Genesistä, suosittelen, että katsot sen sijaan ARM-mikrokontrollereita.

Pari pientä nappulaa: - 68000 vie vähintään 4 kelloa tehdäksesi mitään (ja useimmat ohjeet vievät vähintään 8 kelloa), joten 16 MHz: n taajuudella toimiva AVR on ~ 9 kertaa nopeampi (ei silti tarpeeksi nopea jäljittelemään 7,16 MHz: n 68000tosiaikaisesti).Suurin ATmega on myös 1284 - jolla on 16k RAM, 128K ROM ja toimii 20MHz.
@BruceAbbott Kuten vastauksessani todettiin, AVR voi toimia vain yhdellä 8-bittisellä rekisterillä (tai joskus parilla) kerralla, mikä räjäyttää käskyjen määrän melko vakavasti - puhumattakaan käskykuormasta, dekoodauksesta jne. ATmega1284: llä on hiemanenemmän SRAM, mutta ei tue ulkoista muistia, joten siitä ei ole hyötyä täällä.Päivitin vastauksen vastaamaan tätä kriteeriä.
Voisiko Parallax-mikro-ohjain vetää tällaisen tehtävän?Se on 32-bittinen, siinä voi olla hieman enemmän RAM-muistia ja ne ovat paljon nopeampi!Ne ovat melko ok myös VGA-ulostulolle.
@IsmaelMiguel Ei. Silti läheskään tarpeeksi RAM-muistia (32 kt, ja koodi syö siihen), ja outo potkuriarkkitehtuuri ei sovi hyvin emulointiin.
@duskwuff Se on järkevää.Olisi mielenkiintoista nähdä jotain voimakasta käynnissä.Entä käyttää potkuria lähtöön ja lähtöön JA Arduinoa käsittelyyn?
@IsmaelMiguel ei auta.AVR on edelleen liian hidas, eikä sillä ole tarpeeksi muistia 68000: n jäljittelemiseksi, eikä potkurilla ole tarpeeksi muistia videopiirin jäljittelemiseksi.
Se on sääli.Se olisi silti todella mielenkiintoista.
Adam Davis
2015-09-29 17:54:08 UTC
view on stackexchange narkive permalink

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.

enter image description here

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.

Luuletko, että video- / ääniprosessoreita on helpompi jäljitellä fpga: lla?
Mielestäni emulaattorin kirjoittamisen haasteet käsittelevät 68000 ohjetta, kuten: ADD.L (A0) +, D3.Nyt ATxmega128A1U: lla on samanlainen osoitemuoto käyttämällä X-, Y- tai Z-rekistereitä.Ne ovat tietysti 16-bittisiä, mutta oletettavasti Sega käytti vain 72 kt RAM-muistia, joten se saattaa toimia, riippuen siitä, mihin näitä ylimääräisiä 8 kt käytetään.Ongelma johtuu siitä, että AVR: llä on kolme osoiterekisteriä ja 68000: lla on kahdeksan.Yhtäkkiä emuloitu rekisteri A0 ei lataudu X: ään, Y: hen tai Z: hen. Joten asioita on sekoitettava.Yksi osoiterekisteri on todennäköisesti omistettava SP: lle.
FPGA-lähestymistapa on onnistunut: https://code.google.com/p/fpgagen/
@baordog En tiedä.Ääniprosessori on Z80-prosessori.En ole katsonut videoprosessoria.Sinun pitäisi tehdä lisää tutkimusta selvittääksesi, mitä asia liittyy - videoprosessorilla on oma muisti, mutta se myös synnyttää monimutkaisia PAL- tai NTSC-signaaleja.Jos integroit graafisen LCD-näytön, saatat huomata, että suuri osa videoprosessorin monimutkaisuudesta häviää - mutta en ole jälleen varma kuinka monimutkainen se on.Olen varma, että voit tehdä sen FPGA: ssa, mutta et ehkä tarvitse, jos haluat mikrokontrollereita.
Jos luen [SuperH-tuotevalitsimen] (http://www.renesas.com/products/mpumcu/superh/product_selector.jsp) oikein, eniten RAM-muistia sisältävä SuperH-prosessori on Renesas SuperH R5S72680W266FP, jossa on lähes 3 MtRAM-muistia, mikä on melko hämmästyttävää.Onko olemassa prosessoria, jossa "on 16 Mt tavua SRAM-muistia"?En näe sitä.Jokainen osa tästä vastauksesta näyttää hyvältä.
@davidcary löysi sen Digikeystä, mutta ei näe sitä myöskään Renesasin verkkosivustolta.R8J73540BGZV - http://www.digikey.com/product-search/fi?KeyWords=%20R8J73540BGZV&WT.z_header=search_go
pjc50
2015-09-29 17:34:34 UTC
view on stackexchange narkive permalink

Yhdessäkään muusta vastauksesta ei ole mainittu, että voisit hankkia pelimerkin, joka suorittaa m86k-käskysarjan natiivisti: Coldfire -sarjan. Useat ohjeet on poistettu. jos niitä ei käytetä liian usein, ne voidaan jäljitellä ansaitsemalla "virheellisen käskyn" keskeytys.

Sinun on silti jäljiteltävä Yamaha YM7101 -videoprosessoria ja Yamaha YM2612-ääniprosessoria. Voit joko yrittää rakentaa ohjelmistomulaatioita paljon nopeammalle DSP: lle tai rakentaa niistä FPGA-version. Perustuu mahdollisesti Megadriven nykyisiin FPGA-emulaatioihin.

davidcary
2015-09-29 19:50:14 UTC
view on stackexchange narkive permalink

Onko mikrokontrolleria, jossa on 16 Mt RAM-muistia?

Olen melko varma, ettei ole prosessoreita, joissa olisi 16 Mt sirun RAM-muistia.

Joissakin 68000: n kuvauksissa mainittu "16 Mt RAM" on 24-bittisen ulkoisen osoiteväylän kohdalla, joka teoriassa voisi käsitellä enintään 2 ^ 24 tavua = 16 Mt ulkoista RAM-muistia. Ymmärrän, että valtaosa 68000-järjestelmiä käyttävistä järjestelmistä yhdistää alle 16 Mt ulkoista RAM-muistia.

Erityisesti Sega Mega -asemalla (alias Sega Genesis) on 72 kt RAM-muistia ja 64 kt videomuistia. em> ulkoinen RAM. Sen Motorola 68000: lla tai Zilog Z80: lla ei ole piirissä olevaa RAM-muistia tai välimuistia.

Ehdotan sinua luo toinen riippumaton kysymys otsikolla, joka kuvaa mitä todella haluat tietää, mutta jätä tämä kysymys ensisijaiseksi kysymykseksi mikrokontrollerin RAM-muistista auttamaan monia, monia ihmisiä, jotka ovat harhaanjohtavia "16 Mt" RAM "tarkoittaa teoreettista maksimaalista ulkoista DRAM-muistia joissakin prosessoreissa e "2,5 kt RAM" tarkoittaa todellista fyysistä piirissä olevaa SRAM-muistia, joka sisältyy muihin prosessoreihin.

(*) Joillakin vuoden 2006 jälkeen tuotetuilla erittäin huippuluokan prosessoreilla on vähintään 16 Mt sirun välimuistia, mutta nämä prosessorit vaativat vielä enemmän ulkoista RAM-muistia - joten jos tarvitset todella 16 Mt RAM-muistia, tarvitset 16 Mt ulkoista RAM-muistia tavalla tai toisella.

TraceKira
2015-10-29 02:56:34 UTC
view on stackexchange narkive permalink

Voit käyttää CORTEX-M4: ää STMF432-kortilta ... erittäin tehokas, paljon mega RAM-muistia ja oheislaitteita

enter image description here

Mistä lähtien 256 * kt * RAM-muistia on "paljon mega ramia"?
Ja joka tapauksessa, OP oli melko tarkka, että he halusivat käyttää AVR-mikrokontrolleria, ei ARM: ää.


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...