Ці ёсць Мікракантролер з 16Мб АЗП?

Вось мая сітуацыя:

У якасці асабістага праекта, я шукаю, каб напісаць эмулятар для Sega Megadrive (Sega Genesis), які працуе на AVR. Так што я шукаў мікракантролер, які мае падобныя характарыстыкі з Motorola 68k, які пастаўляецца разам з MegaDrive. Тым не менш, я заўважыў, што спецыфікацыі для 68k у параўнанні з большасцю аматарскіх тысячнымі. Я выбіраю AVR у адрозненне ад ARM, таму што мне падабаецца архітэктура, і думаў, што гэта будзе добры выклік.

M68K:
32-bit CPU
16-bit data bus
Up to 20 MHz
16 MB RAM
No I/O ports

Вось спецыфікацыі для Arduino з Леанарда:

Input Voltage (recommended) 7-12V
Input Voltage (limits)  6-20V
Digital I/O Pins    20
PWM Channels    7
Analog Input Channels   12
DC Current per I/O Pin  40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory    32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM    2.5 KB (ATmega32u4)
EEPROM  1 KB (ATmega32u4)
Clock Speed 16 MHz
Length  68.6 mm
Width   53.3 mm
Weight  20g

Гэта здаецца даволі тыпова для ніжняга канца сучасных тысячных. Я ніколі не бачыў баран атрымаць шмат у MBS.

Цяпер, я ўпэўнены, што сучасная SRAM ня амаль гэтак жа, як незалежна ад 68k было, але гэта магчыма для мяне, каб атрымаць AVR мікра, што адпавядае магутнасці ў 68k, я гляджу на гэтую праблему не так? Ці павінен я змяніць свой дызайн для размяшчэння сучаснага Micros?

Я не ведаю, калі нейкі знешні крыніца памяці будзе дастаткова хутка.

7
@ConnorWolf: ARM эмулятар Дзмітрыя Грынберг для AVR вы звязаны з дзіўная і актуальным. Ён эмулюе Intel PXA255, працэсар ARM. Хто-небудзь напісаў эмулятар x86 для AVR з?
дададзена аўтар Jeremy Ruten, крыніца
Згодна з Вікіпедыяй , то Сегал Genesis працавалі на 7,6 Мгц і меў толькі 72KB АЗП, ня 16 Мб, плюс 64KB дадатковай відэапамяці.
дададзена аўтар Matt McMinn, крыніца
@baordog An AVR32, напрыклад, як адзін у спалучэнні з 8 МБ вонкавай памяці, што я паказаў у маёй абароне павінен працаваць нармальна, і, верагодна, будзе дастаткова хутка апрацоўваць відэа таксама. Проста я люблю Raspberry Pi, паколькі ён мае абсталяванне на борце, каб зрабіць кампазітны і HDMI відэа і гуку. У любым выпадку, 32-бітныя рэгістры на AVR32 і ARM з'яўляюцца лепш падыходзяць для 32-бітных рэгістраў 68000, і дазволяць пазбегнуць неабходнасці рабіць усё функцыі працэсара, звязанымі ў чатырох 8-бітавых аперацыях замест аднаго 32- бітныя аперацыі.
дададзена аўтар Matt McMinn, крыніца
@ConnorWolf Я згодны з большасцю вашых назіранняў. Я спрабаваў прапанаваць выкарыстоўваць 700 МГц Raspberry Pi (які я думаю, працаваў бы на здзіўленне), але OP настойвае на выкарыстанні AVR. Я знайшоў 32-бітны AVR працуе на 84 Мгц, што можа <�я> толькі </я> гэта зрабіць, калі ён піша начынне эмулятар на мове асэмблера і выцягвае ўсе спыняецца. (Гэта не з'яўляецца незвычайным для эмулятары патрабуецца толькі ў 10 разоў хутчэй працэсар) Ён будзе мець эмуляваць ўсе іншае абсталяванне на генезіс, а таксама. Спадзяюся, што ў яго ёсць схемы і карты памяці для працэсара.
дададзена аўтар Matt McMinn, крыніца
@ConnorWolf Я разумею, Atmel AVR32 называе іх, а не проста Арн. Я думаю, яго тое ж самае з мікрасхемай, з'яўляецца PIC32 яшчэ PIC? (На мой погляд, так, але гэта толькі маё меркаванне.)
дададзена аўтар Matt McMinn, крыніца
@davidcary - Упс, гэта ARM, а не x86. Derp. Добрае пытанне.
дададзена аўтар Connor Wolf, крыніца
@baordog - Я думаю, што гэтае пытанне з'яўляецца больш «Чаму вы так ўсталяваць на AVR»? Калі гэта таму, што вы, як AVR CPU не існуе ў прынцыпе ніякіх варыянтаў для таго, што вы хочаце. Калі вы проста хочаце назву AVR, то AVR32, верагодна, будзе добра для таго, што вы хочаце, калі вы ідзяце з вялікім, магутным.
дададзена аўтар Connor Wolf, крыніца
@baordog - Ёсць AVR32 мікракантролеры, якія з'яўляюцца дастаткова вялікімі, каб запусціць Linux, з MMU і ўсё. Гэта таксама ня AVR якім-небудзь чынам іншых затым маркетынг імёнаў. У AVR32 часткі ў асноўным толькі MIPS мікракантролеры зробленыя Atmel.
дададзена аўтар Connor Wolf, крыніца
@tcrosley - я б сцвярджаць, што AVR32 працэсары на самай справе не «Арн», у тым, што яны больш не выкарыстоўваюць ядро ​​AVR працэсар. Гэта проста брэндынг, на самай справе. У асноўным, што я спрабаваў даказаць, што ядро ​​працэсара абмежаванне AVR робіць гэты праект у прынцыпе немагчыма.
дададзена аўтар Connor Wolf, крыніца
@duskwuff - Я нават не думаю, што пытанні падзелу кода/дадзеных, вы маеце рацыю.
дададзена аўтар Connor Wolf, крыніца
Для прыкладу таго, што я маю на ўвазе, калі я кажу «павольным» для знешняй, праграмна-выгружае памяці, тут хлопец, які напісаў эмулятар x86 для AVR, са знешнім SIMM памяці. Эмуляваць працэсар працуе прыкладна пры <�б> 6,5 кілогерц (с) (разгонам базавых гадзінамі 24 мегагерц), і ён займае 2 гадзіны, каб загрузіць толькі просты Баш-запрашэнне.
дададзена аўтар Connor Wolf, крыніца
Шчыра кажучы, вы сапраўды павінны напісаць эмулятар першае, у ідэале ў партатыўным С Тады </я> глядзець на перанос яе на ARM, і <�я>, то </я> гляджу на праектаванне платы для ARM MCU вашай выбар, калі ў вас ёсць некаторыя лічбы для патрабаванай прадукцыйнасці. Шчыра кажучы, я думаю, вы не разумееце, як дзіўна ўдзел уласна, верныя эмулятары. Правільна мадэлявання і эмуляцыі нават простых старых кансоляў сапраўды, <�б> сапраўды цяжка, таму што ні адзін з іх не з'яўляюцца цалкам лічбавымі, усе яны маюць шмат аналагавых дзівацтвамі.
дададзена аўтар Connor Wolf, крыніца
Там з'яўляецца магчымасці ( дынамічная перакампіляваннем прыходзіць на розум), якія могуць дапамагчы з праблемамі прадукцыйнасці, але ўсе яны на самой справе, вельмі складана, і гэта не гучыць, як вы хочаце правесці большую частку вашага праекта ўкаранення карыстацкага transpiler (і адкрыта рэалізацыі належнага які аптымізуе кампілятар ў AVR з'яўляецца <�я> таксама , верагодна, будзе недазваляльна павольна), так што вы затрымаліся вышэй.
дададзена аўтар Connor Wolf, крыніца
Такім чынам, у прынцыпе, калі вы хочаце ў рэальным часе (напрыклад, прайграваць) эмуляцыі, тое, што вы шукаеце зрабіць, гэта прынцыпова немагчыма на AVR. Калі ўсё ў парадку з шмат, значна больш павольна (100х павольней рэальнага часу), вы, верагодна, маглі б зрабіць гэта з праграмным забеспячэннем з падпампоўкай знешняй SRAM на якасці AVR, але я сумняваюся, што гэта тое, што вы спрабуеце зрабіць.
дададзена аўтар Connor Wolf, крыніца
Акрамя таго, <�б> вы цалкам отсутствуете накладныя выдаткі эмуляцыі . <�Я> Правільна </я> эмуляцыя SNES (які выкарыстоўвае Мгц CPU ~ 21) дакладна патрабуе кампутар 3+ Ггц (гл тут ). Пры <�б> мінімум , каб эмуляваць МегаДрайв/генезіс, які выкарыстоўвае 7,6 Мгц і 3,58 Мгц працэсар, Вам варта чакаць, патрабаваць прылады хаста ў 100+ Мгц.
дададзена аўтар Connor Wolf, крыніца
AVR мае 16-бітны адрас шыну памяці. Гэта прынцыпова не ў стане доступу да больш за 64 Кбайт памяці. Вы <�я> можна </я> павялічыць што праграмнае забеспячэнне пісак як пэйджынг памяці, але няма ніякага спосабу, архітэктура AVR здольны <�б> натыўнымі адрасавання 8 Мбайт аператыўнай памяці, перыяд.
дададзена аўтар Connor Wolf, крыніца
Выкарыстанне прыкладанняў працэсар або FPGA.
дададзена аўтар AgeOfTheGeek, крыніца
@ConnorWolf Варта адзначыць: Гэта практычна немагчыма рэалізаваць дынамічную перакампіляванне на AVR, так як вы не можаце запусціць код з памяці дадзеных. (Вы можаце захоўваць у памяці праграмы, але гэта павольна і есць цыклаў ўспышкі!)
дададзена аўтар BrainSlugs83, крыніца
@ConnorWolf - Так не больш займальны Harvard архітэктуры матэрыялу? Я бачу, дзе вы збіраецеся з гэтым.
дададзена аўтар Steven Wood, крыніца
@tcrosley гэта яшчэ немагчыма на AVR32?
дададзена аўтар Steven Wood, крыніца
Wow гэта вялікія пункты. Гэта магло б быць лепш, каб знайсці спосаб transpile ў перакампіляваць Avr і пазбегнуць кроку перакладу на хасце-чыпе. Магчыма, гэта больш выканальна, калі я экспартаваць частка цяжкага ўздыму на Пліса? Прадукцыйнасць Праблема на самай справе гэта тое, што прыцягнула мяне да Avr, як прастаўленне ўзбройвацца.
дададзена аўтар Steven Wood, крыніца
Не знаёмыя з платай прыкладанняў
дададзена аўтар Steven Wood, крыніца
Мда падобна, што я збіраўся пакінуць дрэнныя 68K спецыфікацыі.
дададзена аўтар Steven Wood, крыніца

6 адказы

Нават нягледзячы на ​​тое, Motorola 68000 і Sega Genesis даволі старыя (у пачатку 1980-х гадоў), вы не збіраецеся знайсці нізы (гэта значыць 8-бітны) AVR, якія могуць эмуляваць ўвесь гульнявой аўтамат.

Паходжанне Sega працавалі на 7,61 Мгц і меў 72KB АЗП (плюс дадатковы 64KB відэа RAM). Аднак гульнявыя праграмы пражывалі ў ПЗУ, так што вам спатрэбіцца дадатковае АЗП, каб трымаць іх (калі вы не збіраецеся быць у стане ўключыць у арыгінальных картрыджах як-то). Большасць гульнявых картрыджаў былі пад 4 Мб, але ёсць па меншай меры адна гульня (Pier Solar, выпушчаны ў 2010 годзе), які мае 8 МБ ПЗУ.

Акрамя таго, сістэма, безумоўна, павінна быць уключана ў сістэме ROM, які выступаў у якасці свайго роду выканаўчай улады, а таксама забяспечыў бы бібліятэку агульнага ўводу/выснова для картрыджаў (я не магу знайсці ніякіх спасылак на тое, як многа гэта было). Вы збіраецеся павінны знайсці ROM (ці малюнкі ROM) для тых, і скапіяваць іх у памяць і (або дадаць раздзел дыска да сістэмы).

IMO вы збіраецеся хочаце выкарыстоўваць 32-разрадны мікракантролер. Калі вы збіраецеся выкарыстоўваць арыгінальныя картрыджы, а таксама праграму ПЗУ, і не маюць патрэбы ў МБ у аператыўнай памяці, чым вы можаце выкарыстоўваць большасць любы 32-бітны мікракантролер, які мае досыць месцы для эмулятара. Калі вы збіраецеся загрузіць картрыджы і лад сістэмнага дыска ў аператыўную памяць, то для таго, каб атрымаць 8 МБ або больш аператыўнай памяці, вы будзеце мець патрэбу ў мікракантролеры, які мае знешнюю шыну памяці (вы не можаце атрымаць 8 МБ на той жа чып, як мікракантролер).

Улічваючы тое, што вы хочаце прытрымлівацца AVR, я прапаную працэсар накшталт AT32UC3A3256 </а >, які мае 256 КБ флэш, 128 КБ аператыўнай памяці, і працуе на частаце 84 Мгц. Гоча з'яўляецца тое, што гэта 144 кантактнай паверхню прылады, якое будзе цяжка літаваць мантаваць.

However, there is an

evaluation kit for this processor from Element 14 for only $31.25. So you don't have to worry about soldering. Plus, the board has 8 MB of external RAM, so you can load a cartridge into RAM.

enter image description here

Just for the record, I still think you should consider the Raspberry Pi, running at 700 MHz with 512 MB of RAM for slightly less than the cost of development board above. Running at that speed, you would have no issues with emulating the 68000 code and performing I/O at the correct speed.

Калі вы ідзяце на AVR або маршрут Raspberry Pi, у дадатак да 68000 Сегал Genesis таксама уключаў Zilog Z80 і некалькі фішак спецыяльнага прызначэння, у тым ліку Yamaha YM2612 і Texas Instruments SN76489A. Z80 быў выкарыстаны для кіравання гукам, а таксама забяспечыць зваротную сумяшчальнасць з раней Sega Master System. Чып Yamaha быў FM сінтэзатар гуку і чып TI быў гукавы генератар Праграмуемы (гэтая машына мела шмат гукавых варыянтаў). Быў таксама Virtual Display Processor (VDP). Вы, верагодна, можаце прапусціць гук (што азначае, што вам не трэба турбавацца аб Z80 або чыпах Yamaha або TI), але вам прыйдзецца эмуляваць графічнае абсталяванне.

Некалькі рэсурсаў:

EASy68K -- Editor/Assembler/Simulator for the 68000. Open source so you should be able to dig out the 68K simulation code

Cyclone 68000 -- emulator for the 68000 microprocessor, written in ARM 32-bit assembly. Only useful if you decide to use the Raspberry Pi

Нарэшце, калі вы яшчэ не знаёмыя з наборам 68000 інструкцый, план па расходах тыдня (або больш), каб стаць экспертам. Шмат вашай адладкі будзе ўніз на ўзроўні эмулятара, спрабуючы высветліць, чаму частка 68000 кода ў гульнявым картрыджы не выконваецца належным чынам. (Што азначае, што вы, верагодна, хочаце, каб мець магчымасць стварыць віртуальны аб'ект кропкі супыну ў кодзе картрыджа.) Вы таксама будзеце мець патрэбу ў дизассемблере, так што вам не прыйдзецца мець справу з машынным кодам; вось для аднаго .

18
дададзена
@baordog Мадыфікаваны мой адказ зноў - я знайшоў савет развіцця з 32-бітным AVR, які ўключае ў сябе 8 МБ вонкавай памяці за $ 31.
дададзена аўтар Matt McMinn, крыніца
@duskwuff Ён не збіраецца быць у стане прайсці з чым менш магутным, чым гэтыя, і працэсары AVR зробленыя Atmel.
дададзена аўтар Matt McMinn, крыніца
@baordog Я абнавіў свой адказ з два прапанаваў AVR чыпаў.
дададзена аўтар Matt McMinn, крыніца
Звярніце ўвагу, што гэтыя два працэсара вы згадалі абодва AVR32 часткі. Яны амаль цалкам адрозніваецца ад AVR архітэктуры частак ФПА знакам, за што яны абодва зробленыя Atmel.
дададзена аўтар BrainSlugs83, крыніца
Я лічыў, што, але я хачу, каб абмежаваць сябе Арн.
дададзена аўтар Steven Wood, крыніца

Не адбудзецца.

Па велічыні мікракантролер ў лініі ATmega з падтрымкай вонкавай памяці з'яўляецца ATmega1284, але гэта толькі, які мае 8 Кбайт ўнутранай SRAM, і можа адрасаваць да 64 Кбайт вонкавай памяці. Гэта не будзе дастаткова, каб пераймаць Genesis, які меў 72 КБ аператыўнай памяці і яшчэ 64 Кбайт відэапамяці. Можна было б рэалізаваць доступ да дадатковай памяці праз банк-камутацыю, але гэта будзе зрабіць доступ да памяці з AVR вельмі дарагой.

Ёсць некаторыя дэталі ў лініі ATmega з вялікай колькасцю ўнутранай памяці SRAM, накшталт ATmega1284 (16 КБ), але яны не падтрымліваюць знешнюю памяць наогул. Доўгая гісторыя, кароткая, звяртаючыся да больш за 64 КБ аператыўнай памяці ад ATmega даволі складана.

(Я не ведаю, дзе вы атрымалі фігуру 16 МБ з 68000 не мае ўнутраную памяць ва ўсіх, акрамя рэгістраў ;. Аб'ём памяці ў сістэме 68000 можа істотна адрознівацца.)

Акрамя таго, працэсар 68000 у Genesis працуе на частаце 7,6 МГц. Эмуляцыя гэта на AVR 16 Мгц не будзе магчыма - у той час як частата рэсівера, па агульным прызнанні, трохі вышэй, чым 68000 з'яўляецца 32-разрадным працэсарам, так што эмуляцыя адзін з яго інструкцый часта будзе патрабаваць значна больш, чым адна інструкцыя па Арн. (Нават простае даданне, хутчэй за ўсё, спатрэбіцца некалькі дзесяткаў інструкцый.)

Калі вы хочаце пераймаць Genesis, я рэкамендую вам паглядзець, а не на ARM мікракантролерах.

12
дададзена
@IsmaelMiguel Не дапамагае. AVR ўсё яшчэ занадта павольна і не мае дастаткова памяці, каб эмуляваць 68000, і прапелер не мае дастаткова памяці для эмуляцыі відэачып.
дададзена аўтар BrainSlugs83, крыніца
@BruceAbbott Як адзначалася ў маім адказе, AVR можа працаваць толькі на адным 8-разрадным рэгістры (або часам пара) адразу, што раздзімае колькасць каманд даволі моцна - не кажучы ўжо пра інструкцыі нагрузкі, дэкадавання, і г.д. ATmega1284 мае крыху больш за SRAM, але не падтрымлівае знешнюю памяць, так што няма сэнсу тут. Абноўлены мой адказ, каб адлюстраваць гэты крытэрый.
дададзена аўтар BrainSlugs83, крыніца
@IsmaelMiguel No. Яшчэ далёка не дастаткова аператыўнай памяці (32 КБ, і код не есць у гэта), і дзіўная архітэктура Propeller не вельмі добра падыходзіць для эмуляцыі.
дададзена аўтар BrainSlugs83, крыніца
Гэта ганьба. Ён па-ранейшаму будзе вельмі цікава.
дададзена аўтар user62486, крыніца
@duskwuff Гэта мае сэнс. Было б цікава ўбачыць нешта магутнае, якія працуюць на ім. Што аб выкарыстанні прапелера для вытворчасці і выхаду і Arduino для апрацоўкі?
дададзена аўтар user62486, крыніца
Ці будзе Parallax Мікракантролер быць у стане ажыццявіць такую ​​задачу? Гэта 32-біт, можа мець трохі больш аператыўнай памяці, і яны значна хутчэй! Яны дастаткова добра для выхаду VGA, а таксама.
дададзена аўтар user62486, крыніца
Некалькі нязначных nitpicks: - 68000 займае па меншай меры 4 гадзін, каб зрабіць што-небудзь (і большасць каманд бяруць за 8 гадзін або больш) так што AVR працуе на частаце 16 МГц складае ~ 9 разоў хутчэй (ўсё яшчэ не дастаткова хутка, каб эмуляваць 7.16MHz 68000 у у рэальным маштабе часу, хоць). Акрамя таго, вялікая ATmega з'яўляецца 1284 - які мае 16k RAM, 128К ROM, і працуе на частаце 20 Мгц.
дададзена аўтар Bruce Abbott, крыніца

Ці ёсць Мікракантролер з 16Мб АЗП?

Так. Толькі адзін я ведаю, хоць, у сям'і Renesas SuperH, і не ўключае ў сябе ROM - так што вы павінны мець знешнюю выбліск, але яна мае 16MBytes бартавога SRAM.

<�Р> Я шукаю, каб напісаць эмулятар для Sega Megadrive (Sega Genesis), які працуе на AVR.

Там няма 16MByte SRAM microcontrolers ў сямействе Atmel AVR. Ці дзе-небудзь у лінейцы прадуктаў Atmel.

Тым не менш, некалькі прылад у лінейцы Atmel AVR маюць вонкавы інтэрфейс шыны, які дазволіць вам падключыць дадатковую памяць. У прыватнасці, ATxmega128A1U можа падтрымліваць да 16MBytes знешняй SRAM.

<�Р> Такім чынам, я шукаў мікракантролер, які мае падобныя характарыстыкі з Motorola 68k, які пастаўляецца разам з MegaDrive.

...

<�Р> Я ўпэўнены, што сучасная SRAM ня амаль гэтак жа, як незалежна ад 68k было, але гэта магчыма для мяне, каб атрымаць AVR мікра, што адпавядае магутнасці ў 68k, я гляджу на гэтую праблему не так? Мне трэба, каб змяніць свой дызайн, каб прыстасаваць сучасныя Micros ці што?      <�Р> Я не ведаю, калі нейкі знешні крыніца памяці будзе дастаткова хутка.

Ах, вось у чым праблема вы маеце.

68k працэсар (гэта значыць, Motorola 68000) НЕ з'яўляецца мікракантролер і не мае 16MBytes ўнутранага SRAM.

У той час як працэсар 32 біт ўнутраным, з-за абмежаванні прымацаваць яго можна толькі адрасаваць да 16MBytes вонкавай памяці, у тым ліку ўспышкі, SRAM, і любыя прылады, адлюстраванне на памяць.

Вам не патрэбен мікракантролер з 16MBytes ўнутранай SRAM эмуляваць 68k працэсара.

Ці ёсць Atmel AVR 8-разрадны мікракантролер, які можа эмуляваць 68000 працэсар Motorolla?

Я так думаю. ATxmega128A1U мае знешнюю шыну памяці, як вялікі, як шынай 68K працэсара і мае мноства флэш-памяці і аператыўнай памяці, якая дазволіла б запусціць версію мікракода з 68k працэсара.

Ён можа працаваць да 32MHz, і шмат інструкцыяў прыняць адзін цыкл, але нават у горшым выпадку займае 5 цыклаў ва ўнутранай памяці. Вонкавы інтэрфейс павольней, але калі вы выбіраеце хуткую памяць яна ўсё роўна будзе нашмат хутчэй, чым 68k.

68k працэсар не толькі працуе ў 4 разы больш павольна, але хуткія аперацыі яна мае займае па меншай меры 4 такту, і многія прымаюць у 2-4 разы даўжэй, асабліва доступ да памяці.

Так нават з павольным (па сённяшніх мерках) SRAM (скажам, частка 70ns 8MByte за $ 10), вы можаце выкарыстоўваць 0 стан чакання на працэсары 32MHz і запусціць кругі вакол 68k працуе на 7MHz. Напрыклад, простая інструкцыя рух на 68k, які зойме 4 цыкла на 7,61 Мгц займае 525 нс. Аналагічная інструкцыя простага кроку на ATxmega128A1U працуе на 32MHz прымае 31nS. Такім чынам, AVR можа выканаць 16 крокаў да таго часу 68K было зроблена з адным. 68k займае 50 цыклаў для некаторых тыпаў перапыненняў, у той час як AVR пераходзіць на перапыненне ў 3-х цыклаў - таму AVR можа апрацоўваць некалькі перапыненняў у той час яна прымае 68k проста скакаць у адзін.

Я чакаю, што вы можаце запусціць яго цыкл дакладна з дбайным высілкам, калі вы прымаеце некаторыя джиттера, хоць вы маглі б прымусіць яго працаваць ідэальна цыкл быццам бы без дрыгацення, калі вы скурпулёзны. Працэсары AVR выдатна працуюць з невялікім разгонам, так што вы маглі б, верагодна, запусціць яго на 38.35MHz і мець 5 цыклаў AVR за 68k такт.

Гэта не азначае, што гэта будзе лёгка, і можа быць некалькі вельмі складанымі інструкцыямі, якія патрабуюць больш часу на AVR, чым у адваротным выпадку - але нават яны могуць быць улічаныя пры дбайным праектаванні.

Ці магу я пераймаць Sega Genesis з бітным AVR Atmel 8?

Не. Сегал Genesis мае ў сваім сэрцы, у 68k працэсар, але ён таксама мае гукавы працэсар (Z80) і видеопроцессор, што вам спатрэбіцца значна больш рэсурсаў для пераймання. У дыяграме ніжэй, вы знойдзеце 68k працэсар у верхнім левым куце - зьвярніце ўвагу, што гэта адна невялікая частка ўсяго трэба эмуляваць ўсю сістэму Sega Genesis.

enter image description here

Такім чынам, у той час як вы можаце лёгка эмуляваць 68k ядро ​​Sega Genesis, вы не зможаце запускаць гульні, зробленыя для Genesis з толькі адзін AVR мікракантролера. Эмуляцыя 68k толькі на адным чыпе будзе цяжка enough-, нават калі вы спрошчаныя рэчы, якія я сумняваюся, што вы маглі б змясціцца ўсе тры працэсара ў адным чып 32MHz AVR.

Тым не менш, вы, верагодна, можа эмуляваць гэтыя два чыпа з яшчэ двума Арн. Калі вы нацэленыя на больш просты графічны ВК-дысплей, які не патрабуе дзіўна NTSC таймінгі і пакаленні, вы маглі б спрасціць рэчы крыху, і, магчыма, нават паставіць абедзве функцыі на адзін асобны чып.

Гэта велізарны праект, хоць, вядома, не ў выходныя дні праект. Калі вы знаходзіцеся на той стадыі, калі вам зручна толькі з плата развіцця Arduino, то гэта можа быць цікава, каб стварыць просты 68k эмулятар працэсара і падключыць трохі вонкавага ПЗУ і АЗП для доступу да памяці. Arduino ATMega не мае вонкавы інтэрфейс памяці, але вы можаце круціць лініі ўводу/высновы і эмуляваць, што добра. Калі вы атрымліваеце досыць далёка наперад у праекце, дзе вы можаце эмуляваць простыя праграмы 68K, то гэта можа быць варта канаў Arduino, выкарыстоўваючы сераду распрацоўкі Atmel, і лепш AVR чып з вонкавым інтэрфейсам шыны, і вы можаце пачаць чытанне і выкананне картрыджы. Вы маглі б нават быць у стане відэа трубы і гук дадзеных у кампутар і інтэрпрэтаваць іх у апрацоўцы - яна па-ранейшаму будзе занадта павольнай (Мег Arduino толькі 16МГц), але гэта будзе па меншай меры даць вам добрае ўяўленне аб колькасці працы вы павінны зрабіць, каб мець эмуляцыю поўнай хуткасці, і вы можаце пачаць майстраваць з тым, як шмат намаганняў было б пераймаць VDP і гукавыя працэсары.

Пераканайцеся, што эмуляцыя працэдура з'яўляецца партатыўнай, і вы будзеце ў стане пераключыцца на лепшы працэсар досыць лёгка, што вы не засядзеце.

Калі просты Arduino Mega праект ніколі не будзе вельмі далёка, вы не былі выдаткаваныя марна шмат рэсурсаў па гэтым праекце. Калі вы апынецеся даведзены да яго завяршэння, пераходзячы да больш здольным чып Atmel не будзе гэтак пераважнай.

Я кажу, дайце яму паспрабаваць. Некаторыя з таго, што я сказаў, і іншыя сказалі, можа здацца, што гэта непераадольным, але не давайце на вашым шляху. Працягвайце задаваць пытанні кожны раз, калі вы сутыкнецеся з перашкодай, і вы ўбачыце, што большасць інжынераў карыстаюцца выклікам і дадуць вам разуменне і дапамагчы вам трэба далёка ісці па гэтым шляху.

Эмуляцыя шмат задавальнення.

11
дададзена
@baordog я не ведаю. Гукавы працэсар уяўляе сабой працэсар Z80. Я не глядзеў на видеопроцессор. Вы павінны зрабіць некаторыя даследаванні, каб высветліць, што ўдзел - видеопроцессор мае сваю ўласную памяць, але яно спараджала складаны PAL або NTSC сігналаў. Калі вы інтэграваць графічны ВК-дысплей, вы можаце выявіць, што многія складанасці видеопроцессора сыходзіць - але я зноў не ведаю, наколькі складана гэта. Я ўпэўнены, што вы можаце зрабіць гэта ў FPGA, але вы, магчыма, не трэба, калі вы аддаеце перавагу мікракантролеры.
дададзена аўтар Federico Builes, крыніца
@davidcary знайшоў яго на Digikey, але не бачу яго на сайце Renesas небудзь. R8J73540BGZV - digikey.com/product-search/… </а>
дададзена аўтар Federico Builes, крыніца
Калі я правільна чытаў селектар прадукту SuperH , працэсар SuperH з большай аператыўнай памяццю на Renesas SuperH R5S72680W266FP з амаль 3 МБ аператыўнай памяці, што даволі дзіўна. Ці ёсць працэсар, які «мае 16MBytes бартавога SRAM»? Я не бачу яго. Любая іншая частка гэтага адказу выглядае пышна.
дададзена аўтар Jeremy Ruten, крыніца
Я думаю, што праблемы, якія пішуць эмулятар будзе мець справу з 68000 інструкцый, як: ADD.L (A0) +, D3. Цяпер ATxmega128A1U мае аналагічны фармат адрасавання з выкарыстаннем X, Y, Z або рэгістры. Тыя, вядома, з'яўляюцца 16-біт, але як мяркуецца Сегал выкарыстоўваецца толькі 72 КБ аператыўнай памяці, так што можа працаваць, у залежнасці ад таго, што тыя дадатковыя 8 КБ выкарыстоўваюцца. Праблема ўзнікае таму, што AVR мае тры рэгістра адрасы, і 68000 мае восем. Раптам сэмулированный рэгістр A0 не загружаются ў X, Y або Z. Такім чынам, рэчы павінны быць тасуются вакол. Адзін адрасны рэгістр, верагодна, павінны быць прысвечаны ў СП.
дададзена аўтар Matt McMinn, крыніца
FPGA падыход паспяхова зроблена: code.google.com/p/fpgagen
дададзена аўтар jns, крыніца
Як вы думаеце, было б лягчэй пераймаць відэа/гукавыя працэсары з Пліса?
дададзена аўтар Steven Wood, крыніца

Ні адзін з іншых адказаў не згадваў, што вы маглі б проста атрымаць чып, які запускае каманду m86k набору першапачаткова: у Coldfire серыя. Шэраг інструкцый былі выдаленыя; калі яны не занадта часта выкарыстоўваюцца яны маглі эмуляваць ўлоўлівання «недапушчальную каманду» перапыніць.

Тым не менш, вы ўсё роўна павінны пераймаць відэа працэсар Yamaha YM7101 і гукавы працэсар Yamaha YM2612. Вы можаце альбо паспрабаваць стварыць праграмныя эмулятары ў значна хутчэй DSP, ці пабудаваць версію FPGA з іх. Магчыма, на аснове існуючай FPGA эмуляцыі ў Megadrive.

6
дададзена

Вы можаце выкарыстоўваць CORTEX -m4 ад STMF432 дошкі ... вельмі магутны з вялікай колькасцю мегабайт аператыўнай памяці і перыферыйных прылад

enter image description here

3
дададзена
Паколькі пры 256 <�я> KB </я> аператыўнай памяці «шмат мегабайт памяці»?
дададзена аўтар Nick Alexeev, крыніца
І ў любым выпадку, ОП быў даволі спецыфічныя, што яны хацелі выкарыстоўваць AVR мікракантролер, а не ARM.
дададзена аўтар BrainSlugs83, крыніца
<�Р> Ёсць Мікракантролер з 16Мб АЗП?

Я ўпэўнены, што няма працэсараў з 16 МБ на чыпе памяці.

«16 MB RAM» згадваецца ў некаторых апісаннях 68000 намякаюць на 24-бітнай шыне вонкавага адрасы, якія маглі б, у тэорыі, адрасаваць максімум да 2 ^ 24 байт = 16 Мб вонкавага АЗП. Я разумею, што пераважная большасць сістэм, якія выкарыстоўваюць 68000 падключыць значна менш, чым 16 МБ вонкавай памяці.

У прыватнасці, Sega Mega Drive (ён жа Sega Genesis) мае 72KB АЗП і 64 Кбайт відэапамяці. Гэта значыць знешні RAM. Ні яго Motorola 68000 , ні яго Zilog Z80 ёсць якія-небудзь на чыпе памяці або кэш.

Я прапаную вам стварыць другі, незалежны пытанне з назвай, які апісвае тое, што вы сапраўды хочаце ведаць, але пакінуць гэтае пытанне ў якасці кананічны пытанне аб мікракантролер аператыўнай памяці, каб дапамагчы шмат, шмат людзей, якія ўводзяць у зман па «16 МБ АЗП», што азначае тэарэтычную максімальную знешнюю памяць DRAM ў некаторых працэсарах, у той час як «2,5 КБ RAM» азначае фактычнае фізічнае на чыпе SRAM, уключаную ў іншых працэсарах.

(*) Некалькі вельмі высокага класа працэсараў, вырабленых пасьля 2006 маюць 16 МБ або больш на чыпе кэш-памяці, але гэтыя працэсары патрабуюць яшчэ больш вонкавага АЗП - так што, калі вам сапраўды трэба 16 МБ аператыўнай памяці, вы збіраецеся неабходна 16 Мб вонкавай памяці, так ці інакш.

1
дададзена