zedboard通過BRAM實現PS和PL的簡單通信


使用Block Memory進行PS和PL的數據交互或者數據共享,通過zynq PS端的Master GP0端口向BRAM寫數據,然后再通過PS端的Mater GP1把數據讀出來,將結果打印輸出到串口終端顯示。
涉及到AXI BRAM Controller 和 Block Memery Generator等IP的使用。

本文所使用的開發板是zedboard
PC 開發環境版本:Vivado 2016.2  Xilinx SDK 2016.2
---------------------
作者:wangdaling
來源:CSDN
原文:https://blog.csdn.net/rzjmpb/article/details/50365915     https://blog.csdn.net/rzjmpb/article/details/50365915

一、實現的結構原理圖

 1、PL端硬件架構搭建

新建工程后在Create Block Design中添加IP,點擊添加IP的按鈕后在彈出的搜索框中搜索ZYNQ時添加PS,搜索BRAM時添加AXI BRAM Controller 和Block Memory Generator,然后對PS中的相應接口做參數設置

 

2、軟件SDK中的代碼如下:

#include <stdio.h>
#include "platform.h"
#include "xparameters.h"
#include"xparameters_ps.h"
#include"xil_printf.h"
#include"xil_io.h"
//#define DDR_BASEARDDR XPAR_DDR_MEM_BASEADDR+0x10000000

int main()
{
    init_platform();
    int i;
    int rev;
    xil_printf("-----The test is start...\n\r");
    for(i=0;i<15;i++)
    {
        Xil_Out32(XPAR_BRAM_0_BASEADDR+i*4,0x10000000+i);
    }
    for(i=0;i<15;i++)
    {
        rev=Xil_In32(XPAR_BRAM_0_BASEADDR+i*4);
        xil_printf("the address at %x data is: %x \n\r",XPAR_BRAM_0_BASEADDR+i*4,rev);
    }

    xil_printf("-----The test is end!-------\n\r");
    cleanup_platform();
    return 0;
}
3、編譯軟件部分的代碼,

4、將zedboard 板子的JTAG和PROG的端口與PC電腦端相連

5、然后program FPGA(從硬件部分生成的bitstream),run configuration,run

 

 

 

 


免責聲明!

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



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