1.42k likes | 1.61k Views
版权所有,禁止未经授权的商业使用行为. 何宾 Tel:13911127536 email:hebin@mail.buct.edu.cn. 所有培训资料均可从网站 http://bucteda.eefocus.com 下载. 北京中教仪装备技术有限公司. 基于 AXI4 的可编程 SoC 系统设计. 培训内容. Xilinx 片上可编程系统设计导论 AXI4 规范 MicroBlaze 处理器原理 EDK13.1 工具概述 操作系统 (OS) 及板级支持包 (BSP) 概述
E N D
版权所有,禁止未经授权的商业使用行为 何宾 Tel:13911127536 email:hebin@mail.buct.edu.cn 所有培训资料均可从网站 http://bucteda.eefocus.com下载 北京中教仪装备技术有限公司
基于AXI4的可编程SoC系统设计 培训内容 • Xilinx片上可编程系统设计导论 • AXI4规范 • MicroBlaze处理器原理 • EDK13.1工具概述 • 操作系统(OS)及板级支持包(BSP)概述 • 基于MicroBlaze和AXI4的可编程SoC系统实现
片上可编程系统设计导论--基本概念 基于现场可编程门阵列(Field Programmable Gate Array, FPGA)的可编程SoC系统(Programmable-System- on-a-chip,P-SoC),包含嵌入式的软核或硬核处理器、 存储器和硬件加速器。 P-SoC的出现为设计者提供了设计高性能嵌入式系统 和优化系统的条件。 注:为了后面叙述方便,将Xilinx的可编程SoC系统,英文简述为P-SOC。用于区分其它SOC的系统。
片上可编程系统设计导论--基本概念 P-SoC嵌入式处理器分为软核和硬核处理器两大类。 Xilinx提供了将物理的处理器核集成到FPGA硅片上的硬核 处理器产品。 一个处理器使用专门的硅片实现称为硬核处理器,比 如Xilinx: • 将PowerPC 405/440硬核集成到Virtex系列的FPGA芯片中; • 将ARM Cortex-A9 MP双核处理器集成在Zynq-7000系列的FPGA芯片中。
片上可编程系统设计导论--基本概念 软核处理器是通过使用FPGA的通用逻辑实现的。软 核处理器通过HDL语言或网表进行描述的。软核处理器 必须进行综合才能使用。比如Xilinx: • 提供32位的软核处理器MicroBlaze; • 提供8位的软核控制器Picoblaze;
片上可编程系统设计导论--基本概念 在基于软核和硬核处理器的P-SoC系统中,本地存储 器、处理器总线、内部外设、外设控制器和存储器控制器 必须使用FPGA的通用逻辑实现。 下面给出Xilinx公司的软核和硬核处理器的性能。
片上可编程系统设计导论--基本概念 由于持续的要求嵌入式系统具有更多的功能、更好的 性能和灵活性,因此传统上的设计方法已经不适应这种要 求。当设计人员试图通过高性能的嵌入式处理器得到更高 的性能时,遇到了吞吐量和性能方面的限制,而这种限制 源于系统和结构的瓶颈,以及存储器带宽的限制。 现在解决问题的方法是“专用”,即对某个嵌入式系 统应用使用专门的解决方法。比如,数字信号处理器DSP 用于解决某一类专门的数字信号处理。对于一些高容量的 应用,设计人员可能还需要专门开发ASIC芯片。
片上可编程系统设计导论--基本概念 很多FPGA厂商将专用的嵌入式处理器PowerPC、 ARM等嵌入到FPGA芯片中。这种集成嵌入式处理器的 FPGA芯片被定义成FPGA的平台。这种基于FPGA的嵌入 式平台提供了一个灵活的解决方案。 在这个解决方案中,一个单FPGA芯片上提供了大量 不同的IP软核和硬核资源。这些固件和硬件可以在任何时 间进行升级。这种可编程的结构特点,大大缩短了系统的 开发时间,而同一平台能应用在很多领域,提高了平台的 资源复用率。
片上可编程系统设计导论--基本概念 FPGA平台结构使设计人员可以优化系统吞吐量和开 发周期,提供前所未有的软件和硬件协同设计的灵活性, 这种灵活性主要体现在设计人员能够权衡软件和硬件设计 的实现方法。 这种协同性不同于传统的嵌入式系统的协同设计,虽 然以前也使用软件和硬件的协同设计,但是在实现级别上 基本上还是使用大量的分离的设计流程。
片上可编程系统设计导论--基本概念 FPGA平台,即P-SoC集成了传统软核和硬核处理器、 片上总线、大量不同的I/O设备和接口标准、定制的硬件加 速理器,以及混合的定制的总线或点对点的拓扑结构,以 提高系统的性能。 在P-SoC的层次上,FPGA的应用领域已经大大扩宽了 ,它不再只用于连接不同接口设备的“连接逻辑”。 由于FPGA的容量和性能不断提高,因此它就逐步地变 成嵌入式系统的中心。
片上可编程系统设计导论--基本概念 在P-SoC阶段,设计已经从以硬件描述语言HDL为中 心的硬件设计,转换到了以C语言进行功能描述为中心。 形成了以C语言描述P-SoC的功能,而用HDL语言描 述硬件的具体实现方法。这也是和传统的FPGA设计和嵌 入式系统设计最大的区别,即软件和硬件的真正的协同设 计。
片上可编程系统设计导论--基本概念 作为新的嵌入式系统的设计平台,使用P-SoC进行嵌入 式系统设计具有以下几个方面的优点: • 1、定制 • 2、延缓过时 • 3、降低元件成本 • 4、硬件加速
片上可编程系统设计导论--设计流程 正如前面所说,基于P-SoC的嵌入式系统的设计需要 软件和硬件的协同设计。下面给出了Xilinx公司使用XPS (Xilinx Platform Studio)和SDK(Software Development Kit)进行嵌入式系统设计的流程。 Xilinx公司的XPS和SDK工具包用于开发基于FPGA平 台的嵌入式系统,从图可以看出该工具支持传统的硬件和 嵌入式软件的设计流程。 注:从EDK13.1开始XPS不支持软件开发,软件开发必须 在SDK中完成
VHDL or Verilog C 代码 标准的FPGA硬件 开发流程 嵌入式开发工具 标准的嵌入式软件 开发流程 Data2MEM 代码入口 HDL 入口 系统网表 板级支持包 Instantiate the ‘System Netlist’ and Implement the FPGA Include the BSP and Compile the Software Image 仿真/综合 C/C++ 交叉编译器 实现 链接器 Compiled ELF Compiled BIT ? ? 2 3 1 编译ELF 编译比特流 Chipscope 下载相关镜像到FPGA 加载软件到Flash 下载比特流到FPGA 调试器 RTOS, BSP 片上可编程系统设计导论--P-SoC设计流程 XPS SDK
片上可编程系统设计导论--设计流程 XPS支持硬核PowerPC、ARM Cortex-A9 MP和软核 Microblaze处理器。并将设计的导入、创建和IP核定制进行 了流水化的处理。由于XPS知道平台FPGA的硅片属性和选 项,能自动的为其外设生成软件驱动、测试代码以及创建 板级支持包BSP(Board Support Package)。 这些BSP是常用的实时操作系统RTOS(Real-Time Operating System),比如VxWorks和嵌入式Linux提供的设 备驱动。
片上可编程系统设计导论--设计流程 Xilinx的JTAG连接技术,完成FPGA的下载、FPGA 的调试、C代码的下载和软件的调试。 XPS和SDK工具集成了软件和硬件调试工具,使它们 之间可以相互触发,这使得嵌入式系统内部变成“可见”, 使嵌入式设计者能很快地找到和发现问题,而无需知道这 个问题是软件还是硬件产生的。
片上可编程系统设计导论--设计优化 FPGA嵌入式处理器设计比较复杂,复杂程度甚至 使那些有经验的设计人员在某些情况下都无能为力,因 此为了获得FPGA平台的优势必须进行权衡。 下面给出一些在设计FPGA的P-SoC嵌入式系统时, 会使用到的一些优化技术。
片上可编程系统设计导论--设计优化 • 1、优化级别 • 2、使用FPGA厂商的优化指令 • 3、汇编 • 4、混杂
片上可编程系统设计导论--存储器使用 • 只用本地存储器:最快的存储器的选择是将所有的代 码放在本地存储器中。 • 只用外部存储器:如果将所有程序放在外部存储器中 ,将使系统的性能降到最低。 • 高速缓存:在建有PowerPC处理器的FPGA硅片上建立 了的指令和数据高速缓存。使其对处理器总保持性能优 势。 • 分配代码到内部存储器、外部存储器和高速缓存。
片上可编程系统设计导论--专用P-SoC优化技术 • 1、提高FPGA工作频率 –逻辑优化 • 2、面积和时序约束 • 3、硬件加速 • 使用硬件除法器和桶型移位寄存器。 • 软件瓶颈转换为硬件处理。可以使用硬件协处理的 算法有:DCT变换、FFT变换、MP3解码器、DES和 AES、矩阵等。使用硬件协处理,可以使性能提高数 十倍或数百倍。
片上可编程系统设计导论--Xilinx P-SoC芯片(目前) 适合进行P-SoC设计的FPGA芯片低端产品有Spartan 系列,高端产品有Virtex系列。 Spartan系列FPGA只用于MicroBlaze软核处理器的 片上系统设计,Virtex系列FPGA可以用于MicroBlaze软核 处理器和PowerPC硬核处理器的片上系统设计。
业界最好的性能和容量 最低成本和功耗 业界最好的性价比 片上可编程系统设计导论--P-SoC芯片(未来)
片上可编程系统设计导论--P-SoC芯片(未来)-吸引全球目光片上可编程系统设计导论--P-SoC芯片(未来)-吸引全球目光
AMBA AXI4协议--概述 Xilinx 同 ARM 密切合作,共同为基于 FPGA 的高性 能系统和设计定义了 AXI4 规范。并且在其新一代可编程 门阵列芯片上采用了高级可扩展接口(Advanced eXtensible Interface, AXI)协议。 AXI总线是ARM高级微控制器总线结构(Advanced Microcontroller Bus Architecture, AMBA)的一部分。AXI总 线的第一个版本包含在AMBA3.0(2003年发布)中,AXI 总线的第二个版本AXI4包含在AMBA4.0(2010年发布) 中。
AMBA AXI4协议--概述 旧的 性能 新的
AMBA 3.0 (2003) AMBA 4.0 (2010) “灵活性”: ARM / Xilinx 合作 AMBA AXI4协议--概述
AMBA AXI4协议--概述 最新一代的AMBA接口的目标是: • 适合于高带宽和低延迟设计; • 在不使用复杂的桥接方式下,允许更高频率的操作; • 满足普遍情况下的元件接口要求; • 适用于高初始访问延迟的存储器控制器; • 为互联结构的实现提供了灵活性; • 与已有的AHB和APB接口向下兼容。
AMBA AXI4协议--概述 AXI协议的关键特性表现在以下几个方面: • 独立的地址/控制和数据阶段; • 使用字节选通,支持非对齐的数据传输; • 只有开始地址的猝发交易; • 独立的读和写数据通道,可以使能低成本的直接存储器访问DMA传输; • 能发出多个未解决的地址; • 完成无序交易; • 容易添加寄存器slice,满足时序收敛要求;
AMBA AXI4协议--概述 AMBA 3.0 (2003) AMBA 4.0 (2010)
AMBA AXI4协议--概述 “互连” PLBv46 “共享访问” 总线 规范的一部分 处理器r AXI 从设备 PLB AXI 主设备 AXI AXI AXI 定义点对点, 主/从 接口 AXI AXI 外设 PLB AXI AXI AXI AXI PLB • AXI 互连 IP • Xilinx 建立自己的 • 很多公司构建和买 • “AXI 互连 IP” AXI AXI PLB 箭头表示主/从关系,而不表示数据流的方向 主 从 仲裁器 PLBv46 是总线规范 / AXI是一个接口规范 13- 31 Hardware Design
AMBA AXI4协议--AXI4功能 AXI4协议基于猝发式传输机制。 (1)在地址通道上,每个交易有地址和控制信息,这 些信息描述了需要传输的数据性质。 (2)在主设备和从设备之间所传输的数据分别使用到 从设备的写数据通道和到主设备的读数据通道。 (3)在从主设备到从设备的写数据交易中,AXI有一 个额外的写响应通道,从设备通过该通道向主设备发出 信号表示完成写交易。
AMBA AXI4协议--AXI4功能 所有的AXI4包含了5个不同的通道: • 读地址通道(Read address channel, AR); • 写地址通道(Write address channel, AW); • 读数据通道(Read data channel, R); • 写数据通道(Write data channel, W); • 写响应通道(Write response channel, B);
AMBA AXI4协议--AXI4功能 每个通道由一个信号集构成,并且使用双向的 VALID和READY握手信号机制。 (1)信息源使用VALID信号,表示在通道上存在可用 的有效数据或者控制信息; (2)而信息接收源使用READY信号,表示可以接收 数据。 (3)读数据通道和写数据通道也包含LAST信号,该 信号用来表示在一个交易发生时,最后一个传输的数据 项。
读地址通道 从 接 口 主 接 口 地址和控制 读数据通道 读数据 读数据 读数据 读数据 读通道结构 AMBA AXI4协议--AXI4功能
写地址通道 从 接 口 主 接 口 地址和控制 写数据通道 写数据 写数据 写数据 写数据 写响应通道 写响应 写通道结构 AMBA AXI4协议--AXI4功能
AMBA AXI4协议--AXI4功能 读和写交易有各自的地址通道。地址通道上给出交易 所要求的地址和控制信息。AXI4读和写地址通道包括下 面的机制: • 可变长度的猝发操作,每次猝发操作包含1-256数据; • 提供服务质量(QoS)信号 • 支持多个区域接口; • 猝发传输不能超过4k边界; • 包裹、递增和非递增猝发; • 使用互斥和锁的原子操作; • 系统级缓存和缓冲控制; • 安全和特权访问。
AMBA AXI4协议--读数据通道信号及其信号定义 读数据通道传送所有来自从设备到主设备的读数 据及读相应信息。 读数据通道包括: • 数据总线宽度:8、16、32、64、128、256、512和1024位宽度; • 读响应表示读交易完成的状态
AMBA AXI4协议--写数据通道信号及其信号定义 写数据通道传送所有从主设备到从设备的写数据。 写数据通道包括: • 数据总线宽度:8、16、32、64、128、256、512和1024位宽度; • 每8位有一个字节通道选通,用来表示数据总线上的哪个字节是有效的;
AMBA AXI4协议--写响应通道信号及其信号定义 写响应通道提供了一种方法,用于从设备响应写交 易。所有的写信号使用完成信号。每个响应用于一次 猝发的完成,而不是用于每个交易的数据。
AMBA AXI4协议-读猝发交易过程中典型信号的交互过程
AMBA AXI4协议-读猝发交易过程中典型信号的交互过程 在读交易中: • 在确认ARREADY信号前,从设备能等待确认ARVALID信号; • 在从设备通过确认RVALID信号开始返回数据前,必须等待确认 所有的ARVALID和ARREADY信号;
AMBA AXI4协议-写猝发交易过程中典型信号的交互过程
AMBA AXI4协议-写猝发交易过程中典型信号的交互过程
AMBA AXI4协议-写猝发交易过程中典型信号的交互过程 在写交易中: • 在确认AWVALID和WVALID信号前,主设备不需要等待从设备确 认AWREADY或者WREADY信号; • 在确认AWREADY前,从设备能等待AWVALID或WVALID信号, 或者全部这两个信号; • 在确认WREADY前,从设备能等待AWVALID或WVALID信号,或 者全部这两个信号; • 从设备在确认BVALID前,从设备必须等待确认所有的AWVALID 和AWREADY信号; • 在确认BVALID前,从设备不需要等待主设备确认BREADY信号。 • 在确认BREADY前,主设备能等待BVALID信号;