vivado设计四:自定义IP核测试

时间:2023-03-09 09:40:42
vivado设计四:自定义IP核测试

在vivado设计三中:http://blog.chinaaet.com/detail/37177已经建立了vivado工程和封装好了自定义IP核。

那么接下来,我们对这个自定义IP核进行测试了:我们已经回到了主界面。

1. create block design

这部分和vivado设计中:是类似的,就不贴图了,

vivado设计四:自定义IP核测试

2. 添加我们自定义的IP核

Add IP,输入led

vivado设计四:自定义IP核测试

3. 连接

vivado设计四:自定义IP核测试

4. 连接后,拖动一下,使得好看一些:

vivado设计四:自定义IP核测试

5. 引出LED管脚

vivado设计四:自定义IP核测试

vivado设计四:自定义IP核测试

6. 选择Tools -> Validate Design,使设计生效,没有error

vivado设计四:自定义IP核测试

7. 右键design_1.bd, 选择Create HDL Wrapper

vivado设计四:自定义IP核测试

vivado设计四:自定义IP核测试

8. 下面添加约束文件,vivado的约束文件的是xdc文件而不是ucf文件

vivado设计四:自定义IP核测试

Next,我们create file

vivado设计四:自定义IP核测试

9. 编写xdc文件

set_property PACKAGE_PIN M14 [get_ports LED[0]]
set_property IOSTANDARD LVCMOS33 [get_ports LED[0]]
set_property PACKAGE_PIN M15 [get_ports LED[1]]
set_property IOSTANDARD LVCMOS33 [get_ports LED[1]]
set_property PACKAGE_PIN G14 [get_ports LED[2]]
set_property IOSTANDARD LVCMOS33 [get_ports LED[2]]
set_property PACKAGE_PIN D18 [get_ports LED[3]]
set_property IOSTANDARD LVCMOS33 [get_ports LED[3]]

10. 接下来综合

vivado设计四:自定义IP核测试

综合通过:

vivado设计四:自定义IP核测试

这里cancel,因为下一步我们直接产生bit流文件、

vivado设计四:自定义IP核测试

vivado设计四:自定义IP核测试

点击generate

11.产生bit流文件,Open Implemented Design

vivado设计四:自定义IP核测试

vivado设计四:自定义IP核测试

产生bit流文件后,就是愉快的导入SDK了:

File-》Export-》Export Hardware for SDK

vivado设计四:自定义IP核测试

建立Application Project

vivado设计四:自定义IP核测试

Next,选择空工程

vivado设计四:自定义IP核测试

可以看到:

vivado设计四:自定义IP核测试

Tools –》Repositories

vivado设计四:自定义IP核测试

设置好路径后,点击ok,退出

右键project_2_bsp,选择Board Support Package Settings,drivers下选择我们的led_ip

vivado设计四:自定义IP核测试

这样我的bsp(board support Package)才有led_ip.h这些文件:

编写一个main.c文件

#include "xparameters.h"
#include "xutil.h"
#include "led_ip.h"
//====================================================
int main (void)
{
int i;
xil_printf("-- Start of the Program --\r\n");
while (1)
{
// output dip switches value on LED_ip device
LED_IP_mWriteReg(XPAR_LED_IP_0_S_AXI_BASEADDR, 0, 1);
for (i=0; i<9999999; i++);
LED_IP_mWriteReg(XPAR_LED_IP_0_S_AXI_BASEADDR, 0, 2);
for (i=0; i<9999999; i++);
LED_IP_mWriteReg(XPAR_LED_IP_0_S_AXI_BASEADDR, 0, 4);
for (i=0; i<9999999; i++);
LED_IP_mWriteReg(XPAR_LED_IP_0_S_AXI_BASEADDR, 0, 8);
for (i=0; i<9999999; i++); }
}

LED_IP_mWriteReg在led_ip.h中可以找到。编译生成elf文件。

由于vivado和zybo很久没用,突然连接不上了,测试结果就暂时不能贴上来了。。。有空补上吧。

转载:http://blog.chinaaet.com/xzy610030/p/37256