zoukankan      html  css  js  c++  java
  • 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 --
    "); 
       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
  • 相关阅读:
    【转载】algorithm、numeric、functional
    spring-boot项目中通过maven下载依赖 导入自己的jar包
    spring-boot项目 idea maven编译失败 解决办法
    SVM核函数功能和选择——可视化 附源代码
    乳腺癌数据集上SVM核函数功能和选择的研究报告
    Python编程实验一 决策树实现结果预测
    操作系统课程设计 设备驱动
    操作系统课程设计 内核模块
    操作系统课程设计 系统调用
    操作系统课程设计 编译Linux内核
  • 原文地址:https://www.cnblogs.com/chengqi521/p/7988031.html
Copyright © 2011-2022 走看看