爱游戏-vivado三种常用IP核的调用

vivado三种经常使用IP核的挪用 时候:2024-12-19 18:32:57 手机看文章

扫描二维码随时随地手机看文章

 

当前利用版本为vivado 2018.3

vivado的IP核,IP核(IP Core):Vivado中有良多IP核可以直接利用,例如数学运算(乘法器、除法器、浮点运算器等)、旌旗灯号处置(FFT、DFT、DDS等)。IP核近似编程中的函数库(例如C说话中的printf()函数),可以直接挪用,很是便利,年夜年夜加速了开辟速度。

今天介绍的是vivado的三种经常使用IP核:时钟倍频(Clocking Wizard),及时仿真(ILA),ROM挪用(Block Memory)。

Clocking Wizard

该IP核可以将输入的时钟旌旗灯号进行倍频,倍数可以年夜在1,也能够小在1,很是便利。

 

打开vivado 找到IP Catelog

 

在右边输入栏中输入clk,找到Clocking Wizard

 

双击该项目打开,按照开辟板上晶振频率进行输入时钟设置装备摆设

 

设置装备摆设需要输出的倍几次率

 

在最下方可选择IP核需要的引脚,我都没用到,是以全打消了(之前有碰到选择reset和lock引脚后IP核不克不及利用的环境,缘由还未弄清晰)。

 

点击OK,并点击Generate,完成Clocking Wizard的设置装备摆设

 

在代码中对IP核进行挪用

 

编写TESTBENCH,仿真成果以下

ILA

ILA是用在及时仿真的IP核,在你将bit文件烧入芯片后,可在ILA核中看到你想不雅察的图象和数据。

 

打开IP Catelog,输入ILA

 

双击打开项目,设置装备摆设需要不雅察的端口数,采样的深度

 

设置装备摆设不雅察端口的位数

 

点击OK,和Generate完成IP核设置装备摆设

 

在代码中挪用IP核

 

完成工程综合后,下载文件,点击运行和轮回,最先不雅察

Block Memory

该IP核挪用片内ROM,可以用来储正弦波,三角波等波形。该IP核援用文件的格局为.coe,是以我们需要先利用Matlab生成一个.coe文件。

打开matlab,新建一个.m文件,输入以下代码生成一个位宽10位,深度1024的正弦波

 

width=10; %rom的位宽 depth=1024; %rom的深度 x=linspace(0,2*pi,depth); %在一个周期内发生1024个采样点 y_sin=cos(x); %生成余弦数据 y_sin=round(y_sin*(2^(width-1)-1))+2^(width-1)-1; %将余弦数据全数转换为整数 fid=fopen('C:\Users\Leixx\Desktop\sin_coe.coe','w'); %建立.coe文件 fprintf(fid,'%d,\n',y_sin); %向.coe文件中写入数据 fclose(fid); %封闭.coe文件

生成文件以后,用notepad++(或UltraEdit)打开,你会看见已生成好的1024个数据,这时候需要在文件的最最先添加下面两句:

 

memory_initialization_radix=10; memory_initialization_vector =

radix暗示是十进制显示。以后,在文件的最末尾,将最后一个数据后面的逗号改成份号,点击保留。

 

打开vivado,点击IP Catalog,输入block

 

双击打开项目,选择Single port ROM

 

设置装备摆设要存入的数据位宽和数据深度,我之前生成的是位宽10位,深度1024的数据

 

选择Always Enanbled,让IP核始终处在工作状况

 

将之前生成好的文件载入IP核

 

点击OK和Generate,完成IP核设置装备摆设

 

在代码中挪用IP核,我这里DAC是低位在前

 

编写好Testbench后,可以在仿真中看到正弦波,我这里由于低位在前,所以波形混乱。

以上,即是vivado三种经常使用IP核的挪用。

欲知详情,请下载word文档 下载文档

上一篇:爱游戏-FPGA 如何布局及资源优化 下一篇:爱游戏-FPGA实现ARM系统处理的方案