在使用ZYNQ的时候不免需要PS和PL端进行通信。大多是情况下PS作为主端,PL作为从端,通过AXI总线实现PS-PL端的通信。本文主要介绍PL(即FPGA)如何配置的。 Block Design创建 1.点击Create Block Design,添加ZYNQ7 Processing System IP 2.双击打开ZYNQ7 Processing System,下图所示表示PS作为主端的接口。 3.加入AXI In...
Vivado自动弹出IP核编辑窗口,这里一共两个文件,上面的是顶层例化文件,下面是实现PS与PL通信的文件,主要在下面文件进行修改。 打开第二个文件,在Users to add ports here这里添加接口,第一个data_in是接收PS发过来的24个11Bits数据,我这里把11位数据的最高位作为数据有效信号(后面SDK的C语言代码可以看出),当然也...
AXI-HP接口(4个):是高性能/带宽的标准的接口,PL模块作为主设备连接(从下图中箭头可以看出)。主要用于PL访问PS上的存储器(DDR和On-Chip RAM) AXI-ACP接口(1个):是ARM多核架构下定义的一种接口,中文翻译为加速器一致性端口,用来管理DMA之类的不带缓存的AXI外设,PS端是Slave接口。 我们可以双击查看ZYNQ的IP核...
ZYNQ开发中需要使用PS控制PL的计算进程,其中控制信号可以通过GP口使用AXI-Lite协议发送,PS向PL写入控制信号,并从PL读回计算完毕信号。 本例中自定义IP配置了4个从寄存器,从寄存器slv_reg0、slv_reg1负责接收来自PS的指令,并通过组合逻辑解析成PL计算将要用到的各个参数idin、en、...、ht_dsc;来自PL的状态信号i...
ZYNQ7000系列中PS端与PL端的通信都是通过AXI总线进行连接的,利用好AXI协议是PS与PL交互的基础,因此设计这个实验来进一步了解两者间的通信。 1.实验目的PL端通过AXI协议访问PS端的DDR内存,其中包括往DDR写数据,…
(2)ZYNQ中PS端MIO中断 (3)ZYNQ中PS端UART通信 (4)ZYNQ中PS端XADC读取 1.读写DDR底层结构zynq 7000 SOC的HP口是High-Performance Ports的缩写,如下图所示,一共有4个HP接口,HP接口是AXI Slave设备,我们可以通过这4个HP接口实现高带宽的数据交互。实现PL读写PS端挂载的DDR需要使用HP接口。
总而言之,在 PS 和 PL 之间使用了惊人的 14.4Gbytes/sec(115.2Gbits/sec)的理论带宽! 创建AXI外设 这一节将使用 AXI 接口在 Zynq SoC 的可编程逻辑结构中创建外设。 第一步 第一步是打开 Vivado 设计并从工具选项下选择“创建和封装 IP”选项-create and package IP。
ZYNQ&AIX总线&PS与PL内部通信(用户自定义IP)-ZYNQ 、AXI协议、PS与PL内部通信 三种AXI总线分别为: AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256轮的数据突发传输; AXI4-Lite:(For
Zynq芯片中,PS(ProcessorSystem)和PL(Programmable Logic)之间提供了一共9个双向读写的通信端口,他们分别是: M_GP0 &M_GP1 S_GP0 &S_GP1 S_AXI_HP0-3 S_AXI_ACP 这些端口的特性和适合的使用场景都不太一样,其中M_GP适合CPU和FPGA之间少量的数据通信,S_HP用来进行大批量的数据交互,S_GP很少用到,S_...
先编写一个PL端IIC总线通信FPGA VI,将FPGA函数选板里面最原始的IIC通信VI函数拖拽到FPGA VI里面,然后PS端就可以通过内部Reg寄存器来操作PL端FPGA IIC里面的状态机了。 然后编写一个PS端Linux RT程序,调用PS端IIC和EEPROM函数选板里面的读写VI,控制PL端FPGA里面的IIC底层协议,即可实现PS端直接访问外部EEPROM器件。