From: lkcl Date: Sat, 4 Jun 2022 17:38:21 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~1978 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=235c83e250cc8854c5d23a2d17235152386dd5c4;p=libreriscv.git --- diff --git a/openpower/sv/shape_table_format.mdwn b/openpower/sv/shape_table_format.mdwn index b02e670b5..04374e61c 100644 --- a/openpower/sv/shape_table_format.mdwn +++ b/openpower/sv/shape_table_format.mdwn @@ -5,13 +5,15 @@ disabled: the register's elements are a linear (1D) vector. | ------ | ------ | ------ | ------ | ------- | ------- | ------- | ------- | | 0b00 | skip | offset | invxyz | permute | zdimsz | ydimsz | xdimsz | | 0b01 | submode| offset | invxyz | submode2| rsvd | rsvd | xdimsz | +| 0b00 | elwidth| offset | invxyz |0b110/0b111| SVGPR | ydimsz | xdimsz | mode sets different behaviours (straight matrix multiply, FFT, DCT). * **mode=0b00** sets straight Matrix Mode +* **mode=0b00** with permute=0b110 or 0b111 sets Indexed Mode * **mode=0b01** sets "FFT/DCT" mode and activates submodes -**FFT/DCT mode** +## FFT/DCT mode submode2=0 is for FFT. For FFT submode the following schedules may be selected: @@ -42,7 +44,7 @@ is also performed. * **submode=0b00** selects the ``j`` offset of the innermost for-loop, * **submode=0b01** selects the ``j+1`` offset of the innermost for-loop, -**Matrix Mode** +## Matrix Mode In Matrix Mode, skip allows dimensions to be skipped from being included in the resultant output index. this allows sequences to be repeated: @@ -91,6 +93,8 @@ below shows how the permutation dimensionality order works: | 011 | 1,2,0 | (ydim+1)(zdim+1)(xdim+1) | | 100 | 2,0,1 | (zdim+1)(xdim+1)(ydim+1) | | 101 | 2,1,0 | (zdim+1)(ydim+1)(xdim+1) | +| 110 | 0,1 | Indexed (xdim+1)(ydim+1) | +| 110 | 1,0 | Indexed (ydim+1)(xdim+1) | In other words, the "permute" option changes the order in which nested for-loops over the array would be done. See executable