From 331a7b9d8940f2c89355866ec352b648fc610ec3 Mon Sep 17 00:00:00 2001 From: lkcl Date: Sun, 26 Sep 2021 16:10:30 +0100 Subject: [PATCH] --- 3d_gpu/architecture/dynamic_simd.mdwn | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/3d_gpu/architecture/dynamic_simd.mdwn b/3d_gpu/architecture/dynamic_simd.mdwn index 3212ad5f4..18c401ed4 100644 --- a/3d_gpu/architecture/dynamic_simd.mdwn +++ b/3d_gpu/architecture/dynamic_simd.mdwn @@ -115,3 +115,16 @@ If these were ordinary Signals, they would be translated to a Switch where: respectively. * the first case would be "1-" to activate `o.eq(c) * the second case would be "-1" to activate o.eq(d) + +A parallel variant may thus perform a for-loop, creating four +**independent** Switches: + +* take a[0] and b[0] and Cat them together `Cat(a[0], b[0])` +* take the output of each case result `o[0].eq[c[0])` and + so on +* create the first independent Switch +* take a[1] and b[1] etc. + +There are several ways in which the parts of each case, when +activated, can be split up: temporary Signals, analysing +the AST, or using PartitionedMux. -- 2.30.2