在 FPGA 开发设计中,IP 核的使用通常是不可缺少的。FPGA IP 核是指一些已经过验证的、可重用的模块或者组件,可以帮助构建更加复杂的系统。本文主要介绍如何使用 Vivado 创建与封装用户自定义 IP 核,并使用创建的 IP 核进行串口回环测试。
目录
1 封装自定义 IP
2 添加自定义 IP
3 串口回环测试
1 封装自定义 IP
Vivado 开发环境提供了自定义 IP 封装工具,可以方便地创建用户自定义 IP。对于一些经常使用的模块,可以封装成 IP,通过模块复用的方式简化设计流程,提高开发效率。
在 Vivado 中创建用户自定义 IP 的基本步骤如下:
1)新建 Vivado 工程,注意芯片型号的选择;
2)IP 核参数定义与接口定义,编写 RTL 代码;
3)IP 核的验证与优化,可以执行 Run Synthesis,检查是否有设计错误;
4)验证通过之后,选择 Tools -> Create and Package New IP...,创建新 IP,选择打包当前工程。
完成 IP 创建向导之后,软件会自动生成并打开 tmp_edit_project 工程,按照 Packaging Steps 进行配置。
最后在 Review and Package 中打包 IP,打包完成之后,软件会自动关闭并删除 tmp_edit_project 工程。
2 添加自定义 IP
使用 Vivado 封装自定义 IP 之后,需要将 IP 添加到 Vivado 中才能使用。Vivado 添加自定义 IP 有以下 2 种方式:
方式一:在 Tools Settings 中添加用户 IP Catalog 路径,路径在新建下个工程时生效。
方式二:在 IP Catalog 中,空白处右键,选择 Add Repository...
指定 IP 路径后,Vivado 会自动识别并添加路径下包含的 IP。
3 串口回环测试
本节使用前面封装的 uart_rxtx IP 核,进行串口回环测试。这里使用基于 Block Design 的开发方法。
新建工程与 Block Design 文件,添加所需要的 IP 核,连接内部信号并引出输入、输出端口。
双击 IP 核进行必要的配置,例如设置串口接收缓存 Buffer Size 为 1024,串口接收波特率为 9600 Bd/s。
串口发送波特率设为 19200 Bd/s。
使用串口调试助手,给 Zynq 串口发送数据,观察数据的接收与发送过程。
使用逻辑分析仪观察串口数据的回环,数据接收的波特率约为 9600 Bd/s,发送波特率为 19200 Bd/s。