国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 4789|回復(fù): 1
打印 上一主題 下一主題

[提問] Verilog編程問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2012-7-18 23:43:05 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: 250 , fft , verilog , 快速傅里葉變換
2積分
我在編寫FFT內(nèi)核的時候在大循環(huán)里總是出現(xiàn)下面的錯誤
Error (10119): Verilog HDL Loop Statement error at Test.v(72): loop with non-constant loop condition must terminate within 250 iterations
Verilog不能支持250層以上的循環(huán)么?求高手指教。
有沒有現(xiàn)成的FFT內(nèi)核,希望能參考一下。

一下為代碼
/*
FFT code
*/
module Test(CLK_50M,REST,CS,ADCDAT,FULL,BUSY,EXT,OUTDAT);
input CLK_50M,REST,CS,EXT;
input [ADCBit-1:0] ADCDAT;
output FULL,BUSY;
output [63:0] OUTDAT;//計算結(jié)果是浮點(diǎn)型
//reg [ADCBit-1:0] ADCDAT;
reg [31:0] OUTDAT;
reg FULL,BUSY;
reg [15:0] CNT;
reg [15:0] N;
reg CLK;
reg [ADCBit-1:0] ADCMEMORY[FFTN-1:0];//輸入為實(shí)數(shù)
reg [31:0] DOREMEMORY[FFTN-1:0],DOIMMEMORY[FFTN-1:0];//輸出為復(fù)數(shù)
reg [15:0] i,j,k;//中間過程變量寄存器
reg [15:0] f,m,l,le,lei,ip;
reg [ADCBit-1:0] temp;
reg [31:0] u[1:0],v[1:0],w[1:0];//x[0]=real,x[1]=image
parameter FFTN=16'd256,//FFT點(diǎn)數(shù)
    Pi=3.14159,//pi
    ADCBit=4'd8,//8bit ADC
    CLKDiv=16'd50;//1MHz
   
always @(posedge CLK_50M or negedge REST)
if(!REST) CNT <= 16'h0000;
else if((!CS)&&(CNT!=CLKDiv)) CNT <= CNT+1'b1;
   else CNT <= 16'h0000;
always @(posedge CLK_50M or negedge REST)
if(!REST) CLK <= 1'b0;
else if(CNT==CLKDiv) CLK <= ~CLK;

always @(posedge CLK or negedge REST)//ACD數(shù)據(jù)輸入
if(!REST) N <= 16'h0000;
else if(!CS) begin ADCMEMORY[N] <= ADCDAT;N <= N+1'b1; end

always @(N)
if(N==FFTN-1) FULL <= 1'b1;
else FULL <= 1'b0;

always @(posedge CLK_50M or negedge REST)
if(!REST) begin BUSY <= 1'b0;j <= 16'h0000;f <= FFTN/16'd2; end
else if(N==FFTN-1)
  begin
   BUSY <= 1'b1;
   for(i=16'h0000;i     begin
     if(i       begin
       temp <= ADCMEMORY[j];
       ADCMEMORY[j] <= ADCMEMORY[i];
       ADCMEMORY[i] <= temp;
      end
     k <= FFTN/16'd2;
     while(k<=j)
      begin
       j <= j-k;
       k <= k/16'd2;
      end
     j <= j+k;
    end
   for(i=16'h0000;i     begin
     DOREMEMORY[i] <= ADCMEMORY[i];
     DOIMMEMORY[i] <= 0;
    end
   for(l=16'd1;f!=16'd1;l=l+1'b1) f <= f/2;
   for(m=16'd1;m<=l;m=m+1'b1)
    begin
     le <= 16'd2<<(m-1);
     lei <= le/2;
     u[0] <= 16'd1;
     u[1] <= 16'd0;
     w[0] <= cos(Pi/lei);
     w[1] <= -sin(Pi/lei);
     for(j=0;j<=lei-1;j=j+1'b1)
      begin
       ip <= i+lei;
       EE(DOREMEMORY[ip],DOIMMEMORY[ip],u[0],u[1],v[0],v[1]);
       DOREMEMORY[ip] <= DOREMEMORY[i]-v[0];
       DOIMMEMORY[ip] <= DOIMMEMORY[ip]-v[1];
       DOREMEMORY[i] <= DOREMEMORY[i]+v[0];
       DOIMMEMORY[i] <= DOIMMEMORY[i]+v[1];
      end
     EE(u[0],u[1],w[0],w[1],u[0],u[1]);
    end
   BUSY <= 1'b0;
  end
  
always @(posedge CLK or posedge EXT or negedge BUSY or negedge CS)
if((!CS)&&(!BUSY)&&EXT)
  begin
   OUTDAT <= {DOIMMEMORY[N],DOREMEMORY[N]};
   N <= N-1'b1;
  end
//task EE(ARE,AIM,BRE,BIM,CRE,CIM);
task EE;
input [31:0] ARE,AIM,BRE,BIM;
output [31:0] CRE,CIM;
begin
CRE=ARE*BRE-AIM*BIM;
CIM=ARE*BIM+AIM*BRE;
end
endtask
endmodule

沙發(fā)
發(fā)表于 2012-9-5 08:55:37 | 只看該作者
在FPGA中編程,最好多分模塊,這樣不容易出錯,檢查時也方便。。。
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 狠狠色丁香婷婷综合久久片 | 国产精品九九免费视频 | 日韩一级片免费观看 | 国产91香蕉在线精品 | 四虎影视必出精品 | 亚洲六月丁香六月婷婷花 | 久久91精品国产91久久跳舞 | 日韩黄色一级视频 | 成人精品视频在线观看播放 | 欧美成人一区二区三区不卡视频 | 极品尤物一区二区三区 | 妖精视频国产精品 | 91大神大战丝袜美女在线观看 | 99久久国产综合精品2020 | 欧美日韩国产一区二区三区播放 | 欧美成人精品手机在线观看 | 国产一区二区免费福利片 | 亚洲男人第一av网站 | 欧美黄网站免费观看 | 成在线人视频免费视频 | 免费观看国产精品视频 | 最新自拍偷拍 | 国产亚洲综合成人91精品 | 日产精品1卡二卡三卡乱码在线 | 国产91po在线观看免费观看 | 亚洲人成在线免费观看 | 亚洲欧美中文字幕在线网站 | 久久成人国产精品 | 日韩免费 | 亚洲最大情网站在线观看 | 在线五月婷婷 | 呦视频在线一区二区三区 | 青草视频网站在线观看 | 国产精品1024香蕉在线观看 | 91精品欧美综合在线观看 | 麻豆国产在线观看免费 | 综艺免费在线观看 | 国产精品久久久久一区二区三区 | 一区不卡在线观看 | 四川一级毛片 | 99自拍网|