From: lkcl Date: Fri, 24 Sep 2021 10:42:11 +0000 (+0100) Subject: (no commit message) X-Git-Tag: DRAFT_SVP64_0_1~22 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=63df0af620f5e6512601f76848b2430520b685b8;p=libreriscv.git --- diff --git a/3d_gpu/architecture/dynamic_simd/assign.mdwn b/3d_gpu/architecture/dynamic_simd/assign.mdwn new file mode 100644 index 000000000..e48734b9a --- /dev/null +++ b/3d_gpu/architecture/dynamic_simd/assign.mdwn @@ -0,0 +1,18 @@ +# PartitionedSignal nmigen-aware eq (assign) + +* + +For copying (assigning) PartitionedSignal to PartitionedSignal +of equal size there is no issue. However if the source has a +greater width than the target, *partition-aware* truncation +must occur. For the opposite, sign/zero extension must occur. +Finally for a Signal or Const, duplication across all Partitions +must occur, again, following the rules of zero, sign or unsigned. + +Take two PartitionedSignals (source a, dest b) of 32 bit: + + partition: p p p (3 bits) + a : AAA3 AAA2 AAA1 AAA0 (32 bits) + b : BBB3 BBB2 BBB1 BBB0 (32 bits) + +For all partition settings this copies verbatim.