1. BRAM介绍
BRAM 就是Block Memory,是Zynq的PL端的存储RAM单元,可以配置为双口RAM,用于实现Zynq中PS端到PL端的数据交互和共享,类似为Linux中的内存共享,也就是将数据写入共同可访问的数据空间,PS和PL端各自访问来达到信息交流的目的。

在这里我们有这样一种比较好的思维推荐:可以在一个BRAM中将一部分地址空间用于PS只写PL只读,剩下的地址空间用于PL只写PS只读。这样PS和PL之间的访问就不会出现读写冲突错误,当然,你也可以用2个BRAM来实现。
2. BRAM的PL端使用
BRAM的访问可以通过AXI总线访问或者把它当做RAM用读写逻辑操作。
其中,通过AXI总线操作就需要一个AXI接口的BRAM控制器,可以调用IP核或者自己写一个这样的AXI主机,另外控制逻辑还需要编写一个AXI总线的主机来通过AXI总线来操作BRAM,如下图:

上图AXI主机通过AXI总线控制AXI_BRAM_CTRL访问BRAM
另一种方式,就是把它当做我们常用的RAM,编写读写RAM的逻辑来操作BRAM,不通过AXI总线访问,如下图:

上图向BRAM中乒乓写入数据流
另外,我们是否可以不用BRAM来存储数据,用PL端的reg来储存数据,这样的话,PS端来直接操作这些寄存器,相当于只用BRAM的读写端口,特别是PS通过一些简单的指令来控制PL端的操作,还是很有用的。对应的代码操作如下图:

上图PS通过BRAM接口来访问一些控制寄存器
3. BRAM的PL-PS接口
BRAM的PS-PL接口相对比较简单,因为这些接口都是基于AXI总线的,都是调用IP核来实现,如下图:

4. BRAM的PS端使用
BRAM的PS端就是ARM对BRAM的读写,BRAM的读写就2个函数,即一个读,一个写,可以在底层库文件xbram_hw.h中找到,函数格式如下图:

因此,读写BRAM的操作如下:
data = XBram_In32(XPAR_BRAM_1_BASEADDR+0);
XBram_Out32(XPAR_BRAM_0_BASEADDR+0, 250);
5. BRAM的PS操作Bug
现象:每次Debug运行到BRAM读写函数时,发现调试的ARM直接跑飞,屡试不爽;
原因:因为BRAM数据位宽设的是32位,而此时读写字节地址不是4的倍数,最终导致CPU访问无效地址后直接跑飞。如下面的操作就会导致ARM跑飞:
XBram_Out32(XPAR_BRAM_0_BASEADDR+1, 250)。
举一反三:CPU跑飞大部分是地址访问出错,程序指令阻塞等原因,可以作为以后调试的一个经验。
6. 总结
BRAM的操作虽然很简单,但可以给我们提供了Zynq中PS与PL互相通信更多的思路,同时,PS访问BRAM导致ARM跑飞这个Bug,也同样给了我们导致CPU跑飞的启发:因为CPU也是不断的访问存储器执行指令,当读取或者译码指令出错了也会导致CPU跑飞。
另外,当PS端通过简单的几个控制reg控制PL的状态时,可以不用PL端BRAM的共享数据,用PL端的Reg来共享数据,能达到同样的效果,但却可以节省PL端的BRAM资源。
相关推荐
Zynq-7000 生产勘误项目是(Xilinx 答复 47916)中所列项目的子集,通常包括由 X...
发表于 2018-07-05 08:38
•
15次阅读
在硬件电路设计中,每一个IC芯片都有相应的电源端口对其供电,以驱动IC进行工作。对于普通的IC芯片,...
发表于 2018-07-05 08:33
•
9次阅读
大多数工程师在工具箱中看到Arduino时都不会选择它,因为它看起来过于的简单以至于不太好用或者不能...
发表于 2018-07-05 08:21
•
0次阅读
LTC6915 是一款精准的可编程增益仪表放大器。可通过一个并行或串行接口将增益设置为 0、1、2、...
发表于 2018-07-04 15:07
•
7次阅读
因此,要想学好FPGA,你得用硬件的思维方式来编写代码,注重FPGA的系统结构设计,好的系统结构设计...
发表于 2018-07-04 14:12
•
29次阅读
因为Zynq-7000 PS(Processing System)端嵌入了Cortex-A9 ARM...
发表于 2018-07-04 14:12
•
24次阅读
Dual V7 TAI Logic Module 可在单板上提供高达4000万ASIC门容量以及1,...
发表于 2018-07-02 11:50
•
41次阅读
Zynq Qspi控制器支持三种模式:I/O模式、线性地址模式和传统SPI模式,其中线性地址模式双片...
发表于 2018-07-02 09:34
•
39次阅读
让我们先来看看一个典型的Zynq SoC开发流程(如图1):开发者首先需要对软硬件进行分区,即确定系...
发表于 2018-07-02 08:17
•
45次阅读
CC900是半双工RF收发器,适合计算机遥测/遥控、安防和无线数据发射/接收等系统中使用。
发表于 2018-07-02 08:12
•
28次阅读
verilog实现反相器,2输入与门、2输入或门、2输入与非门、2输入或非门、2输入异或门、2输入同...
发表于 2018-07-01 10:28
•
73次阅读
RF2948B是为工作在2.4 GHz ISM频带的直接序列扩频系统而设计的收发器,适合在IEEE ...
发表于 2018-07-01 08:55
•
52次阅读
Rapid IO协议由于无主机,且各设备之间可以并行交换信息,所以广泛应用于对交换速率要求高,且交互...
发表于 2018-06-29 09:02
•
51次阅读
“随着运营商从分组核心过渡到移动核心,网络运营商采用可编程交换技术的可能性将会逐步提高。”Baref...
发表于 2018-06-29 08:53
•
37次阅读
上一节相当于成功生成了PS部分,这一部分利用上一步生成的文件来导入到SDK中。 在vivado中点F...
发表于 2018-06-28 17:04
•
55次阅读
两个FIX_32_30相乘得到的数据是 FIX_64_60,我们发现这个结果最大值为-1~+1,所以...
发表于 2018-06-28 15:48
•
22次阅读
本文主要介绍Zynq 7015 linux跑起来之导入之BOOT.bin生成,具体的跟随小编一起来了...
发表于 2018-06-27 10:01
•
60次阅读
现在所要的文件基本上已都有了,怎么样来放到SD卡里来让系统运行起来呢?这里主要介绍Linux下面的方...
发表于 2018-06-27 09:13
•
122次阅读
在2011 ARM Techcon上,来自Xilinx 的高级经理Stephane为我们详细介绍了Z...
发表于 2018-06-26 11:54
•
500次阅读
经过这几年的市场磨砺,Zynq-7000 FPGA SoC器件平台在开发者中的认知度和接受度越来越高...
发表于 2018-06-26 06:40
•
89次阅读
博世力士乐在他的伺服驱动器IndraDrive上扩展了轨迹运动控制功能模块 “SMC for Ind...
发表于 2018-06-25 09:36
•
63次阅读
有限状态机(Finite State Machine, FSM),根据状态机的输出是否与输入有关,可...
发表于 2018-06-25 08:42
•
73次阅读
FPGA器件系列现在包括了从基本的可编程逻辑到复杂的SoC器件。在各种应用领域,汽车和其他应用领域的...
发表于 2018-06-21 14:41
•
33次阅读
由于SDSoC设计实施上的灵活性,它被作为视频处理的理想平台,通过它可以创建一个优化的视频处理系统,...
发表于 2018-06-21 14:40
•
34次阅读
一个二进制函数的输出,可以用其输人函数的最小项之和来实现。因此,任一函数的输出就可以用图1所 示的积...
发表于 2018-06-21 14:39
•
78次阅读
深鉴科技于国内领先公有云服务商华为云发布语音识别加速引擎DDESE——DeePhi Descarte...
发表于 2018-06-21 14:35
•
292次阅读
该系列器件现在包括从基本的可编程逻辑一直到复杂的SoC。在各种应用领域(包括汽车,AI,企业网络,航...
发表于 2018-06-20 14:13
•
100次阅读
通过消除繁琐的驾驶动作,辅助驾驶还可提供更高的舒适水平。例如,传统的巡航控制允许司机设定一个固定的行...
发表于 2018-06-20 14:01
•
65次阅读
每一个收发器拥有一个独立的发送端,发送端有PMA(Physical Media Attachment...
发表于 2018-06-20 13:48
•
85次阅读
根据PCIe的协议,当设备启动后,PCIe设备必须满足启动时间的要求,即上电后100ms内,完成PC...
发表于 2018-06-19 10:24
•
90次阅读
BootROM在POR复位后经过硬件启动后自动运行,也可在非POR复位后直接运行(不经过硬件启动),...
发表于 2018-06-19 10:19
•
57次阅读
电气自动化和过程自动化及自动检测领域常常用到频率电压变换器F/V,需要将频率信号转换为电压信号。F/...
发表于 2018-06-17 10:09
•
80次阅读
本文以单前端摄像机系统为例,对其进行深入分析,介绍它如何通过使用ALTEra Cyclone V S...
发表于 2018-06-15 14:14
•
198次阅读
产生所有电源供应相关状态和控制逻辑讯号——例如重置讯号产生、电源错误指示(监测)和电压管理。图1展示...
发表于 2018-06-15 14:13
•
46次阅读
随着计算机、DSP、超大规模集成电路等技术的发展,画面分割器开始采用硬件设计。首先,将各路视频信号转...
发表于 2018-06-15 10:15
•
50次阅读
如图所示为由PGA103构成的可编程增益仪表放大电路。该电路采用PGA205与PGA103的级联方式...
发表于 2018-06-15 08:03
•
136次阅读
CCD (Charge Coupled Devices)电荷藕合器件是20世纪70年代初发展起来的新...
发表于 2018-06-14 13:01
•
129次阅读
SDSoC将自动执行那些通过PL(可编程逻辑)加速的功能,其他功能保留在PS(处理器系统)中。SDS...
发表于 2018-06-14 11:10
•
95次阅读
特定医学和科学仪器应用需要放大和测量微伏级信号。例如, 精确测量基于热电偶的微热量计输出,就需要一个...
发表于 2018-06-14 09:51
•
107次阅读
传统的嵌入式系统设计的主要目标是找到一种优化的体系结构来完成单一的,特定的功能。对这样的系统来说,A...
发表于 2018-06-14 09:16
•
94次阅读
本文介绍了用FPGA来实现控制电阻的提供,用软件的方式来设计硬件,设计过程中可用有关软件进行各种仿真...
发表于 2018-06-14 09:06
•
106次阅读
Model Composer 是一款基于模型的设计工具,不仅能够在 MathWorks Simuli...
发表于 2018-06-13 16:37
•
118次阅读
可编程逻辑器件PLD(Programmable Logic De-vice)是一种数字电路,它可以由...
发表于 2018-06-13 15:18
•
87次阅读
数字视频技术是当今消费市场上最令人激动的一个亮点,而无线技术能够确保数据的加密并逐渐支持更高的数据率...
发表于 2018-06-12 10:42
•
47次阅读
正是用户手指底下无数个看不见的可编程器件使得手持设备变得如此便利和有趣。这些手持设备配备的电池容量足...
发表于 2018-06-12 10:39
•
73次阅读
随着人们订购无线服务数量的激增、各种服务类型的多样化,以及更低的便携式设备接入因特网的费用,使得对于...
发表于 2018-06-10 09:43
•
77次阅读
常用的消费类视频接口包括IEEE 1394(火线)、USB 2.0、DVI、HDMI和各种各样的无线...
发表于 2018-06-10 09:02
•
75次阅读
客制化智能互连解决方案市场供货商莱迪思半导体(Lattice Semiconductor)亚太区资深...
发表于 2018-06-08 14:45
•
188次阅读
从基本的可编程逻辑器件到复杂的SoC器件,当今的FPGA家族阵营极其庞大。在包括汽车和其它应用的AI...
发表于 2018-06-08 13:48
•
93次阅读
发表于 2018-06-07 15:36
•
83次阅读
据外媒报道,美国微视公司(MicroVision Inc.)研发了一款基于飞行时间原理(time-o...
发表于 2018-06-07 14:49
•
53次阅读
数据在源源不断产生,数据中心需要越来越多的存储设备承载数据,同时也要通过大量计算将无序的数据加以提取...
发表于 2018-06-07 14:04
•
92次阅读
面向未来十年All Programmable,一个以IP及系统为中心的工具套件,把可编程系统的集成度...
发表于 2018-06-05 13:45
•
465次阅读
XILINX Software Enablement for Zynq 7000 - ARM Tec...
发表于 2018-06-05 02:45
•
387次阅读
EyeTech Digital System公司总裁Robert Chappel 将向您演示他们采用...
发表于 2018-06-05 02:45
•
128次阅读
Zynq-7000 AP SoC作为业界第一款SoC产品,完美集成了双核ARM Cortex-A9处...
发表于 2018-06-05 01:45
•
335次阅读
Xilinx Zynq™-7000
发表于 2018-06-04 13:47
•
158次阅读
Xilinx公司1G Hz的Zynq 7045 AP SoC能给我们带来什么?
发表于 2018-06-04 13:47
•
255次阅读
此视频演示重点演示了一个基于Zynq-7000 All Programmable SoC配置成的嵌入...
发表于 2018-06-04 13:47
•
849次阅读
除了要最终客户推出屡获殊荣的Zynq-7000 AP SoC器件帮助他们在竞争中整整领先一代之外,我...
发表于 2018-06-04 13:47
•
284次阅读
本讲座是:赛灵思All Programmable SoC- Zynq 7000系列再度发力-处理性能...
发表于 2018-06-04 13:47
•
265次阅读
讲演者行云流水般地描绘了Xilinx公司All programmable理念, 今年刚上市的Zynq...
发表于 2018-06-04 01:47
•
281次阅读
XILINX Zynq-7000, Industrial & Medical Imaging Dem...
发表于 2018-05-25 15:49
•
225次阅读
在嵌入式系统里除了嵌入式处理器外还会经常使用到可编程逻辑器件,有些可编程逻辑器件在被焊接到印制电路板...
发表于 2018-05-25 11:20
•
112次阅读
Zynq-7000 Extensible Processing Platform in Action
发表于 2018-05-24 16:47
•
219次阅读
Zynq-7000 ZING SOM开发模块演示
发表于 2018-05-24 15:47
•
295次阅读
采用Z7020实现的高性能马达控制可以又小地减少振动和电磁干扰。Zynq-7000软件/硬件架构可以...
发表于 2018-05-24 15:12
•
304次阅读
该用什么硬件平台去做 Design-In?这是电子工程师在设计开发之初绕不过去的问题。专用芯片ASI...
发表于 2018-05-19 09:34
•
800次阅读
ZCU106 评估套件可帮助设计人员为视频会议、监控、高级驾驶员辅助系统 (ADAS) 以及流媒体及...
发表于 2018-04-28 09:23
•
1513次阅读
传统Retinex算法中对图像R、G、B 3个通道分别进行处理,容易造成颜色失真,而且在硬件实...
发表于 2018-04-26 08:51
•
930次阅读
我们可以根据应用的要求来选择使用哪种方法实现SPI控制器。两种SPI的实现方式都支持四种SPI模式,...
发表于 2018-04-22 11:46
•
795次阅读
将逻辑门和输出寄存器固定为通用逻辑后,选择使用逻辑输入及其互补逻辑,就可以建立任何逻辑功能。PAL主...
发表于 2018-04-17 17:55
•
268次阅读
除了LAB,CPLD中的其他结构与PAL和PLD相似,但配置更高级。LAB之间的互连被称为可编程互连...
发表于 2018-04-17 17:04
•
447次阅读
本文首先介绍了在线编程技术,然后给出了基于两种下载线设计电路,最后阐述了的性能特点。
发表于 2018-04-15 06:31
•
993次阅读
优良的网络性能始于合理的网络设计,而合理的网络设计依赖于对每一个网络节点的通讯行为和用来承载网络信息...
发表于 2018-04-11 14:59
•
801次阅读
如果没有可用的驱动,可以使用Zynq SoC PL端(可编程逻辑)的Pmod桥模块,它让我们能够在选...
发表于 2018-04-10 17:07
•
160次阅读
Dialog GreenPAK™ 是经济有效的非易失性内存可编程器件,可帮助创新企业集成众多系统功能...
发表于 2018-03-31 08:10
•
1822次阅读
随着实施基于云的服务和机器到机器通信所产生的数据呈指数级增长,数据中心面临重重挑战。如何使可编程逻辑...
发表于 2018-03-12 15:47
•
179次阅读
数据中心正在经历显著增长,并通过使用 DCI 这样的技术使之间的互连变得越来越紧密。DCI 互连盒可...
发表于 2018-03-12 15:21
•
249次阅读
发表于 2018-03-11 21:41
•
359次阅读
发表于 2018-03-02 15:42
•
547次阅读
提起计算速度,我们首先能想到的是云计算。云计算有数不清的好处,例如计算快,计算数据的量大,等等。但智...
发表于 2018-02-06 11:42
•
1891次阅读
周立功教授新书《面向AMetal框架与接口的编程(上)》对AMetal框架进行了详细介绍,通过阅读这...
发表于 2018-02-05 09:36
•
2326次阅读
为支持数据中心间的通信,需要使用非常大的数据管道,同时,用于在这些管道间传输数据的网络通常称为数据中...
发表于 2018-02-03 11:37
•
2051次阅读
通过这篇有趣的教程,熟悉运行在赛灵思 Zynq UltraScale+ MPSoC 上的 Xen 管...
发表于 2018-02-01 01:38
•
222次阅读
发表于 2018-01-25 15:55
•
501次阅读
面向通用接口的编程使得应用程序与具体硬件无关,可以很容易地实现跨平台复用。但究其本质如何,具体是怎样...
发表于 2018-01-15 09:59
•
2221次阅读
Zynq™-7000 All Programmable SoC在单个器件上实现了ARM处理功能与FP...
发表于 2018-01-12 11:17
•
553次阅读
Zynq SoC架构的主要优势之一就是能够通过在器件的可编程逻辑内构建外设来加快处理速度。 这是Ad...
发表于 2018-01-12 03:50
•
172次阅读
ZYNQ 、AXI协议、PS与PL内部通信 三种AXI总线分别为: AXI4:(For high-p...
发表于 2018-01-09 14:10
•
903次阅读
发表于 2018-01-08 16:39
•
2418次阅读
之前我们提到过「P,这一搭配FPGA开发板进行快速原型系统开发的利器。事实上,除了Pmod标准定义接...
发表于 2017-12-29 09:09
•
298次阅读
流水线设计可以从某种程度上提高系统频率。。前提是:设计可以分为若干步骤进行处理,而且整个数据处理的过...
发表于 2017-12-18 09:41
•
2390次阅读
比特大陆公司,一个由芯片设计专家詹克团和吴忌寒联合创立的公司,拥有自己研发的专用集成电路芯片(ASI...
发表于 2017-12-12 16:52
•
18684次阅读
在本例这个简单的架构中,HDMI输入口接收的数据从原始的并行格式的视频数据、Hsync和VSync转...
发表于 2017-12-06 10:42
•
3857次阅读
发表于 2017-10-29 17:00
•
17727次阅读
评论