SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The VWDONE instruction is used as a synchronization barrier between scalar and vector core, and affects the scalar/vector interface signal vec_done. Upon reset, vec_done is true. Upon execution of VWDONE in the scalar core, the scalar stalls and waits for vec_done. The vector core, upon exeucting this instruction, implying all previous submitted vector instructions are all done, asserts vec_done. Once asserted, vec_done stays true until receiving a subsequent VLOOP that turns the vector busy and vec_done false again.
The VWDONE instruction is typically used before the scalar core switches shared memory to itself or DMA. Before it changes the switch it makes sure that the vector core is idle and thus not accessing the memory.
VWDONE must appear between vector commands in the program, not inside a vector command.