Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[Moved]Want to hire:CPLD developer for small logic consolidation project,74xx to CPLD

Status
Not open for further replies.

prdeltoid

Newbie level 5
Joined
Nov 14, 2011
Messages
8
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,658
Is there someone here who can be hired do small projects involving programmable logic?

Specifically, I need to have old cards (2-sided boards, 30+ years old) of low speed simple logic +5v digital cards redesigned into single chip solutions, basically taking each card of 30-40 logic chips (7438, 74LS244, 74LS153, 74LS283, 74LS138, 2114 RAM, 7116 PROM, etc.) and migrating them into new CPLD (preferably something cheap like a Xilinx XC9500), where one card of 40 chips becomes one chip.

Once that is done successfully, I need that done on 16 more cards, then to further combine those chips into fewer chips, possibly with one CPLD replacing 17 cards that had 40 chips each.

If you can do this type of engineering work with only a sample of the original board to work with, please respond directly, or discuss in the forum if there are interesting issues to debate.

Thank you.
 

Xilinx XC9500 is not suitable because it has no memory.
Since you also need (P)ROM you should look at a 2-chip solution.
A small FPGA from Xilinx or Altera which loads it's configuration from a separate memory chip can do the job.
The ROM is then emulated with a pre-loaded RAM block.

Where are you located?
 

Thanks for the reply std_match.

Located in California.

I didn't add this, but I knew all along it wasn't going to literally fit in a single chip, because it has a few of the tiny 64-bit RAM chips, and two of the other cards (to be done later) have the 2114 1,024 x 4 bit static RAM chips (which themselves are the primary reason these 30+ year old cards are failing). All the cards have PROMs (usually TBP24S10N or the similar N82S147N), some have one or two, some have as many as six of those.

My thinking was to use a CPLD because any modern FPGA is about 1,000x what is needed, requires external memory to boot from, isn't 5v compatible, and costs a hell of a lot more---for no reason of use to me or my application. The target price of the whole PCBA (per card, before combined into a single system card) should be $10 or so. It isn't set in stone, and due to the low volume that will be needed, I'd surely trade off chip unit price for more affordable development if it turns out that way.

Here's the thing with good DFM and purchasing decisions, everything counts.

When you give in to someone who says "this chip is only a few dollars more", that adds money, the extra stuff it needs adds money, it may well cost more in prototyping tools and samples, it needs level shifters, RAM, EEPROMs, then comes the 6-layer PCB, and the resulting board, as nicely as it may work, is many, many times the target cost, and all for nothing because 99% of the resources thrown at it will never be used.

Some PGAs cost $80 a chip, and I don't know of any that cost $1. When someone says, "this chip is only a few dollars more, that's no big deal", well, it IS a big deal when you are buying a thousand of them and don't want one line item on the BOM to cost $17,000 when you are setting out to make the boards that may or may not ever make any money.

I learned this years ago with an MCU-based small product. I set an absolute requirement as to what MCU it was to use (a $1.15 part), and specified that many hardware-based functions were to be done in software, eliminating many off-chip components. I overruled anyone who said it needed a bigger, smarter chip with more hardware resources. It was a vastly more difficult design cycle, but it worked. This resulted in a much cheaper, smaller, faster board, and a dirt cheap product that absolutely no one could sell against (because everyone else was using all those things and never really counted the cost of anything until it was done). It didn't make a lot of money, but it was profitable in many ways.

If an FPGA proves to be cheapest for a variety of reasons, by all means, we can use it. I'm just saying there is cheaper stuff and most people grab for a lot more resources than they need.

In the end, these can probably run on any power supply and logic level (3.3v or less) once consolidated to a few chips, but testing and using them one by one will be a bear without being compatible with the existing antique 5v TTL microcomputer technology, so I'd like to use a 5v tolerant chip if possible, it will make everything a lot easier.
 

Depending on the card interface and the speed requirements, it might be possible to do it with one-chip microcontroller/dsp, in software.
However, I guess that an FPGA is the best solution for you final goal to replace the whole system.
To use a completely different approach to redesign one board seems to be a waste of work.
An FPGA + boot memory to emulate one PCB maybe cost less than $10 in components (if not too many 5V I/O signals).
To emulate the whole system, the components probably cost just slightly more.
 

Why not use an Altera MAXII CPLD, this would give a one chip solution with plenty of space, the only problem is that it is not 5v tolerant.
 

Why not use an Altera MAXII CPLD, this would give a one chip solution with plenty of space, the only problem is that it is not 5v tolerant.

I have not used this family, but a quick search tells me that they have no RAM and the largest devices cost much more than the smallest FPGA's, without offering more logic.

It looks like the Xilinx Spartan 3AN FPGA family can offer a one-chip solution (except the 5V I/Os).
However, it is probably cheaper with a RAM-based FPGA + boot memory.
 

I'd be interested but I'm located in the NL so not able to stop by & have a look at the gear or test things on-site.

From your description I'd guess a CPLD plus perhaps a few RAMs / (Flash?) EEPROMs where needed, might be suitable if the goal is to have plug-in replacements for individual boards. But if the goal is to replace a system built with X number of such boards, I'd skip the intermediate step & have a look at what's needed to replace the whole. Probably a FPGA-based 'something' would then be in order (and 5V compatibility one of the smaller issues). Various small RAMs / ROMs could then (mostly?) be implemented in FPGA block RAMs, thus needing very few external components if any. Interfacing eg. 3.3V logic to TTL isn't difficult, and becomes a relatively smaller issue as the logic vs. I/O ratio increases (read: the more logic/boards you can integrate).

However: in discrete logic designs there's often places where correct function depends on timing/IO characteristics of the logic families used. So it wouldn't be a matter of 1:1 "74xx out, CPLD-generated signal in", but rather a "determine what a group of 74xx's does, and come up with semi-complex (?) construct in CPLD or FPGA that does equivalent". Depending on requirements & how well original design was done, that might be a very non-trivial task. So a lot would depend on numbers, budget, how 'mission-critical' the original system is, how many there are of those, all the same or different mix&matches of boards, etc. You can be sure that testing replacement hardware would be very big part of the job, so there would need to be provisions for that (for eg. a complete system @ developer's location would be ideal, or some other setup where [developer change -> test in full system] cycle is short).

It would help to get a birds eye view of how original system(s?) is used, what sort of environment, what is used for input/output equipment etc. This to get an idea of requirements for replacement. I'm inviting you to contact me directly with specifics if you feel uncomfortable posting details on this forum. See "Home page" on my user page for contact details. I'm not a professional and my experience with programmable logic is limited, but as result of longtime hobby in the field of 80's homecomputers (Sinclair, MSX, ...) and repairing, designing + building hardware extensions for those, I know decades-old logic like the inside of my pocket... ;-) And I've successfully done some small CPLD projects.

because it has a few of the tiny 64-bit RAM chips, and two of the other cards (to be done later) have the 2114 1,024 x 4 bit static RAM chips (which themselves are the primary reason these 30+ year old cards are failing).
These are easy to replace with ordinary SRAMs like 2Kx8, 8Kx8 or 32Kx8. 5V versions of those are still available brand new.
 

Hi guys, thanks for the great responses.

A quick side question to discuss, as noted before, this doesn't have any protected or custom chips, and only one ASIC, a TMS2793 floppy disk formatter/controller.

Can the TMS2793 be somehow replaced with programmable logic?

I'd assume that it is such old junk that no one bothered to make it a licensable core IP.

It was actually made for a 1970s floppy chip that ran on a split supply (the only thing in the whole box that wasn't single-ended +5v TTL), but the TMS2793 is a much newer chip that also works fine.
 

Can the TMS2793 be somehow replaced with programmable logic?
Unlikely since the logic inside is a 'black box', maybe chip-level software emulation exists for systems that use this IC but that's not good enough to re-implement the chip itself.

I'd assume that it is such old junk that no one bothered to make it a licensable core IP.
You'd have to talk to TI (and/or Western Digital) about that, I assume they have records of what logic is in the TMS2793. But unless you'd want to mass-produce something incorporating a 2793, I doubt that would bring anything.

If that's the only ASIC to keep around, it wouldn't be much of a problem since TMS2793 IC's aren't that hard to obtain - they were used in many MSX2 homecomputers which were produced in 100 thousands or even millions (and probably a number of other floppy-equipped systems). And it's very rare that the FDC chip itself causes problems with these machines. Coincidence wants that I have a couple of those TMS2793 IC's myself - all still working as far as I know.

One could use another (newer / better available) FDC chip, but that would require a re-write of the controlling software. Rather than get rid of TMS2793 (& keep floppy drive around), it's probably easier to get rid of the need for floppies, by using newer tech like CF/SD cards.
 

Here is a photo of the first board as an example of what the cards are. This is one of the more complex of the 17 that need to be converted to programmable logic.

reg-28-memory-card-good-front-600DPI.jpg
 

This looks like an interesting project! (but I don't have the time to participate...)

The first step is to analyze the boards by creating a schematic and understand what's going on.
One important thing about the conversion is the usage of asynchronous or synchronous memories.
The original RAMs and ROMs can probably be used asyncronously, but some embedded memories in programmable logic must be used synchronously.
This probably prevents a "stupid" conversion by just entering the reversed-engineered schematic.
If you understand what's going on, the conversion should be straightforward.

I think you should eliminate the TMS2793 floppy controller by creating something compatible that works against some other storage medium.
It is not hard to emulate the behavior of the controller + floppy.
 

One important thing about the conversion is the usage of asynchronous or synchronous memories.
The original RAMs and ROMs can probably be used asyncronously, but some embedded memories in programmable logic must be used synchronously.
This probably prevents a "stupid" conversion by just entering the reversed-engineered schematic.
If you understand what's going on, the conversion should be straightforward.
Yes, and with a mixup of 74xx, 74ASxx, 74Sxx and 74ALSxx parts - wouldn't surprise if there's some race conditions in that logic which happen to work correctly with the parts that are fitted. Must be eating a significant amount of power too. Anyway, doesn't seem like a particular difficult or complicated project (just time-consuming)... Without interesting IC's, this system would be something like a discrete logic CPU? Or just logic, processing I/O signals (where the 'smarts' is in the logic itself). :?:

Btw. some IC date codes would indicate build date around '84-'85? Are those retro-fitted, or are these boards not exactly 30+ years old?
 

I can re design the boards. I have designed floppy controller and syn and async memories in FPGA.
 
Last edited:

Sorry to vanish from my own thread for a week! I had too many projects boiling over last week. I really appreciate all the responses here, and all the input from everything.

I should explain a few things.

First:

I am trying to get started on this project four ways at once.

The four ways are different resources, 1) engineers I know in the US, 2) engineers I don't know in the US, 3) engineers/companies overseas, and lastly, 4) this EDA forum, which probably should have been my first stop instead of my last.

#1 is an engineer with decades of experience who has done a lot of very good work for me over the last 14 years, but who lacks specific PLD experience. I have been waiting and waiting on it to be done for a long time, and my gut feeling is that the work hasn't even been started, and even if it has, at this rate I'll be dead ten times over before all 17 cards get knocked off into programmable logic. If that first card gets done by the engineer tasked to it, great, but the pace will guarantee total failure of the project, because I needed 17 cards done in the time it has already taken to (not) do one. I hope to continue working with this engineer forever, but this CPLD bit isn't one of his core competencies.

So, I will need more help on this. Due to the modular nature of the project, there is no reason that it can't be done by two (or 17) different people. Easier for me to one-stop-shop it for sure, but I'm more than willing to race two free lance engineers down the street if it helps pick up some speed.

If the existing engineer actually completes the first card he's been tasked to (not the one shown here, but a similar one), it will be the first time he's done that. Not that he can't do it, just that I feel at this point with 0 tangible progress after months, it would be better for someone who has done many, many such projects and won't need to learn 50 things just to start. Also, doing it or not, the pace is not acceptable, there are some 16 more to do. Someone who knows what they are doing can do this first card in two work days.

The #2 "engineers I don't know in the US" method will almost surely be far, far beyond my budget for this (or any of my projects).

The #3 "engineers/companies overseas" have real language problems, and often claim to be able to do anything under the sun, so long as "anything under the sun" is taking an existing card, desoldering the chips, scanning the bare PCB onto film, then making exact PCBA copies of the cards. They can't possibly grasp what I am saying, and think it is totally reasonable to mass produce cards that are chock full of DIP parts that haven't been made since Reagan was President, and using programmable devices for which programming services/programming hardware hasn't existed for decades. Most of the few that actually want to put some engineering into it quickly say that the way to do it is with a microcontroller like a PIC or Atmel, proving they don't even barely understand how a dumb logic board sits on a CPU bus.

This #4 method of trying to get someone from the forum isn't getting a lot of offers to take on the job, but is generating by far the greatest number of intelligent comments, so much so that I am sure that numerous people here can do this if we can only agree on platform and price.

Second:

The original system is not going to be available to someone working on the project unless a seriously complicated problem requires it. I am paying for this and need to own the engineering (schematic and VHDL code), and the only way I am truly going to own it is if it is kept private. Although some private parties could (falsely) claim to own rights to these cards or newer cards from the same manufacturer, the claims are bogus because all the IP was abandoned decades ago, and if they were valid, they'd still be invalid, because the creditors were never paid, banks that no longer even know it ever existed would own it, not anyone who'd like to claim it now. Once I am producing CPLD-based designs, I own that and it is beyond challenge. Since I didn't develop/patent/copyright it, I can't claim to own what exists now, and anyone who has all the resulting schematics and VHDL code and knows what it is will own my project/product line as well as I do, making this entire task a waste of time for me. So, both sides are better off this way.

Although it might be really handy to have the real system on hand, think about it, if you can't move a dumb logic board of forty 7400 series chips to programmable logic just by duplicating the schematic, you don't understand logic or programmable logic. I can assure you that there isn't any black magic on these boards. The first version of this was designed by guys at a college in the mid-70s, and they were software guys wanting to make something to run a compiler, not even guys from the electronic department. This was probably a 1MHz state machine, and these cards are as low speed as you can find. Just look at the devices used.

BTW, this set of cards was redesigned up to around 1980, and then came from a small company that was formed, and they were clearly getting from chip brokers even new, as any given card has a date code spread of 3-5 years, and one has a 7400 and another one has a 74LS00 in the same position. They didn't use one family over another for speed reasons or other attributes, they did it because that was what was cheaply available then. I can tell this because sometimes the cards are using logic families (AS, ALS) that simply did not exist when the card was designed!

I should also note that this logic needs to be put into a programmable device verbatim, without any optimizing of routines or "improvements". This system has peripheral functions which may depend on any quirks that existed in the original, and making an emulation of it or making it "better" defeats the purpose of the project. This, however, doesn't make the project more difficult, it makes it easier. Put it in a chip and I'll tell you if it works!

Third:

If Intel were doing this, it might make a lot of sense to logic analyze the entire system, and knock it off en bloc, moving all 17 cards to one chip right from the start, because they have a team of engineers, an infinite hardware budget, and will be delighted if it gets done for under $6,000,000.00.

However, I am doing this out of pocket without much budget, and the way I am saying that I want it done makes the most sense, period.

This also applies to the 5v compatibility issue.

Sure, some of the cards with crystals and such will require more chips and other components, but most of the cards, and this one in particular, can be put entirely on one chip, period. I want that to be done remotely by an engineer who can put it all on one chip, and I want to put that chip on a little carrier board that has edge card fingers just like the original. I will plug that carrier card into the original system, and run it. I will then report back to the guy "yes, it works", or "no, it doesn't". If yes, move to the next one ASAP. If not, then look at your code, you made a mistake in there, but with a maximum of 41 or so 7400 series chips per card, it shouldn't be too hard to find the place where the mistake was made. If a grand scheme type of guy had tried to put the whole system into one chip right from the start, it probably isn't going to work the first time, and there won't be a second time, because it will be the conversion of a 600 chip system and he won't have a clue where the problem is.

That's why I want to break the project into one card at a time, just the way the original people did it in 1975, and why I want to make it 5v, just the way the original people did it in 1975.

Fourth (related to three):

I will do all the prototyping on this project. I have limited design experience, but loads of prototyping experience. Everything I have designed and everything I have had designed for hire has been prototyped by me and only me. I managed the project this way for an entire series of MCU-based products, and the assembly programming was done 6,000 miles away by someone who never tried the code on a board and still hasn't seen the boards, didn't need to. Unorthodox, but it works for me, and reduces cost tremendously.

When we use a 3.3v chip for this instead of the 5v I/O chip that I want to use, I am the one who is going to have to make what could have been a single chip board into a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters.

Doing that 17 times? Not. If that makes sense to you, it only makes sense because you're not the one building stupid hardware 17 times for no reason other than not having used the right chip in the first place.

Fifth (related to four):

I am prepared for semi-failure on this project, and I want to work to prepare for that. Therefore, it is best to keep it as a 17-piece modular project. If some cards simply can't be done, the main project fails, but I can still manufacture very reliable replacements of individual cards to be used as spares to revive dead original systems. Being able to sell a few spares would help to recoup some of the cost of a failed project.


Though I hope to get the whole thing down to a pair of programmable logic chips, the more I think about it, the more I think it will make sense to have 17 chips on a motherboard. It will just make it a lot easier to get around and modify, etc..

Sixth:

I misspoke previously when I said the boards would probably need to have some ROM and RAM chips. That isn't correct, and for a lot of obvious reasons, it would be best not to use any external RAMs or ROMs. A discussion with an engineer last week reminded me that the function of RAM can be duplicated in programmable logic. It tends to burn the resources of the chips off on a fairly pedestrian function that a lot of people would prefer to do off-chip, but those resources are cheap now. A little reference on this:

Logic gate - Wikipedia, the free encyclopedia

This system has no non-volatile RAM. It has no flash, no EEPROMs, not even a single UV EPROM.
 
Last edited:

Std_match, thanks for the reply and for answering on the Altera suggestion above.

You mentioned the Xilinx Spartan 3AN FPGA family. The engineer I mentioned to already be working on a different card for me suggested that Xilinx Spartan 3AN FPGA family as well, he has a development board for it at his job, but I can't really get into that one just from hearing about it.

On the face of it, the cheapest Spartan 3AN FPGA is a ten-dollar chip, meaning that buying a thousand of them is a ten thousand dollar purchase, and I have never laid out that much money for a single line item on any BOM, nor can I really see why this needs that.

Other parts in that family are 8x that price!

This isn't a missile guidance system, so I don't see the need for it.

The Xilinx XC9500XL seems to make the most sense for a lot of reasons (it's a $1 part, it's 5v tolerant, and it isn't 100,000 times what I need---as anything else is).

RAM is probably not absolutely required as noted in my most recent update, but even if it is, or even if it is just vastly easier to engineer it that way, so much so that I'd save money by buying external RAM, add a RAM chip to the Xilinx XC9500XL and you are still at less than 1/5th the cost of even the cheapest part in the Xilinx Spartan 3AN FPGA family.

Therefore, so far, from everyone involved, I have yet to hear one word to tell me why the Xilinx XC9500XL isn't the best chip to start with. If it was three bucks, it would still be the easiest to use, but it is 1/3rd that price.

This is all kind of repeating what I went through trying to develop the line of MCU-based products in the late 90s. The 8-pin PIC family was just out, and I said that is the one to use. Everyone I talked to said, "No, you need to use a 68HC11 or look at that new Atmel coming out. You can't use that little 8-pin PIC because... (says nothing)"

Well, I used the little 8-pin PIC and the products have been shipping for 11+ years now.

The way I pick anything (tools, cars, software, clothing, electronic components, etc.) is just to look at the cheapest thing in the realm, then try to find any reason(s) why it isn't good enough, then move up to the next cheapest thing, until I find one that works. Sure, sometimes I end up wasting money on the first try, and have to pay for the two cheapest things, but on balance, I am still saving a fortune over someone who always instinctively starts with something near the top of the price range.

I don't understand why people have this tendency. You can't take your money back!

If I'd given into nonsense and used the 68HC11 or whatever, then finished the whole development cycle, then noted, "Uh, guys, we're using 10% of the I/O, 2% of the RAM, almost none of the extra ports...", well, it isn't like we then could have ported the product into the 8-pin PIC that we should have started with in the first place.

Instead, I ran the other direction. We started with that sub-$1 8-pin PIC (12C508), and used it until the code wasn't done but the ROM code space was totally full, then we easily ported (just by changing one digit in the header in the source code) to the 12C509 that had twice the ROM. Then, when I decided it would be a far better product with NV memory to retain all user settings, we ported to the 12CE519 with the built-in EEPROM. This took work and used up lots of the extra code space with the routines that access the EEPROM, but it worked, and we were done, and the whole product was in a $1.15 part. In those days, it was still almost unheard-of for a microcontroller to be found for a buck, much less one with NV memory.

This project isn't 1.4 million gates running at gigahertz speeds, one card is one handful of 7400 series chips running at speeds so low you could do it with a CD40xx analog switch. It is also a very cost sensitive application, so I'd like to start with the cheapest chip that fits the best. So far, that is (overwhelmingly) the Xilinx XC9500XL.

If anyone can point out some better suited chips, great, please discuss.

---------- Post added at 05:05 ---------- Previous post was at 04:45 ----------

RetroTechie, thanks for the reply. I love your website! Your experience is very, very close to what this is. Compared to this old system I am trying to migrate to CPLD, the Sinclair is very advanced, and the MSX, downright space-age!

Being far away isn't a barrier for me, it is preferred, and that is how I work.

Please review my updates that clear up a lot of what I left out of the OP, and send me a PM with a price estimate if you think you can do one of these cards, and ask me any specific questions I might have left out. I really want to get moving ahead with this, I've got 17 card to do, and I've gotten zero done thus far.

---------- Post added at 05:12 ---------- Previous post was at 05:05 ----------

RetroTechie, thanks for the reply on the floppy controller.

Yes, in the end, I'll want to experiment with CF/SD cards, probably through one of those floppy emulators that are going around on eBay and headed quickly below $20, and that would be a useful peripheral on a newly made version of this system.

However, since all the software is decades mature and no one will ever write anything new for it, I'd like to end up making some kind of ROM image to boot it and run it that way, thus bypassing the card that carries the TMS2793 and the floppy drives it connects to. This mini computer also has (less used) interfaces for hard drives and streamer tapes, plus dot matrix printers, etc.. Those are each some of the 17 cards to be redesigned into CPLDs.

---------- Post added at 05:19 ---------- Previous post was at 05:12 ----------

Std_match, thanks for the thoughtful reply, pointing out that my optimistic plan of just entering the old schematic into CPLD verbatim might not give the same operation.

Blast!

Anyway, I'm going to go out on a limb and presume you are not busy working on the cure for cancer, but rather doing something that pays money, so.............is there a price for which you could do this? Even one card?

I don't mind hiring several people at once, and I can totally accept that some people might make an effort that is not successful. The more I think about it, the less I think I will ever want all 17 cards combined on one chip, having on card per chip will be a higher unit cost, but will give many, many advantages.

Please reply in forum or by PM.

---------- Post added at 06:00 ---------- Previous post was at 05:19 ----------

RetroTechie, interesting reply.

See my note about the use of AS, ALS, etc. families, it isn't for any reason other than what they had in stock when they made the boards. Any chip on this board could be run much, much faster than it is used here.

You are correct, it is using a lot of power. The 17 cards (of which five or six are repeated over, so that it actually has about 38 cards running at once, consume about 60 Amps of regulated +5v power, cooled by two 4" fans. Almost all cards use an Amp, some use two! Rebuilding with newer CMOS stuff would reduce power but increase sensitivity to static electricity, so it should be put into CPLD.

Yes, correct on both, it is a state machine type of deal, a discrete logic CPU, with lots of logic processing I/O signals (where the 'smarts' is in the logic itself). Yes, every card is a smart dumb card, with every card having at least one PROM, and some having as many as 8 of them.

This sad truth is part of what led me here. I have some experience in recreating parts of these as they were done before. It was almost impossible just to start. These PROMs haven't been made for 20+ years, nor the programmers. In my business, I've use a number of device programming houses, and not one of them could program these PROMs. I would try to get it done every 2-3 years, and it wasn't until 2009 that I was able to find anyone who could read, copy, and reprogram them, and they were resources far off the grid, using chips that 99% of chip brokers don't even have, and the ones that do have them are stupidly/deviously selling parts that are already programmed, therefore junk. So, Once that problem was cracked, I was then free to make as many of these cards as I wanted to, but just the price of the PROMs (without PCB, other chips, sockets, passives, PCBA labor) would be about $80 per card, more than the whole card could even be worth to me, so that was a dead avenue. I later figured that a $1 CPLD could hold the PROMs and everything else.

Yes, the date codes on that example show that it was soldered together in 1985, but you can see clearly from the India ink PCB layout style and the gratuitous use of axial caps (!) that this board was not laid out in 1985.

It is, as I said, 30+ years old, with this specific one being laid out in early 1980, but it is just a revision of a card that was actually designed in 1978 or even 1975. This is all WELL pre-AS, ALS, etc. families, so disregard all of that. This computer is older than the Z-80 (and more powerful, too).

---------- Post added at 06:02 ---------- Previous post was at 06:00 ----------

Zerox100, thanks for the response, please reply with pricing and any concerns you have.
 

The #3 "engineers/companies overseas" have real language problems, and often claim to be able to do anything under the sun, so long as "anything under the sun" is taking an existing card, desoldering the chips, scanning the bare PCB onto film, then making exact PCBA copies of the cards. They can't possibly grasp what I am saying, and think it is totally reasonable to mass produce cards that are chock full of DIP parts that haven't been made since Reagan was President, and using programmable devices for which programming services/programming hardware hasn't existed for decades. Most of the few that actually want to put some engineering into it quickly say that the way to do it is with a microcontroller like a PIC or Atmel, proving they don't even barely understand how a dumb logic board sits on a CPU bus.
Actually most of those things aren't unreasonable: copying circuit boards is an option, and most of these 74xx series IC's are still sold, brand new if you want (or newer alternatives like 74HCT, 74ACT families etc). And while ancient, plain 74xx logic is generally quite robust / reliable. If speed of the system is low, a sufficiently fast clocked microcontroller might just be able to do in software, what plain logic does in hardware (and software development for PIC, AVR & co possibly easier than CPLD / FPGA logic design). Also developing programmable logic using out-of-production parts + 'ancient' software versions, is not uncommon. Not everyone likes to use the newest parts + software all the time, and there's rarely a pressing need to do so.

Better reasons for not just re-building these boards are things like size, maintenance (changing the logic), power consumption, and per-unit build costs.

The original system is not going to be available to someone working on the project unless a seriously complicated problem requires it.
That is too bad, as it would require you to do all real-hardware testing, which in turn could very much lengthen the design change <-> test cycle time. Also I can understand the need to keep a business secret, but a written contract including non-disclosure clause (with appropriate penalties if violated) could fix that. Btw as a practical matter: do you have blank boards to copy PCB track layout? That would be very helpful in re-producing a schematic. If only populated boards are available, I'd need physical item in hand since you can't trace connections that go underneath components from a photograph.

(..) if you can't move a dumb logic board of forty 7400 series chips to programmable logic just by duplicating the schematic, you don't understand logic or programmable logic.
No offense, but that's just stupid. Timing is a very important aspect of any logic circuit, and this may (ehm... will) depend on actual parts fitted (+their propagation delay), the number of logic gates a signal goes through, whether its clocked asynchronously or synchronously, or even how many inputs an output is driving. Basically "copy schematic into CPLD design software" will not do it, I can assure you. Hence my "determine what logic does, come up with CPLD / FPGA equivalent that does the same" approach.

I should also note that this logic needs to be put into a programmable device verbatim, without any optimizing of routines or "improvements". This system has peripheral functions which may depend on any quirks that existed in the original, and making an emulation of it or making it "better" defeats the purpose of the project.
What I suspect you mean is: "reponds in the same way (and @ same time) to external 'stimuli' as original". That leave open plenty of optimization options. Just 1 example: suppose you have a memory block consisting of 8 IC's + a 3-to-8 decoder for /CS signals. Sure you could duplicate that, but: higher-level view is it's a single memory block the size of those 8 IC's combined. No need for decoder or 8 separate memory blocks. There are countless examples like this (and programmable logic is very flexible in this regard).

When we use a 3.3v chip for this instead of the 5v I/O chip that I want to use, I am the one who is going to have to make what could have been a single chip board into a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, then I will have to make a board chock full of regulators and level shifters, (..)

Doing that 17 times? Not. If that makes sense to you, it only makes sense because you're not the one building stupid hardware 17 times for no reason other than not having used the right chip in the first place.
Makes perfect sense. Since I'm assuming boards are not connected A -> B -> C -> D fashion, but rather each board with edge connector to (some sort) of common bus, this would also mean that a card which can interface to that bus, in theory can perform the function of X number of boards connected to that bus.
Read: produce a board with sufficiently large CPLD / FPGA on it, that has circuitry to interface 3.3V I/O with 5V logic, and as time progresses you could have that board 'absorb' the function of multiple individual boards. No need to re-do a board for each original one replaced (and even if you would, you could use 1:1 copy of CPLD / FPGA board to reproduce function of different original boards). Again: the 3.3V <-> 5V interfacing becomes relatively easier as amount of logic integrated in CPLD / FPGA increases.

Though I hope to get the whole thing down to a pair of programmable logic chips, the more I think about it, the more I think it will make sense to have 17 chips on a motherboard. It will just make it a lot easier to get around and modify, etc..
Doesn't compute: this would require selection of individual chips (in a JTAG chain), and maintaining individual programming files for these chips. If you change function of 3 of those, 3 chips to re-configure. And complicated circuit board with lots of wiring between chips. In contrast if you integrate into smallest number of CPLD / FPGA, then ideally whatever change you make, only 1 chip to re-configure. And board layout as simple as can be / lowest possible per-unit cost. Of course one would like a modular approach, but there's more ways than 1 to get that.

I misspoke previously when I said the boards would probably need to have some ROM and RAM chips. That isn't correct, and for a lot of obvious reasons, it would be best not to use any external RAMs or ROMs.
Good to hear, I read that simply as a reduction in requirements (fewer/smaller RAM blocks needed).

A discussion with an engineer last week reminded me that the function of RAM can be duplicated in programmable logic. It tends to burn the resources of the chips off on a fairly pedestrian function that a lot of people would prefer to do off-chip, but those resources are cheap now.
Not in the case of CPLD's (at least all Xilinx ones that I know) - basically these have 1 bit of memory per macrocell, and largest CPLD's (in BGA housing!) have a few hundreds of those. Perfectly adequate for implementing state machines, counters, a small block of registers etc. But as soon as any significant size memory block (>a few dozen bits) is introduced, you're looking at a FPGA. If a memory block can be included in the FPGA, you save I/O pins that you would otherwise need to connect external ROM/RAM.

The Xilinx XC9500XL seems to make the most sense for a lot of reasons (it's a $1 part, it's 5v tolerant, and it isn't 100,000 times what I need---as anything else is).
XC9500XL isn't a part, but a family of devices. And judging by some stories on Xilinx forums, possibly not as 5V tolerant as you'd like. So it might even make sense to use devices from XC9500 family. Personally I think 3.3V <-> 5V interfacing is much easier to deal with than 5V parts becoming obsolete/hard-to-find/expensive. If chosen parts are 5V tolerant, that just makes things easier but it isn't very important.

Good parts to choose should not be selected up-front by 'gut feeling', but after careful analysis of what they need to do (read: dissect & make a good list of what's in original system, make some educated guesses, and be sure to have plenty margin). If system replacement is done & it turns out you use only 25% of a FPGA's resources, you can always move to a smaller FPGA for production units.

RetroTechie, thanks for the reply. I love your website! Your experience is very, very close to what this is.
Thx! :-D Currently working on a Sinclair **broken link removed** (about 15-20 74xx IC's worth), this is mostly done by now.

Please review my updates that clear up a lot of what I left out of the OP, and send me a PM with a price estimate if you think you can do one of these cards, and ask me any specific questions I might have left out.
To be honest I haven't got a clue about how to put a price tag on a job like this (especially since it isn't clear yet exactly how big a job it is, or what's required for successful completion). I don't think this is a small job, but if your budget is reasonable, I'm sure we could work something out... :-D

I'll try and compile a list of more specific questions to PM you, hopefully making it easier to decide on some of the practicalities & pricing.

P.S. Longest post ever of me on this forum... :lol:
 

Thanks for taking so much time for the lengthy reply, RetroTechie.

I should first clarify something I said before about "engineers/companies overseas".

That was only coming from experiences I've had in the last three weeks.

It isn't directed at anyone born outside the US with an interest in engineering, it is directed at the Chinese companies getting customers from Alibaba (world's biggest B2B marketplace, but it is a Chinese website and just about 95% of the action is taking place in China).

I've gotten so many suppliers (of components, assembly labor, etc.) from there that after being unable to find someone among my own contacts to do this, I figured why not search "reverse engineering" on Alibaba? The extent of their "reverse engineering" services is taking an existing card, desoldering the chips, scanning the bare PCB onto film, then making exact PCBA copies of the cards.

This is a group of people who are incredibly fast and loose with the details, and will often give answers that are whatever is most likely to lead to a quick sale. If you get ripped off and angry, they don't really care because they know it is a gold rush going to China and 50 more crackers will be coming along to give them money, too. You need to be extremely cautious with these things. They will take money for things they can't deliver, and will gladly ship junk, factory seconds they would have had to discard before you came along and went along with the only sales terms they offer, 100% cash in advance. Some will take money without even having an export license to get the goods to you!

For example, they will look at this card (top scan), and say yes, they can produce this card. Aside from the fact that that wasn't the question (I don't want to make these cards, I want to integrate the old logic into CPLDs), this is a lie right on the face of it. They said yes without even looking at the parts on the board! Everyone on this forum has studied the components carefully and made cautious statements, but the Chinese "reverse engineering" companies just say, "Yes, sure, we can do it, send the money by T/T or Western Union."

Each of these cards has as many as 8 PROMs (such as TBP24S10N, F93427PC, MI-7611-5, etc.), 1970s chips that were obsolete and out of production 20 years ago. The equipment to program them was out of production 20 years ago. No commercial programming service exists for these chips. Suffice to say, there has never been any commercial manufacturing use of PROMs in China. When these were being made, Chinese industry was still figuring out how to make poor quality slip joint pliers.

So, that is my experience there. I am keen to hire overseas engineers for this (I've been successfully doing so since 1999), but the Alibaba avenue to Chinese "reverse engineering" companies has not been helpful.

You've said that "copying circuit boards is an option", and yes, copying circuit boards is an option, albeit a completely senseless one. I wrote before:

Yes, every card is a smart dumb card, with every card having at least one PROM, and some having as many as 8 of them.

This sad truth is part of what led me here. I have some experience in recreating parts of these as they were done before. It was almost impossible just to start. These PROMs haven't been made for 20+ years, nor the programmers. In my business, I've use a number of device programming houses, and not one of them could program these PROMs. I would try to get it done every 2-3 years, and it wasn't until 2009 that I was able to find anyone who could read, copy, and reprogram them, and they were resources far off the grid, using chips that 99% of chip brokers don't even have, and the ones that do have them are stupidly/deviously selling parts that are already programmed, therefore junk. So, Once that problem was cracked, I was then free to make as many of these cards as I wanted to, but just the price of the PROMs (without PCB, other chips, sockets, passives, PCBA labor) would be about $80 per card, more than the whole card could even be worth to me, so that was a dead avenue. I later figured that a $1 CPLD could hold the PROMs and everything else.

Therefore, if someone could do the board copying thing on these, perhaps everything but the PROMs would cost $20 or $30 per card, then I'd have to source the PROMs myself and get them programmed by the one maniac I know who actually has the gear and skills to program them, then put that $80 worth of PROMs in the boards.

The commercial value of these cards would be less than a third of my cost. This is like working hard to figure out a way to counterfeit $20 bills, and doing so even though they are costing $60 each, nonsense.

I wouldn't want to make those that way at any price, and for the reasons above, no, it isn't an option.

As far as "most of these 74xx series IC's are still sold", well, in the practical world, "most" is the same as none. This is supposed to lead to a manufactured product. I don't have much experience with hardware hacking, especially not complex projects like this, but I have considerable experience in manufacturing consumer electronics, so I have a very keen sense about it. No one with any sense goes to production with a product for which the components are no longer manufactured, nor should the continued production of any product depend on one guy somewhere who kindly sits in his house all weekend with a 30 year old machine that programs PROMs with 25 year old date codes. Watch out for any BOM that has line items that can't be sourced from at least 2 or 3 backup suppliers. I've learned this the hard way and paid for it.

About "plain 74xx logic is generally quite robust / reliable", yes, somewhat, but let's look at the bigger picture:

How reliable is it? Well, lets just grab a number called n. When you put 40 pieces of that item on the board, the sum total product is 40 times less reliable, because there are 40 pieces to fail. There are a lot of chips on these boards that are not made anymore (some of the more obscure 7400 series parts, RAMs, PROMs, transistors, etc.), so those would need to come from brokers. As soon as you start buying 10-35 year old parts from brokers, you are now manufacturing (some) boards that don't work right off the line, and all of them will fail sooner than truly new parts would. The chips fail due to age in the boards, and they fail due to age in the IC tubes, too, so bad chips will be in the supply chain.

Aside from that, no one in their right mind would design a product with forty 7400 series logic chips on a board (and nothing else) now, they'd use programmable logic, and I want to get this done the same way.

About "a sufficiently fast clocked microcontroller might just be able to do in software, what plain logic does in hardware", well, in some cases yes, but even interrupt-driven, the software latency throws a huge variable into the system, and that would be unacceptable. When you flip a glue logic inverter, the output changes. Then. When you do that into an I/O line on a PIC, it can't do anything until the next click (or four) of the crystal. Without saying too much more, this is a system with real time function (not a line terminal), so even though it isn't going at any kind of high speed, the way it does it now is exactly what it has to do always. It can't have one out of three cycles slowed down a little by software or interrupt processing. It isn't that this has to be super, super fast, it just has to have real time response relative to everything else in the system.

Moreover, if I can't claim that it is the exact same circuitry as before, it would be kind of pointless, because far newer, cheaper stuff is out now. This is sort of like someone paying $200 for a vintage Fisher-Price camcorder, no, they wouldn't trade it for a Flip Video. If they made a reissue of the vintage Fisher-Price camcorder, the word would quickly be out, yes it is the same, or no, it isn't the same.

Lastly, on "Not everyone likes to use the newest parts + software all the time, and there's rarely a pressing need to do so." I don't need to use the latest parts, I just need to use parts that exist in the electronic supply chain today. A CPLD would do it!

As for "do you have blank boards to copy PCB track layout?", I don't know what you mean "blank". Blank as in totally desoldered with all the parts removed? No. I can provide a (no longer working, but the PROMs are good) sample for reverse engineering purposes. You can desolder all the parts from it and leave them out, or if you don't have the tools for that, you can just use flush cut nippers to chop out the chips. I'd like to get the PCB back afterward, though, and the PROMs, too. The RAMs and 74xx stuff is what made the card fail already, so I don't care about those.

You've said "Basically "copy schematic into CPLD design software" will not do it, I can assure you." That is a very interesting and provocative thought that, if correct, nearly kills my project. Logic chips on a board have a function that the same logic in a CPLD/PGA does not? Makes me wonder how anyone designs logic now, if the programmable logic can't perform the same functions as the old logic in the same way.

Can anyone else in the forum get in on this string and discuss this? This is a potential project killer for me.

I agree on your example with the RAM and 3-to-8 decoder. I assume that the memories (PROMs and RAMs) are the only place where different programming will have to happen. I actually hold a little (possibly superstitious) fear that even this could change the function as compared to the original. Some circuits don't actually work exactly as they were meant to, although they were acceptable in the end unit. The developers of this never used or had a logic analyzer or anything like that, so this could have had some glitches in it they never noticed. The machine itself can't tell if it is screwing up and can't test itself.

On the bus issue, you are correct, it has a common bus, and few cards actually connect to each other from the front (some have serial connections, etc.), but it is a little more involved than that. There are a few buses. There are three backplanes (depending how far I go with this, there were several others I probably won't bother trying to recreate due to lack of need/interest). The most complex backplane isn't just the PCB version of a ribbon cable going across all the 72-pin cards, and those cards can't be stuffed into any old slots. There is a bi-directional data bus, an I/O address bus, and a memory address bus. Some slots connect to some buses but not others. Some things don't seem to be slot-dependent, but some cards that are all the same in equal slots like 6 7 8 9 (some with DIP switches to address the cards, some without) can NOT be put in like 6 8 9 7. Although it would seem that they are all connected together purely in parallel, no, they have to be in an order. I don't know if it is bus timing or what, but I am aware of it. Also, various revisions of various boards and backplanes have a mess of pullup/pulldown resistors soldered in place on the PCB and piggybacked over chips that presumably didn't work right without it, plus caps and whatever. Keeping it as 17 separate chips allows some tweaking on that.

This is again one of many reasons I want to do this in 17 pieces. Your upper management plan of doing it all on one card has a whole lot of sense to it, and that would be the Intel way of doing it, but runs an infinitely greater risk of getting into a mess where there is a problem and you can't find it. I really want these as 17 separately done cards/projects, and the option of combining them later on, not the other way around, doing it as one card and trying to break it up later.

This is my project at my expense and should be done my way without too many years of explanations of why I want to do my project my way. This system can be many different systems just by populating it with different cards in different slots, some with more, some with less, and with different media and different peripherals. My way accommodates that. The risk of screwing it off by "optimizing" something in a "better" way is totally negated; I can put any new card by itself into the old machine and see if it is the same. If not, that card is the stinker, period, and I won't need to wonder where in thousands of lines of VHDL code the problem lies, and argue with someone about whether or not it is working right or not.

Another thing that might not have been entirely clear is that just because this card plugs into the backplane and has no other connections does not mean the others are all the same. Some of the cards in this system have 50, 100, or even more pins of connectors (serial, parallel, GPIO, etc.) on the side away from the 72-pin backplane. These are NOT part of a bus, they are totally unique to the cards. There isn't an FPGA made that will emulate all these pins on its own pins, as there isn't one that has enough pins to duplicate a maxed out system. Not that I want to or will need to, but plenty of these cards will be used and their 26-pin or whatever I/O ports will be used. Again, doing it my way as 17 cards/projects allows this, balling into one does not. Let's get off this diversion away from what will work.

You are entirely correct that it is undesirable to have 17 chips when you could have one, and extremely undesirable to have 17 versions of firmware to load in each product shipped, and the hassle of labeling all those. However, as far as I can see---and I have been thinking about this for nearly 10 years now---it would be acceptable, it would open a countless number of other options, and would allow far, far greater flexibility in the project. I have a very hard time imagining that one person is going to be doing all 17 of these cards for me and, my way, it is totally fine if they end up getting done by several people over a few years if it ends up taking that long to get the people and the money to get it finished. It's actually better that way.

Not sure if I sufficiently explained the matter of doing the RAM in the CPLD without using an external RAM. I'd given this link:

Logic gate - Wikipedia, the free encyclopedia

I don't know anything about logic, but I thought the idea there was to set a gate to a state, latch it, then when you want, go back and read that state, thus creating a form of RAM. It wouldn't be the same circuit and would require some doing, but that is how it was explained to me.

If you can point me to any Xilinx forum posts that outline problems with 5v I/O tolerance not being as claimed by Xilinx, I'd appreciate it.

Your ZX81 ULA replacement is pretty amazing.
 

If you can point me to any Xilinx forum posts that outline problems with 5v I/O tolerance not being as claimed by Xilinx, I'd appreciate it.
Some recent threads on Xilinx user forum that might be of interest:

XC95144 burning up (notice that this is about a part that does operate on 5V internally!)
5V tolerant I/O?

Saying that eg. XC9500XL family is not 5V tolerant, is probably overreacting. But I've seen more threads about similar issues - what I take away from it is that power sequencing might be important, and simply putting 5V on XC9500XL family inputs might not be smart, better use a series resistor to limit input current, pull-up with open collector output on external device, or something like that.

You are right about the Chinese, sourcing parts, difficulty of having old PROMs programmed, etc etc. Ultimately it comes down to how much effort is needed to design / build / maintain a product, and whether it makes sense to invest that effort. And in 2011 that would 'dictate' use of programmable logic over discrete logic IC's in many places. But it does depend on the use, there may well be places where it makes sense to put a few ordinary logic IC's (probably more recent families like 74HC(T) vs. 74ALS etc) over a CPLD or FPGA. For example on I/O in an environment where heavy static charges might be common - rather have a small 74HCT IC eat that charge & die than destroy a much more expensive / difficult to replace CPLD. There is a reason these plain logic IC's are still sold, and in numbers (and it's not just for hobbyists or repairing old gear). Compare with analog audio & video connectors still being common while DVI, HDMI etc have been around for years - often the simplest possible thing does the job, and that's what is used.

You've said "Basically "copy schematic into CPLD design software" will not do it, I can assure you." That is a very interesting and provocative thought that, if correct, nearly kills my project. Logic chips on a board have a function that the same logic in a CPLD/PGA does not? Makes me wonder how anyone designs logic now, if the programmable logic can't perform the same functions as the old logic in the same way.
Like I said: timing is a very important aspect of digital circuitry, and there's many factors that have an influence on that (temperature, logic families, wire lengths(!), input capacities, etc, etc). A schematic says a lot, but only shows part of the picture. Any (competent) digital designer will know that ultimately, all logic circuits are analog too. Newbies / students might have difficulties grasping that, experienced designers might sometimes forget it, but that analog aspect never goes away. At best, for practical purposes you can ignore it (given a set of operating conditions).

Some things don't seem to be slot-dependent, but some cards that are all the same in equal slots like 6 7 8 9 (some with DIP switches to address the cards, some without) can NOT be put in like 6 8 9 7. Although it would seem that they are all connected together purely in parallel, no, they have to be in an order. I don't know if it is bus timing or what, but I am aware of it. Also, various revisions of various boards and backplanes have a mess of pullup/pulldown resistors soldered in place on the PCB and piggybacked over chips that presumably didn't work right without it, plus caps and whatever.
There you go - see what I mean? :wink:

Not sure if I sufficiently explained the matter of doing the RAM in the CPLD without using an external RAM. I'd given this link:

Logic gate - Wikipedia, the free encyclopedia

I don't know anything about logic, but I thought the idea there was to set a gate to a state, latch it, then when you want, go back and read that state, thus creating a form of RAM.
Yes that's the essence, this Wikipedia article is a better start. The pictures in it showing 2 NOR gates or 2 NAND gates basically show a single bit of memory (like what you'd find 4096 of in that 'antique' 2114 static RAM).

But for above reasons, just using the logic inside a CPLD to construct memory bits, does not work well (if at all). And you have a limited amount of that logic, using it to simulate NORs and build memory that way, is inefficient at best (and you'd need that logic to replace logic too!). So that's what the register bits are for, and in CPLD's I'm aware of, you get 1 per macrocell.

Take for example that board you posted a picture of earlier. You can see some 74S74's on it (=2 bits memory each), some 74S175's (4 bits each), an ALS374 (=8 bits), and I count 7x AM27S03. Looked up this last one, it's a 64-bit memory. So that's in the order of 450~500 bits of memory on this card (if I didn't miss anything). Read: for this particular board no XC9500(XL) family device could do it, maybe a large Coolrunner-II or XPLA3 might but you'd be looking at expensive part in BGA housing. So to replace this board a small FPGA would be in order (+voltage regulator, a header for re-configuring through JTAG, series/pull-up resistors etc, maybe a few buffer IC's).
 

Thanks for this post RetroTechie.

I read those forum posts with great interest and saved it in my files, thanks. On power sequencing, do you mean to say that you need to do something like set all 5v I/O lines low (0v) until the 3.3v power supply comes up and gets stable?

In order for me to make this into a barely viable break even product, it has to be stripped of all vintage attributes. Every item on the BOM has to be in current production and not even one of the "not recommended for new designs".

I did a very complicated product development (without a lot of test gear) that was troubled by "digital" 01010011 signals that looked like a sleepy, distorted sine wave, making some asynchronous bits get read sooner than others, making a steady baud rate into a barely readable baud rate, so I think I get what you are saying about the analog properties of digital electronics.

BTW, with luck, we can stay completely away from the cards/backplanes (mostly later stuff with higher speed and less charm) that had the resistor packs soldered on them just to make them work. The older stuff seemed to be pretty stable and without any hand-soldered parts added on, except for the occasional jumper wire where the foil side got a little over etched.

One more note, the engineer who is doing the first card (not shown here) which has a lot of 2114 RAMs on it had said he was definitely going to do the RAM outside the CPLD/PGA. Not sure if he was consolidating it all to one chip or not, but probably so.
 

One more note, the engineer who is doing the first card (not shown here) which has a lot of 2114 RAMs on it had said he was definitely going to do the RAM outside the CPLD/PGA. Not sure if he was consolidating it all to one chip or not, but probably so.

Even the smallest/cheapest FPGA has space for tens of 2114's. Another advantage with having as much as possible in an FPGA is that it might be possible to implement several boards with the same hardware.

To make the best decisions, I would divide the project into steps:

1. Create schematics for all the boards
2. Analyze what the boards actually do
3. Try to find a smart way to redesign the boards. It could be possible to have one new board that can emulate most of the old boards by just downloading a configuration.
4. Create a test bench (simulated) for each board before implementing it. VHDL is one possibility.
5. Do the actual implementation. VHDL is one possibility
6. Test the board in the real system.
7. If it doesn't work, find the problem, update the test bench and implement the necessary changes.

Steps 1 and 2 require no FPGA/CPLD knowledge. Maybe you should hire some local college students to do it?

The time spent on the test benches will pay for itself before the project is finished by reducing the debugging time.

It is difficult to tell which chip is best/cheapest for this, but I would first look at the cheapest possible FPGA, FLASH-based or RAM-based with an external configuration memory.

It the BOM cost is extremely important, you should also look at the possibility to do most/all of the logic in a one-chip microcontroller/DSP.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top