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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM