Antes del "FPGA" con EPROM (Altera, 1984) o SRAM (Xilinx, 1985) había familias de lógica programable, donde la programación se realizaba soplando fusibles en el chip para romper las conexiones no deseadas.
Este fue un proceso de una sola vía; no puede destrabar un fusible, por lo que en general se trataba de dispositivos "de uso único", aunque a veces podría asegurarse de que cualquier cambio de diseño que hiciera soplara fusibles adicionales.
Estos fueron llamados genéricamente PLDs - Dispositivos de lógica programable, aunque la primera marca específica se conoció como PALs - Programmable Array Logic. He visto afirmaciones de la mercadotecnia de AMD de que las inventaron, no técnicamente correctas, aunque compraron MMI (Monolithic Memories Inc), la compañía que las hizo.
Los PAL normalmente eran una estructura mucho más simple que los FPGA, generalmente una red completamente interconectada de compuertas AND-OR, con o sin registros en las salidas: rompió las conexiones que no necesitaba. Por lo general, cada uno de ellos podría reemplazar entre 4 y 8 paquetes TTL SSI o MSI, un ahorro útil en espacio de placa y redujo la cantidad de cambios de diseño de placa necesarios.
AMD llegó junto con el PAL22V10 más complejo pero más flexible un poco más tarde, y luego, después de algunos años, compró MMI.
La programación fue generalmente con un nivel bajo de HDL, generalmente PALASM o CUPL - para generar un Archivo de programación que enumera los fusibles a ser quemados. Luego inserte el chip en un programador y cargue el archivo ...
Creo que los primeros PAL estaban disponibles en MMI a mediados de los 70, y fueron populares alrededor de 1980. Además del libro de datos MMI (1978 en adelante) hubo un Manual de Diseño de Sistemas (mi segunda edición fue de 1984, no se puede encontrar en línea) fue una colección de notas de aplicación que cubren lo básico hasta analizadores de espectro de audio y, como el manual, principalmente notables para una serie de dibujos animados con queso ...
Elesquemaparaunchipcompleto,noprogramado,seveíaasí:
Y un programa (en este caso, uno de los ejemplos propios de MMI, para un contador de 4 bits), en PALASM tenía este aspecto ...
Bastante básico, pero más fácil que marcar los fusibles que querías destruir en el esquema de arriba ...
Tenga en cuenta las dos líneas que comienzan con "CLK" ... son nombres para los pines en orden, numerados del 1 al 20. Estos corresponden al esquema anterior (que no muestra los pines 10 = GND o 20 = VCC, que están predeterminados). Comparando esto con el esquema, verá que CLK y / OC también están predeterminados, y todos los otros pines de entrada están a la izquierda, las salidas (registradas) a la derecha.
También tenga en cuenta que este diseño es para un 16R6 pero se ajustará a un 16R8 porque los pines 12 y 19 (que no están registrados en el 16R6) no se utilizan, es decir, NC, en este diseño.
En la práctica, probablemente utilizarías un contador comercial como el 74163 en su lugar, a menos que fuera sábado y las tiendas estuvieran cerradas, o si alguien más hubiera torcido la polaridad de la entrada de carga.
Más información aquí ...
Y para obtener una perspectiva sobre el trabajo en esa era, vea "El alma de una nueva máquina" por Tracy Kidder - el libro menciona las ventajas de una nueva forma de lógica programable disponible, y el período de tiempo significa que tiene que ser PAL.
A partir de estos se encontraban dispositivos programables con máscara, mucho más grandes, pero mucho menos susceptibles de desarrollo a pequeña escala, especialmente el ULA de Ferranti, que hizo posible la BBC Micro y Sinclair ZX81 alrededor de 1982. Estos ofrecían unos pocos cientos o miles de unidades. puertas Al igual que las MCU programables con máscara, enviaste tu cinta de papel, recibiste un millar de partes durante 6 semanas y rezas para que tu diseño y prueba hayan sido lo suficientemente completos ...