IP配置
- Configuration
- 配置通道數(shù)和FFT長(zhǎng)度
- 時(shí)鐘頻率以及數(shù)據(jù)吞吐速率
- FFT的結(jié)構(gòu)選擇
- Srteaming , 可以對(duì)數(shù)據(jù)進(jìn)行流水處理
- Radix-4 , 基4的迭代算法,使用資源比流水線結(jié)構(gòu)多,但是轉(zhuǎn)換時(shí)間長(zhǎng)
- Radix-2, Radix-2 lite 都為基2的迭代算法,Radix-2 lite的資源占用更少,但是轉(zhuǎn)換時(shí)間也更長(zhǎng)。
- Run Time configuration transform length
可以動(dòng)態(tài)改變配置信息。
- Implementation
- Data format(數(shù)據(jù)格式)
- 定點(diǎn)數(shù)或者浮點(diǎn)數(shù)
- Scaled option(縮放選項(xiàng))
- Unscaled : 所有整數(shù)位的數(shù)據(jù)輸出。這可以使用更多的FPGA資源。
- Scaled???? : 截取數(shù)據(jù)域輸入數(shù)據(jù)位寬相同
- Block Floating-Point? : 這種方式確定要充分利用可用的動(dòng)態(tài)范圍需要多大的縮放,并以塊指數(shù)的形式報(bào)告縮放因子。
- Rounding Modes
- 截位方式:Truncation ,收斂截位。收斂舍入如果該數(shù)是奇數(shù)則向上舍入,如果該數(shù)是偶數(shù)則向下舍入
- Precision(精度)
- 數(shù)據(jù)輸入位寬
- 相位因子位寬:該位寬越大輸出噪聲越小,但是占用資源越多
- Control Signals
- 時(shí)鐘使能信號(hào)
- 復(fù)位信號(hào)
- Output Ordering
- 輸出數(shù)據(jù)選擇是位/數(shù)字反轉(zhuǎn)順序或自然順序。基于Radix-2的體系結(jié)構(gòu)(流水I/O、Radix-2 Burst I/O和Radix-2 Lite Burst I/O)提供了位反轉(zhuǎn)排序,基于Radix-4的體系結(jié)構(gòu)(Radix-4 Burst I/O)提供了數(shù)字反轉(zhuǎn)排序。對(duì)于流水I/O架構(gòu),選擇自然順序輸出順序會(huì)增加內(nèi)核使用的內(nèi)存。對(duì)于Burst I/O體系結(jié)構(gòu),選擇自然順序輸出會(huì)增加整體轉(zhuǎn)換時(shí)間
- Optional Output Fields
- XK_INDEX 輸出數(shù)據(jù)的通道數(shù),也即是XK 的下標(biāo),
- OVFLO 標(biāo)識(shí)數(shù)據(jù)輸出通道和狀態(tài)通道。
- Throttle Schemes
- 實(shí)時(shí)模式通常提供更小、更快的設(shè)計(jì),但對(duì)何時(shí)必須提供和使用數(shù)據(jù)有嚴(yán)格的限制。非實(shí)時(shí)模式?jīng)]有這樣的限制,但設(shè)計(jì)可能更大、更慢。更多細(xì)節(jié)請(qǐng)參見(jiàn)控制FFT核心。
- Data format(數(shù)據(jù)格式)
- Detaild implementation
- Memory option
- 選擇數(shù)據(jù)存儲(chǔ)的存儲(chǔ)器類型
- Optimize options
- Complex multipliers
- Use CLB logic: 所有的復(fù)乘法器都是用片邏輯構(gòu)造的。這適用于性能要求較低的目標(biāo)應(yīng)用程序,或DSP片較少的目標(biāo)設(shè)備。
- Use 3-multiplier structure: 所有復(fù)雜乘法器都使用三實(shí)乘、五加減結(jié)構(gòu),其中乘法器使用DSP片。這減少了DSP片數(shù),但使用了一些片邏輯。該結(jié)構(gòu)可以利用DSP片預(yù)加器,減少或消除對(duì)額外片邏輯的需要,提高性能。
- ?Use 4-multiplier structure : 所有的復(fù)數(shù)乘法器都使用四個(gè)實(shí)數(shù)乘法,兩個(gè)加減法結(jié)構(gòu),利用DSP片。這種結(jié)構(gòu)以犧牲更多專用乘法器為代價(jià)獲得了最高的時(shí)鐘性能。在有DSP片的設(shè)備中,加/減操作在DSP片中實(shí)現(xiàn)。
- Complex multipliers
- Memory option
s_axis_config_tdata(配置信息)
- FWD/INV
- 0 時(shí)做FFT, 1時(shí)做逆FFT
- NFFT
- FFT的點(diǎn)數(shù),The value of NFFT is log2 (point size),例NFFT=3時(shí)。做8點(diǎn)FFT
- CP_LEN
- 循環(huán)前綴長(zhǎng)度:在整個(gè)變換輸出之前,從變換結(jié)束開(kāi)始作為循環(huán)前綴初始輸出的樣本數(shù)量。CP_LEN可以是小于點(diǎn)大小的0到1之間的任何數(shù)字。此字段僅在循環(huán)前綴插入時(shí)出現(xiàn)。
- SCALE_SCH
- 當(dāng)FFT核被配置為處理浮點(diǎn)數(shù)據(jù)時(shí),不需要伸縮計(jì)劃(SCALE_SCH被忽略)。浮點(diǎn)數(shù)據(jù)的規(guī)范化和縮放在內(nèi)部處理。
- 對(duì)于Burst I/O架構(gòu),伸縮調(diào)度為每個(gè)階段指定兩個(gè)比特,第一個(gè)階段的伸縮由兩個(gè)lsb給出。縮放可以指定為3、2、1或0,這表示要移位的比特?cái)?shù)。N =1024,基數(shù)-4突發(fā)I/O的擴(kuò)展調(diào)度示例為[1 02 3 2](從最后一級(jí)到第一級(jí)排序)。對(duì)于N =128, Radix-2突發(fā)I/O或Radix-2 Lite突發(fā)I/O,一種可能的擴(kuò)展計(jì)劃是[1 1 1 1 1 0 12](從最后一級(jí)到第一級(jí)排序)。
- 對(duì)于流水I/O體系結(jié)構(gòu),伸縮調(diào)度為每一對(duì)基數(shù)-2階段指定兩個(gè)比特,從兩個(gè)lsb開(kāi)始。例如,N = 256的伸縮調(diào)度可以是[2 2 2 3]。當(dāng)N不是4的冪時(shí),最后階段的最大比特增長(zhǎng)為1位。例如,對(duì)于N = 512,[0 2 2 2]或[1 2 2 2 2]是有效的伸縮調(diào)度,但[2 2 2 2 2]是無(wú)效的。對(duì)于這個(gè)轉(zhuǎn)換長(zhǎng)度,SCALE_SCH的兩個(gè)msb只能是00或01。此字段僅在縮放算術(shù)(非縮放、塊浮點(diǎn)或單精度浮點(diǎn))時(shí)可用。
仿真結(jié)果
信號(hào)輸入輸出:
信號(hào) |
方向 |
定義 |
s_axis_config_tdata |
in |
?配置參數(shù) |
s_axis_config_tvalid |
in |
|
s_axis_config_tready |
out |
|
s_axis_data_tdata |
in |
輸入數(shù)據(jù)(復(fù)數(shù)) |
s_axis_data_tvalid |
in |
數(shù)據(jù)有效信號(hào) |
s_axis_data_tready |
out |
|
s_axis_data_tlast |
in |
標(biāo)識(shí)每幀的最后一個(gè)數(shù)據(jù) |
m_axis_data_tdata |
out |
數(shù)據(jù)輸出(復(fù)數(shù)) |
m_axis_data_tuser |
out |
輸出數(shù)據(jù)的下標(biāo) |
m_axis_data_tvalid |
out |
數(shù)據(jù)有效 |
m_axis_data_tready |
in |
|
m_axis_data_tlast |
out |
標(biāo)識(shí)最后一個(gè)數(shù)據(jù) |
event_frame_started |
out |
當(dāng)開(kāi)始處理一個(gè)新幀時(shí),該事件信號(hào)被斷言為單個(gè)時(shí)鐘周期。這個(gè)信號(hào)允許你計(jì)算幀數(shù),并在需要時(shí)將核心的配置同步到特定的幀。 |
event_tlast_unexpected |
out |
當(dāng)沒(méi)有接收到一幀的最后一個(gè)數(shù)據(jù)而s_axis_data_tlast拉高時(shí),這表明輸入數(shù)據(jù)的長(zhǎng)度與IP核預(yù)設(shè)的數(shù)據(jù)不匹配,輸入數(shù)據(jù)長(zhǎng)度小于預(yù)設(shè)的長(zhǎng)度 |
event_tlast_missing |
out |
當(dāng)接收到一幀的最后一個(gè)數(shù)據(jù)而s_axis_data_tlast沒(méi)有拉高時(shí),這表明輸入數(shù)據(jù)的長(zhǎng)度與IP核預(yù)設(shè)的數(shù)據(jù)不匹配,輸入數(shù)據(jù)長(zhǎng)度大于預(yù)設(shè)的長(zhǎng)度 |
event_status_channel_halt |
out |
每當(dāng)核心需要向data Output通道寫(xiě)入數(shù)據(jù),但由于通道中的緩沖區(qū)已滿而無(wú)法寫(xiě)入時(shí),都會(huì)斷言此事件。當(dāng)發(fā)生這種情況時(shí),核心處理將停止,所有活動(dòng)將停止,直到通道緩沖區(qū)中有可用空間為止??蚣軟](méi)有損壞。 事件引腳僅在非實(shí)時(shí)模式下可用。 |
event_data_in_channel_halt |
out |
當(dāng)IP核需要來(lái)自數(shù)據(jù)輸入通道的數(shù)據(jù)但沒(méi)有可用數(shù)據(jù)時(shí),在每個(gè)周期斷言此事件。 |
event_data_out_channel_halt |
out |
每當(dāng)核心需要向Status通道寫(xiě)入數(shù)據(jù),但由于通道上的緩沖區(qū)已滿而無(wú)法寫(xiě)入時(shí),都會(huì)斷言此事件。當(dāng)發(fā)生這種情況時(shí),核心處理將停止,所有活動(dòng)將停止,直到通道緩沖區(qū)中有可用空間為止。框架沒(méi)有損壞。事件引腳僅在非實(shí)時(shí)模式下可用。 |
FFT仿真結(jié)果
時(shí)鐘頻率為160M,正弦波頻率為160M/8=20M,F(xiàn)FT(128點(diǎn))之后在第16根譜線達(dá)到最大值,頻率為160M/128*16=20M。
當(dāng)輸入一個(gè)負(fù)頻時(shí),代表的頻率為160M/128*(128-112)= -20M
IFFT仿真結(jié)果
?????????將參數(shù)FWD/INV置1就變成了IFFT運(yùn)算,將IP核配置為IFFT模式,將前面的輸出作為IFFT的輸入進(jìn)行仿真,
????????輸出的正弦信號(hào)個(gè)周期占據(jù)8個(gè)160M的時(shí)鐘,說(shuō)明該正弦信號(hào)的頻率為:160M/8=20M,與做FFT輸入的信號(hào)相同,說(shuō)明IFFT運(yùn)算結(jié)果正確。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-443595.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-443595.html
到了這里,關(guān)于Xilinx 的FFT IP核使用方法(配置為FFT 、IFFT兩種模式)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!