Minimig Discussion Forum

Discussing the Open Source FPGA Amiga Project
It is currently Fri Nov 17, 2017 11:20 pm

All times are UTC




Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: minimig-de1 on DE0 Nano
PostPosted: Mon Apr 13, 2015 8:00 am 
Offline

Joined: Thu Apr 09, 2015 10:58 am
Posts: 6
I've set out to do something that I've had in my TODO-line for quite some time, get minimig up and running on one of my FPGA dev boards.
The choice of board was between SoCKit and DE0 Nano, and I picked the DE0 Nano since the build times for SoCKit are a lot longer,
and even though the SoCKit board has more suitable peripherals, it's a pain accessing some of them from the FPGA side.
Besides, I got a reason to build some nice extension boards from junk I have laying around ;)

I used https://github.com/rkrajnc/minimig-de1 as a starting point for my efforts.

I've now reached a milestone of being able to boot a kickstart 1.2 on the board,
so I thought it be nice to start sharing my progress from this point onward.

So far, I've wired up a simple VGA resistor ladder to a VGA connector from an old graphics card
and a micro-sd->sd adapter (yes, I meant it when I said junk laying around)

Image

Image

Another lacking feature of the DE0 Nano is that there is no SRAM, so the openrisc control cpu core has to share the SDRAM with minimig/tg68k
for it's main memory.
I mapped the upper 16MB of the SDRAM for the openrisc control cpu to use.
Speaking of the openrisc controller, I swapped out the old or1200 core in favor of the much better mor1kx core.
(Ok, I might be slightly biased here since I'm the co-author of the mor1kx core, but it really is better ;)).
I enabled the instruction cache on the mor1kx core to avoid hogging the SDRAM on every instruction fetch,
but it's still smaller than the or1200 core ~2400 LUTs vs ~2700 LUTs (and I haven't even disabled everything that's not needed).

Another problem is that the TG68K core is not nearly meeting timing at 114 MHz, I saw some other notes around about this, but this will need attending.

Next up is to wire up some PS/2 ports and continue playing around.

Current work of progress is available at: https://github.com/skristiansson/minimig-de1

I end this post with a 'pics or it didn't happen' of the booted kickstart ;)

Image


Top
 Profile  
 
 Post subject: Re: minimig-de1 on DE0 Nano
PostPosted: Mon Apr 13, 2015 8:44 am 
Offline

Joined: Tue Nov 09, 2010 3:10 pm
Posts: 316
Nice work!

The mor1kx core is smaller than the or1200? I didn't watch the mor1kx development closely, maybe I should pay more attention ;) Does the mor1kx core still have the QMEM bus (or QMEM memory) like the old OR1200?

BTW, I started to look into porting the minimig to the DE1-SoC board, which I think is close to the SocKIT - I'll publish when I have something working. The most intriguing option running on the SoC FPGAs for me is using a software emulation for the 68K CPU on the embedded ARM - I'm really interested how fast that will work.

_________________
** my minimig builds: http://somuch.guru/ **


Top
 Profile  
 
 Post subject: Re: minimig-de1 on DE0 Nano
PostPosted: Mon Apr 13, 2015 9:27 am 
Offline

Joined: Thu Apr 09, 2015 10:58 am
Posts: 6
No, no qmem (bus), I did a wishbone to qmem bus bridge.
It was just 6 lines of code:
https://github.com/skristiansson/minimi ... pper.v#L44

Adding support for quick access to tightly coupled memory is on my mor1kx-todo list though.
But that said, in this case I'm not sure the benefits would be enormous, the accesses to SDRAM
are far from single cycle and the application isn't exactly speed critical.
The wishbone bus is fairly lightweight as is, so I doubt that there would be any difference in area.

Emulation on the ARM would be cool, would you plan on running some existing emulator code or roll your own?


Top
 Profile  
 
 Post subject: Re: minimig-de1 on DE0 Nano
PostPosted: Mon Apr 13, 2015 9:39 pm 
Offline

Joined: Tue Nov 09, 2010 3:10 pm
Posts: 316
stekern wrote:
The wishbone bus is fairly lightweight as is, so I doubt that there would be any difference in area.

You're right, not much benefit. I just prefer using QMEM instead of Wishbone ;)

Quote:
Emulation on the ARM would be cool, would you plan on running some existing emulator code or roll your own?

I was thinking of starting with the Musashi 68K emulator, and later pulling the 68K code from WinUAE, which seems more mature. Maybe even writing a JIT compiler for ARM, we'll see.

Regarding TG68K not meeting timings - yes, that is a known source of build - to - build instabilities. User MMrobinsonb5 started wokring on fixing this, here are his changes:
https://github.com/minimig-dev/minimig- ... splitclock

_________________
** my minimig builds: http://somuch.guru/ **


Top
 Profile  
 
 Post subject: Re: minimig-de1 on DE0 Nano
PostPosted: Tue Apr 14, 2015 5:02 am 
Offline

Joined: Thu Apr 09, 2015 10:58 am
Posts: 6
chaos wrote:
I was thinking of starting with the Musashi 68K emulator, and later pulling the 68K code from WinUAE, which seems more mature. Maybe even writing a JIT compiler for ARM, we'll see.

qemu could be another alternative, might be harder to get control over cycle accuracy with that though.

chaos wrote:
Regarding TG68K not meeting timings - yes, that is a known source of build - to - build instabilities. User MMrobinsonb5 started wokring on fixing this, here are his changes:
https://github.com/minimig-dev/minimig- ... splitclock

Ah, nice, I'll take a closer look at that.


Top
 Profile  
 
 Post subject: Re: minimig-de1 on DE0 Nano
PostPosted: Tue Apr 14, 2015 11:39 am 
Offline

Joined: Tue Dec 13, 2011 7:48 pm
Posts: 341
My experiments with running the TG68 at 28Mhz rather than 113MHz took two paths - in the MIST branch, linked above, I replaced the TG68 wrapper with something new - but it's not as compatible as the TG68 one. I put that branch on hold and started experimenting on my own variant (simply because it was quicker to build on my old Core 2 Duo) - and here I used a simplified version of the original TG68 wrapper. This branch can be found here: https://github.com/robinsonb5/minimig_c ... splitclock

I still have stability problems with both versions, however, and neither branch comes close to meeting timing.

I did succeed in getting the TG68 to meet timing in another project, however, the TG68MiniSOC: https://github.com/robinsonb5/TG68_MiniSOC

Unfortunately, for now I lack the time to play with this stuff for more than half an hour at a time, which really isn't enough to achieve anything. I do hope to find the time to get back into this in due course, though.

_________________
~ Amiga 4000/030 ~ Amiga 1200 030/50MHz ~ Turbo Chameleon 64 ~ Altera DE1 with Minimig core ~
Details of my projects: http://retroramblings.net


Top
 Profile  
 
 Post subject: Re: minimig-de1 on DE0 Nano
PostPosted: Tue Apr 14, 2015 7:07 pm 
Offline

Joined: Mon Dec 01, 2008 9:58 pm
Posts: 1568
Location: .de
Hey thats a great work, I really like this kind of hardware hacking :)

_________________
_____________________________
JMP $00000BED ; will guru-meditation until next morning


Top
 Profile  
 
 Post subject: Re: minimig-de1 on DE0 Nano
PostPosted: Thu Apr 16, 2015 10:07 pm 
Offline

Joined: Thu Apr 09, 2015 10:58 am
Posts: 6
I've just added the last missing peripherals to my breakout board,
so I can put away the solder iron now and start concentrate on playing around with the rtl. ;)

All in all, if you don't count the connectors, the only components that was required to build it was 14 resistors and 2 capacitors.

Image

So far, most of what I've tested (but it's not that much) to run seems to work.
There are some glitches here and there though, for instance, I can't seem to get Bubble Bobble running properly,
but I haven't investigated what's the problem with it.

Image

Image


Top
 Profile  
 
 Post subject: Re: minimig-de1 on DE0 Nano
PostPosted: Sat Apr 18, 2015 11:43 pm 
Offline

Joined: Wed May 27, 2009 10:51 pm
Posts: 479
Looks good! Interesting project.

"Bubble Bobble" don't work? It's one of the older Amiga-games and this kind of games are sometimes a little bit sensitive for certain hardware-settings like kickstart, memory and so on. Have you tried the crack of "Bubble Bobble" which is from "Krypt"? You can find it in the TOSEC-archiv. This version is fixed for some hardware-settings like higher Kickstarts, AGA-Chipset and some other things. Maybe this helps here?


Top
 Profile  
 
 Post subject: Re: minimig-de1 on DE0 Nano
PostPosted: Sun Apr 19, 2015 10:07 pm 
Offline

Joined: Thu Apr 09, 2015 10:58 am
Posts: 6
AW72 wrote:
"Bubble Bobble" don't work? It's one of the older Amiga-games and this kind of games are sometimes a little bit sensitive for certain hardware-settings like kickstart, memory and so on.


Good point, the version I have is working when running it with a v1.2 kickstart.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Translated by Xaphos © 2007, 2008, 2009 phpBB.fr