在使用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-GP接口(4个):是通用的AXI接口,包括两个32位主设备接口和两个32位从设备接口,用过改接口可以访问PS中的片内外设。 AXI-HP接口(4个):是高性能/带宽的标准的接口,PL模块作为主设备连接(从下图中箭头可以看出)。主要用于PL访问PS上的存储器(DDR和On-Chip RAM) AXI-ACP接口(1个):是ARM多核架构下定义的...
ZYNQ开发中需要使用PS控制PL的计算进程,其中控制信号可以通过GP口使用AXI-Lite协议发送,PS向PL写入控制信号,并从PL读回计算完毕信号。 本例中自定义IP配置了4个从寄存器,从寄存器slv_reg0、slv_reg1负责接收来自PS的指令,并通过组合逻辑解析成PL计算将要用到的各个参数idin、en、...、ht_dsc;来自PL的状态信号i...
上节我们创建了Block Design(如下图所示),并且完成了PS端对BRAM的读写 本次实验,我们将在PL端编写Verilog代码, 实现对BRAM的读写 第一步:将Block Design中的BRAM改为双口RAM,并make extern出所有引脚 选中FCLK_CLK0引出的走线,右键点击Delete删除掉
总而言之,在 PS 和 PL 之间使用了惊人的 14.4Gbytes/sec(115.2Gbits/sec)的理论带宽! 创建AXI外设 这一节将使用 AXI 接口在 Zynq SoC 的可编程逻辑结构中创建外设。 第一步 第一步是打开 Vivado 设计并从工具选项下选择“创建和封装 IP”选项-create and package IP。
AXI-VDMA:实现从 PS 内存到 PL 高速传输高速通道 AXI-HP<--->AXI-Stream 的转换,只不过是专门针对视频、图像等二维数据的。 AXI-CDMA:这个是由 PL 完成的将数据从内存的一个位置搬移到另一个位置,无需 CPU 来插手。 有时,用户需要开发自己定义的IP同PS进行通信,这时可以利用向导生成对应的IP。用户自定义...
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_...
ZYNQ&AIX总线&PS与PL内部通信(用户自定义IP)-ZYNQ 、AXI协议、PS与PL内部通信 三种AXI总线分别为: AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256轮的数据突发传输; AXI4-Lite:(For
这是因为,虽然PL端FPGA里面实现了CAN总线原始通信协议,但是对于更高层次的协议数据应用来说,比如基于CAN协议的CANopen通信来说,直接在FPGA编程反而很麻烦,并且会消耗很多宝贵的FPGA逻辑门资源,而这些应用层协议,在PS端LinuxRT里面编写反而简单;更重要的是,像CANopen协议,NI已经提供好了Linux下的LabVIEW驱动VI,用户直接...