Jump to content

Photo

Potential new hardware

FPGA DE1 Hardware

797 replies to this topic

#26 jmccorm OFFLINE  

jmccorm

    Star Raider

  • 57 posts

Posted Sat Jun 29, 2013 2:16 PM

Congratulations. This is my dream project that I knew I'd never be able to pull off. I'd be interested in continuing to hear updates on this!

#27 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Sat Jun 29, 2013 2:25 PM

Which Acid800 test is failing? If reasonably feasible I'd like to adjust the test so it can report a failure instead of crashing.

I'll have a look asap and let you know.

#28 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Sat Jun 29, 2013 2:27 PM

Many thanks for the awesome hardware manual too:)

#29 Syfo-Dyas OFFLINE  

Syfo-Dyas

    Dragonstomper

  • 563 posts
  • Location:NW Ohio

Posted Sun Jun 30, 2013 12:56 AM

I was hoping someone would do something like this!

#30 vanfanel OFFLINE  

vanfanel

    Star Raider

  • 68 posts

Posted Sun Jun 30, 2013 10:58 AM

I've tested the POF, foft, but there's not much to do besides some basic (in both senses) stuff.
I suppose the new experiment, with GTIA modes, will allow some games to run, so I can start the storm of game testing and reporting :P

This is going to be very funny! :D

#31 pedalpowered ONLINE  

pedalpowered

    Space Invader

  • 16 posts

Posted Sun Jun 30, 2013 12:04 PM

Very exciting project! I look forward to the stretch goals!

Won't it be impossible to accurately support the VBXE, as it has a 21-bit palette and the DE1 only supports 4-bit/channel (12-bit)? DE2 supports 10bit/channel, but is very pricey (~$500 retail vs ~$200 for DE1). Of course, if this does end up being a hardware product, then obviously a board could be designed from scratch (around the same FPGA or other), like with the VBXE, and could use the same video DAC. If a commodity FPGA board is to be used, does anyone know an affordable one with at least a 21/24-bit video DAC (7/8-bit/channel)?

Edited by pedalpowered, Sun Jun 30, 2013 12:23 PM.


#32 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Sun Jun 30, 2013 1:00 PM

Thanks for trying it vanfanel. Yeah not so much running yet (2%?!) but getting closer I hope. Now pmgs are done I hope that fixing a few cycle exact issues will fix many games. Also before real joysticks I'll wire up some keys...

Agree the DE1 does not have enough bits for video really. Could put a dac on gpio but not sure we'll have enough spare after porta, portb(4 sticks:)), trig, consol, cartridge,eci,keyboard,sio motor etc.

#33 HiassofT OFFLINE  

HiassofT

    Stargunner

  • 1,039 posts
  • Location:Salzburg, Austria

Posted Wed Jul 3, 2013 3:13 PM

Just ordered a DE1 from DigiKey, can't wait to test your core!

Let's hope UPS is fast and customs don't mess around so I have my devboard here soon...

so long & thanks a lot for your hard work - it looks really promising,

Hias

#34 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Wed Jul 3, 2013 3:26 PM

Great. I'll have a more interesting core to try early next week. Added virtual joystick and lots of fixes. Now about 50% runs (small sample!). 40% of acid 800 passes, plenty to do:)

#35 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Fri Jul 5, 2013 2:29 PM

A few more pics...

Alternative reality intro - lots of colour changes
Posted Image

Gunpowder Charlie - showing off some PMGs
Posted Image

Unity part - interesting intra-scanline mode changes. Timing slightly off.. Better now but still off by some colour clocks.
Posted Image

Star Raiders - just because. Turbo mode stops the explosion slowdowns:)
Posted Image

Board modifications to add command channel to serial port. This allows loading from disk via a straight wired rs232 cable and aspeqt. It uses spare pins on the existing max232. GPIO->tin2, tout2->serial port.
Posted Image
Posted Image

Edited by foft, Fri Jul 5, 2013 2:33 PM.


#36 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Fri Jul 5, 2013 2:42 PM

I've uploaded a new sof file to the url I posted earlier.

Changes:
i) Added 320KB - Compy Shop mode.
ii) Acid test now completes rather than crashing (cpu bug fix). 27 tests pass.
iii) Many timing fixes mean that about 50% of software seems to run.
iv) SIO output fixed - can now save to disk.
v) Added virtual joystick. Button using DE1 keys, keys are arrow keys on ps2 keyboard.
vi) Switches cleaned up. Left:turbo, Right:reset, Second right:Hard reset.
vii) GTIA modes
viii) Collision detection
ix) PMGs

Please give it a try. Expect lots of bugs for now. If you figure out the cause of any though be interested to hear.

The next version will be towards the end of August and should run closer to 100% of software...

Edited by foft, Fri Jul 5, 2013 3:08 PM.


#37 vanfanel OFFLINE  

vanfanel

    Star Raider

  • 68 posts

Posted Sat Jul 6, 2013 8:41 AM

@foft: I don't know what's wrong with this version, but I can't see the BASIC or the rom menu anymore.
Just in case, I reflashed the ATARIOSB.ROM to and the ATARIBAS.ROM files to their correct flash addresses.
Since I'm a linux-only user, I used the DE1 control panel replacement (wich is a command-line program) that can be found here:
ftp://ftp.zytor.com/pub/fpga/de1flash
This control panel replacement is used like this: first we setup the DE1 for control panel interfacing with:
./quartus_pgm -m jtag -o 'p;de1flash.sof'
(the de1flash.sof is included in the control panel replacement download archive, of course).
Then we can write the ROM files to flash with the script called de1flash.tcl, wich is also included with the cp replacement download file :
./quartus_stp -t de1flash.tcl write ~/ATARI/ATARIOSB.ROM@0x0000
./quartus_stp -t de1flash.tcl write ~/ATARI/ATARIBAS.ROM@0xc000

After that, I simply upload the EXPERIMENT.SOF in JTAG mode using the quartus programmer, and I swear it used to work with the first experimental version. Has anything changed?
I also tried both vga-to-scart and normal vga cable. There's video signal but screen remains black. Pressing F1 on the PS/2 keyboard causes the cipher '11' to appear on the board's 7-segment display, but that's all.
Maybe you could upload a ready-to-test POF file with included rom data? And I would be able to test software A LOT faster if it could be loaded from SD :P

Eagerly waiting to test like crazy! Thanks :D

Edited by vanfanel, Sat Jul 6, 2013 8:44 AM.


#38 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Sat Jul 6, 2013 11:58 AM

Did you adjust the switches? Set them all down.

Edit: The second from right used to be 'audio enable' when on/up. It is now hard reset when on/up. Sorry my earlier post was not very explicit.

Edited by foft, Sat Jul 6, 2013 12:06 PM.


#39 HiassofT OFFLINE  

HiassofT

    Stargunner

  • 1,039 posts
  • Location:Salzburg, Austria

Posted Sun Jul 7, 2013 6:33 AM

Still waiting for my DE1 (customs issues should hopefully be solved, but now the package is travelling between UPS stations), in the meanwhile I have a noob question:

What kind of video standard are you outputting?

Can I hook it up to a VGA monitor (~30kHz minimum horizontal rate), or do I need to build a VGA->SCART adapter?

You seem to have some adapter board sitting in your VGA->TV (SCART?) connection. Could you post a link to the schematics / building instructions?

so long,

Hias

#40 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Sun Jul 7, 2013 12:07 PM

Good question. It's currently rgb at approx pal timings. Composite sync is on hsync iirc - I'll double check(checked.. It is). My adaptor board isn't something you need to build. It is a VGA to scart board which has counts sync pulses and disables the output if out of range. Overkill - but 10 years ago when I made it I worried about breaking my tv! For the tv to process rgb I think it's just important to drive pin 16 high. Not sure about pin 8 - think I'm using 12v to select 4:3.

I'll add NTSC and scan doubling in August.

Edit: This page has good info- http://members.optus...iltim/scart.htm . Also http://www.idiots.or.../vga_rgb_scart/ . Guess they can be bought... not sure where.

Edited by foft, Sun Jul 7, 2013 1:04 PM.


#41 kogden OFFLINE  

kogden

    Dragonstomper

  • 636 posts

Posted Sun Jul 7, 2013 12:26 PM

Wow, I've been waiting to see something like this for a long time! Very impressive so far.

I always wondered why the C64 and Amiga saw so much love when it came to FPGA reimplementations.

Are there plans to support SIO devices eventually? At least enough to get floppies and printers going? I can understand dropping cassette support.

Would cartridges and PBI be a serious hassle in a future revision after it's all workin?

#42 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Sun Jul 7, 2013 12:37 PM

SIO is working with aspeqt. It should work with real devices fairly simply. Basically just a 10502pc adaptor(+cassette motor and audio line). I bought a 1050,sio2sd and 1010 to test with. Also some cartridges. I do not have any eci or pbi devices - donations accepted:) I'm thinking eci rather than pbi - fewer pins.

I'm also going to have full joystick ports. ie input/output with paddle and light gun support. Preferably 4 ports (2 input only since portb output is bank switching).

Edited by foft, Sun Jul 7, 2013 12:57 PM.


#43 HiassofT OFFLINE  

HiassofT

    Stargunner

  • 1,039 posts
  • Location:Salzburg, Austria

Posted Wed Jul 10, 2013 9:36 AM

Good question. It's currently rgb at approx pal timings. Composite sync is on hsync iirc - I'll double check(checked.. It is). My adaptor board isn't something you need to build. It is a VGA to scart board which has counts sync pulses and disables the output if out of range. Overkill - but 10 years ago when I made it I worried about breaking my tv! For the tv to process rgb I think it's just important to drive pin 16 high. Not sure about pin 8 - think I'm using 12v to select 4:3.

I'll add NTSC and scan doubling in August.

Edit: This page has good info- http://members.optus...iltim/scart.htm . Also http://www.idiots.or.../vga_rgb_scart/ . Guess they can be bought... not sure where.

Thanks a lot for the info, worked fine! But I think I have to wait until you implemented scan-doubling to do some more extensive tests, the only PAL-RGB capable device I own is my TV in the living room.

I tested your latest core, but it doesn't seem to work too well. The symptoms are like an Atari with broken memory:

In about 50% after startup I just get a blank screen (video output is working fine, checked it with my scope). Sometimes the Atari boots directly into memory selftest, with a lot of garbage on screen. In some occasions the Atari tried to boot (TxD led flickering) and went to the READY prompt (didn't have any SIO devices connected). But I couldn't enter anything, and sometimes random characters started to appear on the screen.

Also tried hard reset instead of power-up, same results though.

so long,

Hias

#44 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Thu Jul 11, 2013 6:49 AM

Good to hear your board arrived and your rgb scart adaptor worked. I'll do scan doubling and NTSC as soon as I get back. My vga monitor only does >56Hz so I can't test scan doubled pal...

As for the memory test issue... well it's good news it works to some degree! It's reliable for me so this must be differences between our boards.

When you press keys do you get the scan code on the hex digits? This is done prior to feeding it to pokey. I've only tried with a simple ps2 keyboard, not one that also supports USB.

Wonder if the flash chip has been changed. The sram is really quick (10ns) so running at 25MHz does not challenge it. However the flash rom is too slow for 25MHz, so I have a wait state on access. I might need two for some boards.

That said since it boots sometimes perhaps it's a reset issue.

#45 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Thu Jul 11, 2013 7:08 AM

Few more questions...

Any more luck programming the sof with sw0 up then moving it down after? This holds the CPU in reset until the board fully initialised.

Please will you post which sram and flash chips are on your de1?

#46 HiassofT OFFLINE  

HiassofT

    Stargunner

  • 1,039 posts
  • Location:Salzburg, Austria

Posted Thu Jul 11, 2013 9:10 AM

Good to hear your board arrived and your rgb scart adaptor worked. I'll do scan doubling and NTSC as soon as I get back. My vga monitor only does >56Hz so I can't test scan doubled pal...

Ah, that could get tricky. Seems most LCD monitors need >56Hz as well... I'll check if I can find some PAL RGB capable device or a RGB->composite encoder.

When you press keys do you get the scan code on the hex digits? This is done prior to feeding it to pokey. I've only tried with a simple ps2 keyboard, not one that also supports USB.

Yes this works. Also console keys (F2-F4) seem to work, once I was able to boot into selftest and then use select/start to run the audio video test.

Wonder if the flash chip has been changed. The sram is really quick (10ns) so running at 25MHz does not challenge it. However the flash rom is too slow for 25MHz, so I have a wait state on access. I might need two for some boards.

Flash is a S29GL032N90FTI04, 90ns access time according to datasheet, SRAM is a IS61WV25616EDBLL-10TLI.

de1.jpg

That said since it boots sometimes perhaps it's a reset issue.

Well, this could also be the cause - or maybe some timing issues in the FPGA code?

Any more luck programming the sof with sw0 up then moving it down after? This holds the CPU in reset until the board fully initialised.

I converted the sof to pof and programmed it to the eeprom. Then used the power switch to get it going :) Also tried hard/soft reset before and after powerup in various combinations, but this didn't seem to make a big difference.

If this were a real Atari I'd say ROM access is fine as the character font in the ROM displays just fine, but the RAM contents seem to be changing sometimes. For example Atari boots to READY prompt, then after a while a few strange characters appear on screen, or the foreground color changes.

BTW: also tried setting the left switch (turbo?) to up, but then I never got it to boot.

so long,

Hias

#47 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Thu Jul 11, 2013 11:36 AM

Edit: see below. Used 'less than' character...

Edited by foft, Thu Jul 11, 2013 11:37 AM.


#48 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Thu Jul 11, 2013 11:36 AM

Thanks. Since its running at 25MHz each cycle is 40ns. So two cycles is 80ns. Which is less than 90ns... I think my board has a faster ROM. For Antic access I set up the register the prior clock so we have almost all 80ns. For CPU (t65) I think it's direct from combinatorial logic, so we have substantially less. So it's likely more stable for Antic than CPU (though unstable for both).

With 'turbo' mode it enables the CPU every cycle instead of every 14 cycles. The board is still clocked at the same speed. Of course much code does not expect to run that fast, though I thought the os booted ok (without sio).

Edited by foft, Thu Jul 11, 2013 11:37 AM.


#49 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Thu Jul 11, 2013 2:19 PM

Now I think I remember that my board has the 70ns S29AL032D... @vanfanel and @tcdev, please will you check your DE1s?

#50 foft OFFLINE  

foft

    Dragonstomper

  • Topic Starter
  • 632 posts
  • Location:Nyon, Switzerland

Posted Thu Jul 11, 2013 10:56 PM

Totally untested but try experimentwait.sof... Modified the vhdl to add an extra wait state and rebuilt.





Also tagged with one or more of these keywords: FPGA, DE1, Hardware

0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users