Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20693 Discussions

Use Max+Plus to load program from PLD?

Altera_Forum
Honored Contributor II
1,409 Views

Hello, I have a PLD that has a program loaded onto it, and the code has been lost. Is it possible to use Max+Plus to load the vhdl code from the chip so that the code can be used to program other PLD's?

0 Kudos
12 Replies
Altera_Forum
Honored Contributor II
649 Views

 

--- Quote Start ---  

Hello, I have a PLD that has a program loaded onto it, and the code has been lost. 

--- Quote End ---  

How complicated is the code? Do you have a specification for what the code is supposed to do? Is it worth reproducing it? 

 

 

--- Quote Start ---  

Is it possible to use Max+Plus to load the vhdl code from the chip so that the code can be used to program other PLD's? 

--- Quote End ---  

If the code is for a device where the image is stored off-chip in a configuration memory, eg., an EPC2, then I believe it would be possible to read the image back (not the VHDL, just the bits in the device), since that is what the verify operation does. I suspect the same thing is possible with the MAX PLDs as well. However, I don't think it is directly supported in any of the tools ... I don't recall seeing a 'copy image to file' option in any of the programmer tools, however, you might be able to use the Jam STAPL player to implement image readback. 

 

But you need to decide whether the effort to implement image readback is greater than re-implementing the design that you've lost the source code for. I would recommend gathering the requirements for the design, then writing the code again, and then check the code into a code repository! :) 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
649 Views

Even if you could read the bit file back from the flash, you'd have one hell of a job trying to reverse engineer it. Like Dave says, it doesnt store the source, only the bit file. 

 

Basically, without the source code, you're scuppered
0 Kudos
Altera_Forum
Honored Contributor II
649 Views

IIRC, MAX and MAX II CPLDs don't allow the bitstream to be read back.

0 Kudos
Altera_Forum
Honored Contributor II
649 Views

 

--- Quote Start ---  

IIRC, MAX and MAX II CPLDs don't allow the bitstream to be read back. 

--- Quote End ---  

 

They do, if protection isn't set.
0 Kudos
Altera_Forum
Honored Contributor II
649 Views

Ok, after doing some more searching, I found an old compilation report. 

 

Would information such as what is shown below be able to be used to recover the code? 

 

-- Node name is 'AD2' = ':246'  

-- Equation name is 'AD2', type is output  

AD2 = LCELL( _EQ005 $ GND); 

_EQ005 = A1 & !_LC105 & T02 & T04 

# _LC105 & _LC126;
0 Kudos
Altera_Forum
Honored Contributor II
649 Views

Yes, but it'll be a pain in the arse, but not quite as bad as the bit-stream. All its telling you whats inside each LUT, and what it connects to. Good luck working that circuit out. You'd probably spend as much time re-writing the code, if not a bit less.

0 Kudos
Altera_Forum
Honored Contributor II
649 Views

Ok, thanks for the help.

0 Kudos
Altera_Forum
Honored Contributor II
649 Views

Hmm, can .acf files be used to program PLDs?

0 Kudos
Altera_Forum
Honored Contributor II
649 Views

 

--- Quote Start ---  

can .acf files be used to program PLDs? 

--- Quote End ---  

No. These files are 'assignment and constraints files' (or something like that). They contain the pin assignments and other features. This is similar information to what is stored in the Quartus settings files (.qsf). 

 

If you can find an .sof, .pof, or perhaps a Jam STAPL file .jam, you might be ok. 

 

How complex is the design? Its a PLD, so it can't have that much logic. Just re-write the code. 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
649 Views

I have the .pof file. I would rewrite the code but the problem is that it was written 18 years ago by someone else. I'm just the middleman in this whole thing so I'm not even sure what the code does.

0 Kudos
Altera_Forum
Honored Contributor II
649 Views

 

--- Quote Start ---  

I have the .pof file. 

--- Quote End ---  

If you have a working board, then you should be able to use Quartus to verify that this .pof file is the one currently burned into a working board. 

 

 

--- Quote Start ---  

I would rewrite the code but the problem is that it was written 18 years ago by someone else. I'm just the middleman in this whole thing so I'm not even sure what the code does. 

--- Quote End ---  

Right, so its really up to you how important having the source code it. You could arguably consider the PLD to be a chip. If it does what you want, then you're done. 

 

If however you have to change functionality, then you'll have to rewrite the code. 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
649 Views

Ok, thanks. That helps a lot.

0 Kudos
Reply