noc_semaphore_inc

template<bool posted = false>
void noc_semaphore_inc(uint64_t addr, uint32_t incr, uint8_t noc_id = noc_index, uint8_t vc = NOC_UNICAST_WRITE_VC)

The Tensix core executing this function call initiates an atomic increment (with 32-bit wrap) of a remote Tensix core L1 memory address. This L1 memory address is used as a semaphore of size 4 Bytes, as a synchronization mechanism. Refer to <arch>/noc/noc.h for the documentation of noc_atomic_increment.

Return value: None

Argument

Description

Type

Valid Range

Required

addr

Encoding of the destination location (x,y)+address

uint64_t

DOX-TODO(insert a reference to what constitutes valid coords)

True

incr

The value to increment by

uint32_t

Any uint32_t value

True

noc_id

Which NOC to use for the transaction

uint8_t

0 or 1

False

posted (template argument)

Whether the call is posted or nonposted (i.e. needs to be acked)

uint32_t

true or false

False