CHA 发表于 2010-6-27 23:42:00

做FFT实现的时候多个相同模块并行调用运行怎么处理

本帖最后由 fpgaw 于 2010-7-12 17:18 编辑

做FFT实现的时候,要用并行处理,16个蝶形单元并行运行,但是一直没有处理好。
大家帮帮忙,指点一下。
大体思路见下面的代码:

module bufly_array (clk, In, P, Out);
    input clk;
    //全部将寄存器值付给线值,一次性输入
    input In;
    input P;
    output wire Out;
   
    reg In_reg ;
   
    reg alm, ahm, al, ah;
    wire Out_wire ; //bufly输出赋值
   
    always @ (posedge clk)
      begin
            In_reg<=In;
            In_reg<=In;
            ...
            In_reg<=In;
      end
   
    /*地址产生器,计算节点数据地址add_up,add_down
    P为级数
    al为地地址,ah为高地址
    add_up_out为高节点地址
    add_down_out为低节点地址
    */
    add add_0 (.P(P), .al(al), .ah(ah), .add_up(add_up_out), .add_down(add_down_out));
   
    always @ (p)
      begin
            alm<=4'b1<<(p-3'b1);
            ahm<=4'b1<<(3'b100-p);
      end
   
    always @ (posedge clk)
      begin
            for (i=0;i<=5'h0f;i=i+5'b1)
                begin
                  if(ah<ahm)
                        ah<=ah+4'b1;
                  else if (al<alm)
                        begin
                            ah<=4'b0;
                            al<=al+4'b1;
                        end
                  else
                        al<=4'b0;
                  //完成赋值
                  count<=count+4'b1;
                  //通过地址来选择操作数和旋转因子
                  add_up<=add_up_out;
                  add_down<=add_down_out;
                end
                  
            // if (count<=9'h0ff) //通过count来依次选择蝶形单元
               
            //else
            //count<=9'b0;      
      end
   
    bufly bufly_00 (.In_up(In_reg])
      .In_down(In_reg])
      .Out_up(Out_wire])
      .Out_down(Out_wire])
      );
    ...
   
    bufly bufly_15 (.In_up(In_reg])
      .In_down(In_reg])
      .Out_up(Out_wire])
      .Out_down(Out_wire])
      );
   
    assign Out={Out_wire,...,Out_wire};
endmodule



module bufly (In_up, In_down, Out_up, Out_down);
    input In_up, In_down;
    output Out_up, Out_down;
   
    ......
endmodule

module add (P, al, ah, add_up, add_down);
    input P;
    input al, ah;
    output add_up, add_down;
    ......
endmodule

usb 发表于 2010-6-28 01:11:40

哎,怎么就没人理呢?
页: [1]
查看完整版本: 做FFT实现的时候多个相同模块并行调用运行怎么处理