(no commit message)
[libreriscv.git] / 3d_gpu / architecture / dynamic_simd / repl.mdwn
1 # PartitionedSignal nmigen-aware Repl
2
3 * <https://bugs.libre-soc.org/show_bug.cgi?id=458>
4
5 Partitioned Repl is very similar to [[cat]] and
6 [[assign]]. The output completely changes depending
7 on the partition mask.
8
9 Take a PartitionedSignal and a repeat quantity of 2:
10
11 partition: p p p (3 bits)
12 a : A3 A2 A1 A0 (32 bits)
13
14 The output will be 64 bit in length. However
15 when the partitions are 32-bit, the output is:
16
17 partition: p p p (3 bits)
18 out : A3 A2 A1 A0 A3 A2 A1 A0 (64 bits)
19
20 When 2x16, the top half of A is replicated,
21 and likewise the lower:
22
23 partition: p p p (3 bits)
24 out : A3 A2 A3 A2 A1 A0 A1 A0 (64 bits)
25
26 Finally when 4x8, each byte is concatenated:
27
28 partition: p p p (3 bits)
29 out : A3 A3 A2 A2 A1 A1 A0 A0 (64 bits)
30