我正在尝试在32种不同可能性之间正确生成循环。这是结构性的VHDL代码,因此我正在使用generate语句创建实体。在这32种可能性中,我只打算在代码中使用这32种可能性中的16种,在这16种可能性中,每4种集将是实体的相同构造。
换句话说,我想为总32个循环中的0到3、8到11、16到19以及24到27的可能性构造一个实体。
当前,我尝试使用仅在已建立范围内工作的generate语句。
g1: for i in 0 to 3 generate
a1 : entity work.single_dft(structural)
....
end generate g1;
g2: for i in 8 to 11 generate
....
end generate g2;
g3: for i in 16 to 19 generate
....
end generate g3;
g4: for i in 24 to 27 generate
....
end generate g4;
我希望能够将“ i”表示为g1的0到3之间的数字,“ i”表示g2的8到11之间的数字,“ i”表示g3的16到19之间的数字,和“ i”是g4的24到27之间的数字。
编辑:作为背景知识,这是我在目标中使用Radix 2 DIF算法构造自己的32位FFT的方法。本质上,我在每个generate循环中调用的实体是执行交叉(加,乘,乘)的实体,并提供了正确的输入。