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

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

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

1. create block design

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

clip_image002

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

Add IP,输入led

clip_image004

3. 连接

clip_image006

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

clip_image008

5. 引出LED管脚

clip_image010

clip_image012

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

clip_image014

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

clip_image015

clip_image017

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

clip_image019

Next,我们create file

clip_image021

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. 接下来综合

clip_image023

综合通过:

clip_image025

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

clip_image027

clip_image029

点击generate

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

clip_image031

clip_image033

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

File-》Export-》Export Hardware for SDK

clip_image035

建立Application Project

clip_image037

Next,选择空工程

clip_image039

可以看到:

clip_image041

Tools –》Repositories

clip_image043

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

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

clip_image045

这样我的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
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vivado是一种流行的FPGA设计工具,它提供了许多IP核来加速开发过程。然而,并不是所有的需求都可以通过Vivado自带的IP核来满足。在这种情况下,设计师可以创建自己的自定义IP核以实现特定的功能或加速系统性能。 创建自定义IP核的方法与使用Xilinx官方IP核的方法类似。首先,你需要使用Vivado的IP Integrator界面来创建一个新的IP。在创建过程中,你可以指定IP的输入输出接口、功能和参数等信息。接下来,你需要使用HDL语言(如Verilog或VHDL)编IP的逻辑代码。这些代码将定义IP的行为和功能。 一旦你完成了IP的逻辑设计,你可以将它综合到FPGA设备中进行验证。你可以使用Vivado的综合和实现工具来生成bitstream文件,并将其加载到FPGA设备中进行测试。 对于其他工程中使用封装好的IP核的情况,你需要将IP核文件添加到IP核库中。这样,在其他工程中就可以直接使用这个封装好的IP核了。 总的来说,Vivado提供了强大的功能来创建自定义IP核,以满足特定的设计需求。通过设计自定义IP核,开发者可以更好地定制化设计,提高开发效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vivado自定义IP核](https://blog.csdn.net/mengzaishenqiu/article/details/130048317)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值