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

Identify EPCS and EPCQ

Altera_Forum
Honored Contributor II
1,436 Views

Hi, 

We use remote programming. 

How to identify if the memory is EPCS or EPCQ ? 

They use different opcodes for identification, 

is there a way to identify if the memory is EPCQ or EPCS ? 

 

-Teo
0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
559 Views

Which device size(s) do you use? 

 

EPCS1-64 supports a 'Read Silicone ID' operation - EPCQ doesn't, nor does EPCS128. 

 

Beyond that there is only the 'Read Device ID' command. However, both EPCS128 & EPCQ128 will return the same value. All other devices should be uniquely identifiable. 

 

If in doubt reprogram with and image intended for an EPCS (x1). This will compromise boot time - a little - but nothing else. The configuration image is identical. The only difference will be the config flags early in the boot sequence telling the FPGA how to control the config device. However, if the FPGA controls an EPCQ as if it's an EPCS then all will be well. 

 

Cheers, 

Alex
0 Kudos
Altera_Forum
Honored Contributor II
559 Views

Hi, 

Thanks for the answer. 

I would like to identify EPCS16, EPCQ32 and EPCS64 

 

We are also using arriaV which has little bit different programming style to empty memory. 

We use also other FPGAs as well. 

Programming is done external MCU to the memory. The one MCU code is used for all the FPGA and meories and we would really like to see the  

memory type we are facing by reading some info from the memory. 

 

I think that EPCS don't support (except 128) "Read device Identification" and EPCQ doesn't support "Read Silicon ID", am I correct ? 

What do they return if "Read silicon ID" is used for EPCQ and "Read device Identification" for EPCS ? 

So what is the return value for the reads that aren't meant for them ?  

Do they return always same value ? 

 

Of cource we could read always both "Read device Identification" and "Read Silicon ID" but is there a change that we could get mixed by determining what is the memory we are up against ? 

 

-Tero
0 Kudos
Altera_Forum
Honored Contributor II
559 Views

Imeant these memories: EPCS16, EPCQ32 and EPCQ64 

 

-Tero 

 

 

--- Quote Start ---  

Hi, 

Thanks for the answer. 

I would like to identify EPCS16, EPCQ32 and EPCS64 

 

We are also using arriaV which has little bit different programming style to empty memory. 

We use also other FPGAs as well. 

Programming is done external MCU to the memory. The one MCU code is used for all the FPGA and meories and we would really like to see the  

memory type we are facing by reading some info from the memory. 

 

I think that EPCS don't support (except 128) "Read device Identification" and EPCQ doesn't support "Read Silicon ID", am I correct ? 

What do they return if "Read silicon ID" is used for EPCQ and "Read device Identification" for EPCS ? 

So what is the return value for the reads that aren't meant for them ?  

Do they return always same value ? 

 

Of cource we could read always both "Read device Identification" and "Read Silicon ID" but is there a change that we could get mixed by determining what is the memory we are up against ? 

 

-Tero 

--- Quote End ---  

0 Kudos
Altera_Forum
Honored Contributor II
559 Views

 

--- Quote Start ---  

I think that EPCS don't support (except 128) "Read device Identification" and EPCQ doesn't support "Read Silicon ID", am I correct ? 

--- Quote End ---  

Correct. 

 

 

--- Quote Start ---  

What do they return if "Read silicon ID" is used for EPCQ and "Read device Identification" for EPCS ? 

--- Quote End ---  

The DATA (EPCS) or DATA1 (EPCQ) signal is high-impedance when it's not driving. This will be the case when you issue an instruction they don't recognise. What you read back will depend on your design. 

 

If you have a convenient pull-up (which is, probably, not likely to be the case) you'd get something predictable - 0xFF. However, even without you're unlikely to read back a valid device or silicone ID from a device that doesn't support the command. 

 

So, you should be able to distinguish these parts using these two commands. 

 

Happy New Year, 

Alex
0 Kudos
Reply