Forum Discussion

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

How to define CPU ID in multiprocessor design based on NIOS II CPU?

Hi,

I have try this code in my NIOS code :

printf("NIOS %d is waiting for control signal\n",ALT_CPU_CPU_ID_VALUE);

I have implement 3 nios processor in my project. Why this ALT_CPU_CPU_ID_VALUE function always return 0 value? Each core always returned 0 values instead 1,2,3 ?

it should be show this message :

NIOS 0 is waiting for control signal

NIOS 1 is waiting for control signal

NIOS 2 is waiting for control signal

However the fact , the message look like this :

NIOS 0 is waiting for control signal

NIOS 0 is waiting for control signal

NIOS 0 is waiting for control signal

Need for advice.. Thank you

2 Replies

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

    ALT_CPU_CPU_ID_VALUE is nothing more than a# define in the "system.h" file of the BSP. It is not a function.

    You will need to create a different a BSP project for each NIOS processor in your design. This will result in a different ALT_CPU_CPU_ID_VALUE in each BSP.

    Alternatively, connect a different System ID peripheral to each NIOS processor, with the value set to match the CPU ID. You can then read the value of the peripheral instead of using the# define. That way it will be a run-time calculated value, not a compile time value.