如何在VHDL中正确使用generate语句? <-多个生成的

时间:2019-05-04 06:08:25

标签: vhdl fft

我正在尝试在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的1​​6到19之间的数字,和“ i”是g4的24到27之间的数字。

编辑:作为背景知识,这是我在目标中使用Radix 2 DIF算法构造自己的32位FFT的方法。本质上,我在每个generate循环中调用的实体是执行交叉(加,乘,乘)的实体,并提供了正确的输入。

0 个答案:

没有答案