1 / 142

何宾 Tel:13911127536 email:hebin@mail.buct

版权所有,禁止未经授权的商业使用行为. 何宾 Tel:13911127536 email:hebin@mail.buct.edu.cn. 所有培训资料均可从网站 http://bucteda.eefocus.com 下载. 北京中教仪装备技术有限公司. 基于 AXI4 的可编程 SoC 系统设计. 培训内容. Xilinx 片上可编程系统设计导论 AXI4 规范 MicroBlaze 处理器原理 EDK13.1 工具概述 操作系统 (OS) 及板级支持包 (BSP) 概述

ondrea
Download Presentation

何宾 Tel:13911127536 email:hebin@mail.buct

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 版权所有,禁止未经授权的商业使用行为 何宾 Tel:13911127536 email:hebin@mail.buct.edu.cn 所有培训资料均可从网站 http://bucteda.eefocus.com下载 北京中教仪装备技术有限公司

  2. 基于AXI4的可编程SoC系统设计 培训内容 • Xilinx片上可编程系统设计导论 • AXI4规范 • MicroBlaze处理器原理 • EDK13.1工具概述 • 操作系统(OS)及板级支持包(BSP)概述 • 基于MicroBlaze和AXI4的可编程SoC系统实现

  3. 片上可编程系统设计导论--基本概念 基于现场可编程门阵列(Field Programmable Gate Array, FPGA)的可编程SoC系统(Programmable-System- on-a-chip,P-SoC),包含嵌入式的软核或硬核处理器、 存储器和硬件加速器。 P-SoC的出现为设计者提供了设计高性能嵌入式系统 和优化系统的条件。 注:为了后面叙述方便,将Xilinx的可编程SoC系统,英文简述为P-SOC。用于区分其它SOC的系统。

  4. 片上可编程系统设计导论--基本概念 P-SoC嵌入式处理器分为软核和硬核处理器两大类。 Xilinx提供了将物理的处理器核集成到FPGA硅片上的硬核 处理器产品。 一个处理器使用专门的硅片实现称为硬核处理器,比 如Xilinx: • 将PowerPC 405/440硬核集成到Virtex系列的FPGA芯片中; • 将ARM Cortex-A9 MP双核处理器集成在Zynq-7000系列的FPGA芯片中。

  5. 片上可编程系统设计导论--基本概念 软核处理器是通过使用FPGA的通用逻辑实现的。软 核处理器通过HDL语言或网表进行描述的。软核处理器 必须进行综合才能使用。比如Xilinx: • 提供32位的软核处理器MicroBlaze; • 提供8位的软核控制器Picoblaze;

  6. 片上可编程系统设计导论--基本概念 在基于软核和硬核处理器的P-SoC系统中,本地存储 器、处理器总线、内部外设、外设控制器和存储器控制器 必须使用FPGA的通用逻辑实现。 下面给出Xilinx公司的软核和硬核处理器的性能。

  7. 片上可编程系统设计导论--Xilinx P-SoC类别

  8. 片上可编程系统设计导论--基本概念 由于持续的要求嵌入式系统具有更多的功能、更好的 性能和灵活性,因此传统上的设计方法已经不适应这种要 求。当设计人员试图通过高性能的嵌入式处理器得到更高 的性能时,遇到了吞吐量和性能方面的限制,而这种限制 源于系统和结构的瓶颈,以及存储器带宽的限制。 现在解决问题的方法是“专用”,即对某个嵌入式系 统应用使用专门的解决方法。比如,数字信号处理器DSP 用于解决某一类专门的数字信号处理。对于一些高容量的 应用,设计人员可能还需要专门开发ASIC芯片。

  9. 片上可编程系统设计导论--基本概念 很多FPGA厂商将专用的嵌入式处理器PowerPC、 ARM等嵌入到FPGA芯片中。这种集成嵌入式处理器的 FPGA芯片被定义成FPGA的平台。这种基于FPGA的嵌入 式平台提供了一个灵活的解决方案。 在这个解决方案中,一个单FPGA芯片上提供了大量 不同的IP软核和硬核资源。这些固件和硬件可以在任何时 间进行升级。这种可编程的结构特点,大大缩短了系统的 开发时间,而同一平台能应用在很多领域,提高了平台的 资源复用率。

  10. 片上可编程系统设计导论--基本概念 FPGA平台结构使设计人员可以优化系统吞吐量和开 发周期,提供前所未有的软件和硬件协同设计的灵活性, 这种灵活性主要体现在设计人员能够权衡软件和硬件设计 的实现方法。 这种协同性不同于传统的嵌入式系统的协同设计,虽 然以前也使用软件和硬件的协同设计,但是在实现级别上 基本上还是使用大量的分离的设计流程。

  11. 片上可编程系统设计导论--基本概念 FPGA平台,即P-SoC集成了传统软核和硬核处理器、 片上总线、大量不同的I/O设备和接口标准、定制的硬件加 速理器,以及混合的定制的总线或点对点的拓扑结构,以 提高系统的性能。 在P-SoC的层次上,FPGA的应用领域已经大大扩宽了 ,它不再只用于连接不同接口设备的“连接逻辑”。 由于FPGA的容量和性能不断提高,因此它就逐步地变 成嵌入式系统的中心。

  12. 片上可编程系统设计导论--基本概念 在P-SoC阶段,设计已经从以硬件描述语言HDL为中 心的硬件设计,转换到了以C语言进行功能描述为中心。 形成了以C语言描述P-SoC的功能,而用HDL语言描 述硬件的具体实现方法。这也是和传统的FPGA设计和嵌 入式系统设计最大的区别,即软件和硬件的真正的协同设 计。

  13. 片上可编程系统设计导论--基本概念 作为新的嵌入式系统的设计平台,使用P-SoC进行嵌入 式系统设计具有以下几个方面的优点: • 1、定制 • 2、延缓过时 • 3、降低元件成本 • 4、硬件加速

  14. 片上可编程系统设计导论--设计流程 正如前面所说,基于P-SoC的嵌入式系统的设计需要 软件和硬件的协同设计。下面给出了Xilinx公司使用XPS (Xilinx Platform Studio)和SDK(Software Development Kit)进行嵌入式系统设计的流程。 Xilinx公司的XPS和SDK工具包用于开发基于FPGA平 台的嵌入式系统,从图可以看出该工具支持传统的硬件和 嵌入式软件的设计流程。 注:从EDK13.1开始XPS不支持软件开发,软件开发必须 在SDK中完成

  15. 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

  16. 片上可编程系统设计导论--设计流程 XPS支持硬核PowerPC、ARM Cortex-A9 MP和软核 Microblaze处理器。并将设计的导入、创建和IP核定制进行 了流水化的处理。由于XPS知道平台FPGA的硅片属性和选 项,能自动的为其外设生成软件驱动、测试代码以及创建 板级支持包BSP(Board Support Package)。 这些BSP是常用的实时操作系统RTOS(Real-Time Operating System),比如VxWorks和嵌入式Linux提供的设 备驱动。

  17. 片上可编程系统设计导论--设计流程 Xilinx的JTAG连接技术,完成FPGA的下载、FPGA 的调试、C代码的下载和软件的调试。 XPS和SDK工具集成了软件和硬件调试工具,使它们 之间可以相互触发,这使得嵌入式系统内部变成“可见”, 使嵌入式设计者能很快地找到和发现问题,而无需知道这 个问题是软件还是硬件产生的。

  18. 片上可编程系统设计导论--设计优化 FPGA嵌入式处理器设计比较复杂,复杂程度甚至 使那些有经验的设计人员在某些情况下都无能为力,因 此为了获得FPGA平台的优势必须进行权衡。 下面给出一些在设计FPGA的P-SoC嵌入式系统时, 会使用到的一些优化技术。

  19. 片上可编程系统设计导论--设计优化 • 1、优化级别 • 2、使用FPGA厂商的优化指令 • 3、汇编 • 4、混杂

  20. 片上可编程系统设计导论--存储器使用 • 只用本地存储器:最快的存储器的选择是将所有的代 码放在本地存储器中。 • 只用外部存储器:如果将所有程序放在外部存储器中 ,将使系统的性能降到最低。 • 高速缓存:在建有PowerPC处理器的FPGA硅片上建立 了的指令和数据高速缓存。使其对处理器总保持性能优 势。 • 分配代码到内部存储器、外部存储器和高速缓存。

  21. 片上可编程系统设计导论--专用P-SoC优化技术 • 1、提高FPGA工作频率 –逻辑优化 • 2、面积和时序约束 • 3、硬件加速 • 使用硬件除法器和桶型移位寄存器。 • 软件瓶颈转换为硬件处理。可以使用硬件协处理的 算法有:DCT变换、FFT变换、MP3解码器、DES和 AES、矩阵等。使用硬件协处理,可以使性能提高数 十倍或数百倍。

  22. 片上可编程系统设计导论--Xilinx P-SoC芯片(目前) 适合进行P-SoC设计的FPGA芯片低端产品有Spartan 系列,高端产品有Virtex系列。 Spartan系列FPGA只用于MicroBlaze软核处理器的 片上系统设计,Virtex系列FPGA可以用于MicroBlaze软核 处理器和PowerPC硬核处理器的片上系统设计。

  23. 业界最好的性能和容量 最低成本和功耗 业界最好的性价比 片上可编程系统设计导论--P-SoC芯片(未来)

  24. 片上可编程系统设计导论--P-SoC芯片(未来)-吸引全球目光片上可编程系统设计导论--P-SoC芯片(未来)-吸引全球目光

  25. 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年发布) 中。

  26. AMBA AXI4协议--概述 旧的 性能 新的

  27. AMBA 3.0 (2003) AMBA 4.0 (2010) “灵活性”: ARM / Xilinx 合作 AMBA AXI4协议--概述

  28. AMBA AXI4协议--概述 最新一代的AMBA接口的目标是: • 适合于高带宽和低延迟设计; • 在不使用复杂的桥接方式下,允许更高频率的操作; • 满足普遍情况下的元件接口要求; • 适用于高初始访问延迟的存储器控制器; • 为互联结构的实现提供了灵活性; • 与已有的AHB和APB接口向下兼容。

  29. AMBA AXI4协议--概述 AXI协议的关键特性表现在以下几个方面: • 独立的地址/控制和数据阶段; • 使用字节选通,支持非对齐的数据传输; • 只有开始地址的猝发交易; • 独立的读和写数据通道,可以使能低成本的直接存储器访问DMA传输; • 能发出多个未解决的地址; • 完成无序交易; • 容易添加寄存器slice,满足时序收敛要求;

  30. AMBA AXI4协议--概述 AMBA 3.0 (2003) AMBA 4.0 (2010)

  31. 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

  32. AMBA AXI4协议--AXI4功能 AXI4协议基于猝发式传输机制。 (1)在地址通道上,每个交易有地址和控制信息,这 些信息描述了需要传输的数据性质。 (2)在主设备和从设备之间所传输的数据分别使用到 从设备的写数据通道和到主设备的读数据通道。 (3)在从主设备到从设备的写数据交易中,AXI有一 个额外的写响应通道,从设备通过该通道向主设备发出 信号表示完成写交易。

  33. 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);

  34. AMBA AXI4协议--AXI4功能 每个通道由一个信号集构成,并且使用双向的 VALID和READY握手信号机制。 (1)信息源使用VALID信号,表示在通道上存在可用 的有效数据或者控制信息; (2)而信息接收源使用READY信号,表示可以接收 数据。 (3)读数据通道和写数据通道也包含LAST信号,该 信号用来表示在一个交易发生时,最后一个传输的数据 项。

  35. 读地址通道 从 接 口 主 接 口 地址和控制 读数据通道 读数据 读数据 读数据 读数据 读通道结构 AMBA AXI4协议--AXI4功能

  36. 写地址通道 从 接 口 主 接 口 地址和控制 写数据通道 写数据 写数据 写数据 写数据 写响应通道 写响应 写通道结构 AMBA AXI4协议--AXI4功能

  37. AMBA AXI4协议--AXI4功能 读和写交易有各自的地址通道。地址通道上给出交易 所要求的地址和控制信息。AXI4读和写地址通道包括下 面的机制: • 可变长度的猝发操作,每次猝发操作包含1-256数据; • 提供服务质量(QoS)信号 • 支持多个区域接口; • 猝发传输不能超过4k边界; • 包裹、递增和非递增猝发; • 使用互斥和锁的原子操作; • 系统级缓存和缓冲控制; • 安全和特权访问。

  38. AMBA AXI4协议--写地址通道信号及其信号定义

  39. AMBA AXI4协议--读地址通道信号及其信号定义

  40. AMBA AXI4协议--读数据通道信号及其信号定义 读数据通道传送所有来自从设备到主设备的读数 据及读相应信息。 读数据通道包括: • 数据总线宽度:8、16、32、64、128、256、512和1024位宽度; • 读响应表示读交易完成的状态

  41. AMBA AXI4协议--读数据通道信号及其信号定义

  42. AMBA AXI4协议--写数据通道信号及其信号定义 写数据通道传送所有从主设备到从设备的写数据。 写数据通道包括: • 数据总线宽度:8、16、32、64、128、256、512和1024位宽度; • 每8位有一个字节通道选通,用来表示数据总线上的哪个字节是有效的;

  43. AMBA AXI4协议--写数据通道信号及其信号定义

  44. AMBA AXI4协议--写响应通道信号及其信号定义 写响应通道提供了一种方法,用于从设备响应写交 易。所有的写信号使用完成信号。每个响应用于一次 猝发的完成,而不是用于每个交易的数据。

  45. AMBA AXI4协议--写响应通道信号及其信号定义

  46. AMBA AXI4协议-读猝发交易过程中典型信号的交互过程

  47. AMBA AXI4协议-读猝发交易过程中典型信号的交互过程 在读交易中: • 在确认ARREADY信号前,从设备能等待确认ARVALID信号; • 在从设备通过确认RVALID信号开始返回数据前,必须等待确认 所有的ARVALID和ARREADY信号;

  48. AMBA AXI4协议-写猝发交易过程中典型信号的交互过程

  49. AMBA AXI4协议-写猝发交易过程中典型信号的交互过程

  50. AMBA AXI4协议-写猝发交易过程中典型信号的交互过程 在写交易中: • 在确认AWVALID和WVALID信号前,主设备不需要等待从设备确 认AWREADY或者WREADY信号; • 在确认AWREADY前,从设备能等待AWVALID或WVALID信号, 或者全部这两个信号; • 在确认WREADY前,从设备能等待AWVALID或WVALID信号,或 者全部这两个信号; • 从设备在确认BVALID前,从设备必须等待确认所有的AWVALID 和AWREADY信号; • 在确认BVALID前,从设备不需要等待主设备确认BREADY信号。 • 在确认BREADY前,主设备能等待BVALID信号;

More Related