所有培训资料均可从网站 http://bucteda.eefocus.com下载 何宾 Tel:13911127536 版权所有,禁止未经授权的商业使用行为 何宾 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公司的软核和硬核处理器的性能。
片上可编程系统设计导论 --Xilinx P-SoC类别 处理器种类 总线 IP核类型 语言 开发环境 (Xilinx提供) ARM Cortex-A9 MP (双核) 64位 硬核 AXI c/c++, 汇编 XPS&SDK PowerPC 32位 PLB MicroBlaze 软核 PLB/ PicoBlaze 8位 ---- ISE&汇编器
片上可编程系统设计导论 --基本概念 由于持续的要求嵌入式系统具有更多的功能、更好的 性能和灵活性,因此传统上的设计方法已经不适应这种要 求。当设计人员试图通过高性能的嵌入式处理器得到更高 的性能时,遇到了吞吐量和性能方面的限制,而这种限制 源于系统和结构的瓶颈,以及存储器带宽的限制。 现在解决问题的方法是“专用”,即对某个嵌入式系 统应用使用专门的解决方法。比如,数字信号处理器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语言描述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中完成
片上可编程系统设计导论 --P-SoC设计流程 Data2MEM 下载相关镜像到FPGA Compiled ELF Compiled BIT RTOS, BSP 嵌入式开发工具 Instantiate the ‘System Netlist’ and Implement the FPGA ? HDL 入口 Chipscope 标准的FPGA硬件 开发流程 VHDL or Verilog Include the BSP and Compile the Software Image 代码入口 C/C++ 交叉编译器 链接器 加载软件到Flash 标准的嵌入式软件 C 代码 板级支持包 1 2 3 编译比特流 编译ELF 调试器 系统网表 仿真/综合 实现 下载比特流到FPGA 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的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芯片(未来)-吸引全球目光
AMBA AXI4协议 --概述 Xilinx 同 ARM 密切合作,共同为基于 FPGA 的高性 门阵列芯片上采用了高级可扩展接口(Advanced eXtensible Interface, AXI)协议。 AXI总线是ARM高级微控制器总线结构(Advanced Microcontroller Bus Architecture, AMBA)的一部分。AXI总 线的第一个版本包含在AMBA3.0(2003年发布)中,AXI 总线的第二个版本AXI4包含在AMBA4.0(2010年发布) 中。
AMBA AXI4协议 --概述 AMBA APB AHB AXI 旧的 性能 新的
AMBA AXI4协议 --概述 “灵活性”: ARM / Xilinx 合作 AMBA APB AHB AXI AMBA 3.0 Stream Lite AMBA 3.0 (2003) AMBA 4.0 (2010) “灵活性”: ARM / Xilinx 合作
AMBA AXI4协议 --概述 最新一代的AMBA接口的目标是: 适合于高带宽和低延迟设计; 在不使用复杂的桥接方式下,允许更高频率的操作; 满足普遍情况下的元件接口要求; 适用于高初始访问延迟的存储器控制器; 为互联结构的实现提供了灵活性; 与已有的AHB和APB接口向下兼容。
AMBA AXI4协议 --概述 AXI协议的关键特性表现在以下几个方面: 独立的地址/控制和数据阶段; 使用字节选通,支持非对齐的数据传输; 只有开始地址的猝发交易; 独立的读和写数据通道,可以使能低成本的直接存储器访问DMA传输; 能发出多个未解决的地址; 完成无序交易; 容易添加寄存器slice,满足时序收敛要求;
ATB AMBA AXI4协议 --概述 AMBA AXI AMBA 3.0 AMBA 4.0 AXI4 AXI4- Stream Lite (2003) AMBA 4.0 (2010) 接口 特性 类似于 AXI4 传统的地址/猝发数据 PLBv46, PCI AXI4-Stream 只有数据, 猝发 Local Link / DSP 接口 / FIFO / FSL AXI4-Lite 传统的地址/单数据 PLBv46-single, OPB
PLBv46 是总线规范 / AXI是一个接口规范 AMBA AXI4协议 --概述 PLBv46 “互连” “共享访问” 总线 规范的一部分 处理器r PLB AXI 从设备 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握手信号机制。 的有效数据或者控制信息; (2)而信息接收源使用READY信号,表示可以接收 数据。 (3)读数据通道和写数据通道也包含LAST信号,该 信号用来表示在一个交易发生时,最后一个传输的数据 项。
AMBA AXI4协议 --AXI4功能 主 接 口 地址和控制 读数据 从 读地址通道 读数据通道 读通道结构
AMBA AXI4协议 --AXI4功能 写响应通道 主 接 口 地址和控制 写数据 从 写地址通道 写数据通道 写通道结构 写响应
AMBA AXI4协议 --AXI4功能 读和写交易有各自的地址通道。地址通道上给出交易 面的机制: 可变长度的猝发操作,每次猝发操作包含1-256数据; 提供服务质量(QoS)信号 支持多个区域接口; 猝发传输不能超过4k边界; 包裹、递增和非递增猝发; 使用互斥和锁的原子操作; 系统级缓存和缓冲控制; 安全和特权访问。
AMBA AXI4协议 --写地址通道信号及其信号定义 信号名 源 描述 AWID[3:0] 主 写地址ID。这个信号用于写地址信号组的标记。 AWADDR[31:0] 写地址。写地址信号给出写猝发交易的第一个传输地址。相关的控制信号线用于确 定猝发中剩余传输的地址。 AWLEN[7:0] 猝发长度。给出猝发中准确的传输个数。该信息给出了和地址相关的数据传输数量。 AWSIZE[2:0] 猝发大小。这个信号确定猝发中每个传输的大小。字节通道选通用来说明需要更新 的字节通道。 AWBURST[1:0] 猝发类型。该信息与大小信息一起,表示在猝发过程中,地址如何用于每个传输。 AWLOCK 锁类型。这个信号提供了关于传输原子特性的额外信息(普通或互斥访问) AWCACHE[3:0] 缓存类型。这个信号表示可缓冲、可缓存、写通过、写回和分配交易属性。 AWPROT[2:0] 保护类型。这个信号表示交易的普通、特权、或安全保护级,以及交易是数据访问 还是指令访问。 AWVALID 写地址有效。这个信号表示写地址有效和控制信息是可用的。该信号一直保持有效 ,直到响应信号AWREADY为高。 AWREADY 从 写地址准备。这个信号表示从设备准备接受地址和相关的控制信号。 AWQOS[3:0] 用于每个写交易的地址通道上的4位QoS标识符(可作为优先级标志) AWREGION[3:0] 用于每个写交易的地址通道上的域标识符。
AMBA AXI4协议 --读地址通道信号及其信号定义 信号名 源 描述 ARID[3:0] 主 读地址ID。这个信号用于读地址信号组的标记。 ARADDR[31:0] 读地址。读地址信号给出读猝发交易的第一个传输地址。只提供猝发的开始地址和给出控制信号,详细描述了在猝发的剩余传输中如何计算地址。 ARLEN[7:0] 猝发长度。给出猝发中准确的传输个数。该信息给出了和地址相关的数据传输数量。 ARSIZE[2:0] 猝发大小。这个信号确定猝发中每个传输的大小。字节通道选通用来指示需要更新的字节通道。 ARBURST[1:0] 猝发类型。该信息与大小信息一起,用于在猝发过程中,地址如何用于每个传输。 ARLOCK 锁类型。这个信号提供了关于传输原子特性的额外信息(普通或互斥访问) ARCACHE[3:0] 缓存类型。这个信号提供可缓存传输属性。 ARPROT[2:0] 保护类型。这个信号提供用于传输的保护单元信息。 ARVALID 读地址有效。这个信号表示读地址有效和控制信息是可用的。该信号一直保持有效,直到响应信号ARREADY为高。 ARREADY 从 读地址准备。这个信号表示从设备准备接受地址和相关的控制信号。 ARQOS[3:0] 用于每个读交易的地址通道上的4位QoS标识符(可作为优先级标志) ARREGION[3:0] 用于每个读交易的地址通道上的域标识符。
AMBA AXI4协议 --读数据通道信号及其信号定义 读数据通道传送所有来自从设备到主设备的读数 据及读相应信息。 读数据通道包括: 数据总线宽度:8、16、32、64、128、256、512和1024位宽度; 读响应表示读交易完成的状态
AMBA AXI4协议 --读数据通道信号及其信号定义 信号名 源 描述 RID[3:0] 从 读ID标记。这个信号是读数据信号组标记。由从设备产生RID,RID必须和读 交易中的ARID值匹配。 RDATA[31:0] 读数据。读数据总线可以是8,16,32,64,128,256,512或者1024位宽度。 RRESP[1:0] 读响应。这个信号表示读传输的状态。可允许的相应为OKAY,EXOKAY, SLVERR和DECERR. RLAST 读最后一个。表示读猝发中的最后一个传输。 RVALID 读有效。这个信号表示所要求的读数据是可用的,能完成读传输。 RREADY 主 读准备。这个信号表示主设备能接受读数据和响应信息。
AMBA AXI4协议 --写数据通道信号及其信号定义 写数据通道传送所有从主设备到从设备的写数据。 写数据通道包括: 数据总线宽度:8、16、32、64、128、256、512和1024位宽度; 每8位有一个字节通道选通,用来表示数据总线上的哪个字节是有效的;
AMBA AXI4协议 --写数据通道信号及其信号定义 信号名 源 描述 WDATA[31:0] 主 写数据。写数据总线可以是8,16,32,64,128,256,512或者1024位宽度。 WSTRB[3:0] 写选通。用于表示更新存储器的字节通道。对于数据总线的每8位有一个写选 通。 WLAST 写最后一个。表示写猝发中的最后一个传输。 WVALID 写有效。这个信号表示所要求的写有效的写数据和选通是可用的。 WREADY 从 写准备。这个信号表示从设备能接受写数据。
AMBA AXI4协议 --写响应通道信号及其信号定义 写响应通道提供了一种方法,用于从设备响应写交 易。所有的写信号使用完成信号。每个响应用于一次 猝发的完成,而不是用于每个交易的数据。
AMBA AXI4协议 --写响应通道信号及其信号定义 信号名 源 描述 BID[3:0] 从 响应ID. 写响应识别标记。BID值必须匹配写交易的AWID值。 BRESP[1:0] 写响应。这个信号表示写交易的状态。可允许的相应为OKAY,EXOKAY, SLVERR和DECERR. BVALID 写响应有效。这个信号表示所要求的有效写响应是可用的。 BREADY 主 响应准备。这个信号表示主设备可以接受响应信息。
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信号;
AMBA AXI4协议 -互连模型(直通模式) 主设备0 从设备0 图2.7 直通模式 互联
AMBA AXI4协议 -互连模型(转换模式) 同的转换和流水线功能。这些功能主要包括:数据宽度转 换;时钟速率转化;AXI4-Lite从适应;AXI-3从适应;流 水线(例如一个寄存器Slice或者数据通道FIFO)。在只转 换模式下,AXI互联不包含仲裁、解码或布线逻辑,但是 可能产生延迟。
AMBA AXI4协议 -互连模型(转换模式) 主设备0 转换/流水 从设备0 图2.8转换模式 互联
AMBA AXI4协议 -互连模型(N-1模式) 访问一个从设备。 典型的情况是,一个存储器控制器,很显然需要仲 裁逻辑。这种情况下,AXI互联不需要地址译码逻辑(除 非需要确认地址的有效范围)。在这个配置中,也执行 数据宽度和时钟速率的转换。
AMBA AXI4协议 -互连模型(N-1模式) 互联 主设备0 从设备0 仲裁器 主设备1 图2.9 N-1互联模式
AMBA AXI4协议 -互连模型(1-N模式) 的处理器,访问多个存储器映射的从外设。在这种模 式下,AXI互联不执行仲裁(在地址和写数据通道)。 互联 主设备0 从设备0 图2.10 1-N互联模式 从设备1 解码/布线
AMBA AXI4协议 -互连模型(N-M模式) AXI互联提供了一种共享地址多数据流(SAMD) 拓扑结构,这种结构中包含稀疏的数互联写交易仲裁 器. 互联 写交易仲裁器 读交易仲裁器 AW AR 主设备0 路由器 共享写和读地址仲裁结构 主设备1 主设备2 从设备0 从设备1 从设备2
AMBA AXI4协议 -互连模型(N-M模式) 写数据互联开关 读数据互联开关 W R 主设备0 图2.12 稀疏互联写和读数据通道 主设备1 主设备2 互联 从设备0 从设备1 从设备2
AMBA AXI4协议 --AXI4-Lite功能 AXI4-Lite接口是AXI4接口的子集专用于和元件内的 控制寄存器进行通信。AXI4-Lite允许构建简单的元件接 口,这个接口是较小的,对设计和验证方面的要求更少 。AXI4-Lite接口的关键特性包含: 所有交易的猝发长度为1; 所有访问数据的大小和数据总线宽度相同; 支持数据总线宽度为32位或64位(要求64位原子访问); 所有的访问相当于AWCACHE和ARCACHE等于b0000(非缓冲和非缓存的); 不支持互斥性操作;
AMBA AXI4协议 --AXI4-Lite功能 主 接 口 地址和控制 读数据 从 读地址通道 读数据通道 读通道结构
AMBA AXI4协议 --AXI4-Lite功能 写响应通道 主 接 口 地址和控制 写数据 从 写地址通道 写数据通道 写通道结构 写响应
AMBA AXI4协议 --AXI4-Stream功能 于连接希望交换数据的元件。 接口用于将产生数据的一个主设备和接收数据的一 个从设备连接。 当很多元件和从元件连接时,也能使用这个协议。 协议支持使用具有相同设置共享总线的多个数据流,允 许建立一个互联结构,这个结构能够执行扩展、压缩和 路由操作。
AMBA AXI4协议 --AXI4-Stream功能 主 接 口 从 接 口 写数据通道 写数据 写数据 写数据 写数据 写响应通道
AMBA AXI4协议 --AXI4-Stream功能 信号 源 描述 ACLK 时钟源 全局时钟信号。所有信号在ACLK信号上升沿采样 ARESETn 复位源 全局复位信号,ARESETn低有效 TVALID 主 TVALID表明主设备正在驱动一个有效的传输。当确认TVALID和TREADY信号后,发生一个传输。 TREADY 从 TREADY表明在当前周期能接收一个传输 TDATA[(8n-1):0] TDATA是基本的有效载荷,用来提供跨越接口的数据。数据为整数个字节 TSTRB[(n-1):0] TSTRB为字节修饰符,用来描述TDATA相关字节内容作为一个数字字节或者一个位置字节被处理。 TKEEP[(n-1):0] TKEEP是字节修饰符,用来表明TDATA相关字节的内容是否作为数据流的一部 分被处理。 TKEEP字节修饰符未被确认的那些相关的字节是空字节,可以从数据流中去除。 TLAST TLAST表明了包的边界 TID[(i-1):0] TID是数据流的标识符,用来表明不同的数据流。 TDEST[(d-1):0] TDEST为数据流提供路由信息。 TUSER[(u-1):0] TUSER是用户定义的边带信息,这些信息能伴随数据流进行发送。
AMBA AXI4协议 --AXI4-Stream功能 例子:数字上变频器 NCO I 交织滤波器 结果 X Q 在DSP系统中的所有接口都是 “流”接口 没有地址的概念 空闲运行的数据 (在这种情况下) 在这种条件下, AXI4-Stream应该优化成非常简单的接口 Hardware Design
AMBA AXI4协议 --AXI4-Stream功能 在PCIe核内的”用户”接口可 以是”流”,但是数据被封装” 例子: PCI Express Streaming Interface User Logic / Bridge / etc PCIe, 以太网,任何可封装的,使用协议的流接口可能是电气特性兼容的,但是彼此之间不能进行互相操作 这些包包含不同的信息 典型的需要创建一些“桥”逻辑。 对于 AXI4-Stream, TRD的连接说明了这点 Hardware Design
MicroBlaze软核处理器原理 --MicroBlaze软核处理器结构(V8.0) 数据一侧总线接口 指令一侧总线接口 可选择的配置
MicroBlaze软核处理器原理 --MicroBlaze软核处理器结构 从图中可以看出该处理器有以下几个方面的特点: 采用指令和数据空间分离的哈佛结构; 32个32位通用寄存器; 32位的地址总线,可寻址空间4GB; 32位3个操作数的指令字,指令字有2种寻址模式; 单发(Single-issue,一个时钟周期发出一条指令)流水线结构;
MicroBlaze软核处理器原理 --MicroBlaze软核处理器结构 采用指令预测分支策略和预取缓冲区; 有独立的存储器管理单元对存储器空间进行管理; 提供了可以使用硬件实现的功能单元:桶形移位寄存器;乘法器;除法器;浮点处理单元; 提供了丰富的外设接口资源; 采用点对点的流连接结构和共享总线的结构;
MicroBlaze软核处理器原理 --MicroBlaze存储器结构 数据访问使用独立的地址空间。 每个一个地址空间都是32位范围(即,它们可以独 立访问4GB地址空间的指令和数据存储器)。 MicroBlaze所有的指令和数据接口,默认情况下是 32位,使用大段或小段,位反转格式(取决于 C_ENDIANNESS)。 MicroBlaze支持对数据存储器的字,半字和字节访 问。
MicroBlaze软核处理器原理 --MicroBlaze存储器结构 MicroBlaze处理器采用存储器映射方式访问I/O设 备,即存储器和I/O设备采用统一编址方式。处理器有 下面三种接口用于存储器访问: 本地存储器总线(LMB); 高级可扩展接口AXI4或处理器本地总线(PLB); 高级可扩展接口AXI4或Xilinx CacheLink(XCL);
MicroBlaze软核处理器原理 --MicroBlaze存储器结构 特别注意: 当时用AXI4时,C_ENDIANNESS自动设置为小段; 使用PLB时,自动设置为大段。 处理器指令和数据缓存可以配置成4/8字的缓存行 (缓存最小结构单位)。缓存行越大,可存放的代码就 越长,执行效率也就越高。但是当程序中使用很多的随 机访问模式时,会降低缓存的命中率,因此给定大小的 缓存行反而会降低性能。
MicroBlaze软核处理器原理 --MicroBlaze浮点处理单元FPU MicroBlaze处理器的浮点单元FPU基于IEEE754标准: 使用IEEE754单精度浮点格式,包括无穷大定义,不是一个数(NaN)和零; 支持加、减、乘、除、比较、转换和平方根指令; 实现最近舍入(round-to-nearest)模式; 产生状态位用于:下溢、上溢、除数为零和无效操作; IEEE754单精度格式 1 8 9 31 符号 指数 小数
MicroBlaze软核处理器原理 --MicroBlaze软核处理器流水线 当采用面积优化时,流水线分为三级,即:取指,译 码和执行,这样可以减少硬件开销。 取指 译码 执行 断流 指令1 指令2 指令3 周期1 周期7 图3.3 三级流水结构
MicroBlaze软核处理器原理 --MicroBlaze软核处理器流水线 当不使用面积优化时,流水线分为五级:取指、译 码、执行、访问存储器和回写,这样可以提高性能。下 图给出了五级流水结构。 指令1 指令2 指令3 周期1 周期9 取指 译码 执行 访存 回写 断流
MicroBlaze软核处理器原理 --MicroBlaze软核处理器寄存器 程序计数器(PC) 机器状态寄存器(MSR) 异常地址寄存器(EAR) 异常状态寄存器(ESR) 分支目标寄存器(BTR) 浮点状态寄存器(FSR) 异常数据寄存器(EDR) 进程标识寄存器 (PID) 区域保护寄存器(ZPR)
MicroBlaze软核处理器原理 --MicroBlaze软核处理器寄存器 转换旁视缓冲低位寄存器(TLBLO) 转换旁视缓冲高位寄存器(TLBHI) 转换旁视缓冲索引寄存器(TLBX) TLB查找索引寄存器(TLBSX) 处理器版本寄存器(PREV)
MicroBlaze软核处理器原理 --MicroBlaze处理器虚拟存储器管理 址访问4GB地址空间。处理器通过转换模式,以下面两种 方式理解该地址空间。 在实模式下,有效地址直接访问物理存储器; 在虚拟模式下,通过处理器的虚拟存储器管理硬件 (MMU)有效地址被转化物理地址。
MicroBlaze软核处理器原理 --MicroBlaze软核处理器MMU 1)将有效地址转化成物理地址; 2)在地址转换时,控制页面级访问; 3)在使用区域时,提供额外的虚拟模式保护控制; 4)对指令地址、数据地址转换和保护提供独立控制; 5) 支持8种页面尺寸:1KB,4KB,16KB,64KB, 256KB,1MB,4MB和16MB; 6)软件提供页面替换策略;
MicroBlaze软核处理器原理 --MicroBlaze处理器MMU实模式 当处理器取指或使用加载/存储指令访问数据时,处 理器查看存储器。程序使用处理器计算得到的32位的有 效地址查看存储器的位置。 当使用实模式时,物理地址和有效地址是一样的。
MicroBlaze软核处理器原理 --MicroBlaze处理器MMU虚模式 在虚拟模式下,将 有效地址转换成物理地 址。通过设置MSR寄存 器的VM比特来使能虚 拟模式下的存储器管理。
MicroBlaze软核处理器原理 --MicroBlaze处理器的事件及处理 异常。下面将描述和这些事件相关的处理流程。这些事件 按优先级从高到低依次为:复位、硬件异常、非屏蔽断点、 断点、中断、用户矢量(异常)。 下表记录了这些事件相关的存储器地址和保存返回地 址的寄存器。每个矢量分配了两个地址以便允许全地址范 围分支(要求 BRAI IMM指令)。地址范围0x28-0x4f是为 支持将来的Xilinx软件而保留的。
MicroBlaze软核处理器原理 --MicroBlaze处理器的事件及处理 向量地址 返回地址的寄存器 复位 0x00000000-0x00000004 - 用户矢量(异常) 0x00000008-0x0000000c Rx 中断 0x00000010-0x00000014 R14 断点:非屏蔽硬件 0x00000018-0x0000001c R16 断点:硬件 断点:软件 硬件异常 0x00000020-0x00000024 R17或BTR 保留 0x00000028-0x0000004f
MicroBlaze软核处理器原理 --MicroBlaze处理器的数据缓存 储器地址不得在LMB的地址范围内。 数据缓存有以下特点: 直接映射(1-way 关联); 完全写入; 用户可选择的缓存地址范围; 可配置的缓存和标记大小; CacheLink(XCL)接口上的缓存; 选择使用4/8线字缓存行; 使用MSR寄存器控制打开/关闭缓存;可选的; WDC指令使指令缓存行无效。
MicroBlaze软核处理器原理 --MicroBlaze处理器的指令缓存 LMB地址范围外的代码时,使用指令缓存可以提高性能。 指令缓存有以下特点: 直接映射(1-way 关联); 用户可选择的缓存地址范围; 可配置的缓存和标记大小; CacheLink(XCL)接口上的缓存; 选择使用4/8线字缓存行; 使用MSR寄存器控制打开/关闭缓存; 可选的WIC指令使指令缓存行无效。
MicroBlaze软核处理器原理 --MicroBlaze处理器的调试 MicroBlaze有的调试接口可以用来支持基于JTAG的 软件调试工具(BDM或后台调试模式调试器),比如 Xilinx Microprocessor Debug(XMD)工具。 调试接口用于和Xilinx Microprocessor Debug(XMD)连接,XMD和Xilinx的JTAG端口连接。 多个MicroBlaze的例子(例化)使用单个XDM连接 进行多处理器调试。
MicroBlaze软核处理器原理 --MicroBlaze处理器的调试 调试特点有以下几个方面: 可配置硬件断点数目、观察点和无限的软件断点; 外部处理器控制使能调试工具停止、复位和单步; 读写存储器,通用寄存器,特殊功能寄存器—EAR, EDR, ESR,BTR和PVR0-PVR11只读; 支持多处理器; 写指令和数据缓存。
MicroBlaze软核处理器接口 --MicroBlaze软核处理器接口概述 M_AXI_DP: 外设数据总线,AXI4-Lite或者AXI4接口; DPLB:数据接口,处理器本地总线; DLMB:数据接口,本地存储器总线(只有BRAM); M_AXI_IP: 外设指令接口,AXI4-Lite接口; IPLB:指令接口,处理器本地总线; ILMB:指令接口,本地存储器总线(只有BRAM); M0_AXI…M15_AXIS: AXI4_Stream接口,主直接连接接口; S0_AXIS…S15_AXIS: AXI4_Stream接口,从直接连接接口;
MicroBlaze软核处理器接口 --MicroBlaze软核处理器结构 MFSL0..15:FSL主接口; DWFSL0..15:FSL主直接连接接口; SFSL0..15:FSL从接口; DRFSL0..15:FSL从直接连接接口; DXCL:数据侧Xilinx CacheLink连接接口(FSL主/从对) M_AXI_DC:数据侧高速缓存AXI4接口 IXCL: 指令侧Xilinx CacheLink连接接口(FSL主/从对) M_AXI_IC: 指令侧高速缓存AXI4接口 Core:杂项信号:时钟,复位,调试和跟踪
MicroBlaze软核处理器接口 --PLB结构
MicroBlaze软核处理器接口 --PLB结构 总线上,所有从设备的输入被连接到共享总线上。 n个 PLB从设备“OR”上它们的输出来驱动共享总线,并 且将其“OR”结果返回到PLB仲裁器上。 PLB 仲裁器处理总线仲裁,并且在主设备和从设备之 间实现数据和控制信号的移动。
MicroBlaze软核处理器原理 --本地存储器总线(LMB) LMB提供了单周期访问用于MicroBlaze处理器的片 上双口块RAM的能力 LMB提供了简单同步协议用于高效的块RAM的传输 DLMB: 数据接口,本地存储器总线 (只有BRAM) ILMB:指令接口,本地存储器总线 (只有BRAM)
MicroBlaze软核处理器原理 --简单快速链路(FSL) 单向的点对点的基于FIFO的通信 专用的(非共享的)和无须仲裁的结构 专用的 MicroBlaze C 和汇编指令用于访问FSL 高速,在主机侧两个时钟完成传输 从XPS的Hardware → Create or Import Peripheral Wizard菜单下来使用FSL接口 FSL_M_Clk FSL_M_Data [0:31] FSL_M_Control FSL_M_Write FSL_M_Full FSL_S_Clk FSL_S_Data [0:31] FSL_S_Control FSL_S_Read FSL_S_Exists FIFO 32位数据 FIFO Depth
MicroBlaze软核处理器原理 --简单快速链路(FSL)
MicroBlaze软核处理器原理 --CacheLink接口 对外部存储器的访问来说,XCL接口是高性能的解 决方案。XCL通过使用集成的FSL缓冲区直接和存储 器控制器连接,例如MPMC。这种方法有最低的延迟 和最小数目的例化。下图给出了使用集成FSL缓冲区 的XCL连接原理图。 当缓存使能时,XCL接口可以使用。可以在指令 侧或数据侧使用一个XCL缓存。
MicroBlaze软核处理器原理 --MicroBlaze软核典型P-SoC结构 I-Cache BRAM PLB的其它短是必须的,当有低速设备操作在低总线速度 本地存储器 总线 MicroBlaze 32位 RISC核 BRAM 可配置大小 D-Cache BRAM 需要仲裁器,当一个外设可作为主设备,想要对其它外设进行写操作 快速简单链路 FSL PLB PLB 仲裁器 仲裁器 总线桥 处理器本地总线PLB 处理器本地总线PLB 0,1….15 定制功能 定制功能 10/100 E-Net Memory Controller UART GPIO 片上外设 缓存连接 SDRAM 片外 存储器 FLASH/SRAM
MicroBlaze软核处理器原理 -- MicroBlaze软核典型P-SoC结构 AXI4 AXI DDR2/3 存储器控制器 MicroBlaze AXI 互连块 AXI4 AXI4 存储器 MDM MBDEBUG AXI4 AXI4 BRAM AXI4 AXI – PLB46 桥 BRAM DMA D-LMB AXI4-Lite TEMAC Ethernet AXI4-Stream I-LMB AXI 互连块 AXI4-Lite GPIO Switches AXI4 AXI4-Lite UARTLITE RS232 AXI4-Lite Timer AXI4-Lite 中断控制器 AXI4-Lite Flash接口 To Flash AXI4 support is available starting v8.0 Arrow direction indicates AXI Master/Slave relationship
Xilinx片上系统开发平台结构 --EDK工具包 Xilinx的EDK工具主要包含:Xilinx Platfrom Studio (XPS)人机界面、嵌入式系统工具套件、嵌入式处理IP 核,比如处理器和外设、 Platform Studio SDK(Software Development Kit,SDK)。 SDK基于Eclipse开放源码框架,设计人员可以选择使 用SDK开发自己的嵌入式软件应用程序(EDK13.1后必须使 用SDK开发应用程序。 体会EDK13.1 “生态设计,软件和硬件协同设计”
Xilinx片上系统开发平台结构 --EDK开发流程 程。下图给出了基本嵌入式设计流程。
Xilinx片上系统开发平台结构 EDK开发流程 在SDK内完成 仿真 生成器 硬件平台生成 库生成 嵌入式软件开发 ISE Tools IP 库或者用户定制 IP MSS LibGen .a 编译器 (GCC) .o, .a 链接器(GCC) ELF MHS PlatGen Drivers, MDD MPD, PAO Pcore HDL System and Wrapper VHD system.bmm Synthesis (XST) NGC NGDBuild UCF NGD MAP, PAR NCD BitGen system_bd.bmm BITINIT download.bit iMPACT system.bit SimGen Behavioral VHD Model Structural VHD Model Timing VHD Model Simulation IP Models ISE Models CompXLib 应用程序 .c, .h, .s download.cmd EDK SW Libraries Libraries, OS, MLD XMD, GDB FPGA JTAG Cable 在SDK内完成 EDK开发流程
Xilinx片上系统开发平台结构 --硬件平台的建立 Xilinx的FPGA技术允许设计者在处理器子系统中定制 硬件逻辑。这种定制不可能使用标准的现成的微处理器或 控制器芯片。“硬件平台”是指设计人员根据应用的需要 而使用Xilinx的技术建立的灵活地、嵌入式处理子系统。 硬件平台是由一个或多个处理器或外设连接到处理器 总线构成的。 EDK通过微处理器硬件规范(Microprocessor Hardware Specification,MHS)文件记录硬件平台信息。
Xilinx片上系统开发平台结构 --软件平台的建立 软件平台是软件驱动和用于建立应用程序的操作系统 (可选)组成的。所建立的软件映像文件只包含用户所使 用到的一部分Xilinx的库。 EDK通过微处理器软件规范(Microprocessor Software Spectifcation,MSS)记录软件平台信息。设计人员可以在 软件平台运行多个应用程序。
Xilinx片上系统开发平台结构 --使用仿真的硬件平台验证 验证硬件平台的正确功能,设计人员可以建立一个仿 真模型,并且在HDL仿真器上运行。当仿真系统时,处理 器运行可执行文件。 设计人员可以选择建立行为、结构时序仿真模型。
Xilinx片上系统开发平台结构 --使用调试的软件验证 调试嵌入式软件的基本技术是加载设计到所支持的开 发板和使用调试工具去调试处理器。 作为可选择的方式,设计人员可以使用指令集仿真器 或简化系统仿真器模型运行在主机上来调试设计代码。 设计人员可以通过概要分析代码的执行来估计系统性 能。
Xilinx片上系统开发平台结构 --芯片配置 一旦软件和硬件平台建立完成,设计人员可以为FPGA 建立一个的配置比特文件。 对于原型设计,当连接主机和芯片时,设计者可以在 下载比特流时,将希望运行在嵌入式平台上的软件同时下 载。 对于产品,设计员将配置比特流和软件保存在和FPGA 连接的非易失性存储器中。
Xilinx片上系统开发平台结构 --EDK功能 设计环境 Xilinx Platform Studio(XPS) 集成设计环境GUI,在这个集成环境中可以创建完整的嵌入式设计。 Xilinx Software Development Kit(SDK) 集成设计环境GUI,是对XPS的补充,用来帮助设计人员开发软件应用功能(从13.1开始,专用于软件应用的开发)。 EDK命令行或“非Windows”模式 允许设计人员运行嵌入式设计流程或从命令行改变工具选项。
Xilinx片上系统开发平台结构 --EDK功能 硬件开发 The Base System Builder(BSB)向导 通过使用支持的开发板或通用的基本功能,允许设计人员快速地建立一个嵌入式设计。Xilinx推荐使用BSB建立最初的项目创建。 The Create and Import IP Wizard 辅助设计人员添加自己的外设到设计中。建立相关的目录或数据文件,保证外设能被EDK工具识别。 Configure Coprocessor Wizard 帮助设计人员添加协处理器到CPU。 Platform Generator(Platgen) 以HDL或实现的网表文件在片上构造可编程系统
Xilinx片上系统开发平台结构 --EDK功能 软件开发 Library Generator(Libgen) 构建一个软件平台,该软件平台由定制的软件库、驱动程序和OS构成。 GNU Compiler Tools(GCC) 基于库产生器建立的平台,建立软件应用程序。
Xilinx片上系统开发平台结构 --EDK功能 验证 Xilinx Microprocessor Debugger(XMD) 打开shell用于软件下载和调试,也提供通道用于GNU调试器访问设备。 GNU Debugger(GDB) 调试软件的GUI,基于仿真模型或目标设备。 Simulation Model Generator(Simgen) 产生硬件仿真模型和编译脚本文件用于对完整系统的仿真。 Simulation Library Compiler(CompEDKLib) 在开始对设计进行仿真时,为目标仿真器编译EDK仿真库。 Bus Functional Model Compiler(BFM) 通过建立一个总线环境的模型去代替真实的嵌入式系统来帮助简化定制外设的验证。
Xilinx片上系统开发平台结构 --EDK功能 设备配置 Bitstream Initializer(Bitinit) 更新FPGA的配置比特流,用可执行的软件初始 化片上指令存储器 System ACE File Generator(GenACE) 基于FPGA的配置比特流和存储在非易失性存储 器的可执行软件,产生一个Xilinx系统ACE配置 文件 Flash Memory Programmer 允许设计人员使用目标处理器去编程板上的通 用Flash(CFI)接口-兼容的并行flash
Xilinx片上系统开发平台结构 --EDK功能 杂项类 Format Revision(revup)Tool and Version Management Wizard Revup工具更新设计文件(例如MHS)到当 前的版本。版本管理向导帮助将先前EDK建 立的IP和驱动更新到当前的版本。 LibXil Memory File System Generator (LibXil MFS) 在主机上建立一个MFS存储器镜像,该镜 像并被下载到嵌入式系统存储器。 Platform Specification Utility 自动产生微处理器外设定义MPD数据文件 ,该文件要求创建EDK兼容的制定外设。
Xilinx片上系统开发平台结构 -- Xilinx Platform Studio(XPS) XPS提供了集成环境为基于MicroBlaze和PowerPC处 理器的嵌入式处理器系统创建软件和硬件规范流程。 XPS也提供编辑器和项目管理接口用来创建和编辑源 代码。 XPS提供工具流程配置选项的定制和提供图形化的系 统编辑器用来连接处理器、外设和总线。 XPS可以在Windows、Solaris和Linux平台下使用。 从XPS中,设计人员可以运行所有用于处理硬件和软 件的嵌入式系统工具。在XPS环境下可以进行系统验证。
Xilinx片上系统开发平台结构 --Xilinx Platform Studio(XPS) 能够添加核,编辑核参数和进行总线和信号连接,产生MHS文件; 能够产生和修改MSS文件; 支持表内的所有工具; 能够产生和观察系统块图和设计报告; 提供工程管理支持; 过程和工具流程依赖管理; 输出MHS文件到SDK工具中;
Xilinx片上系统开发平台结构 --Xilinx Software Development Kit(SDK) SDK为应用软件提供开发环境。SDK基于Eclipse开放源 码标准。SDK主要有以下特点: 功能丰富的C/C++编辑器和编译环境; 导入基于XPS生成的硬件平台定义; 提供项目管理; 支持基于单个处理器或者多个处理器系统的软件应用程序的开发; 支持以团队环境的形式开发软件应用程序; 为第三方的操作系统创建和配置板级支持包BSP;
Xilinx片上系统开发平台结构 --Xilinx Software Development Kit(SDK) 提供现成的简单软件工程来测试硬件和软件功能; 通过GUI接口为软件应用程序、编程FPGA芯片和编程并行 flash存储器产生链接脚本; 应用程序的建立配置和自动的MAKE文件生成; 错误浏览; 为无缝调试和概要分析目标提供了好的集成环境;
Xilinx片上系统开发平台结构 --Base System Builder(BSB)Wizard 这个系统设计人员可以定制完成嵌入式设计。为了高效率 的建立工程,Xilinx推荐使用BSB向导。
Xilinx片上系统开发平台结构 --Base System Builder(BSB)Wizard 配置基本元素,比如:处理器类型、调试接口、缓存配置、 存储器类型和大小、外设等。 对于BSB不支持的目标系统,设计人员可以选择定制 板选项。使用这个选项时,必须指定未来板子的硬件,并 且要给出用户约束文件UCF。 如果选择的是支持的目标板,BSB向导自动加入UCF 文件。当退出BSB时,BSB所建立的MHS和MSS文件自动 加入到XPS工程中,设计员能在XPS中进行更进一步设计。
Xilinx片上系统开发平台结构 --Platform Generator(PlatGen) 能在目标FPGA芯片上实现的HDL网表。 嵌入式系统硬件平台典型的由一个或多个处理器和不 同的外设和存储器模块组成,这些模块通过处理器总线连 接。每个外设的IP核有很多的参数,通过调整这些参数来 定制行为。这些参数也用来为这些存储器和外设进行地址 映射。由于EDK提供可选择的特性,FPGA只需要实现应 用程序所要求的功能子集。
Xilinx片上系统开发平台结构 --Platform Generator(PlatGen) 硬件平台保存了MHS文件。MHS文件是表示所设计 的嵌入式系统的硬件元件的最主要文件。MHS文件以 ASCII码形式存在。 Platgen读取MHS文件作为设计输入。Platform也从EDK 库和用户IP库中读取处理器核硬件描述文件MPD,PAO。 Platgen为嵌入式系统产生顶层HDL设计文件,该文件 包含所有参数化了的IP核。
Xilinx片上系统开发平台结构 --Platform Generator(PlatGen) 在这个过程中,将MHS中所有高层总线连接变成连接处 理器、外设和片上存储器的真实信号。它也调用XST编译器 综合每个例化的IP核(Platgen产生的系统级网表也用来作为 FPGA实现过程的一部分)。 除此之外,Platgen也产生BMM(BRAM Memory Map) 文件,该文件包含所用到的片上BRAM的地址。
Xilinx片上系统开发平台结构 --建立和导入IP向导 该向导帮助设计人员建立定制的外设并且将其导入 相应的XPS工程中。 在创建模式下,创建和输入外设向导建立很多文件, 这些文件的一些是模板文件帮助设计人员实现外设,而不 需要详细的知道总线协议,命名规则和特殊接口文件的格 式。通过参考模板中的例子和使用不同的辅助设计支持文 件,设计人员可以很快的进行逻辑定制。
Xilinx片上系统开发平台结构 --建立和导入IP向导 当创建或输入一个外设时,自动生成MPD (Microprocessor Peripheral Defination)文件和PAO (Peripheral Analyze Order)文件: MPD文件定义了外设的接口; PAO文件通知其它工具(Platgen,Simgen),对外设需要编译哪个HDL文件和以什么样的顺序编译。
Xilinx片上系统开发平台结构 --配置协处理器向导 如果设计中包含MicroBlaze和PowerPC处理器时,可 以使用该向导。 该向导添加和连接协处理器到CPU。协处理器是一个 硬件模块用来实现用户在FPGA内定义的功能和通过FSL 接口与处理器连接。 FSL通道是一个专用的32位,点对点的通信接口。
Xilinx片上系统开发平台结构 --库产生器(Libgen) 系统和中断句柄,称这些为软件平台。 嵌入式软件平台为每个处理器定义了系统内外设的驱 动(板级支持包),可选择的库,标准的输入/输出设备, 中断句柄例程和其它相关的软件特征。 基于这个软件平台,设计人员更进一步的定义了软件 的应用程序。
Xilinx片上系统开发平台结构 --库产生器(Libgen) 系统和中断句柄,以及创建板级支持包BSP。嵌入式软件 平台为每个处理器定义了系统内外设的驱动(板级支持包 ),可选择的库,标准的输入/输出设备,中断句柄例程和 其它相关的软件特征。 SDK工程进一步定义了运行在每个处理器上的软件, 这些软件基于BSP运行。
Xilinx片上系统开发平台结构 --库产生器(Libgen) 来自于EDK安装的库和驱动,以及设计人员提供的定 制库和驱动,SDK将用户程序,包括库和驱动程序编译 成处理器硬件平台上可执行可链接的文件(Executable Linked Format,ELF)。 Libgen读取选择的EDK库和不同的处理器核软件描述 文件(Microprocessor Driver Defination, MDD)和驱动代 码。
Xilinx片上系统开发平台结构 --GNU编译工具 对于MicroBlaze处理器的应用,XPS运行mb-gcc编译器; 对于PowerPC处理器应用,XPS运行powerpc-eabi-gcc编译器。 编译器能读取C代码,头文件和汇编代码。链接器将 编译的程序和选择的库连接在一起产生ELF可执行文件。 连接器也读取连接脚本(默认产生或用户产生)。
Xilinx片上系统开发平台结构 --Xilinx Microprocessor Debugger(XMD) 设计人员可以使用指令集仿真器或者虚拟平台调试软件程序。XMD读ELF文件。 对于调试物理的FPGA,XMD和FPGA通讯使用和FPGA下载相同的电缆。
Xilinx片上系统开发平台结构 --GNU调试器(GDB) 发周期验证MicroBlaze和PowerPC系统提供了统一的调试和 验证手段。 GDB使用了XMD作为最基本的引擎和处理器目标通讯。
Xilinx片上系统开发平台结构 --仿真模型产生器Simgen 为产生行为模型,Simgen使用MHS文件作为基本的输 入。为产生结构或时序模型,Simgen使用综合后或布局布 线后的设计数据库作为基本的输入。 Simgen为每个处理器也读取嵌入式应用ELF文件去初 始化片上存储器;这样处理器在仿真阶段就可以执行这些 软件代码。
Xilinx片上系统开发平台结构 --仿真库编译器(CompEDKLib) 译EDK基于HDL的仿真库。这个工具可以运行在GUI和批 处理模式下。 在GUI模式下,允许设计人员使用CompXLib编译Xilinx 的库和EDK中可以使用的库。
Xilinx片上系统开发平台结构 --比特流初始化工具(Bitinit) 比特流初始化工具使用软件信息来初始化与处理器连 接的片上BRAM存储器。 该工具读取ISE产生的比特流文件(system.bit),产 生一个新输出比特流文件(download.bit),这个比特流 文件包含ELF文件。 这个工具使用BMM文件,该文件由Platgen产生,通 过使用每个BRAM块的物理的布局信息由ISE工具更新。 在内部,比特流初始化工具Bitinit使用在ISE中提供的 Data2MEM工具来更新比特流文件。
Xilinx片上系统开发平台结构 --系统ACE生成器(Gen ACE) 从FPGA比特流中产生 Xilinx System ACE配置文件和 ELF/数据文件。 产生的ACE文件用于配置FPGA,初始化BRAM,使 用有效的程序或数据初始化外部存储器和启动处理器。 EDK提供了工具命令语言(Tool Command Language,Tcl)脚本,genace.tcl。该脚本使用XMD命令 产生ACE文件。 使用MDM系统可以为PowerPC或MicroBlaze产生ACE 文件。
Xilinx片上系统开发平台结构 --Flash编程 件和布局。
Xilinx片上系统开发平台结构 --格式版本工具(revup) 格式版本工具revup更新已经存的EDK工程到当前的 版本。revup工具只执行格式的变化,对设计不进行更 新。在应用revup前,备份MHS,MSS,XMP等文件。 当使用新版本的EDK工具打开老版本的工程时,就会 显示版本管理向导。 当执行revup后,调用版本管理向导。向导提供有关设 计中使用的Xilinx处理器IP核的变化信息。如果新版本的 IP核可以使用,向导将升级到新的版本。
Xilinx片上系统开发平台结构 --LibXil文件系统生成器( LibXil MFS ) 以文件句柄的形式提供管理程序存储器的能力。设计 人员可以建立目录,并在目录中存放不同文件。文件系统 能通过使用高级C语言进行函数调用来访问。
Xilinx片上系统开发平台结构 --平台规范工具 能够自动产生建立IP核的MPD文件。通过建立和导入 外设向导的帮助,能够使用这个工具提供的功能。
操作系统及板级支持包 --Xilinx片上处理器支持的OS XMK Linux Vxworks 其它uc/osII等 支持嵌入式的软核和硬核处理器 只支持嵌入式硬核处理器
操作系统及板级支持包 --Xilinx的XMK Xilinx的微核(Xilinx Microkernel,XMK)包含三 个不同的软件实体,通过它用户应用程序可以与标准C 和Math库,LibXil库,Xilkernel或独立运行的操作系统 相接。
操作系统及板级支持包 --Xilinx片上处理器支持的OS 标准C库由libc组成,该库包含了标准C的函数,比 如,stdio,stdlib,string例程。数学库是一个扩展libm 库,提供了标准的数学函数。 LibXil库由下面构成: LibXil Driver-Xilinx的设备驱动程序; LibXil MFS-Xilinx存储文件系统(Memory File System,MFS); LibXil Flash-并行Flash编程库; LibXil lsf-串行Flash编程库。
操作系统及板级支持包 --Xilinx片上处理器支持的OS Xilinx的独立板级支持包(Board Support Package, BSP)和Xilkernel是XMK内提供的两个操作系统选择,能被包含在所设计的应用软件平台中。 用户应用程序 Xilkernel XilFlash Xil MFS Xil lsf 独立BSP Xilinx驱动 C,Math和GCC库
操作系统及板级支持包 --板级支持包BSP BSP是单线程库。BSP提供对硬件的小的接口。向应 用程序提供所要求的最少的功能。 BSP提供的一些典型的函数包括: 设置中断 系统异常 配置缓存 其它硬件指定的功能。