fft.v

来自「jpeg压缩中的DCT蝶型算法verilog代码」· Verilog 代码 · 共 39 行

V
39
字号
module butterfly(out1_re,out1_im,out2_re,out2_im,in1_re,in1_im,in2_re,in2_im,clk);
output[7:0] out1_re,out1_im,out2_re,out2_im;
input[7:0] in1_re,in1_im,in2_re,in2_im;
input clk;
reg[7:0] out1_re,out1_im,out2_re,out2_im;
reg[15:0] temp_re,temp_im;
reg[7:0] temp1,temp2;
    
function[15:0] mul;
input[7:0]    in;
reg[13:0]  str1;
reg[11:0]  str2;
reg[10:0]  str3;
reg[9:0]   str4;
reg[15:0]  mul1,mul2;

begin
   assign str4=in<<1;
   assign str3=str4<<2;
   assign str2=str3<<1;
   assign str1=str2<<2;
   assign mul1=str4+str3;
   assign mul2=str1+str2;
   mul=mul1+mul2;
end
endfunction 

always @(posedge clk)   
  begin
      temp_re=mul(in2_re);
      temp_im=mul(in2_im);
      temp1=temp_re[14:7]-temp_im[14:7];
      temp2=temp_re[14:7]+temp_im[14:7];
      out1_re=in1_re+temp1;
      out1_im=in1_im+temp1;
      out2_re=in2_re-temp2;
      out2_im=in2_im-temp2;
  end
  endmodule

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?