原创 How it used to be: Programmable Logic

2011-11-23 17:35 1930 12 12 分类: 消费电子

Note: Here's a "How it used to be" story as told by Aubrey Kagan, a professional engineer with a BSEE from the Technion-Israel Institute of Technology and an MBA from the University of the Witwatersrand. Aubrey is engineering manager at Emphatec, a Toronto-based design house of industrial control interfaces and switch-mode power supplies. In addition to writing several articles for Circuit Cellar and having ideas published in EDN and Electronic Design, Aubrey wrote Excel by Example: A Microsoft Excel Cookbook for Electronics Engineers (Newnes, 2004).


In the 70s and 80s (and even the 90s if you include South Africa itself) the news in Southern Africa was flooded with the acronyms of dozens of liberation groups in colonial Africa. In 1980, when South Africa was engaged in a not-so-secret incursion into Angola, there were three contenders that captured the public's attention – UNITA, MPLA and FNLA. So when I attended a seminar on programmable logic and was introduced to the FPLA and PAL, I guess I could be forgiven for thinking that I had stumbled into a news conference or political meeting. The Field Programmable Logic Array (FPLA) was a Signetics product and was known only by name in South Africa. The Programmable Array Logic (PAL) from Monolithic Memories (MMI) was marketed at the time by a local distributor called Radiokom who was hosting the seminar.


The databook that I got at the seminar (I still have an electronic copy) included all of MMI's products and the PAL only took up one section. There were only 13 products in the family. All were in 20 pin 0.3" DIL packages. There were only 3 with registered outputs, the rest were different combinations of AND/OR gates. The PALS were bipolar (technologically, not psychologically speaking) and were only superior to TTL in that you could replace 2-3 TTL packages with one PAL. These were humble beginnings. At the time I was designing a memory storage card for the Intel iSBX bus (a mezzanine bus on a Multibus card – I am sure there is a "How It Was" to be written about that). The board was constrained by specification to about 3"x 2" and so space was at a premium, hence my choice of PAL despite the hefty current consumption. The devices had programmable fuses, but once a fuse was programmed it could never be "unprogrammed".

 

aubrey-then-and-now.jpg
The author "Then" (left) and "Now" (right)

 

At the time, MMI had already defined a programming language called PALASM. The 1980 catalog only introduces it. The 1981 catalog describes it as a program written in FORTRAN. At the time there was no standard host on which to run the software. The IBM PC only came out in 1981. There was a quasi-standard operating system called CP/M, but the floppy disks could only be interchanged if the floppy disk drive was an 8" single density (360KB if I remember) and maybe it was even restricted to IBM drives. MMI said there was a list of machines, but it certainly wasn't presented in the manual. Radiokom also distributed a machine from South West Technical Products (SWTPC) , but it couldn't run PALASM. So we were left to do this manually as described in the MMI books. (I see from Wikipedia that the programmer from Structured Design actually had PALASM embedded.)


First you would photocopy (we actually did have photocopiers in those days, but often they used to smell of some very toxic chemicals and were hard to write on with ball point pen) the logic diagram of the PAL that you wanted to use. First step was to mark the I/O names. Then you would figure out either using logic equations or by inspection which connections you wanted and mark them with an "X" as you can see in Figure 1. The "X" indicated that the fuse was intact; all the other fused were to be blown. Each small AND gate actually had multiple inputs, so that multiple "X"s on the same input row actually represented these multiple inputs and not that the inputs were connected together. For instance look at row (Product Term) 24 of figure 1.

 

 

au-pl-01.jpg

Figure 1


You may notice an "X" in some of the AND gates (look at the AND gate on product term 7 in figure 1). Since each input consists of a signal and its complement they cancel themselves on the AND gate. Where no input to an AND gate is assigned, the output it 0 and does not affect the following OR gate. The X in the body of the AND gate is a short-form notation to indicate that all the fuses on the product term are intact.


The next step was to photocopy the template of the fuse map as shown in figure 2. Any intact fuse would show up as an "L" and a blown fuse as an "H". You had to pay attention since the order of the product terms in the template was not the same as the order on the logic diagram.

 

 

au-pl-02.jpg

Figure 2


Although MMI provided details on how to program the devices, there was a list of five approved programmer manufacturers. I was only aware of two. There was a universal programmer for Data I/O which cost and arm, a leg and a lung and one from Pro-Log. (Pro-Log was also responsible for the STD microcomputer bus, I believe still used today in expanded form by companies like Ziatech. Actually I remember an article from Pro-Log that dismissed the 8048 specifically and single chip micros in general as being of limited use. I wish I still had it.). According to the MMI manual the programmers used a paper tape input to load the data, but with no method of generating the paper tape this was a moot point. The Pro-Log programmer was housed in a large black attaché case making it transportable. As I recall the entry was not by keypad, but by toggle switches, but maybe I am wrong. Probably not coincidentally, Radiokom was the distributor of Pro-Log and so I used their programmer to program the device. I remember spending several hours entering and correcting the data for this simple device.


Incidentally, similar to the EPROM/PROM/ROM marketplace, the PAL was aimed at a development and low volume marketplace. Once the design was finalized it was expected that the design be committed to a HAL- a mask programmed Hard Array Logic device.


Now that I think about it, I realize quite how influential the IBM PC was in determining the approach we take today to any kind of electronic development. I think its influence here must exceed its influence over what we do at home or even business using the PC. I remember reading that Intel believed that the development system market was not cost-sensitive and they certainly priced their development tools accordingly. The PC not only standardized the user interface and the inter device communications (RS232 and parallel port), but also drove the entry level costs for development right down.


Over the next 5 or 6 years the changes in the programmable logic market were rapid and rather fuzzy in my memory. New manufacturers popped up and densities increased along with revised architectures. Altera introduced static CMOS devices that drew very little power and were erasable. Lattice was similar, but despite being called CMOS drew quite a bit of power on its GAL devices. ICT produced a variations in EEPROM. Each PLD (although I don't think that acronym was used till much later) manufacturer had their own user interface and programming language, but always hosted on the PC. PALASM was still quite popular and could be used in some cases for other manufacturer's products. Data I/O introduced their own programming language called Abel, and there was another universal contender called CUPL. There was the EP300 and EP600 from Altera and the 22V10 from AMD (and then others). Xilinx and Actel popped up in there somewhere A number of the big players tried to get into the market. Intel (I think they acted as the foundry for Altera) tried. TI had a shot. National Semiconductor second sourced Lattice parts. MMI was taken over by AMD which spun the result of as Vantis and then absorbed by Lattice.


 

文章评论0条评论)

登录后参与讨论
我要评论
0
12
关闭 站长推荐上一条 /2 下一条