noc_async_write_one_packet_set_state

template<bool posted = false>
void noc_async_write_one_packet_set_state(uint64_t dst_noc_addr, uint32_t size, uint8_t noc = noc_index, uint8_t vc = NOC_UNICAST_WRITE_VC)

Sets the stateful registers for an asynchronous write for a single packet with size <= NOC_MAX_BURST_SIZE (i.e. maximum packet size) to a specified destination node located at NOC coordinates (x,y) at a local address (encoded as a uint64_t using get_noc_addr function). This function is used to set up the state for noc_async_write_one_packet_with_state, which will issue the actual write request. noc_async_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 DRAM bank, a Tensix core or a PCIe controller.

Return value: None

Argument

Description

Data type

Valid range

required

dst_noc_addr

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

uint64_t

Results of get_noc_addr calls

True

size

Size of data transfer in bytes

uint32_t

0..1MB

True

noc

Which NOC to use for the transaction

uint8_t

0 or 1

False

vc

Which VC to use for the transaction

uint8_t

0-3

False

posted (template argument)

Whether the write is posted (i.e. no ack required)

bool

true or false

False