noc_inline_dw_write_with_state

template<bool update_addr_lo = false, bool update_counter = true, bool posted = false, bool update_addr_hi = false, bool update_val = false, InlineWriteDst dst_type = InlineWriteDst::DEFAULT>
void noc_inline_dw_write_with_state(uint32_t val, uint32_t addr = 0, uint8_t cmd_buf = write_at_cmd_buf, uint8_t noc = noc_index)

Initiates an inline write of a 32-bit value to a NOC destination. This function must be preceded by a call to noc_inline_dw_write_set_state. This function is used to issue the actual write request after the state has been set up. The 32-bit value and part of the destination address can also be set in this API (Only either hi or lo address should be getting updated). noc_inline_dw_write can be used instead if the state preservation is not needed. Also, see noc_async_write_barrier.

The destination node can be either a Tensix core+L1 memory address or a PCIe controller; This API does not support DRAM addresses.

Note: On Blackhole, this API can only write to stream registers, writing to L1 will cause hangs!

Return value: None

Argument

Description

Data type

Valid range

required

val

The value to be written

uint32_t

Any uint32_t

True

addr

The local address to write to (if not set in state)

uint32_t

0..1MB

False

cmd_buf

Command buffer to use for the transaction

uint8_t

0-3

False

noc

NOC to use for the transaction

uint8_t

0 or 1

False

update_addr_lo (template parameter)

Whether to update the lower 32 bits of the address

bool

true or false

False

update_counter (template parameter)

Whether to update the write counters

bool

true or false

False

posted (template parameter)

Whether the call is posted (i.e. ack requirement)

bool

true or false

False

update_addr_hi (template parameter)

Whether to update the upper 32 bits of the address

bool

true or false

False

update_val (template parameter)

Whether to set the value to be written

bool

true or false

False

dst_type (template parameter)

Whether the write is targeting L1 or a Stream Register

InlineWriteDst

DEFAULT, L1, REG

False