Shop OBEX P1 Docs P2 Docs Learn Events
NIOS II FPGA to Propeller - Advice Required — Parallax Forums

NIOS II FPGA to Propeller - Advice Required

WombleWomble Posts: 20
edited 2013-12-25 04:26 in Propeller 1
Hello All

I thought I'd share some (humble) code and ideas in the hope that someone may have some ideas for the next stage of my project.

I'm trying to re-create the Camputers Lynx home computer in FPGA + Propeller. At present I've got as far as pumping video data from a NIOS II processor in a Cyclone II into the Hub ram of any number of graphic modes
on the prop.

Here's the previous work I've been doing:

http://camputerslynx.info/PALE/

and you can see the Create system here:

http://camputerslynx.info/PALE/ProtoBlog7.htm

I'm using 8 data lines plus two control - one from the Prop -> FPGA with synch saying 'reset counters to zero' and one from the FPGA -> prop which just clocks in each data byte.

The videos linked to show transfer from the 512K NIOS RAM to HUb ram in the prop.

I'm after ideas on how to progress things further (some things I suspect may be impossible on the prop.):

1. A 3-bit 256 x 248 graphic mode

The Lynx uses 3 planes one each for RGB, hence each pixel can be one of 8 colours, no restrictions. I can massage the data on the FPGA side to fit any scheme available on the prop side.

2. Should I be trying to drive the displays directly - i.e. pull in the display bytes within the screen drivers to get a better framerate/and also perhaps like the Morpheus increase colours/resolution.

I will describe the Chameleon SPI turn-off system here as it may be useful to other Chameleon users.

The system I'm using to turn around the SPI bus is 'a bit fly by night'
but I thought I'd send you the code anyway to see if you had any
ideas for improvment - My purpose was to prevent the PIC from waking whenever
any other activity was going on with the bus - hence it waits for twelve trasnitions
on the MISO line with no clock before waking up. I would prefer to do soemthing more
robust like send a serial string of 'HEYPETELETSGO' or something to make sure
it doesnt trigger - so far it hasn't been a problem at all - the SDcard runs fine and
the wake up command turns everything back into Chameleon land.

The fpga link is really simple at the moment but produces 25fps of Spectrum screen display
I'd like to write a different driver which gets its input for video from the fpga direclty
so it should be possible to increase the screen res/colours.

Am I barking up the wrong tree on my ultimate quest (in Hub Ram only terms) for the Lynx
I need a 256x248x3 screen display - 8 colours only but each pixel can be any of the 8.

From what I can gather it seems not to be possible from the prop perspective.

In the following videos you can see the propeller doing a simple bouncing line routine on one cog (top left)
whilst the main gist of the display (the menu and the bouncing line in the box) come from the FPGA ram.

VGA

http://www.youtube.com/watch?v=ShxXv21Agak

http://www.youtube.com/watch?v=m8UJW7mooVw

SPECTRUM

http://www.youtube.com/watch?v=wnOre6-fBJk

If these work then here is the source for Create (there may be some things in here useful - e.g. the F12 switch from VGA -TV is useful on -the-road)


CREATE CHAMPROP DRIVER.zip
CREATE PROPDOS.zip

I can provide the Quartus project if anyone is interested.

Comments

  • pik33pik33 Posts: 2,366
    edited 2013-12-25 04:26
    I need a 256x248x3 screen display - 8 colours only but each pixel can be any of the 8.

    The Propeller can do this. It needs 24k frame buffer, so you have only 8k left.
Sign In or Register to comment.