微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > DCT蝶形算法中嵌套循环的仿真

DCT蝶形算法中嵌套循环的仿真

时间:10-02 整理:3721RD 点击:
  不知道for循环的嵌套这一块怎么解决,望高人指点,导师不要求能综合,只要和C语言跑出来的结果一样就可以,C中部分代码如下:
  void dct(int a[4][4])   
  //int a_temp[4][4]={{24,20,3,24},{16,2,1,6},{23,7,4,5},{10,20,5,22}};
{int i,j,i1,j1;
int m5[16];

for (j=0; j < 16; j++)
{
      for (i=0; i < 8; i++)
       {
          i1=3-i;
          m5=a[j]+a[i1][j];
          m5[i1]=a[j]-a[i1][j];
        }
      a[0][j]=(m5[0]+m5[1]);
      a[2][j]=(m5[0]-m5[1]);
      a[1][j]=m5[3]*2+m5[2];
      a[3][j]=m5[3]-m5[2]*2;
}   
    其中a是4*4的已知矩阵;  自己的想法是用case一一对应,但是这样的话会有16*8中情况,展开Verilog的文件很大,请教高人有没有什么办法实现,不要考虑硬件资源和能否综合的问题。想前端先能够跑通且和C的运行结果相同;先谢了。

可以考虑把全部循环打开实现,毕竟是有限次循环



    您的建议就是和我想的用case一一对应一样么?谢谢您的回复。

可不可以用计数器来控制?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top