# copy
SVSHAPE1[0:31] <- SVSHAPE0[0:31]
SVSHAPE2[0:31] <- SVSHAPE0[0:31]
- SVSHAPE3[0:31] <- SVSHAPE0[0:31]
+ if (SVRM != 0b0100) then
+ SVSHAPE3[0:31] <- SVSHAPE0[0:31]
# for FRA and FRT
SVSHAPE0[28:29] <- 0b01 # j+halfstep schedule
# for cos coefficient
- SVSHAPE2[28:29] <- 0b10 # ci schedule
- SVSHAPE3[28:29] <- 0b11 # size schedule
+ SVSHAPE2[28:29] <- 0b10 # ci (k for mode 4) schedule
+ if (SVRM != 0b0100) then
+ SVSHAPE3[28:29] <- 0b11 # size schedule
# set schedule up for DCT Outer butterfly
if (SVRM = 0b0011) then
# calculate O(N log2 N) number of outer butterfly overlapping adds
# get indices to iterate over, in the required order
n = SVSHAPE.lims[0]
mode = SVSHAPE.lims[1]
- print ("inner butterfly", mode)
+ #print ("inner butterfly", mode, SVSHAPE.skip)
# creating lists of indices to iterate over in each dimension
# has to be done dynamically, because it depends on the size
# first, the size-based loop (which can be done statically)