色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vivado中FFT IP核的使用教程

Hack電子 ? 來源:Hack電子 ? 2024-11-06 09:51 ? 次閱讀

本文介紹了Vidado中FFT IP核的使用,具體內(nèi)容為:調(diào)用IP核>>配置界面介紹>>IP核端口介紹>>MATLAB生成測(cè)試數(shù)據(jù)>>測(cè)試verilogHDL>>TestBench仿真>>結(jié)果驗(yàn)證>>FFT運(yùn)算。

1、調(diào)用IP核

該IP核對(duì)應(yīng)手冊(cè)pg109_xfft.pdf,首先按照?qǐng)D片找到IP核:

e718a622-90a1-11ef-a511-92fbcf53809c.png

e74bfa9a-90a1-11ef-a511-92fbcf53809c.png

2、配置界面介紹

本小節(jié)主要介紹Fast Fourier Transform9.1這個(gè)IP核配置界面的一些選項(xiàng):

第1頁:Configuration

e76f59b8-90a1-11ef-a511-92fbcf53809c.png

圖1

表1 Configuration界面介紹

e7a8e7dc-90a1-11ef-a511-92fbcf53809c.jpg

e7d2a1ee-90a1-11ef-a511-92fbcf53809c.jpg

第2頁:Implementation

e80efa40-90a1-11ef-a511-92fbcf53809c.png

圖2

表2 Implementation界面介紹

e8318f1a-90a1-11ef-a511-92fbcf53809c.jpg

e861dc38-90a1-11ef-a511-92fbcf53809c.jpg

e892b5ce-90a1-11ef-a511-92fbcf53809c.jpg

第3頁:Detailed Implementation

e8cffb8c-90a1-11ef-a511-92fbcf53809c.png

圖3

表3 Detailed Implementation

e901231a-90a1-11ef-a511-92fbcf53809c.jpg

e92e8dfa-90a1-11ef-a511-92fbcf53809c.jpg

3、IP核端口配置

根據(jù)上述配置界面的介紹,下面以64點(diǎn)IFFT為例子,總結(jié)了使用IP核時(shí)所需的端口配置,如表4所示,需要注意的是表4中沒有涉及的部分按照IP核的默認(rèn)配置即可:

表4 64點(diǎn)IFFT運(yùn)算IP核的設(shè)置表匯總

e94a155c-90a1-11ef-a511-92fbcf53809c.jpg

e97f8692-90a1-11ef-a511-92fbcf53809c.jpg

配置完成之后IP核的端口圖如下:

e9ae0918-90a1-11ef-a511-92fbcf53809c.png

圖4 64點(diǎn)IFFT核端口圖

按照下面圖找到例化原語:

e9dcb204-90a1-11ef-a511-92fbcf53809c.png

圖5

打開.veo后綴的文件找到例化原語:

ea134b5c-90a1-11ef-a511-92fbcf53809c.png

圖6

對(duì)例化語句的介紹見表5,其中L表示IFFT/FFT的點(diǎn)數(shù)。

表5 例化原語介紹

ea54ed5a-90a1-11ef-a511-92fbcf53809c.jpg

ea8be472-90a1-11ef-a511-92fbcf53809c.jpg

eac688c0-90a1-11ef-a511-92fbcf53809c.jpg

需要說明的是,需要配置的端口有,1)aclk;2)aclken;3)s_axis_config_tdata ;4)s_axis_config_tvalid ;5)s_axis_config_tready;6)s_axis_data_tdata;7)s_axis_data_tvalid;8)s_axis_data_tready;9)m_axis_data_tdata;10)m_axis_data_tuser;11)m_axis_data_tready;12)m_axis_data_tlast

4、MATLAB生成測(cè)試數(shù)據(jù)

本次測(cè)試只需要使用TestBench驗(yàn)證即可,需要生成.txt后綴的文件,產(chǎn)生IFFT核的輸入數(shù)據(jù),主要程序?yàn)椋?/p>

%%該.m文件用來生成介紹IFFT核的數(shù)據(jù),具體為64點(diǎn)的IFFT16QAM
clear
closeall
clc
rngdefault%產(chǎn)生固定數(shù)值的隨機(jī)數(shù)據(jù)
%%基于符號(hào)算法的目標(biāo)距離和速度探測(cè)
%%定義基本參數(shù)
Ns=1;%符號(hào)數(shù)
Nc=64;%子載波數(shù)
M=16;%調(diào)制方式
bit_num=log2(M);%一個(gè)碼組中的碼元個(gè)數(shù)
bit=randi([01],Nc*Ns*bit_num,1);%產(chǎn)生比特
norm=1/sqrt(10);%16qam歸一化因子
%%16qam
bit_convert=(reshape(bit,bit_num,length(bit)/bit_num))';%二進(jìn)制數(shù)據(jù)流按照調(diào)制的方式分成不同碼元
data_2_to_10=bi2de(bit_convert,'left-msb');%將每四位數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制數(shù)
maxtix=reshape(data_2_to_10,Nc,Ns);
bit_mo=norm*qammod(data_2_to_10,M);
a_nm=reshape(bit_mo,Nc,Ns);
%%發(fā)送端IFFT調(diào)制
IFFT_OUT=ifft(a_nm,64);
%%數(shù)據(jù)保存為.txt文件
echo_real=real(a_nm);
echo_imag=imag(a_nm);
echo1_real=quantizer([1611]);
echo1_imag=quantizer([1611]);
fid_echo=fopen('C:Users15865DesktopFFT_IP_core_64pointIFFT_IP_core_64point_exam.txt','wt');
forj=1:Ns
echo2_real=num2bin(echo1_real,echo_real(:,j));
echo2_imag=num2bin(echo1_imag,echo_imag(:,j));
fori=1:Nc
imag_real_echo=[echo2_imag(i,:),echo2_real(i,:)];
fwrite(fid_echo,imag_real_echo);
fprintf(fid_echo,'
');
end
end
fclose(fid_echo);

圖中程序功能是生成了一段包含64個(gè)復(fù)數(shù)數(shù)據(jù)的數(shù)組,并將每個(gè)復(fù)數(shù)數(shù)據(jù)用16表示實(shí)部16位表示虛部共生成32位二進(jìn)制數(shù),最后將這組數(shù)據(jù)保存為.txt后綴文件。

5、測(cè)試verilog HDL

根據(jù)前文的配置編寫一個(gè)簡(jiǎn)單的測(cè)試.v文件測(cè)試64點(diǎn)數(shù)據(jù)的IFFT運(yùn)行結(jié)果,主要程序如下:

`timescale1ns/1ps
moduleIFFT_introduction(
inputclk,
inputrst_n,
inputifft_valid,
input[31:0]data_in,
//inputlast,

outputs_config_tready,
output[31:0]m_data_tdata,
outputs_data_tready,
output[7:0]m_data_tuser,
outputm_data_tvalid,
outputm_data_tlast
);
FFT_IP_core_64pointifft_u0(
.aclk(clk),//inputwireaclk
.aclken(rst_n),//inputwireaclken
.s_axis_config_tdata(8'd0),//inputwire[7:0]s_axis_config_tdata
.s_axis_config_tvalid(1'b1),//inputwires_axis_config_tvalid
.s_axis_config_tready(s_config_tready),//outputwires_axis_config_tready
.s_axis_data_tdata(data_in),//inputwire[31:0]s_axis_data_tdata
.s_axis_data_tvalid(ifft_valid),//inputwires_axis_data_tvalid
.s_axis_data_tready(s_data_tready),//outputwires_axis_data_tready
//.s_axis_data_tlast(s_axis_data_tlast),//inputwires_axis_data_tlast
.m_axis_data_tdata(m_data_tdata),//outputwire[31:0]m_axis_data_tdata
.m_axis_data_tuser(m_data_tuser),//outputwire[7:0]m_axis_data_tuser
.m_axis_data_tvalid(m_data_tvalid),//outputwirem_axis_data_tvalid
.m_axis_data_tready(1'b1),//inputwirem_axis_data_tready
.m_axis_data_tlast(m_data_tlast)//outputwirem_axis_data_tlast
);


wire[15:0]ifft_64point_out_RE,ifft_64point_out_IM;
//assignRE={{4{m_data_tdata[15]}},m_data_tdata[15:4]};//IFFT歸一化處理,除Nfft
//assignIM={{4{m_data_tdata[39]}},m_data_tdata[39:28]};
assignifft_64point_out_IM=m_data_tdata[31:16];//虛部
assignifft_64point_out_RE=m_data_tdata[15:0];//實(shí)部

endmodule

這段程序調(diào)用了FFT IP核的例化原語,并將部分接口作為函數(shù)的輸入和輸出,方便TestBench調(diào)用。

6、TestBench仿真

主要程序如下:

`timescale1ns/1ps
moduleifft_tb();
regclk;//系統(tǒng)時(shí)鐘
regrst_n;//復(fù)位信號(hào),低有效
regifft_valid;//數(shù)據(jù)有效位,指示輸入數(shù)據(jù)有效
reg[31:0]data_in;//輸入數(shù)據(jù)

wires_config_tready;
wire[31:0]m_data_tdata;
wires_data_tready;
wire[7:0]m_data_tuser;
wirem_data_tvalid;
wirem_data_tlast;

IFFT_introductionu0(//例化.v文件
.clk(clk),
.rst_n(rst_n),
.ifft_valid(ifft_valid),
.data_in(data_in),
.s_config_tready(s_config_tready),
.m_data_tdata(m_data_tdata),
.s_data_tready(s_data_tready),
.m_data_tuser(m_data_tuser),
.m_data_tvalid(m_data_tvalid),
.m_data_tlast(m_data_tlast)
);
reg[31:0]mem[63:0];
initialbegin//$readmembVivado內(nèi)置函數(shù)調(diào)用.txt文件
$readmemb("C:/Users/15865/Desktop/FFT_IP_core_64point/IFFT_IP_core_64point_exam.txt",mem);
clk=0;
rst_n=0;
#1000;
rst_n=1;
#10_000;
$stop;
end
always#10clk<=~clk;????//50MHz
reg?[6:0]?count;????????
//計(jì)數(shù)
always@(posedge?clk?or?negedge?rst_n)?begin
????if(!rst_n)?
????????count<='d0;
????else?if(count<='d63)
????????count<=count+1'b1;
????else
????????count<='dz;
end
//?產(chǎn)生信號(hào)和數(shù)據(jù)
always@(posedge?clk?or?negedge?rst_n)?begin
????if(!rst_n)?begin
????????ifft_valid<='d0;
????????data_in<='d0;
????end
????else?if(count>='d0&&count<='d63)?begin
????????????ifft_valid<=1;
????????????data_in<=mem[count];
????end
????else?begin
????????????ifft_valid<=1'b0;
????????????data_in<='d0;
????end
end
endmodule

7、Modelsim結(jié)果與MATLAB輸出結(jié)果驗(yàn)證

本節(jié)將驗(yàn)證Modelsim和MATLAB輸出結(jié)果的一致性,并簡(jiǎn)單介紹Modelsim輸出結(jié)果向MATLAB數(shù)據(jù)的轉(zhuǎn)換。

Modelsim 輸出結(jié)果如下圖:

eae14a5c-90a1-11ef-a511-92fbcf53809c.png

圖10

由于數(shù)據(jù)有64個(gè)而這里驗(yàn)證前三個(gè)中間三個(gè)和后三個(gè)的方式驗(yàn)證Modelsim數(shù)據(jù)和MATLAB數(shù)據(jù)正確性:

表6數(shù)據(jù)驗(yàn)證

eb31ff60-90a1-11ef-a511-92fbcf53809c.jpg

需要注意的是,Modelsim輸出的結(jié)果并不是小數(shù),而是忽略了小數(shù)點(diǎn)的整數(shù),要想獲得和MATLAB類似的浮點(diǎn)數(shù),需要我們將輸出結(jié)果變換,這里以Modelsim輸出的最后一個(gè)數(shù)為例(即表6中序號(hào)64),可見圖11。

eb640690-90a1-11ef-a511-92fbcf53809c.png

圖11

對(duì)于該結(jié)果需要我們將輸出結(jié)果除以2^(a+ b),a為用以表示小數(shù)的位寬數(shù),本文中為11,b為FFT點(diǎn)數(shù)的2次冪冪值,本文為6,因此對(duì)于每一個(gè)Modelsim的輸出結(jié)果都需要除以2^17,這里實(shí)部-15302/2^17=-0.1167,虛部-23234/2^17=-0.1773。

從表6中數(shù)據(jù)可以看出,IFFT 核執(zhí)行的運(yùn)算和MATLAB的運(yùn)算結(jié)果十分接近,驗(yàn)證成功。

8、FFT運(yùn)算

與IFFT運(yùn)算類似,配置不用更改只需將第5小節(jié)程序中,s_axis_config_tdata端口配置改為8’d1即可,其他無需變動(dòng)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FFT
    FFT
    +關(guān)注

    關(guān)注

    15

    文章

    434

    瀏覽量

    59366
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4070

    瀏覽量

    133552
  • 端口
    +關(guān)注

    關(guān)注

    4

    文章

    963

    瀏覽量

    32051
  • IP核
    +關(guān)注

    關(guān)注

    4

    文章

    327

    瀏覽量

    49485
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66470

原文標(biāo)題:Vivado中的FFT IP核使用

文章出處:【微信號(hào):Hack電子,微信公眾號(hào):Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    quartusII FFT ip

    在quartusII,應(yīng)用fft ip時(shí),variable streaming 模式下的bit-reverse(位翻轉(zhuǎn))是什么意思?煩勞詳細(xì)幫助新手解釋一下,不甚感激
    發(fā)表于 01-09 10:55

    基于FPGA的FFT和IFFT IP應(yīng)用實(shí)例

    16bit,定點(diǎn)signed(1.15),即最高位符號(hào)位,15位小數(shù)。同時(shí),繪制出matlabcos時(shí)域和頻域的波形如下。 3 Vivado添加配置FFT
    發(fā)表于 08-10 14:30

    玩轉(zhuǎn)Zynq連載48——[ex67] Vivado FFT和IFFT IP應(yīng)用實(shí)例

    cos時(shí)域和頻域的波形如下。 3 Vivado添加配置FFT IPVivado
    發(fā)表于 01-07 09:33

    Vivadoxilinx_courdic IP怎么使用

    Vivadoxilinx_courdic IP(求exp指數(shù)函數(shù))使用
    發(fā)表于 03-03 07:35

    vivado有哪幾種常用IP?如何去調(diào)用它們

    運(yùn)算器等)、信號(hào)處理(FFT、DFT、DDS等)。IP類似編程的函數(shù)庫(例如C語言中的printf()函數(shù)),可以直接調(diào)用,非常方便,大大加快了開發(fā)速度。今天介紹的是
    發(fā)表于 07-29 06:07

    Vivado生成IP

    vivado生成ip后缺少一大片文件,之前是可以用的,中途卸載過Modelsim,用vivado打開過ISE工程,因?yàn)楣こ?b class='flag-5'>中很多
    發(fā)表于 04-24 23:42

    Xilinx Vivado的使用詳細(xì)介紹(3):使用IP

    IPIP Core) Vivado中有很多IP核可以直接使用,例如數(shù)學(xué)運(yùn)算(乘法器、除法器、浮點(diǎn)運(yùn)算器等)、信號(hào)處理(
    發(fā)表于 02-08 13:08 ?2272次閱讀
    Xilinx <b class='flag-5'>Vivado</b>的使用詳細(xì)介紹(3):使用<b class='flag-5'>IP</b><b class='flag-5'>核</b>

    了解VivadoIP的原理與應(yīng)用

    IPIP Core) Vivado中有很多IP核可以直接使用,例如數(shù)學(xué)運(yùn)算(乘法器、除法器、浮點(diǎn)運(yùn)算器等)、信號(hào)處理(
    發(fā)表于 11-15 11:19 ?9141次閱讀

    vivado調(diào)用IP詳細(xì)介紹

    數(shù)學(xué)運(yùn)算(乘法器、除法器、浮點(diǎn)運(yùn)算器等)、信號(hào)處理(FFT、DFT、DDS等)。IP類似編程的函數(shù)庫(例如C語言中的printf()函數(shù)),可以直接調(diào)用,非常方便,大大加快了開發(fā)速
    的頭像 發(fā)表于 05-28 11:42 ?3.7w次閱讀

    關(guān)于Vivado三種常用IP的調(diào)用詳細(xì)解析

    vivadoIP,IPIP Core):Vivado
    的頭像 發(fā)表于 04-27 15:45 ?2.4w次閱讀
    關(guān)于<b class='flag-5'>Vivado</b>三種常用<b class='flag-5'>IP</b><b class='flag-5'>核</b>的調(diào)用詳細(xì)解析

    如何進(jìn)行FFT IP配置和設(shè)計(jì)

    以Xilinx Vivado設(shè)計(jì)套件中提供的FFT IP為例,簡(jiǎn)要說明如何進(jìn)行FFT IP配置和設(shè)計(jì)。
    的頭像 發(fā)表于 07-22 10:21 ?2418次閱讀

    VCS獨(dú)立仿真Vivado IP的問題補(bǔ)充

    在仿真Vivado IP時(shí)分兩種情況,分為未使用SECURE IP和使用了SECURE IP
    的頭像 發(fā)表于 06-06 14:45 ?1735次閱讀
    VCS獨(dú)立仿真<b class='flag-5'>Vivado</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>的問題補(bǔ)充

    一邊學(xué)習(xí)控制FFT IP,一邊學(xué)習(xí)AXI4-Stream協(xié)議

    這里做最簡(jiǎn)單的設(shè)置,打開Vivado,點(diǎn)開IP Catalog,找到FFT IP。
    的頭像 發(fā)表于 06-19 14:38 ?1776次閱讀
    一邊學(xué)習(xí)控制<b class='flag-5'>FFT</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>,一邊學(xué)習(xí)AXI4-Stream協(xié)議

    如何在Vivado配置FIFO IP

    Vivado IP提供了強(qiáng)大的FIFO生成器,可以通過圖形化配置快速生成FIFO IP。
    的頭像 發(fā)表于 08-07 15:36 ?4289次閱讀
    如何在<b class='flag-5'>Vivado</b><b class='flag-5'>中</b>配置FIFO <b class='flag-5'>IP</b><b class='flag-5'>核</b>

    Vivado IPShared Logic選項(xiàng)配置

    在給Vivado的一些IP進(jìn)行配置的時(shí)候,發(fā)現(xiàn)有Shared Logic這一項(xiàng),這里以Tri Mode Ethernet MAC IP
    的頭像 發(fā)表于 09-06 17:05 ?1601次閱讀
    <b class='flag-5'>Vivado</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>Shared Logic選項(xiàng)配置
    主站蜘蛛池模板: 国精产品一区一区三区有限| 国产女人乱人伦精品一区二区| 亚洲视频中文字幕在线| 日本一二三区在线视频| 欧美顶级情欲片免费看| 麻豆成人AV久久无码精品| 黄色三级视频网站| 国产又粗又黄又爽的大片| 国产精品一区二区AV97| 国产国产成年在线视频区| 国产不卡在线观看视频| 大胸美女被吊起来解开胸罩 | 看电影就来5566先锋av| 精品香蕉99久久久久网站 | CHINSEFUCKGAY无套| 99久久免费精品国产免费| 最近中文字幕在线看免费完整版 | 亚洲精品成人在线| 亚洲精品久久久无码| 亚洲伊人久久一次| 又紧又大又爽精品一区二区| 伊人AV一区二区三区夜色撩人| 伊人国产视频| 91精品国产色综合久久| av影音先锋天堂网| 成人性生交大片免费看中文| 纲手胸被爆羞羞免费| 国产精品成人网| 国产午夜精品理论片| 精品久久久爽爽久久久AV| 久色乳综合思思在线视频| 蜜臀AV99无码精品国产专区| 欧美深深色噜噜狠狠yyy| 色多多旧版污污破解版| 香蕉精品国产高清自在自线| 亚洲欧美日韩高清中文在线 | 十分钟免费观看高清视频大全| 无码任你躁久久久久久老妇双奶| 亚洲国产精品一区二区三区在线观看 | 久久久久999| 牛牛超碰 国产|