AXI总线

FPGA中的除法运算及初识AXI总线

FPGA中的硬件逻辑与软件程序的区别,相信大家在做除法运算时会有深入体会。若其中一个操作数为常数,可通过简单的移位与求和操作代替,但用硬件逻辑完成两变量间除法运算会占用较多的资源,电路结构复杂,且通常无法在一个时钟周期内完成。因此FPGA实现除法运算并不是一个“/”号可以解决的。

  好在此类基本运算均有免费的IP核使用,本人使用的VIVADO 2016.4开发环境提供的divider gen IP核均采用AXI总线接口,已经不再支持native接口。故做除法运算的重点从设计算法电路转变成了调用AXI总线IP核以及HDL中有符号数的表示问题,极大降低了开发难度。以下就上述两个方面进行探讨。

  VerilogHDL中默认数据类型为无符号数,因此需要数学运算的场合必须要用“signed”声明,如:reg signed [8-1:0] signal_a;  wire signed [32-1:0] signal_b;需要注意一点,FPGA将所有有符号数视为二进制补码形式,运算的结果同样为补码。再来看看除法器IP核配置界面。

【视频】AXI总线基础知识

AXI(Advanced eXtensible Interface)是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。通过本视频了解AXI总线基础知识。

ZYNQ学习之PL和PS接口

1、PL和PS的接口类型总共有两种:

(1)功能接口:AXI、EMIO、中断、DMA流控制、时钟调试接口。

(2)配置接口:PCAP、SEU、配置状态信号和Program/Done/Init信号。这些信号连接到PL内配置模块的固定逻辑上,给PS提供对PL的控制能力。

2、AXI总线:AXI (Advanced eXtensible Interface)本是由ARM公司提出的一种总线协议。用于PL和PS之间的通信。

总线:是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线、地址线、控制线等构成。

接口:是一种连接标准,又常常被称之为物理接口。

协议:就是传输数据的规则

(1)AXI总线:在ZYNQ中有支持三种AXI总线

AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256轮的数据突发传输;
AXI4-Lite:(For simple, low-throughput memory-mapped communication )是一个轻量级的地址映射单次传输接口,占用很少的逻辑单元。

一文了解Zynq里面的AXI总线

在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议。其中三种AXI总线分别为:

AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大256轮的数据突发传输;

AXI4-Lite:(For simple, low-throughput memory-mapped communication )是 一个轻量级的地址映射单次传输接口,占用很少的逻辑单元。

AXI4-Stream:(For high-speed streaming data.)面向高速流数据传输;去掉了地址项,允许无限制的数据突发传输规模。

说AXI4总线和AXI4-Lite总线具有相同的组成部分:

(1)读地址通道,包含ARVALID, ARADDR, ARREADY信号;

(2)读数据通道,包含RVALID, RDATA, RREADY, RRESP信号;

(3)写地址通道,包含AWVALID,AWADDR, AWREADY信号;

(4)写数据通道,包含WVALID, WDATA,WSTRB, WREADY信号;

(5)写应答通道,包含BVALID, BRESP, BREADY信号;

ZYNQ-7000 AXI 总线相关介绍

1、AXI 总线通道,总线和引脚的介绍
AXI接口具有五个独立的通道:
(1)写地址通道(AW):write address channel
(2)写数据通道( W): write data channel
(3)写响应通道( B) : write response channel
(4)读地址通道(AR):read address channel
(5)读数据通道( R): read data channel

五个通道图为:

读地址通道和读数据通道

读地址通道和读数据通道

基于AXI总线的DDR仿真模型

在xilinx平台下,经常要进行基于AXI总线的IP开发。尤其是当要使用DDR时,仿真就存在很大的问题了。之前我们的解决办法是修改接口,然后连接到一个模拟DDR的寄存器组中。但这样做一方面频繁修改接口,相当麻烦;另一方面仿真行为与下板行为不完全一样,不方便找出bug。所以我就决定建立一个DDR AXI 仿真模型来用于AXI总线下的仿真。其思想和原来的方法一样,都是在testbench中建立一个寄存器组来模拟DDR。只不过不修改接口,而是直接用AXI总线的接口来进行行为模拟。

首先,我们先来了解下AXI总线的主要接口与行为:

AXI总线信号说明:


写数据信号图

【科普】AXI总线简介

AXI全称Advanced eXtensible Interface,是Xilinx从6系列的FPGA开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式。在ZYNQ中继续使用,版本是AXI4,所以我们经常会看到AXI4.0,ZYNQ内部设备都有AXI接口。其实AXI就是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)的一个部分,是一种高性能、高带宽、低延迟的片内总线,也用来替代以前的AHB和APB总线。第一个版本的AXI(AXI3)包含在2003年发布的AMBA3.0中,AXI的第二个版本AXI(AXI4)包含在2010年发布的AMBA 4.0之中。

AXI协议具有如下特点:
. 总线的地址/控制和数据通道是分离的;
. 支持不对齐的数据传输;
. 在突发数据传输中只需要首地址;
. 同时具有分离读/写数据通道;
. 支持显著传输访问和乱序访问;
. 更加容易进行时序收敛

AXI4包含三种接口:
. AXI4——For high-performance memory-mapped requirements.

ZC702-自定义AXI-IP核实验

目的:
自定义一个IP核,通过AXI总线与ARM系统连接

环境:
Win7 32bit
Vivado2014.4.1
Xilinx sdk2014.4
开发板:
Zc702

第一步:
新建一个自定义的HDL模块,本实验新建一个16位加法器,保存为test.v,代码如下
module test(
input [15:0] a,
input [15:0] b,
input clk,
output reg [15:0] sum
);
always@(posedge clk)
begin
sum <= a +b ;
end
endmodule

第二步:
新建一个IP核,打开vivado,在tools中选中新建IP核

点击Next,

基于Zynq的JPEG图像压缩系统设计

作者:胡灿,樊旭,何顶新 华中科技大学 自动化学院

摘要: 介绍了基于Zynq平台实现的JPEG图像压缩系统。该系统利用Zynq片上AXI总线实现了ARM与FPGA核间高吞吐率的数据交互操作,并结合了ARM和FPGA在嵌入式系统开发中各自的优势,对软硬件功能的实现进行了明确的划分。通过具体的实验测试,本系统的通用性及高效性得到了验证,并且该系统可方便地移植到不同的实际应用中。

引言
随着多媒体技术以及通信技术的迅猛发展,高质量数字图像的应用越来越广泛,然而未经压缩的数字图像的数据量非常大,势必会给图像的存储和传输都带来很大的困难,因此对数字图像的有效压缩是不可或缺的。在现有图像压缩编码技术中,静态图像压缩编码标准JPEG以其显著的压缩效率、较低的图像质量损失以及较低的实现复杂度得到了广泛应用,是常用的国际标准。

基于MicroBlaze的AXI总线实时时钟IP核设计

作者:萨其日娜 内蒙古鲁电电力工程有限公司

摘要: 应用MicroBlaze软核作为CPU的硬件平台,在此平台上设计了基于AXI总线的通用实时时钟IP核。给出了创建IP核的过程和导入IP核的方法。介绍了实时时钟的IP核结构,给出了IP核的结构框图。介绍了实时时钟的原理,给出了实时时钟各个模块的核心代码。

引言
  MicroBlaze是可以嵌入到FPGA中的RISC处理器软核,具有运行速度快、占用资源少、可配置性强等优点,广泛应用于通信、军事、高端消费市场等领域。Xilinx公司的MicroBlaze 32位软处理器核是支持CoreConnect总线的标准外设集合。MicroBlaze处理器运行在150 MHz时钟下,适合设计针对网络、电信、数据通信和消费市场的复杂嵌入式系统。

同步内容