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

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

incr The value to increment by

noc_id Which NOC to use for the transaction

vc Which VC to use for the transaction

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