butterfly1.vhd

来自「这是一个蝶行运算单元,是做FFT的最基本的单元」· VHDL 代码 · 共 31 行

VHD
31
字号
--这是一个蝶行运算单元模块,输入分别为A和B的实部和虚部,输出为A+B*C和A-B*C
library ieee;              --调用IEEE库
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
 
entity butterfly1 is       --定义一个实体(输入和输出) 

port (in1_r,in1_i,in2_r,in2_i : in integer range -500 to 500 ;
out1_r,out1_i,out2_r,out2_i : out integer range -500 to 500 );

end butterfly1;

architecture bhv of butterfly1 is    --定义一个结构体(中间变量)
signal a,b,c,d : integer range -500 to 500 ;
signal cx,dx : integer range -500000 to 500000 ;--乘积部分会大
constant w : integer:=724;

begin
  a<=in1_r;
  b<=in1_i;
  c<=in2_r;
  d<=in2_i;
  cx<=w*c;
  dx<=w*d;
  out1_r<=a+dx/1024+cx/1024;     --乘一个固定系数W14=0.707+j0.707
  out1_i<=b+dx/1024-cx/1024;
  out2_r<=a-dx/1024-cx/1024;
  out2_i<=b-dx/1024+cx/1024;
end bhv;

⌨️ 快捷键说明

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