EEVblog Electronics Community Forum

Electronics => Microcontrollers => Topic started by: luiHS on May 26, 2019, 03:51:13 pm

Title: CPLD to replace 74xx chips in an old circuit
Post by: luiHS on May 26, 2019, 03:51:13 pm

Hello.

I have a couple of old circuits (from the 90s), which have enough 74xx chips, I would like to replace them with a single CPLD. I only know CPLDs at the theoretical level, I have never worked in practice with programmable logic.

The problem is that all these old circuits operate at 5 volts, with microprocessors Z80, 68B09, TS68000, eprom 27Cxxx and RAM 6264/62256.

I have been consulting with a friend of a friend who could do this work, but he tells me that using a CPLD with tolerant ports 5 volts, is something old and at any time they can stop making them.  He suggests working at 3.3v, because CPLDs for that voltage are also cheaper and with higher density.

I do not see a solution, as a CPLD with pins that are not tolerant to 5 volts, can interact with a circuit at 5 volts (Z80, 27c010, 6264), because try to put adapters of logical levels from 5 to 3.3 bidirectional, It would complicate much more and it would not be worth doing.

Are CPLDs with ports that are tolerant to 5v signals really obsolete, are they more expensive and can stop being manufactured very soon?

PS: remaking the rest of the circuit is not feasible, that would be more complicated and expensive than leaving it as it is now.

Regards

Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: Ian.M on May 26, 2019, 04:38:52 pm
A 3.3V CPLD with 5V tolerant inputs wont output valid levels for 5V CMOS logic, and its a real pain having to buffer all outputs to get rail to rail levels.  OTOH 3.3V levels are generally sufficient to drive 5V LS TTL and HCT CMOS.

Its true that the industry is moving towards ever lower logic voltages, but some manufacturers have an excellent track record for continuing production of older parts, e.g Microchip still supply many 30 year old PICs and continue to do so as long as there is any demand.   

There are a good selection of ex-Atmel 5V CPLDs here:
https://www.microchip.com/design-centers/programmable-logic/spld-cpld (https://www.microchip.com/design-centers/programmable-logic/spld-cpld)
all in current production status, and now they are under Microchip ownership, I think its fairly unlikely they will go out of production in the next decade or so.

Edit: they've also got some 5V FPGAs:
https://www.microchip.com/design-centers/programmable-logic/field-programmable-gate-array/at40k-fpgas (https://www.microchip.com/design-centers/programmable-logic/field-programmable-gate-array/at40k-fpgas)
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: Yansi on May 26, 2019, 05:03:29 pm
Or, if it is a one-off, slap there some older stock Altera MAX7000 series, or Xilinx XC9500 series 5V PLD. Still obtainable.

//Anyway, if redesigning old stuff , why not changing also the old CPUs and RAMs to something more recent?
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: luiHS on May 26, 2019, 05:28:12 pm
//Anyway, if redesigning old stuff , why not changing also the old CPUs and RAMs to something more recent?

As I mentioned, that is more complicated and expensive than leaving it as it is. Also I do not have the source code of the applications made for Z80 and TS68000. Disassembling the object code and trying to port it to a more modern system would be extremely complex and expensive, not worth it. For that I prefer to leave everything as it is with its 74xx, I just thought about using a CPLD to make the design more compact, nor is there an important saving in the cost of components.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: wraper on May 26, 2019, 06:05:15 pm
Unless replacing everything including CPU with FPGA+RAM, I don't see it being worth it.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: james_s on May 26, 2019, 06:10:17 pm
The Xilinx XC9500 series has 5V capable IO. In practice I've found it works just fine to drive 5V logic with 3.3V outputs, it may not be in spec but if this is a personal project it doesn't hurt to try.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: wraper on May 26, 2019, 06:11:17 pm
But then you could just emulate Z80 on say STM32.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: T3sl4co1l on May 26, 2019, 07:23:21 pm
If nothing else, a 3.3V (or lower) FPGA and level shifters (usually a 74ABT something?) will do.  You need to select bus transceivers as appropriate for the signal directions, of course.

Tim
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: PCB.Wiz on May 26, 2019, 07:37:58 pm
I have a couple of old circuits (from the 90s), which have enough 74xx chips, I would like to replace them with a single CPLD. I only know CPLDs at the theoretical level, I have never worked in practice with programmable logic.
How many is 'enough' - can you list the parts ?


The problem is that all these old circuits operate at 5 volts, with microprocessors Z80, 68B09, TS68000, eprom 27Cxxx and RAM 6264/62256.

I have been consulting with a friend of a friend who could do this work, but he tells me that using a CPLD with tolerant ports 5 volts, is something old and at any time they can stop making them.  He suggests working at 3.3v, because CPLDs for that voltage are also cheaper and with higher density.
Atmel SPLD/CPLDs are 5V operating, and still in active production. They come up to 128 Macrocells.
There are also SiLego parts, but they are smaller, tho you can use a few of them. It comes down to what you need to replace.

If you have existing also-older parts this talks to, how do you manage this physically ? - Is this on a plug in PCB you can easily re-design ?
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: up8051 on May 26, 2019, 08:01:00 pm
CPLD
ATF1508AS:
- 5V
- 128 macrocell
- PLCC86 or TQFP100
- price about 10$

Or put all (softcore uP, RAM,  logic) into big FPGA nad add I/O buffer for 5V logic.

Regards,
up8051 aka JarekC
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: Kjelt on May 26, 2019, 08:48:05 pm
Just curious since I only know the Xilinx/Altera-Intel SW infrastructure.
Those Atmel Microchip cpld's is the software tooling also free ? What is it called and how does it compare to Altera's quartus?
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: up8051 on May 26, 2019, 09:14:08 pm
For ATF15xx you can use:
 ProChip Designer
https://www.microchip.com/design-centers/programmable-logic/spld-cpld/tools/software/prochip-designer (https://www.microchip.com/design-centers/programmable-logic/spld-cpld/tools/software/prochip-designer)

or
WinCUPL
https://www.microchip.com/design-centers/programmable-logic/spld-cpld/tools/software/wincupl (https://www.microchip.com/design-centers/programmable-logic/spld-cpld/tools/software/wincupl)

Regards
up8051 aka JarekC
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: SparkyFX on May 26, 2019, 09:34:26 pm
The toolchain might be the real cost for small part counts, finding programmers that work, software and so on. Actually it is hard to find documentation on some.

I am dabbling with Microchip/Atmel 22V10 and 16V8 for similar reasons, their software WinCUPL is free of charge.
The popular Autoelectric MiniPro TL866II (https://www.eevblog.com/forum/blog/eevblog-411-minipro-tl866-universal-programmer-review/) has recently been updated with 22V10 variants for programming (haven´t tested so far, though).
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: up8051 on May 26, 2019, 09:58:22 pm
ATF15xx chip have ISP (JTAG), can be programmed with ATmelISP
https://www.microchip.com/design-centers/programmable-logic/spld-cpld/tools/software/atmisp (https://www.microchip.com/design-centers/programmable-logic/spld-cpld/tools/software/atmisp)
Programmer ATDH1150USB cost about 60$ (it can probably be built for a few $).

Regards,
up8051 aka JarekC
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: FrankBuss on May 27, 2019, 12:19:30 am
You could emulate the whole system inside one modern FPGA. There are free cores for Z80 and 68000:

https://opencores.org/projects/tg68 (https://opencores.org/projects/tg68)
https://opencores.org/projects/a-z80 (https://opencores.org/projects/a-z80)

Then e.g. use one of these boards:

https://www.seeedstudio.com/Sipeed-TANG-PriMER-FPGA-Development-Board-p-2881.html (https://www.seeedstudio.com/Sipeed-TANG-PriMER-FPGA-Development-Board-p-2881.html)

The FPGA itself has 130KB SRAM and 64MBit SDRAM built-in, no need for any external RAM. On startup, just load the EPROM content from the 8Mbit user flash on the board. But depending on your system, it might work with less powerful FPGAs as well, like the cheap MachXO series from Lattice.

But if you are new to FPGA development, then this is not a project you would do as your first project. I could do this, but might need weeks, because looks like your system is pretty complex with 3 different CPUs.

If you just want to replace the 74xx chips, you could use a small FPGA or CPLD, and then level shifters for the 3.3V to 5V conversion with auto-direction sensing, like this one:

http://www.ti.com/lit/ds/symlink/txb0108.pdf (http://www.ti.com/lit/ds/symlink/txb0108.pdf)

Then you don't need to develop anything new for the conversion direction pin. Implementing 74xx logic with a CPLD is very easy. All FPGA/CPLD vendors have "schematic entry" tools and basic elements like AND and OR. You could just draw your circuit with the editor and you are done. I would do it in VHDL, would be even easier once you know the language (or Verilog, if you prefer C-style syntax).
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: romhunter on May 27, 2019, 03:21:07 am
If you want Altera CPLD, go for MAX7000. It can withstand 5V and is decent. Or go for Microchip ATF15. They're all 5V compatible.

I would recommend Microchip though, they did do one thing right: support released product (no matter how old they are).
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: luiHS on May 27, 2019, 03:42:56 am
How many is 'enough' - can you list the parts ?

Cirtuit 1:
======
1 x  4020
1 x  74HC00
1 x  74HC04
1 x  74HC07
1 x  74HC139
1 x  74HC153
1 x  74HC259
1 x  74HC374
1 x  74HC74

Cirtuit 2:
======
3 x  PAL
1 x  74HCT240
1 x  74LS04D
1 x  74LS163A
2 x  74LS166D
6 x  74LS245
2 x  74LS273
2 x  74LS374
1 x  74LS74D


Quote
If you have existing also-older parts this talks to, how do you manage this physically ? - Is this on a plug in PCB you can easily re-design ?

Are full boards of which I have designed a new PCB, based on the original scheme. I assemble it in my own Pick and Place Neoden4, what I wanted is to make a more compact design, with as few components as possible.

Another circuit, takes part of the original scheme, plus another circuit designed by me with a Kinetis MK66 microcontroller. All in a new PCB made by me.
 
The two circuits are old electronics, one based on a Z80 microprocessor and the other on a TS68000. Of the circuit with the Z80, I already made some changes, the original Z80 is DIP, I put the LQFP44, the Eprom was DIP, I have put PLCC32, the RAM was DIP, I have put SOIC, all the 74xx were DIP, I have put them TSSOP, the passive components were THT, I have put all SMD 0402.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: KrudyZ on May 27, 2019, 07:49:10 am
There are 3.3V versions of both the Z80 and 68000 cores available.
Maybe it would be easier to replace the processors instead and then go with 3.3V CPLDs or FPGAs...
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: Kjelt on May 27, 2019, 07:51:42 am
If I look at this list of components any small cpld should be able to take care of that.
BUT how many individual inputs and outputs does this circuit have, that determines the size of the package and will probably be a bigger challenge to find a matching cpld.  :-//

list the parts ?

Cirtuit 1:
======

Cirtuit 2:
======
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: imo on May 27, 2019, 07:57:11 am
Years back you would take an XC9572 (5V) in an 84pin PLCC package and in Xilinx'es ISE 14.7 you would copy your Circuit 1/2 schematics 1:1 in their schematics capture mode (it includes almost all 74xxx parts) in a few minutes. I started that way, after some time I switched to Verilog. When you spent years with 74xx designs the switch to an HDL language is more difficult because of your "74" mindset :)

PS: I bet you may get the XC9572/36 (not the 3.3V XL version) in the 44/84pin PLCC off ebay including the socket. Not cheap, however  :(

The basic decision factor on the CPLD size is the number of FFlops and IO pins required. For example the 9572 has got 72 FFs, therefore I would count all FFs in my 74xxx logic and compare. The other logic functions usually fit inside easily when the number of available IO pins is ok.

Your Circuit 1 is 31 FFs afaik, it may fit into an XC9536 provided the number of IO pins is ok.

The Circuit 2 is larger, 2xPALs may include ~20FFs, plus all the others will not fit into 9572. Also the number of IOs could be large. Maybe 2x9572 in 84PLCC? Or a 95144 in 144pin flatpack?

Anyhow, for example, download a dev tool - from Xilinx (<=v14.7 for CPLDs) or Intel/Altera(?) or Lattice(?) - and draw your schematics in. Try to compile for a certain CPLD/package and you will see how it fits. All is free of charge, except your time :)

There are 3.3V versions of both the Z80 and 68000 cores available.
Maybe it would be easier to replace the processors instead and then go with 3.3V CPLDs or FPGAs...

That is the way I would do it today. In the 3.3V technology you may create a Z80/68k system including all the glue logic and PIO/UART/DMA etc peripherals in $20-$40 fpgas from any vendor, also there are tons of 3.3V memories available. The main difficulty for you will be the switch into VHDL or Verilog. Also the mastering all the design tools needs time, and most probably you will face 144pin flatpacks or BGA packages. Be warned.. :)

PPS: Warning 2 - in case you have to run an "existing binary" on such a Z80/68k systems fully implemented in an fpga, you have to doublecheck whether the actual CPU implementation supports all the tricks people used to use in their codes in past. Most CPU fpga cores are not 100% compatible (or at least not 100% tested) against the original silicon..
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: PCB.Wiz on May 27, 2019, 08:15:51 pm
Are full boards of which I have designed a new PCB, based on the original scheme. I assemble it in my own Pick and Place Neoden4, what I wanted is to make a more compact design, with as few components as possible.

Another circuit, takes part of the original scheme, plus another circuit designed by me with a Kinetis MK66 microcontroller. All in a new PCB made by me.
 
The two circuits are old electronics, one based on a Z80 microprocessor and the other on a TS68000. Of the circuit with the Z80, I already made some changes, the original Z80 is DIP, I put the LQFP44, the Eprom was DIP, I have put PLCC32, the RAM was DIP, I have put SOIC, all the 74xx were DIP, I have put them TSSOP, the passive components were THT, I have put all SMD 0402.
OK, so you are already putting many hours into this, and can respin PCBs as needed.
If you look at a list


Cirtuit 2:
======
3 x  PAL
1 x  74HCT240
1 x  74LS04D
1 x  74LS163A
2 x  74LS166D
6 x  74LS245
2 x  74LS273
2 x  74LS374
1 x  74LS74D
You might choose a split based on 'easiest PCB design' and IO pin counts.
eg Octal parts might stay octal CMOS, but change to better pinouts like 74HCT573

Then you can look at what is non-octal eg
3 x  PAL
1 x  74LS04D
1 x  74LS163A
2 x  74LS166D
1 x  74LS74D
to see what makes sense to pull into a CPLD, and what might make sense to move to tiny-logic, placed where it is needed.
5V CPLDs are available, but as already mentioned, are trailing edge (but so too are your Z80  & TS68000 :) )
Digikey shows 35  5V CPLDs normally stocked, all Atmel part codes.
Which you choose again comes down to PCB layout, and you can swap PLD pins to help there.
You might choose a few ATF1504 in TQFP44, or fewer ATF1508 in TQFP100

You do need to design the PLD in parallel with the PCB, as not all pin choices will fit into the PLD

Addit: you may consider a 3v3 supply, and a 5V tolerant CPLD - a Xilinx DOC claims this :
5V Tolerance CoolRunner XPLA3 devices are 5V-tolerant. Also, the XC9500, XC9500XL, and XC9500XV families are 5V-tolerant.

Also note the ATF150xASV(L) parts can operate on 3v3 or 5V, and cheapest 5V capable 128MC part on digikey is
ATF1508ASVL-20AU100   128MC 20NS 100TQFP   771 - Immediate   $4.42000 @ qty 1
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: luiHS on May 27, 2019, 10:18:00 pm
5V CPLDs are available, but as already mentioned, are trailing edge ( but so too are your Z80  & TS68000 :)  )

The TS6800 I do not know, but the Z80 is available for many years, it seems that it is one of those components that will always exist, as it happens with some microchip microcontrollers. I remember the Z80  from the time of the Sinclair ZX Spectrum, in DIP socket.

The alternative arrived at the moment, with the Z80, would be to use an FPGA with the corresponding core, but for now I prefer not to get into something that is complex and expensive, because I would have to hire it or learn to do it by myself.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: james_s on May 27, 2019, 10:22:54 pm
The jump from implementing a bit of logic in a CPLD to building a whole system in a FPGA is not as large as it first seems, because there are already tested working softcore CPUs and complete systems available.

That said, if you want to do something, go ahead and try using a CPLD to replace some of the logic, it's a fun project that costs very little to try. You can get Xilinx XC9500 series parts on cheap little dev boards from China, you'll also need a platform USB cable which is about 25 bucks from the same sorts of sources and the free version of Xilinx ISE. If you succeed then you'll be on your way to more fun and advanced projects, if you fail you are out very little and if funds are tight you should be able to sell the hardware you bought for at least half what you paid.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: ebastler on May 28, 2019, 05:46:43 am
The alternative arrived at the moment, with the Z80, would be to use an FPGA with the corresponding core, but for now I prefer not to get into something that is complex and expensive, because I would have to hire it or learn to do it by myself.

I think this discussion is going round in circles, largely because you have not told us about your intended use case. It seems that you are not doing this as a hobby project, but for commercial use? And that you have existing boards and binary program code, which you want to replicate in a "reasonably" future-proof and cost-effective manner, right?

But you would need to get more quantitative to assess what "reasonably" means here:
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: luiHS on May 28, 2019, 07:41:48 am
I think this discussion is going round in circles, largely because you have not told us about your intended use case. It seems that you are not doing this as a hobby project, but for commercial use? And that you have existing boards and binary program code, which you want to replicate in a "reasonably" future-proof and cost-effective manner, right?

But you would need to get more quantitative to assess what "reasonably" means here:
  • How many (more) years of production life do you want to get out of the new board version? That will affect the choice of technology/components.
  • What annual quantity of boards are you expecting? That will inform the balance between development cost and parts cost on the boards.
  • Any other constraints we should know about? E.g. is low power consumption or a small form factor important?


Thanks, but with the answers that I have read I already realize the options that I have from a technical point of view, leave everything as is, CPLD or FPGA.

Other factors of an economic or commercial nature are not matters that I have considered to treat them publicly.

Right now, I just want to leave the circuits as they are or replace the 74xx chips with a CPLD, nothing more. Maybe in the future, and if there is no other option, consider migrating to an FPGA that replaces the processor and 74xx chips.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: ebastler on May 28, 2019, 10:36:33 am
Thanks, but with the answers that I have read I already realize the options that I have from a technical point of view, leave everything as is, CPLD or FPGA.

Other factors of an economic or commercial nature are not matters that I have considered to treat them publicly.

Right now, I just want to leave the circuits as they are or replace the 74xx chips with a CPLD, nothing more. Maybe in the future, and if there is no other option, consider migrating to an FPGA that replaces the processor and 74xx chips.

If you feel comfortable making that judgement call, that's fine of course. Your approach implies a limited design effort and somewhat limited design life due to the already aging components. There certainly is a range of expected product lifetime and quantity where this makes good sense. Best of luck with the project!
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: zitt on June 04, 2019, 10:39:44 pm
If you look at his signature... he lists a facebook page which looks to be a company whom designs boards for pinball machines.
I'm only guessing; but he's probably considering replicating Pinball "boards" which typically has 10s/20s of TTL chips on them... tied to a 6502/6800/68000 cpu and maybe some older PIAs.

Again; I'm guessing he's having trouble sourcing the older TTL and is looking for find another way of getting form/fit/function equivalence without reverse engineering the operation of said boards and ensuring 100% compatibility with the game "software".

Again; this is all a guess based upon what us a-typical Pinball Nerds tend to do for fun. Case in point:
http://pinball-mods.com/blogs/?p=278 (http://pinball-mods.com/blogs/?p=278)
I need to get back to this project... can someone teach me how to sleep less with no heath impact?

Not sure if he's trying to be vague to keep people out of his sandbox... or if it's a language issue... or what.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: FrankBuss on June 04, 2019, 10:48:51 pm
For pinball machines, you could just use any modern ARM microcontroller, no need for high speed logic gates or FPGAs. Of course, you would need to re-implement the code for the 6502 etc., but this might be even a good idea, you could do it in C, it would be easier to maintain than the probably in assembler coded old CPU code.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: zitt on June 04, 2019, 11:03:53 pm
It's a software porting excersize which many hardware hackers have issue with.
I'm not saying it's not doable... it's just a different methodology that many people don't want to do.

There are plenty of examples of pinball people who start "re-implementation" projects only to end up doing their own thing.

I actually went down a rabbit hole recently of trying to disassemble a modern ARM design from Stern. I think this was the thread which started me down that path: https://www.avrfreaks.net/forum/trying-disassemble-and-am-super-confused (https://www.avrfreaks.net/forum/trying-disassemble-and-am-super-confused)
.. but the premise is that I wanted to disassemble the game ROMs so that I could "patch" it to add the ability to turn on a specific transistor during a specific game mode.

I spent several hours... or maybe a day or two trying to find a working, free (opensource) de-compiler for the ARM which ran it windows.  IDA Pro licensing wasn't something I was going to "buy" without a working trial and some confidence would get me to the end goal.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: T3sl4co1l on June 05, 2019, 01:27:42 am
Port? Heck, just emulate it.  Some very good 6502 emulators out there after all; just patch on the correct bus devices and write the interfaces for the new devices. :)

Tim
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: FrankBuss on June 05, 2019, 02:45:51 am
Right, emulating it would be possible, too. It is possible to emulate a full C64 with a slightly overclocked STM32F4 microcontroller:

https://hackaday.com/2014/10/23/a-complete-c64-system-emulated-on-an-stm32/

The VIC for the graphics output would be really complicated, but if you don't need this, a bunch of old CPUs instead should be no problem to emulate. But not as elegant as re-writing it from scratch in C, which has the additional benefit that it can be used for other pinball machines as well, or for implementing other game modes or easier changing existing game modes.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: james_s on June 06, 2019, 12:05:00 am
I'm a fan of using FPGAs for this sort of thing, I've been doing that with early video games, the hardware is similar but pinball hardware is not very interesting without the rest of the machine. I have recreated several sound boards from pinballs though.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: guenthert on June 23, 2019, 05:12:52 pm
The jump from implementing a bit of logic in a CPLD to building a whole system in a FPGA is not as large as it first seems, because there are already tested working softcore CPUs and complete systems available.
[..]
Keep in mind that this seems to be an embedded system (regardless whether or not it is a pinball machine), there you're likely to encounter bit-nibbling and other time critical tight loops, particularly if among the support chips there is no counter (the original Z80 didn't have counters).  So unless the simulation is cycle-perfect, there is a good chance, it won't work.

How difficult is it actually to source the 74xx chips?  I see them still here and there, e.g. https://www.jameco.com/c/ICs-Semiconductors.html (https://www.jameco.com/c/ICs-Semiconductors.html)
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: luiHS on June 24, 2019, 03:54:20 am
How difficult is it actually to source the 74xx chips?  I see them still here and there, e.g. https://www.jameco.com/c/ICs-Semiconductors.html (https://www.jameco.com/c/ICs-Semiconductors.html)


There is no supply problem, all 74xx are available. The idea is to make a more compact design, in which all 74xx are replaced by a single CPLD.

Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: james_s on June 24, 2019, 05:12:34 am
There are some cycle accurate soft cores out there, I know there's one for the 6502, and the 6809, I'm not sure if there is a cycle accurate Z80 and I have not been able to find a cycle accurate 6809. For most old arcade hardware this doesn't seem to be an issue, some boards have a timer IC, the 6532 RIOT is common on 6502 boards. Some do not though, the sound board that Williams used in a number of pinballs and video games uses a 6800 variant and the cycle inaccuracy causes some of the sounds to play at the wrong pitch. 
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: meandeev on July 23, 2019, 10:06:53 pm
There is no supply problem, all 74xx are available. The idea is to make a more compact design, in which all 74xx are replaced by a single CPLD.

I like this Idea! I like to repair old measurement gear full of logic IC as a hobby. So I have boxes of boxes full with 74xx. But never the one that I need for the recent project  :-)
So for a first test (or a full repair) it would be nice to have such a "universal" IC.

I found https://www.eetimes.com/document.asp?doc_id=1274659#, (https://www.eetimes.com/document.asp?doc_id=1274659#,) but the company doesn´t exist anymore.

One could buy it in 2012 https://web.archive.org/web/20120323140407/http://www.retrodevices.com/ (https://web.archive.org/web/20120323140407/http://www.retrodevices.com/)

but it was really expensive (why?) https://web.archive.org/web/20111104181944/http://www.retrodevices.com/rdttl5515.html (https://web.archive.org/web/20111104181944/http://www.retrodevices.com/rdttl5515.html)

Again, I would be happy to throw away my 74xx boxes that never( or seldom) have the IC´s that I need for the current project - having a few universal chips.

So a XC9536(XL) and a board would do it, isn´t it?


Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: zitt on July 23, 2019, 10:31:14 pm
There is no supply problem, all 74xx are available. The idea is to make a more compact design, in which all 74xx are replaced by a single CPLD.

Wonder what world he lives in?!
https://www.digikey.com/products/en/integrated-circuits-ics/logic-gates-and-inverters (https://www.digikey.com/products/en/integrated-circuits-ics/logic-gates-and-inverters/705?k=7400&k=&pkeyword=7400&sv=0&pv7=2&pv1989=0&sf=0&FV=ffe002c1%2Cffec004c&quantity=&ColumnSort=0&page=1&pageSize=25)
is not what I would call readily available.

Just because you can buy 7400 series logic on the secondhand market - does not mean you can get large volumes of these ICs for build a "new design". By all means; If you have a source for NEW 7400 series logic available from a major manufacturer please share. It's my understanding that 7400 series logic has been EOLed by nearly every major manufacturer. I don't think there are any "drop in" replacements.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: SiliconWizard on July 23, 2019, 10:49:24 pm
Indeed. The more readily available ones are the various later series such as HC, HCT (and still not all), and much more recent such as LVC, AUP and so on... but basic 74xx? Not really!
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: mariush on July 24, 2019, 02:04:08 am
I wouldn't do it ...
I mean if you buy these parts in volume, they're maybe 10 cents each ... so your parts cost less than 2$ for each circuit...and you're gonna replace them with a 4$+ chip?

Is it a space issue? if so there's versions of these chips in packages like 14-VFQFN (ex 74HC04BQ,115 (https://www.digikey.com/product-detail/en/nexperia-usa-inc/74HC04BQ115/1727-3216-2-ND/1022868) or 74HC00BQ,115 (https://www.digikey.com/product-detail/en/nexperia-usa-inc/74HC00BQ115/1727-3213-2-ND/1022865) so you could squeeze a bunch of these ICs in a tiny area, compared to DIP or SOIC versions of these chips.
To reduce space, you could make double sided tiny boards with 4 or more such chips, and have a 0.1" or 0.05" header on one side or both sides (like a dip chip).
You could make these tiny boards in 4 layers if you want to, to reduce trace lengths and so on ... make a big board at a chinese manufacturer and use v-scoring to cut these tiny boards from a big panel, if you need volume.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: digsys on July 24, 2019, 02:21:42 am
Contrary to others advice, I've done a lot of this recently - I've got back into repairing old plastics injection machines and various other types industrial machines.
I get at least 1-2 weird PCBs a week, full of "glue" logic and then out to bus-frame connectors / specialized I?F etc
The easiest / best approach I found is to trace out all the "glue logic", rebuild it, either an adapter PCB or CPLD / GAL etc and sometimes by an MCU. It takes a day or 2 to work out the logic, but it's well worth it. The "BIG" one, I've been working on for weeks has dozens and dozens of glue chips / MUXes etc, but it'll be worth it.
I actually like this sort of challenge - horses for courses.
Where are you up to? Decided on a part yet?
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: luiHS on July 26, 2019, 10:27:40 am
 
Finally I have not complicated my life with the solution of the CPLD, I have designed the new board with the original schemes, but I have reduced the size of all the components, and all that have been possible, which are the majority I have put SMD ( on the original board are all THT).

All the passive components are now 0402, the 74HCxx in TSSOP, PAL in TSSOP, the eprom in PLCC32, the crystal of 3.2x2.5mm and the RAM that is now in SOIC I will replace it for a TSOP.

The processors have not been able to reduce them, the TS68000 stays in PLCC and the other processor in DIP mounted in socket. As I assemble all my boards with my own Pick and Place, a Neoden4, assembly time is not a problem, it is very fast and convenient.

However, I would like, when I have time, to learn how to program CPLD, I'm sure I give it some use with new designs, or to redesign old boards.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: mariush on July 26, 2019, 12:24:28 pm
Looks nice.

I don't really agree with the use of 0402 resistors and capacitors ... it's pointlessly small, making difficult to rework a board if there's an issue. It's not like a 0603 part would affect the layout, there's plenty of room.
Also not a very big fan of those surface mounted electrolytics - I'd be concerned about vibrations and about someone accidentally hitting those and have them fall off the board.
It wouldn't cost you anything to add through holes in parallel with the surface mount footprint for those two capacitors, so you could install electrolytic capacitors flat, like time crystals if you wanted to (with a drop of selastic/glue material to hold it and reduce strain of leads in case of vibrations.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: luiHS on July 26, 2019, 03:01:05 pm
Looks nice.

I don't really agree with the use of 0402 resistors and capacitors ... it's pointlessly small, making difficult to rework a board if there's an issue. It's not like a 0603 part would affect the layout, there's plenty of room.

Thanks.

I cannot have in my Pick and Place machine, the same component value in several sizes, the space for reels is limited and I am already running out of space. 0402 because I have designs in which that size is necessary, and that it can be used perfectly on any other board.

Also in tubes and reels, they occupy much less TSSOP chips than SOIC, in the Pick and Place. I reduce everything in size, and for now they are all advantages.

The Neoden4 is working very well for me to put 0402, I could even put 0201, but with 0402 I have enough for everything I design, for now. For me, definitely, 0402 is the best. I have no problem checking my boards, even to repair any, I always use the microscope, optical for repairs, and the electronic to check welds.

Quote
Also not a very big fan of those surface mounted electrolytics - I'd be concerned about vibrations and about someone accidentally hitting those and have them fall off the board.
It wouldn't cost you anything to add through holes in parallel with the surface mount footprint for those two capacitors, so you could install electrolytic capacitors flat, like time crystals if you wanted to (with a drop of selastic/glue material to hold it and reduce strain of leads in case of vibrations.

I manufacture many boards and I need to optimize time and comfort to the fullest. Everything that is SMD is welded in the oven and does not require any special manual treatment, which always means a waste of time.

I have stopped using THT components for quite some time, except for some power connectors, and the time and comfort savings are maximum. I would not go back in any way to the times of doing it all with THT, even using solder pot, just for convenience it is infinitely better to use SMD.

Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: legacy on July 29, 2019, 12:44:00 am
I would not go back in any way to the times of doing it all with THT, even using solder pot, just for convenience it is infinitely better to use SMD.

Except, when some chip is damaged or has some quirks (1) and you have to desolder it. SMD is bad in this case.

(1) quirks
Example1: someone at Palm decided to program the flash of their PDA with write protection set only for the second block, which makes no sense since it contains the graphical Logo and the Copyright. I mean, a malicious program running in the PDA can erase the whole operating system, but even if it issues the command "flash_erase_all()", the block2 isn't touched.

Does it meant that the graphical Logo and the Copyright are probably more important than the OS? Who knows, anyway, if you want to hack an old PDA, no way, you have to desolder the flash because it's not possible to unlock the block2 of the flash without applying high voltage to a specific pin, which would destroy the around circuits; and just to make you crazy on something, the SMD-flash-chip has a glue/resin on its back, and it's located too near SMD-resistances and capacitors, which makes the desolder procedure a nightmare   :palm:

Example2: the terrible "supervisor chip" that you usually find in a UNIX workstation is also usually SMD and usually prone to die after you have already paid for the good and left the positive feedback to someone on eBay. What does happen when this chip die? The system simply will no more start. And to solve the problem you have to replace the chip.

Now, the problem here is that the chip is usually between two PCI slots, under something, and too near to something that can bend when you apply hot air simply because it's too hard to be protected with tape. Moral of the story ... it usually ends with a cry.

----

How would this end with a DIP-chip installed in a DIP socket?
With you removing the chip in a click. A piece of cake  :D
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: Kjelt on July 29, 2019, 10:10:26 am
Except, when some chip is damaged or has some quirks (1) and you have to desolder it. SMD is bad in this case.
I don't know. I also had my share of disaster with TH chips where there were large ground planes attached so you just could not heat the pin enough to desolder it.
We all had the experience that the via's stuck on the pins after extracting the chip etc. etc.

With SMD the cleanest way is to cut the legs with a very small exact cutter.
If the legs are under the chip or BGA you need a hot air gun with specialized nozzle with vacuum cup.
So you need different tools and techniques.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: SiliconWizard on July 29, 2019, 02:08:52 pm
Yeah. Desoldering TH chips through 8 layers or more (like on motherboards) was often a nightmare, so...
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: legacy on July 29, 2019, 02:12:46 pm
Yeah. Desoldering TH chips through 8 layers or more (like on motherboards) was often a nightmare, so...

DIP chips on DIP sockets, you do not have do desolder them.
You cannot have (cheap) SMD sockets for SMD chips, you have to desolder them.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: wraper on July 29, 2019, 02:13:01 pm
How would this end with a DIP-chip installed in a DIP socket?
With you removing the chip in a click. A piece of cake  :D
It will probably end up DOA even before put in operation if sits on the shelf long enough. Using sockets ensures poor reliability. Especially when socket doesn't cost more than IC itself (unless IC is very expensive). And in harsh environments all sockets will suck anyway, just to different extent. When soldered, SMT is way easier to replace compared with DIP.
Using sockets for everything is counterproductive. Only using for some programmable/upgradable chips makes some sense. And even that basically lost justification nowadays, since you usually have some serial interface for in circuit programming anyway.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: legacy on July 29, 2019, 02:31:10 pm
SMT is way easier to replace compared with DIP.

Neither replacing the SMD-flash on my Palm-PDA nor replacing the Supervisor chip in my UNIX workstation were an easy task, but rather a mess! In fact, this cost me 250 euro (including shipping to them/and back to me, UPS was something like 20+20 Euro) because I was not able to do it by myself, even if I own a semi-professional Aoye Int2703A soldering station with which I have soldered a lot of SMD boards (e.g. the last one Amiga1200 clone), and I, of course, tried to do by myself with those chips to replaced, but then realized that I had better ask someone with better skills and tools, and even the company I paid for the job, said it was a very hard task, especially replacing the Supervisor chip!

I paid something like 210 Euro for replacing two chips, I wouldn't say that it was easier and cheaper than replacing a chip on a DIP socket  :-//
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: wraper on July 29, 2019, 02:40:12 pm
I wouldn't say that it was easier and cheaper than replacing a chip on a DIP socket  :-//
You just would pay upfront 3x the price for boat anchor which probably would fall apart even before delivered.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: legacy on July 29, 2019, 03:00:27 pm
You just would pay upfront 3x the price for boat anchor which probably would fall apart even before delivered.

You have a problem, and you are looking for a solution.

Before shipping to that company, I asked a lot of guys, colleagues, and friends. Most of them answered that "replacing an SMD chip is a piece of cake", like if it was the canonical sentence to say, but when they saw the motherboards and understood what needed to be done, well at the end of the month, nobody did actually did the job.

I waited a second month, and again I only collected funny answers like "oh, sorry, I am so busy with the new vegetable garden, this year I want to grow onions", "oh, sorry I have to go the dancing club with my wife otherwise she will ask for divorce", etc, and yet again nobody wanted to do the job. I even offered money, and again no one accepted the call.

In the end, two months later, I had two choices: to trash everything and forget it, or to send an email to the company and to be prepared to pay a very salt bill  :-//
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: legacy on July 29, 2019, 03:04:03 pm
Using sockets ensures poor reliability.

I made my first SBC in 1992. It's a simple 8051 board with each chip (CPU, RAM, ROM, buffers, latch, etc) on a DIP socket, but not the tulip-kind, the other kind. We are in 2019, so, say ... 27 years later it's still working! Oh, and the ROM has been removed and reinserted a lot of times because my first ROM emulator arrived only 8 years ago, and before it, I had to remove the UV-ROM, erase it with a UV-lamp eraser, reprogram it, and reinstall it.

I don't know the exact number, but for sure the ROM socket has seen a thousand re-insertions!
 
So, I think you were talking about tulip DIP sockets, which, in my opinion, are poor reliability simply because everything I have tried .. has only allowed 50 re-insertions before failing.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: SiliconWizard on July 29, 2019, 03:14:53 pm
Yeah. Desoldering TH chips through 8 layers or more (like on motherboards) was often a nightmare, so...

DIP chips on DIP sockets, you do not have do desolder them.

Uh huh. Well, maybe all the boards you design with TH chips have a socket for ALL chips (not going to discuss reliability as it has already been discussed), but it's not the case for most boards produced at a reasonable volume. The added cost of the sockets + production cost of inserting the ICs in them is not worth it.

So yeah, that may be a solution for your very own developments, but not a general truth. I have never seen a commercial motherboard, even from over 30 years ago, that had sockets for all ICs...

So you're basically talking about your own needs for repairing your own boards. I have had to repair a few PC motherboards in the past with a few TH chips (such as BIOS Flash memory or backup memory ICs with a built-in battery, and no socket!) It was very hard not to end up destroying a couple through holes... (and you had to be lucky enough that it would still work.)

You cannot have (cheap) SMD sockets for SMD chips, you have to desolder them.

Well, that's not entirely true. Back in the days where TH components were still popular, PLCC packages started to appear. You could either directly solder them as SMD components, or put them in sockets. So if you're personally still willing to have sockets for your ICs, I would suggest you consider using PLCCs. Of course you won't find everything in that kind of package, but there are still memory ICs, CPLD and old CPUs available. Best of both worlds in that regard.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: wraper on July 29, 2019, 03:17:28 pm
You just would pay upfront 3x the price for boat anchor which probably would fall apart even before delivered.

You have a problem, and you are looking for a solution.

Before shipping to that company, I asked a lot of guys, colleagues, and friends. Most of them answered that "replacing an SMD chip is a piece of cake", like if it was the canonical sentence to say, but when they saw the motherboards and understood what needed to be done, well at the end of the month, nobody did actually did the job.

I waited a second month, and again I only collected funny answers like "oh, sorry, I am so busy with the new vegetable garden, this year I want to grow onions", "oh, sorry I have to go the dancing club with my wife otherwise she will ask for divorce", etc, and yet again nobody wanted to do the job. I even offered money, and again no one accepted the call.

In the end, two months later, I had two choices: to trash everything and forget it, or to send an email to the company and to be prepared to pay a very salt bill  :-//
If board is so densely populated that it's hard to replace SMD component, there is simply no space for DIP. And it's not a problem of SMD per se. Also as long as there in no bottom pad, you can use soldering iron(s)/tweezers and low melting point alloy to remove the component in complicated areas like nearby plastic parts.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: ebastler on July 29, 2019, 03:25:38 pm
[...] SMD-flash-chip has a glue/resin on its back, and it's located too near SMD-resistances and capacitors, which makes the desolder procedure a nightmare. 

[...] "supervisor chip" that you usually find in a UNIX workstation [...] usually between two PCI slots, under something, and too near to something that can bend when you apply hot air simply because it's too hard to be protected with tape.

When you can't get in with hot air, there is always the option of destructive removal: Carefully cut all pins at the chip body with a Dremel or such. Then unsolder the remainders of the pins from the PCB one by one with a soldering iron.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: legacy on July 29, 2019, 04:06:04 pm
you can use soldering iron(s)/tweezers and low melting point alloy to remove the component in complicated areas like nearby plastic parts.

yeah, that was the main problem, the chip was between the plastic PCI slots, and near the plastic of a SIM72 connector, so I preferred to pass.

I didn't have any appropriate tweezers, and I have never used low melting point alloy. I saw the hot air was going to damage the plastic, so I stopped.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: wraper on July 29, 2019, 04:23:26 pm
I saw the hot air was going to damage the plastic, so I stopped.
FWIW many plastic parts, especially SMT, survive hot air just fine unless you set too high air temperature. Preheater helps a lot. Also I often cover them with DIY covers from solder paste stencils I no longer need.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: legacy on July 29, 2019, 04:27:16 pm
Anyway, why the SMD-flash on the PDA was attached to the PCB with resin? That's really evil!

Why do you need glue or resin? I experimented a true nightmare on a second already dead PDA ...  the typical lead-free solder has a melting point around 220 degrees C, so I did preheat the board close to 200 C and continued with the hot air gun, but when I tried to remove the chip, I found there was "something" under the chip, and it was working as glue. Then I realized that it was a thin film of resin, or something, and it was so resistant to the hot air that I was not able to remove the chip, even if I used a lot of force on the extractor with the hot air gun at 300 C degree.

In the end I destroyed the PCB, to check what was wrong. And I am still shocked to have found a kind of glue under the chip. I still do not understand the reason for this.

I have removed the same SMD-flash chip on my Motorola EZ development board. Thanks to a "relaxed" design (I mean the board is really large, 110x100mm, with a lot of distance between components) there is a lot of space around the SMD-flash, no plastic near the area, and there is neither resin nor glue under the chip, so I didn't experiment so many troubles!
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: SiliconWizard on July 29, 2019, 04:35:40 pm
I saw the hot air was going to damage the plastic, so I stopped.
FWIW many plastic parts, especially SMT, survive hot air just fine unless you set too high air temperature. Preheater helps a lot. Also I often cover them with DIY covers from solder paste stencils I no longer need.

Oh, SMD plastic packages survive it fine usually. Sometimes the very small packages will tend to degrade if you heat them a bit too much though. But I'm talking about the UDFN or very small BGAs, and there's usually little reason to overheat them as they will desolder easily. (Sometimes when glue has been used to assemble them though, that's a pain.)

Many connectors made of plastic do not like heat as much though. Some PCI/PCIe slots are very sturdy, others will melt.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: luiHS on July 30, 2019, 02:05:29 am
yeah, that was the main problem, the chip was between the plastic PCI slots, and near the plastic of a SIM72 connector, so I preferred to pass.

I didn't have any appropriate tweezers, and I have never used low melting point alloy. I saw the hot air was going to damage the plastic, so I stopped.


To protect heat sensitive components, you can cover them with kapton tape.

Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: legacy on July 30, 2019, 10:33:25 am
To protect heat sensitive components, you can cover them with capton tape.

[..]
Now, the problem here is that the chip is usually between two PCI slots, under something, and too near to something that can bend when you apply hot air simply because it's too hard to be protected with tape. Moral of the story ... it usually ends with a cry.
[..]

Kapton tape
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: wraper on July 30, 2019, 10:38:50 am
To protect heat sensitive components, you can cover them with capton tape.
Kapton. It's heavily overused on those pictures though. Using it over small components can be even counterproductive. It may stick to to them and when solder melts, lift them from PCB.
Title: Re: CPLD to replace 74xx chips in an old circuit
Post by: T3sl4co1l on July 30, 2019, 08:08:54 pm
It also may not do much to components that need it -- plastic connector housings aren't terrifically conductive by themselves, so the Kapton(R) tape is merely comparable in conductivity and doesn't end up doing much.  Layers are needed, perhaps alternating foil and film, to make something more like a "space blanket".  A pocket of air around the connector, paired with a fan to deliver cooling air, would also be helpful.

Note that you really need the high temperature silicone adhesive tape -- the cheaper (and stickier) acrylic adhesive melts and decomposes at soldering temperature.  Any gaps in the barrier let hot air through, melting holes in nearby connectors.

Tim