Forum Discussion

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

PIO Bitwise operation

Hallo,

What is the best way to perform bit wise operation to clear or set specific bits on Nios II PIO port?

An example

CTRL_PORT = CTRL_PORT | (1 << CTRL_CS) | (1 << CTRL_RDE) | (1 << CTRL_WR);

CTRL_PORT = CTRL_PORT & ~(1 << CTRL_ALE);

Where

# define CTRL_CS 0# define CTRL_RST 1# define CTRL_RDE 2# define CTRL_WR 3# define CTRL_ALE 4

3 Replies

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

    When you instantiate a PIO in Qsys, you can optionally enable the single bit clear/set feature.

    You can then use the IOWR_ALTERA_AVALON_PIO_SET_BITS / IOWR_ALTERA_AVALON_PIO_CLEAR_BITS macros.

    Enabling this option you spare the instructions required to read the actual pio status and masking the existing bits.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Can you give me an example based on the code that I posted before?