首页 理论教育 VIVADO环境下自定义分频器IP核验证研究成果

VIVADO环境下自定义分频器IP核验证研究成果

时间:2023-10-26 理论教育 版权反馈
【摘要】:图1.72自定义IP核目录添加成功3.创建Block设计文件此处采用图形设计方法,调用分频器IP核,完成设计任务。图1.73调用fenpinqi_v1_0 IP核图1.74分频器IP元件双击调出的“fenpinqi_v1_0”IP核元件符号,弹出如图1.75所示的对话框,进行参数设置。图1.75分频器IP核参数设置对话框在该对话框中不难发现,只有一个参数R需要设置,其值范围“1-100000000”正是在定义IP核时设定的。重复再调用2个分频器IP核,分别设置R为5和10,即完成10倍分频和20倍分频。

VIVADO环境下自定义分频器IP核验证研究成果

为了验证刚刚定制的分频器IP核功能是否正确,以及是否成功添加到Vivado IP核资源库目录,下面以一个简单的调用分频器IP的应用实例,证明用户自定义IP核真实有效。

研究任务及内容:基于IP核设计思想,完成对一个基准时钟信号CLK分频输出三个不同频率信号,其中分频比分别为2、10和20,任务框图如图1.68所示。

图1.68 设计任务框图

设计思路是调用【代码1-6】生成的IP核,通过修改R参数值,即可实现相应分频系数的信号输出。

1.新建工程

打开VIVADO软件,新建一个名为“fenpinqi_call”的工程,单击“Next”按钮,在器件型号选择界面选中“xc7z010clg484-1”的 FPGA,完成工程建立。

2.设置调用自定义IP核路径

VIVADO IP核资源管理器中默认只包含了软件自带的IP库,用户自定义的IP库需要添加路径设置,才能在IP Catalog目录中查询调用。

在VIVADO左侧的“Flow Navigator”项目设计流程管理窗口,单击【PROJECT MANAGER】→【Settings】,弹出工程属性设置对话框,如图1.69所示。在对话框中单击【Project Settings】→【IP】→【Repository】,进入IP资源库添加对话框,通过添加自定义IP核所在目录(一个路径),就能把IP目录添加到存储库列表中。

图1.69 Settings工程属性设置对话框

在图1.69中单击窗口中部的“”按钮,弹出“IP Repositories”添加(add)路径选择对话框,如图1.70所示。在该对话框中找到已定制IP核存放路径,此处分频器IP核工程路径为“E:\xilinx_project\V_book_ exp\ fenpinqi_ip”,选中工程文件夹名“fenpinqi_ip”,然后单击“Select”按钮,进入下一步。

在弹出的“Add Repository”对话框,如果指定路径中包含已定义的IP,此时会自动显示出来,例如该对话框中显示指定路径中包含1个IP核,名字是“fenpinqi_v1_0”,说明路径设置正确,单击“OK”按钮,完成路径添加,结果如图1.71所示,然后再单击“OK”按钮。

图1.70 指定IP核所在工程路径

图1.71 Add Repository提示对话框

此时,在VIVADO左侧的“Flow Navigator”项目设计流程管理窗口中,单击【PROJECT MANAGER】→【IP Catalog】,弹出IP资源管理器窗口,在库列表中除了“Vivado Repository”IP资源外,还会自动显示添加成功的自定义IP目录【User Repository】→【HYG_IP_LIB】→【fenpinqi_v1_0】,如图1.72所示,表明自定义IP核成功添加到VIVADO IP核管理器中。

图1.72 自定义IP核目录添加成功

3.创建Block设计文件

此处采用图形设计方法,调用分频器IP核,完成设计任务。

执行【IP INTEGRATOR】→【Create Block Design】选项,可采用默认文件名(design_1)创建图形设计文件。

4.调用3个分频器IP核

在Diagram图形编辑窗口中单击工具栏中“”按钮,打开IP核资源库管理器,在“Search”查询对话框中,输入“fenpinqi”或“fe”,在列表中就会显示“fenpinqi_v1_0”,如图1.73所示。双击该条目并添加到原理图设计文件中,其元件外观如图1.74所示。

图1.73 调用fenpinqi_v1_0 IP核

图1.74 分频器IP元件

双击调出的“fenpinqi_v1_0”IP核元件符号,弹出如图1.75所示的对话框,进行参数设置。

图1.75 分频器IP核参数设置对话框

在该对话框中不难发现,只有一个参数R需要设置,其值范围“1-100000000”正是在定义IP核时设定的。根据分频器定义,源文件中R参数代表的是分频比系数的一半,默认值为1,即实现分频系数为2倍的分频,刚好满足设计任务其中的一个信号输出。因此,这个IP核参数保持默认即可,单击“OK”按钮,完成IP核参数设置。(www.xing528.com)

重复再调用2个分频器IP核,分别设置R为5和10,即完成10倍分频和20倍分频。在原理图中,也可以采用复制粘贴的方法完成对同一个IP元件的重复调用。

5.绘制原理图

根据设计任务框图,采用原理图绘制导线、添加端口和更改端口名的方法,完成如图1.76所示效果的原理图绘制。其中,CLK是基准时钟输入端口;CLK_2是2倍分频输出端口;CLK_10是10倍分频输出端口;CLK_20是20倍分频输出端口;三个分频器IP核的元件名依次更改为“fenpinqi_2”“fenpinqi_10”和“fenpinqi_20”,保存文件并做有效性检测。

图1.76 顶层设计原理图

6.生成设计输出文件

在VIVADO设计界面的BLOCK DESIGN窗口中,右键单击【Sources】→【Design Sources】→【design_1】文件,弹出浮动菜单,执行“Generate Output Products…”,在弹出的“Generate Output Products”对话框中单击“Generate”按钮,在弹出的生成结果信息提示框中,单击“OK”按钮。

7.生成“design_1_wrapper.v”顶层文件

再次右键单击【Sources】→【Design Sources】→【design_1】文件,弹出浮动菜单,执行“Create HDL Wrapper…”选项,在弹出的“Create HDL Wrapper”对话框中,选择“Let Vivado manage wrapper and auto-update”,其余保持默认设置,单击“OK”按钮。

此时,在工程设计源文件目录中,生成了 “design_1_wrapper.v”文件,内容见【代码1-7】。

【代码1-7】design_1_wrapper.v

8.设计综合

在VIVADO左侧的“Flow Navigator”项目设计流程管理窗口中,单击【SYNTHESIS】→【Run Synthesis】,或在工具栏上单击图标,并在下拉菜单中选择【Run Synthesis】,启动运行设计综合。

综合完成后单击【RTL ANALYSIS】→【Open Elaborated Design】→【Schematic】,打开“Schematic”网表结构,如图1.77所示。

图1.77 顶层设计RTL网表结构

在图1.77中,主要是由design_1_i元件和输入、输出缓冲器构成。其中,design_1_i元件符号上有“”号,可以将鼠标移动到“”号上,此时将会变为双箭头,表示此元件可以展开,查看调用底层设计结构情况,单击“”号后弹出design_1_i的模块内部结构,如图1.78所示。

图1.78 design_1_i模块内部结构

从图1.78中可以看出,design_1_i模块由三个IP核构成,每一个IP核元件符号左上角都有“”号,说明都可以单击鼠标再次展开,进一步观看IP核的内部结构,单击展开其中“fenpinqi_2”元件,会出现如图1.79所示的电路结构。

图1.79 展开fenpinqi_2的电路结构

同理,fenpinqi_2内部的inst元件还可以继续查看最底层电路结构,这充分体现了Verilog HDL自顶向下的设计思想。

9.仿真测试

编写Testbench激励代码,内容见【代码1-8】,对刚刚生成的design_1_wrapper.v进行测试。

【代码1-8】design_1_wrapper.v仿真测试代码:

保存仿真测试文件,单击工程管理器界面的【SIMULATION】→【Run Simulation】→【Run Behavioral Simulation】,启动行为仿真,仿真结果如图1.80所示。

图1.80 仿真波形

从仿真波形中可以看出,分别输出了基准时钟2分频、10分频和20分频的三个不同频率信号,说明IP核设计正确,能被正确调用,实现相应功能。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈