noc_inline_dw_write_set_state
-
template<bool posted = false, bool set_val = false>
void noc_inline_dw_write_set_state(uint64_t addr, uint32_t val = 0, uint8_t be = 0xF, uint8_t cmd_buf = write_at_cmd_buf, uint8_t noc = noc_index, uint8_t vc = NOC_UNICAST_WRITE_VC)
-
Sets the stateful registers for an inline write of a 32-bit value to a NOC destination. This function is used to set up the state for noc_inline_dw_write_with_state, which will issue the actual write request. The 32-bit value and part of the destination address can be set later in noc_inline_dw_write_with_state. 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
Type
Valid Range
Required
addr
Encoding of the destination location (x,y)+address
uint64_t
Results of get_noc_addr calls
True
val
The value to be written
uint32_t
Any uint32_t value
False
be
Byte-enable
uint8_t
0x1-0xF
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
vc
Virtual channel to use for the transaction
uint8_t
0-3 (Unicast VCs)
False
posted (template parameter)
Whether the call is posted (i.e. ack requirement)
bool
true or false
False
set_val (template parameter)
Whether to set the value for the write here
bool
true or false
False