Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
10 years ago

Identify EPCS and EPCQ

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

4 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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 ---

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- 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