• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

256點FFT調(diào)用Quartus IP核實現(xiàn)VHDL傅里葉變換

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1-23102122393L53.doc

共1個文件

名稱:256點FFT調(diào)用Quartus IP核實現(xiàn)傅里葉變換(代碼在文末付費下載)

軟件:Quartus

語言:VHDL

代碼功能:使用VHDL實現(xiàn)256點FFT,調(diào)用Quartus IP核實現(xiàn)傅里葉變換

演示視頻:

FPGA代碼verilog/VHDL代碼資源下載網(wǎng):www.hdlcode.com

部分代碼展示

library?ieee;?
use?ieee.std_logic_1164.all;?
--256點FFT設(shè)計,16bit輸入
entity?fft256?is?port(?
?clk?:?IN?STD_LOGIC;?--時鐘
?reset_n?:?IN?STD_LOGIC;?--復(fù)位
?sink_real?:?IN?STD_LOGIC_VECTOR?(15?DOWNTO?0);?--16bit輸入數(shù)據(jù)
?source_error?:?OUT?STD_LOGIC_VECTOR?(1?DOWNTO?0);?--FFT?IP核輸出的報錯指示信號
?source_sop?:?OUT?STD_LOGIC;?----FFT?IP核輸出的數(shù)據(jù)第一位指示信號
?source_eop?:?OUT?STD_LOGIC;?----FFT?IP核輸出的數(shù)據(jù)最后一位指示信號
?source_valid?:?OUT?STD_LOGIC;?--FFT?IP核輸出的數(shù)據(jù)有效指示信號
?source_exp?:?OUT?STD_LOGIC_VECTOR?(5?DOWNTO?0);?--FFT?IP核輸出的指示信號
?source_real?:?OUT?STD_LOGIC_VECTOR?(15?DOWNTO?0);?--FFT變換輸出的實部
?source_imag?:?OUT?STD_LOGIC_VECTOR?(15?DOWNTO?0)?--FFT變換輸出的虛部
?);?
end?fft256;?
architecture?one?of?fft256?is?
--例化FFT?IP?核
component?fft_burst?
?PORT?(?
?clk?:?IN?STD_LOGIC;?
?reset_n?:?IN?STD_LOGIC;?
?inverse?:?IN?STD_LOGIC;?
?sink_valid?:?IN?STD_LOGIC;?
?sink_sop?:?IN?STD_LOGIC;?
?sink_eop?:?IN?STD_LOGIC;?
?sink_real?:?IN?STD_LOGIC_VECTOR?(15?DOWNTO?0);?
?sink_imag?:?IN?STD_LOGIC_VECTOR?(15?DOWNTO?0);?
?sink_error?:?IN?STD_LOGIC_VECTOR?(1?DOWNTO?0);?
?source_ready?:?IN?STD_LOGIC;?
?sink_ready?:?OUT?STD_LOGIC;?
?source_error?:?OUT?STD_LOGIC_VECTOR?(1?DOWNTO?0);?
?source_sop?:?OUT?STD_LOGIC;?
?source_eop?:?OUT?STD_LOGIC;?
?source_valid?:?OUT?STD_LOGIC;?
?source_exp?:?OUT?STD_LOGIC_VECTOR?(5?DOWNTO?0);?
?source_real?:?OUT?STD_LOGIC_VECTOR?(15?DOWNTO?0);?
?source_imag?:?OUT?STD_LOGIC_VECTOR?(15?DOWNTO?0)?
?);?
END?component;?
--例化FFT?IP核控制模塊
component?ctrl_fft?port(?
?reset_n?:?in?std_logic;?
?clk?:?in?std_logic;?
?sink_ready?:?in?std_logic;?
?sink_sop?:?out?std_logic;?
?sink_eop?:?out?std_logic;?
?sink_valid?:?out?std_logic);?
end?component;?
--定義連接信號
signal?sink_valid_i,sink_eop_i,sink_sop_i,sink_ready_i?:?std_logic;?
begin?
--調(diào)用FFT?IP核
u1?:?fft_burst?port?map(?
?clk?=>?clk,?--時鐘
?reset_n?=>?reset_n,?--復(fù)位
?inverse?=>?'0',?
?sink_valid?=>?sink_valid_i,?--每幀輸入數(shù)據(jù)有效時為高電平
?sink_sop?=>?sink_sop_i,?--用來指示每幀輸入數(shù)據(jù)的第一個數(shù)據(jù)
?sink_eop?=>?sink_eop_i,--用來指示每幀輸入數(shù)據(jù)的最后一個數(shù)據(jù)?
?sink_real?=>?sink_real,?--16bit輸入數(shù)據(jù)
?sink_imag?=>?(others=>'0'),?
?sink_error?=>?"00",?
?source_ready?=>?'1',?
?sink_ready?=>?sink_ready_i,??--指示可以輸入待變換的數(shù)據(jù)
?source_error?=>?source_error,?--FFT?IP核輸出的報錯指示信號
?source_sop?=>?source_sop,?--FFT?IP核輸出的數(shù)據(jù)第一位指示信號
?source_eop?=>?source_eop,?--FFT?IP核輸出的數(shù)據(jù)最后一位指示信號
?source_valid?=>?source_valid,?--FFT?IP核輸出的數(shù)據(jù)有效指示信號
?source_exp?=>?source_exp,?--FFT?IP核輸出的指示信號
?source_real?=>?source_real,?--FFT變換輸出的實部
?source_imag?=>?source_imag?--FFT變換輸出的虛部
?);?
?
--調(diào)用FFT?IP核控制模塊
u2?:?ctrl_fft?port?map(?
?reset_n?=>?reset_n,?
?clk?=>?clk,?
?sink_ready?=>?sink_ready_i,?--指示可以輸入待變換的數(shù)據(jù)?
?sink_sop?=>?sink_sop_i,--用來指示每幀輸入數(shù)據(jù)的第一個數(shù)據(jù)?
?sink_eop?=>?sink_eop_i,--用來指示每幀輸入數(shù)據(jù)的最后一個數(shù)據(jù)?
?sink_valid?=>?sink_valid_i?--每幀輸入數(shù)據(jù)有效時為高電平
?);?
end?one;

設(shè)計文檔:

1. 工程文件

2. 程序文件

FFT IP 核設(shè)置

3. 程序編譯

4. RTL圖

5. Testebcnh

6. 仿真圖

  • 1-23102122393L53.doc
    下載

相關(guān)推薦