From: lkcl Date: Fri, 7 Feb 2020 16:41:11 +0000 (+0000) Subject: (no commit message) X-Git-Tag: convert-csv-opcode-to-binary~3525 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f1e73161d7283a5e7ba25a41f7781f285984f30f;p=libreriscv.git --- diff --git a/3d_gpu/architecture/dynamic_simd/shift.mdwn b/3d_gpu/architecture/dynamic_simd/shift.mdwn new file mode 100644 index 000000000..83ca7d399 --- /dev/null +++ b/3d_gpu/architecture/dynamic_simd/shift.mdwn @@ -0,0 +1,12 @@ +# Dynamic Partitioned Shift + +This is almost as complex as multiplication, except there is a trick that can be deployed. In the partitioned multiplier, it is necessary to compute a full NxN matrix of partial multiplication results, then perform a cascade of adds, using PartitionedAdd to "automatically" break them down into segments. + +Partitioned Shifting will also require to have an NxN matrix, however it is slightly different. first, define the following: + + a0 = a[7..0], a1 = a[15..8], .... + b0 = b[7..0], b1 = b[15..8], .... + +then, we compute the following matrix: + + a0 << b0 a1 << b0 a2 << b0 a3 << b0