【【萌新的SOC学习之基于BRAM的PS和PL数据交互实验】】

萌新的SOC学习之基于BRAM的PS和PL数据交互实验

基于BRAM的PS和PL的数据交互实验

先介绍 AXI BRAM IP核控制器的简介

AXI BRAM ip核 是xilinx提供的一个软核 这个ip核被设计成 AXI的一个从机接口 用于AXI互联的集成

系统的主设备和本地的RAM进行通信 (我们可以通过这个IP核 和本地的RAM进行通信)

这个IP核支持单次或是突发的传输

概述部分 :

AXI BRAM的ip核 可以配置成单端口或是双端口 和 BRAM进行通信 通过的是AXI4或是AXI4_Lite 接口

AXI BRAM 也支持 ECC 数据纠错功能 这个功能我们平时很少会去用

我们来看系统框图

也可以将左边配置成AXI4接口 这样它读写的传输速度会快于 AXI4_lite

实验任务 : 本章的实验任务是 PS 将串口接收到的数据写入 BRAM,然后从 BRAM 中读出数据,并通过串口打印出来;与此同时,PL 从 BRAM 中同样读出数据,并通过 ILA 来观察读出的数据与串口打印的数据是否一致。

系统框图

我们看的PS端的UART这就是 我们利用串口来进行打印的部分

我们需要在PL端添加一个BRAM的ip核

我们还需要添加一个AXI BRAM Controller (AXI BRAM控制器 这个控制器完成对BRAM的读写操作

这个控制器是 PS端添加的 PS端正是 通过了这样的一个控制器才完成了对BRAM的读写操作的

而我们的PL是怎么从BRAM读出数据呢 我们需要添加一个自定义的IP核 pl_bram_rd这个IP核的目的就是从BRAM中读出数据

究竟是哪个地址读数据 读多少 都是根据我们AXI4 接口来控制的

开始搭建

搭建完成的框图

我们观察系统框图以及自己创建的IP核我们会发现

对于这个自定义的IP核 我们添加了一个与BRAM交互的RAM端口

我们的这个RAM端口,可以传输单字节或者多字节的数据

因为RAM端写数据是32位的( 31_24 , 23_16 , 15_8 , 7_0 )

我们的写控制信号是4bit 正好控制 这32位的四个数据

output wire ram_clk , //RAM时钟

input wire [31:0] ram_rd_data, //RAM中读出的数据

output wire ram_en , //RAM使能信号

output wire [31:0] ram_addr , //RAM地址

output wire [3:0] ram_we , //RAM读写控制信号

output wire [31:0] ram_wr_data, //RAM写数据

output wire ram_rst , //RAM复位信号,高电平有效

自定义IP之后封装 再添加 进行连接

接下来我们来编写c代码

c代码目的是先来接收串口的数据, 接收到数据后 把数据写进BRAM内, 写完之后再把它读出来

我们可以通过串口,来比较写入的和打印的值是否一致

同时我们也要对自定义的ip核进行操作 确定什么时候读 读什么

我们接下来就用的这两个对BRAM进行读写

第一个数据是basedaaress 基地址 第二个数据是相对于base address 的偏移量 第三个是data 也就是我们真正需要写入的数据了

对于我们自定义的ip核 有两个代码 -两个功能

朝自定义IP核 写数据 朝自定义IP核中 去读数据

相关推荐
Mephisto.java9 分钟前
【大数据学习 | kafka高级部分】kafka中的选举机制
大数据·学习·kafka
南宫生37 分钟前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法
武子康2 小时前
大数据-212 数据挖掘 机器学习理论 - 无监督学习算法 KMeans 基本原理 簇内误差平方和
大数据·人工智能·学习·算法·机器学习·数据挖掘
使者大牙2 小时前
【大语言模型学习笔记】第一篇:LLM大规模语言模型介绍
笔记·学习·语言模型
As977_2 小时前
前端学习Day12 CSS盒子的定位(相对定位篇“附练习”)
前端·css·学习
ajsbxi2 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
Rattenking2 小时前
React 源码学习01 ---- React.Children.map 的实现与应用
javascript·学习·react.js
dsywws3 小时前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习
道法自然04023 小时前
Ethernet 系列(8)-- 基础学习::ARP
网络·学习·智能路由器
爱吃生蚝的于勒3 小时前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法