vivado设计四:自定义IP核测试
0赞在vivado设计三中:http://blog.chinaaet.com/detail/37177已经建立了vivado工程和封装好了自定义IP核。
那么接下来,我们对这个自定义IP核进行测试了:我们已经回到了主界面。
1. create block design
这部分和vivado设计中:是类似的,就不贴图了,
2. 添加我们自定义的IP核
Add IP,输入led
3. 连接
4. 连接后,拖动一下,使得好看一些:
5. 引出LED管脚
6. 选择Tools -> Validate Design,使设计生效,没有error
7. 右键design_1.bd, 选择Create HDL Wrapper
8. 下面添加约束文件,vivado的约束文件的是xdc文件而不是ucf文件
Next,我们create file
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. 接下来综合
综合通过:
这里cancel,因为下一步我们直接产生bit流文件、
点击generate
11.产生bit流文件,Open Implemented Design
产生bit流文件后,就是愉快的导入SDK了:
File-》Export-》Export Hardware for SDK
建立Application Project
Next,选择空工程
可以看到:
Tools –》Repositories
设置好路径后,点击ok,退出
右键project_2_bsp,选择Board Support Package Settings,drivers下选择我们的led_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很久没用,突然连接不上了,测试结果就暂时不能贴上来了。。。有空补上吧。