Create ULA for €5?

Discussions about Sinclair ZX80 and ZX81 Hardware
Post Reply
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Create ULA for €5?

Post by mrtinb »

When looking at the different solutions for a ULA in this thread, I came across these cheap parts that might work together for at ULA replacement.

A Xilinx XC9536, that works at 5V: €3,87

A PLCC44 to DIP40 adapter board: €1,36

The sum of this hardware is: €5,20

It also depends how the pins on the adapter board is mapped. (Assumably connected like this). Looking at this diagram, GND and 5V will not match the ULA.

You will probably need a JTAG-kit like this one (€25,04) to program the CPLD.

I'm just trying to think out of the box. :)
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Create ULA for €5?

Post by PokeMon »

I think it won't work with a 44 pin CPLD which has only 34 I/O pins. Also I doubt that 36 macrocells will be sufficient for this purpose. The ULA is quite complex. XC9536 won't be manufactured in PLCC version as well (end of life product). There maybe some sources but not a good idea to base a new product on EOL parts.
Bildschirmfoto 2016-10-24 um 10.53.36.png
Bildschirmfoto 2016-10-24 um 10.53.36.png (108.54 KiB) Viewed 6715 times
As there are implementations existing, why not use the proofed solutions ? I think you won't be able to avoid soldering SMD parts for these kind of solutions.
User avatar
Andy Rea
Posts: 1606
Joined: Fri May 09, 2008 2:48 pm
Location: Planet Earth
Contact:

Re: Create ULA for €5?

Post by Andy Rea »

Karl is right regardless if the design will fit in that amount of logic with only 34 i/o pins it's not gonna happen, i tried a 2 chip solution but couldnt get it to work stable enough using an altera epm7032stc44 ( a quad flat pack 44 pin device) witoutn enough IO but used and additional 16v8 Gal to grab the databus and drive the address lines. but meh thats another story.

Andy

EDIT :

you could use this http://www.ebay.co.uk/itm/IC-EPM7128SLC ... 51d6aa3d84 mpt as small but should work.. and cheap enough
what's that Smell.... smells like fresh flux and solder fumes...
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Create ULA for €5?

Post by mrtinb »

PokeMon wrote:I think it won't work with a 44 pin CPLD which has only 34 I/O pins. Also I doubt that 36 macrocells will be sufficient for this purpose.
Upgrading the design from a XC9536 to a XC9672 would solve this. And then I realize it has already been done by RetroTechie’s ZX81 ULA in a CPLD.

Doh! :oops:

It's still a cheap project: I'll look into a strip board or perfboard design for simplicity and price cut.

ImageImage
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
Andy Rea
Posts: 1606
Joined: Fri May 09, 2008 2:48 pm
Location: Planet Earth
Contact:

Re: Create ULA for €5?

Post by Andy Rea »

that seems awfully cheap for the XC9572 are they NOS or pulls ?

regards Andy
what's that Smell.... smells like fresh flux and solder fumes...
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Create ULA for €5?

Post by mrtinb »

No idea. I just searched a cheap Chinese site.
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Create ULA for €5?

Post by mrtinb »

8-) The chips have been ordered from China (will probably arrive in 2 months).
:arrow: Now I'm trying to install Xilinx' 16GB software to learn how to create circuits there.
:idea: Next: import RetroTechie's design.
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Create ULA for €5?

Post by mrtinb »

I've started to setup RetroTechie's circuit in Fritzing.

Project:
  • Buy cheap components as listed above
  • Make single sided print that can be produced by anyone
  • The XC9572 can be programmed with an Arduino (which is a lot cheaper than buying a JTAG-programmer for €25+)
plcc84.2_pcb.png
plcc84.2_pcb.png (127.47 KiB) Viewed 6594 times
plcc84.2_schem.png
plcc84.2_schem.png (110.31 KiB) Viewed 6594 times
(I've seen now you can etch with lemon juice, salt and hydrogen peroxide (Wasserstoffperoxid), so now dangerous chemicals aren't needed anymore)

(Edit: And I found you can transfer toner to pcb without iron)
Last edited by mrtinb on Mon Nov 28, 2016 1:56 pm, edited 1 time in total.
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Create ULA for €5?

Post by mrtinb »

It's quite a job to create this with a single sided PCB. Yet only half the connections are made.
plcc84.3_pcb.jpg
plcc84.3_pcb.jpg (264.03 KiB) Viewed 6435 times
(Edit: updated image showing further progress)
(Edit2: updated image showing further progress)
(Edit3: updated image showing further progress)
Last edited by mrtinb on Thu Nov 17, 2016 12:37 am, edited 5 times in total.
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
RetroTechie
Posts: 379
Joined: Tue Nov 01, 2011 12:16 am
Location: Hengelo, NL
Contact:

Re: Create ULA for €5?

Post by RetroTechie »

mrtinb wrote:I've started to setup RetroTechie's circuit in Fritzing.
Arghhh... :twisted: Friends don't let friends use Fritzing. Especially not for pcb layout. :lol: There's some (limited, imho) purposes for this program. But for laying out pcb's, literally any pcb layout software out there is better suited. Try Eagle, or Kicad, or ..., ...., ....

Some tips:
* Double sided board makes layout much easier.
* Any signal that goes to a regular CPLD I/O pin, can be swapped with another I/O pin on the CPLD. Yes, you'd need to re-do the synthesize ('compile') CPLD design step. But that isn't as hard as you might think. Swapping pins means you can basically lay out most traces nicely next to each other as you want.

Strictly speaking, swapping pins may influence timing. And not any desired pinout may be possible in the first place. But in practice, this isn't much of an issue, and you can try in ISE before actually doing a pcb layout or configuring the CPLD.

Basically: 1) Lay out traces in the easiest/simplest manner. 2) Feed that pinout to ISE, and re-do the synthesize step(s). 3) If that doesn't work & a few pins are changed (or need changing), repeat those steps in ISE. 4) Use 'ISE-approved' pinout to finalize the pcb layout.

Sticking to a CPLD pinout that I once used for a pcb layout I did in a way you wouldn't want to repeat anyway, just makes your job harder than it needs to be. :)
Post Reply