Wat met een oude CPLD EPM7064?

Wat met een oude CPLD EPM7064?

Tussen mijn vele oude IC's vond ik nog een EPM7064AELC44-10. Die dateert nog van 1999. Ik had nog enkele PLCC44 voetjes liggen. Ik vroeg mij af of ik deze chip nu nog zou kunnen programmeren en ik wat daar nog zou kunnen inpompen van logica. Ik heb verschillende versies van Quartus op mijn PC staan. Na controle blijkt dat de Quartus versie 12 deze chip nog ondersteunt. Tijd om een klein verilog program te schrijven. Ik dacht aan een frequentie generator om bv 16 verschillende waarden te kunnen selectern. Ik had nog een 32MHz clock liggen. Die 32MHz kan ik zo direct gebruiken. Daarnaast heb ik volgende tabel gemaakt:


                          //    32 MHz XTAL
parameterDIV0  =      2;  //     8 MHz
parameterDIV1  =      4;  //     4 MHz
parameterDIV2  =      8;  //    2 MHz
parameterDIV3  =     16;  //    1 MHz
parameterDIV4  =     40;  //  500 KHz
parameterDIV5  =     80;  //  200 KHz
parameterDIV6  =    160;  //  100 KHz
parameterDIV7  =    400;  //   50 KHz
parameterDIV8  =    800;  //   20 KHz
parameterDIV9  =   1600;  //   10 KHz
parameterDIV10 =   4000;  //    5 KHz
parameterDIV11 =   8000;  //    2 KHz
parameterDIV12 =  16000;  //    1 KHz
parameterDIV13 =  40000;  //  500  Hz
parameterDIV14 =  80000;  //  200  Hz
parameterDIV15 = 160000;  //  100  Hz

Om het deeltal 160000 te maken heb ik een 18bit deler nodig. Iedere geselecteerde waarde heeft ook een eigen comparator waarde nodig, zie tabel. Ik heb ook gekozen voor een led aanduiding van de geselecteerde frequentie waarde. Vandaar extra 16 led uitgangen nodig. Het selecteren van een van de 16 frequenties gebeurd met een 4 input selector. Dit kan een rotary instel blok zijn met 16 posities of anders 4 schakelaars die je zelf moet in de gekozen waarde plaatsen.
Ik wou ook een afzonderlijke triggerpuls uitgang maken. Die puls is 1 clock van de 32MHz of 31.25ns. De triggerpuls is synchroon op de stijgende flank van ieder geselecteerde frequentie output.
Zo heb ik 3 uitgangen nodig en 16 leds
- 32 MHZ vaste waarde
- gekozen frequentie met blokgolf 50/50 duty.
- Triggerpuls output 31.25ns herhaling volgens gekozen frequentie.
- 16 x Led.
Als ingangen:
- 4 inputs (scakelaars) voor de selectie.

Als ik zo een klein programmatje compileer geeft hij mij volgende uitslag:


Flow Status			Successful - Thu Jan 02 17:23:21 2025
Quartus II 64-Bit Version	12.1 Build 177 11/07/2012 SJ Web Edition
Revision Name			epm
Top-level Entity Name		epm
Family				MAX7000AE
Device				EPM7064AELC44-10
Timing Models			Final
Total macrocells		62 / 64 ( 97 % )
Total pins			27 / 36 ( 75 % )

Ik had dus nog 2 macrocells over maar die waren voorlopig niet te gebruiken om iets extras mee te maken omdat hij intern geen voldoende expanderlijnen meer over had. Toch vind ik dit al een behoorlijk resultaat met deze oude chip. Ik kan nu nog andere schakelingen proberen. Gewoon een kwestie van mij nog wat bezig te houden. Eigenlijk is het een uitdaging een aantal zinvolle variaties te vinden. Het gaat mij helemaal niet om wat je met een andere chip kunt maken, wel met deze soort chips die je anders in de vuilbak gooit.
Zoiets in een mooi bakje, 3D geprint, zou reeds heel mooi zijn!

Een paar foto's:

https://live.staticflickr.com/65535/54248052053_d9979d12d3_c.jpgCPLD EPM7064 topview by Frans, on Flickr

https://live.staticflickr.com/65535/54248271458_394ebb861a_c.jpgEPM7064AELC44-10 test pcb by Frans, on Flickr

Frans.