当前使用版本为vivado 2018.3
Clocking Wizard
打开vivado 找到IP Catelog
在右侧输入栏中输入clk,找到Clocking Wizard
双击该项目打开,根据开发板上晶振频率进行输入时钟配置
配置需要输出的倍频频率
在最下方可选择IP核需要的引脚,我都没用到,因此全取消了(之前有遇到选择reset和lock引脚后IP核不能使用的情况,原因还未弄清楚)。
点击OK,并点击Generate,完成Clocking Wizard的配置
在代码中对IP核进行调用
编写TESTBENCH,仿真结果如下
ILA
打开IP Catelog,输入ILA
双击打开项目,配置需要观察的端口数,采样的深度
配置观察端口的位数
点击OK,和Generate完成IP核配置
在代码中调用IP核
完成工程综合后,下载文件,点击运行和循环,开始观察
Block Memory
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:UsersLeixxDesktopsin_coe.coe','w'); %创建.coe文件 fprintf(fid,'%d, ',y_sin); %向.coe文件中写入数据 fclose(fid); %关闭.coe文件
memory_initialization_radix=10; memory_initialization_vector =
打开vivado,点击IP Catalog,输入block
双击打开项目,选择Single port ROM
配置要存入的数据位宽和数据深度,我之前生成的是位宽10位,深度1024的数据
选择Always Enanbled,让IP核始终处于工作状态
将之前生成好的文件载入IP核
点击OK和Generate,完成IP核配置
在代码中调用IP核,我这里DAC是低位在前
编写好Testbench后,可以在仿真中看到正弦波,我这里因为低位在前,所以波形杂乱。