SuperCPU for the Vic-20

Modding and Technical Issues

Moderator: Moderators

Kakemoms
Vic 20 Nerd
Posts: 740
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Post by Kakemoms »

beamrider wrote:I would be interested in one of these please.
I will reserve one for you.
eslapion wrote: I believe you mentioned another version of the MachXO3 will soon come on the market with considerably more available memory.
Yea, its the 9400 version with even more logical cells and 54KByte internal memory. I will try to get hold of it once the PCB's arrive.
pixel wrote:If I hadn't had so much on my plate already (Arukanoido, Ultimem, tapesondemand.com, etc.) I'd jump right in.

That copying loop is really refreshingly clever but let's talk applications. Moving memory that way is still spoiling the fun. Any chance to wedge in hardware copy? EDIT: Even if it was only whole pages?
Well, as Mike points out its the only (safe) way. I don't want to hack too much into the Vic-20 because its a good machine the way it is. The only other way would be to put the VIC processor itself on the external board, but I'm not sure I want to do that. There is a Verilog model of the 6569 which could have been used, but then one ends up emulating the whole machine which kind of removes the point of an expansion.. Many people feel that the Turbo Chameleon for the C64 went too far in that direction.
Vic20-Ian wrote:Audio-Computers advertised a 40 Column card with 2nd processor (Intel 8088). 8K Ram and can communicate with 2nd processor via 2k dual port ram.

I have a scan of the advert, if anyone wants it send a PM.
Never heard about that one! Would be interesting to see that ad. Anyway, my implementation will make all the memory available directly to the Vic-20 since we need to copy any gfx (and having a 2K dual port buffer would mean that it had to be copied twice).

Current status is that 80% of the schematic is done with a new BGA256 package defined from scratch for the MachXO3 (there wasn't any available for Eagle Cad). I will make space for a FTDI chip so you can reprogram the CPLD at home using a USB plug, but it will add some cost, so if you don't want it just tell me so and I will put in a JTAG connector instead (so you can reprogram the CPLD with a JTAG interface if you need to).

Thanks for waiting.
User avatar
Schema
factor
Posts: 1430
Joined: Tue Mar 23, 2004 7:07 am
Website: http://www.jammingsignal.com
Location: Toronto, Ontario

Re: SuperCPU for the Vic-20

Post by Schema »

I am interested in one! 8)

From what I read (I admit I just skimmed the thread so far), the approach sounds quite similar to that taken by the Vextrex32 cart:

http://www.galacticstudios.org/vectrex32smartcart/

They also have dual-port RAM and have a small stub on the 6809 that communicates with the display, basically shuffling data between the 32-bit CPU and the display. Gives you BASIC and "sprites" and a lot of other cool features - all running on the external processor of course. Also doesn't require any changes to the main board.
User avatar
RobertBe
Vic 20 Elite
Posts: 2304
Joined: Sat Jul 14, 2007 2:48 pm

Re: SuperCPU for the Vic-20

Post by RobertBe »

Schema wrote:...the approach sounds quite similar to that taken by the Vextrex32 cart...
Oh, I didn't know about the Vectrex32 cart. Very interesting.

Writing from Las Vegas,
Robert Bernardo
June 10-11 Pacific Commodore Expo NW -
http://www.portcommodore.com/pacommex
July 29-30 Commodore Vegas Expo v13 -
http://www.portcommodore.com/commvex
Kakemoms
Vic 20 Nerd
Posts: 740
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Post by Kakemoms »

Schema wrote:I am interested in one! 8)

From what I read (I admit I just skimmed the thread so far), the approach sounds quite similar to that taken by the Vextrex32 cart:

http://www.galacticstudios.org/vectrex32smartcart/

They also have dual-port RAM and have a small stub on the 6809 that communicates with the display, basically shuffling data between the 32-bit CPU and the display. Gives you BASIC and "sprites" and a lot of other cool features - all running on the external processor of course. Also doesn't require any changes to the main board.
I will hold off one for you!

Never heard about that! Interesting. The SuperVixen (as it has ended up being named) is still a 8-bit 6502 to keep code compatibility.

It looks like some suppliers have started shipping the MachXO3 version with 54KByte memory. I will try to get hold of those, but its still early so delivery time might be long.

As for the upgrade of the internal software, I replaced the FTDI2232 with a FT232 that is much cheaper. There is some third party bit-banging software that managed to program the MachXO3 through that, so it will keep the cost down while still enabling core upgrade (through a USB2.0 port on a PC). If you don't want the FT232 (to keep cost down), you can just buy a Chinese clone USB-UART later, and I will give instructions on how to re-solder that and connect it.

Due to the BGA-256 interface, the PCB is going to be a 4-layer card. I will try to fit two cards per proto to keep PCB cost down.
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Re: SuperCPU for the Vic-20

Post by eslapion »

Anyone ever heard of this on the C64 ?

http://blog.worldofjani.com/?p=3460

It has it's own CPU...
Be normal.
User avatar
mrr19121970
Vic 20 Nerd
Posts: 873
Joined: Tue Jan 19, 2016 9:22 am
Location: Germany
Occupation: IT service manager

Re: SuperCPU for the Vic-20

Post by mrr19121970 »

eslapion wrote:Anyone ever heard of this on the C64 ?

http://blog.worldofjani.com/?p=3460

It has it's own CPU...
Yes, I asked CoreI64 to make a new version too, he said that there is no demand. Sailor (Jani) has already scanned the PCB and listed the parts. Ratev (Richard) is struggling with some CAD software trying to make a prototype too.
Kakemoms
Vic 20 Nerd
Posts: 740
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Post by Kakemoms »

An update on the layout:

The schematic is almost finished. I put in space for two 512KB SRAMs for experimentation (I already had some around). Its a TSOP-44 package so you can either add it yourself or get me to add it at a cost. I haven't finished the logic for that, so its in the future.

I am also going to add a display interface as its very easy to put in, thus a VGA connector can be soldered to it (at a later stage). The idea would be to get some code to mirror the VIC-I chip inside the Vic-20.

The MachXO3 already have a SPI inteface, so it will be made available.

Edit:
Schematic is finished (unless I add more last-minute stuff). I decided to add a SD CARD adapter instead of just making the SPI available. The Verilog code for the SD card interface is not made yet, neither is the VGA or the SRAM. The USB plug to upgrade the CPLD is in place (and the software is PD). Just in case I will also put in space for a FTDI2232, but it won't be needed if the FT232 works as intended (but you never know). The FT2232 is also quite expensive and needs a separate prom.

Depending on volume and such, the final price hasn't been decided yet but it will be less expensive than the Turbo Cameleon 64. For 10 units I will hand solder them, test them and ship. Shipping has to be with tracking unless you only buy a PCB (but need to solder it yourself). For later products they will be machine assembled (too many components!!).

This is the current timeline:

June - finish PCB, order parts
July - prototype PCB production
mid-August - PCBs arrive, soldering starts
end of September - shipping

There is currently no casing on the product, but I am working with the local Hackerspace to make lasercut mounting plates. SDCARD interface, VGA and USB will be on the PCB edge farthest from the Vic-20 expansion slot. I will solder them on so you only need to upgrade the CPLD to get them to work.
User avatar
TLovskog
Vic 20 Enthusiast
Posts: 194
Joined: Fri Mar 25, 2011 3:16 pm
Location: Kävlinge, Sweden

Re: SuperCPU for the Vic-20

Post by TLovskog »

Seriously cool project, Kakemoms!
BR
Thomas Lövskog
User avatar
Schlowski
NoMess!
Posts: 892
Joined: Tue Jun 08, 2004 12:20 pm

Re: SuperCPU for the Vic-20

Post by Schlowski »

Wow, gets better and better!
User avatar
beamrider
Vic 20 Scientist
Posts: 1447
Joined: Sun Oct 17, 2010 2:28 pm
Location: UK

Re: SuperCPU for the Vic-20

Post by beamrider »

any chance of HDMI instead of VGA?
HouseOfPain
Vic 20 Newbie
Posts: 8
Joined: Tue Apr 26, 2016 10:37 am

Re: SuperCPU for the Vic-20

Post by HouseOfPain »

beamrider wrote:I would be interested in one of these please.
Me, too.

HoP
Kakemoms
Vic 20 Nerd
Posts: 740
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Post by Kakemoms »

beamrider wrote:any chance of HDMI instead of VGA?
Sorry for my slow response. This layout takes most of my time.

As for HDMI it requires two+ costly ICs to get it working and its quite complex. The resolution wouldn't be any higher either since the output frequency is defined by the MachXO3 interface and not those ICs. So it I don't think it would add much to the product other than doubling the price.
HouseOfPain wrote:
beamrider wrote:I would be interested in one of these please.
Me, too.

HoP
You are on the list! So now its just one more unit that's available (I need to keep one PCB for solder testing and one for programming). The prototype package only contains 9 or 10 PCBs.

This is the reservation list:
1) Schlowski
2) KilrPilr
3) KilrPilr
4) Beamrider
5) Schema
6) HouseOfPain

You will get to choose what I should mount on your SuperVixen:

Non-optional:
- MachXO3LF speed grade 6 with its EPROM
- about 30 capacitors & resistors
- some glue logic to make it talk to the Vic-20 at 5Volt
- JTAG interface for reprogramming (if you own a JTAG interface box which supports Lattice)

Optional:
- FTDI chip (2232++ or 232) + USB connector for reprogramming
- 1MByte SRAM
- SDCard interface
- VGA interface

Currently I have routed the two memory interfaces to the BGA256 (on the PCB) which had to be done manually (Autorouting is not good enough). I hope it will be able to access the SRAM at its max speed of 100MHz, so wires have been kept short and on the same layer.

I haven't expanded the Verilog code for the MachXO3 since I want the first version to just work (and it is working). Today it consists of:

- Arlets core, extended to 65C02 by Dave Hoglet & Big Ed. Its not superfast (28MHz), but it is well tested and has the 65C02 extended instruction set. It is not cycle exact of the 6502 either, but since it runs 28 times faster, there is no need.
- Internal SRAM of 26KByte. 24KByte is available to the Vic-20 as a memory expansion (and you can run all normal Vic-20 programs in that from inside the Vic-20). I am looking into a larger MachXO3 with 54KB, but I can't promise anything.
- Dual SRAM interface: Both 65C02 and the Vic-20's run at full speed without conflict. You can read/write to any address with both processors at the same time (if you need to).

The plan with respect to additional logic (these options may change since they are under testing):
- SDCard interface: This is part of the MachXO3L IPR so easy to implement, but since its very large (larger than the 65C02 core in fact) I have choosen a smaller opencore inteface. Some software for load/save needs to be written to make use of it.
- 1MB SRAM interface: This will be available to the 65C02 once ready.
- VGA interface: Currently a Vic-II like core exists, but I am leaning towards making a new Vic-I/II core that also supports resolution enhancement. It will mirror the internal Vic-I so you can run the normal Vic-20 games and get a picture on a VGA screen. It will also enable the 65C02 to run programs that have been enhanced to cope with its speed.
- N6502 - this is my own 6502 core which I called Nano-6502. It is very small (about 1/6 the size of the 65C02) and runs at 100MHz (stand-alone). It only has around 15 instructions and can only handle about 1KB of memory, but due to its size I can fill the rest of the space with such cores. E.g. you can have 2-8 of these CPUs inside, each running at around 100MHz. The speed may drop if the MachXO3 gets too full, so you need to view it as a bonus-addon. Once ready, you will be able use these to experiment with parallel 6502 code. Due to its special architecture, all instructions take 1 cycle. The N6502 was originally made for neural networks (AI), but can also be used as a graphics accelerator or other parallel processes (that is left to you to decide).
User avatar
majikeyric
Vic 20 Afficionado
Posts: 349
Joined: Fri Oct 24, 2014 2:08 pm
Website: http://majikeyric.free.fr
Location: France

Re: SuperCPU for the Vic-20

Post by majikeyric »

Hi Kakemoms,

I would be interested in 1 unit if it's still possible :)
Kakemoms
Vic 20 Nerd
Posts: 740
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Post by Kakemoms »

majikeyric wrote:Hi Kakemoms,

I would be interested in 1 unit if it's still possible :)
I will hold off one for you!

Currently I'm working with routing, with both SRAM and VGA interfaces finished. I do it manually to keep the signal speed and BGA fanout as best as possible. Slower signals will be finished with the Autorouter, so not much left now. Here's a snapshot:
SuperVixenBoard.png
Kakemoms
Vic 20 Nerd
Posts: 740
Joined: Sun Feb 15, 2015 8:45 am

Re: SuperCPU for the Vic-20

Post by Kakemoms »

Short update:
The routing is finished. Most of the lines were done manually to keep lines direct. The reason is that SRAM should not be a bottleneck and that VGA signals needs to be fast if we want some resolution..

It will take some weeks for the cards & stencil to arrive, and I will order parts within this week. I will get most of them from Mouser or Element14.
Post Reply