北京中教仪装备技术有限公司

Download Report

Transcript 北京中教仪装备技术有限公司

版权所有,禁止未经授权的商业使用行为
FPGA System Design Primer
高教社&XILINX SOC竞赛培训系列课程
何宾
Tel:13911127536
何宾
Tel:
email:[email protected]
email:
高等教育出版社
所有培训资料均可从网站
http://bucteda.eefocus.com下载
北京中教仪装备技术有限公司
北京中教仪装备技术有
限公司
基于AXI4的可编程SoC系统设计
培训内容
Xilinx片上可编程系统设计导论
AXI4规范
MicroBlaze处理器原理
EDK13.1工具概述
操作系统(OS)及板级支持包(BSP)概述
基于MicroBlaze和AXI4的可编程SoC系统实现
北京中教仪装备技术有限公司
片上可编程系统设计导论
--基本概念
基于现场可编程门阵列(Field Programmable Gate
Array, FPGA)的可编程SoC系统(Programmable-Systemon-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核类型 总线
语言
c/c++,
汇编
c/c++,
汇编
ARM Cortex-A9 MP
(双核)
PowerPC
64位
硬核
AXI
32位
硬核
PLB
MicroBlaze
32位
软核
PicoBlaze
8位
软核
PLB/
AXI
----
c/c++,
汇编
汇编
开发环境
(Xilinx提供)
XPS&SDK
XPS&SDK
XPS&SDK
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语言进行功能描述为中心。
形成了以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设计流程
VHDL or Verilog
C 代码
标准的嵌入式软件
开发流程
代码入口
链接器
?
2
加载软件到Flash
HDL 入口
系统网表
板级支持包
Include the BSP
C/C++
交叉编译器
and Compile the
Software Image
标准的FPGA硬件
开发流程
嵌入式开发工具
Instantiate the
仿真/综合
‘System
Netlist’
and Implement
the
FPGA
实现
Data2MEM
Compiled
ELF
编译ELF
3
Compiled BIT
编译比特流
下载相关镜像到FPGA
1
?
下载比特流到FPGA
Chipscope
调试器
RTOS, BSP
SDK
北京中教仪装备技术有限公司
XPS
片上可编程系统设计导论
--设计流程
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芯片(未来)-吸引全球目光
北京中教仪装备技术有限公司
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
APB
AHB
AXI
旧的
性能
新的
北京中教仪装备技术有限公司
AMBA AXI4协议
--概述
AMBA
APB
AHB
AXI
AXI4
AXI4Stream
AMBA 3.0
(2003)
AXI4Lite
AMBA 4.0
(2010)
“灵活性”: ARM / Xilinx 合作
北京中教仪装备技术有限公司
AMBA AXI4协议
--概述
最新一代的AMBA接口的目标是:
适合于高带宽和低延迟设计;
在不使用复杂的桥接方式下,允许更高频率的操作;
满足普遍情况下的元件接口要求;
适用于高初始访问延迟的存储器控制器;
为互联结构的实现提供了灵活性;
与已有的AHB和APB接口向下兼容。
北京中教仪装备技术有限公司
AMBA AXI4协议
--概述
AXI协议的关键特性表现在以下几个方面:
独立的地址/控制和数据阶段;
使用字节选通,支持非对齐的数据传输;
只有开始地址的猝发交易;
独立的读和写数据通道,可以使能低成本的直接存储器访问
DMA传输;
能发出多个未解决的地址;
完成无序交易;
容易添加寄存器slice,满足时序收敛要求;
北京中教仪装备技术有限公司
AMBA AXI4协议
--概述
AMBA
AXI4
接口
AXI
ATB
AMBA 3.0
AXI4Stream
AXI4Lite
AMBA 4.0
(2003)
(2010)
特性
类似于
AXI4
传统的地址/猝发数据
PLBv46, PCI
AXI4-Stream
只有数据, 猝发
Local Link / DSP 接口 / FIFO / FSL
AXI4-Lite
传统的地址/单数据
PLBv46-single, OPB
北京中教仪装备技术有限公司
AMBA AXI4协议
--概述
PLBv46
处理器r
“互连”
“共享访问” 总线
规范的一部分
PLB
AXI 从设备
AXI 主设备
AXI 定义点对点,
主/从 接口
外设
AXI
AXI
AXI
AXI
AXI
AXI
PLB
AXI
AXI
PLB
AXI 互连 IP
•Xilinx 建立自己的
•很多公司构建和买
“AXI 互连 IP”
PLB
AXI
箭头表示主/从关系,而不表示数据流的方向
主
仲裁器
AXI
从
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协议
--写地址通道信号及其信号定义
信号名
源
描述
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]
从
BRESP[1:0]
从
描述
响应ID. 写响应识别标记。BID值必须匹配写交易的AWID值。
写响应。这个信号表示写交易的状态。可允许的相应为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协议
-互连模型(转换模式)
连接一个主设备和一个从设备时,AXI互联能执行不
同的转换和流水线功能。这些功能主要包括:数据宽度转
换;时钟速率转化;AXI4-Lite从适应;AXI-3从适应;流
水线(例如一个寄存器Slice或者数据通道FIFO)。在只转
换模式下,AXI互联不包含仲裁、解码或布线逻辑,但是
可能产生延迟。
北京中教仪装备技术有限公司
AMBA AXI4协议
-互连模型(转换模式)
互联
主设备0
从设备0
转换/流水
图2.8转换模式
北京中教仪装备技术有限公司
AMBA AXI4协议
-互连模型(N-1模式)
AXI互联的一个普通的退化配置模式是,多个主设备
访问一个从设备。
典型的情况是,一个存储器控制器,很显然需要仲
裁逻辑。这种情况下,AXI互联不需要地址译码逻辑(除
非需要确认地址的有效范围)。在这个配置中,也执行
数据宽度和时钟速率的转换。
北京中教仪装备技术有限公司
AMBA AXI4协议
-互连模型(N-1模式)
互联
主设备0
主设备1
从设备0
仲裁器
图2.9 N-1互联模式
北京中教仪装备技术有限公司
AMBA AXI4协议
-互连模型(1-N模式)
另一个AXI互联退化的结构是,一个主设备,典型
的处理器,访问多个存储器映射的从外设。在这种模
式下,AXI互联不执行仲裁(在地址和写数据通道)。
互联
从设备0
主设备0
解码/布线
从设备1
图2.10 1-N互联模式
北京中教仪装备技术有限公司
AMBA AXI4协议
-互连模型(N-M模式)
AXI互联提供了一种共享地址多数据流(SAMD)
拓扑结构,这种结构中包含稀疏的数互联写交易仲裁
器.
互联
互联
从设备0
主设备0
AW
写交易仲裁器
AW
AR
AR
路由器
从设备1
主设备1
AW
AW
AR
AR
路由器
主设备2
从设备2
AW
AW
AR
AR
读交易仲裁器
共享写和读地址仲裁结构
北京中教仪装备技术有限公司
AMBA AXI4协议
-互连模型(N-M模式)
互联
主设备0
从设备0
写数据互联开关
W
W
R
R
从设备1
主设备1
W
W
R
R
从设备2
主设备2
W
W
R
读数据互联开关
R
图2.12 稀疏互联写和读数据通道
北京中教仪装备技术有限公司
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功能
AXI4-Stream协议作为一个标准的接口,这个接口用
于连接希望交换数据的元件。
接口用于将产生数据的一个主设备和接收数据的一
个从设备连接。
当很多元件和从元件连接时,也能使用这个协议。
协议支持使用具有相同设置共享总线的多个数据流,允
许建立一个互联结构,这个结构能够执行扩展、压缩和
路由操作。
北京中教仪装备技术有限公司
AMBA AXI4协议
--AXI4-Stream功能
主
接
口
写数据通道
写数据 写数据 写数据 写数据
从
接
口
写响应通道
北京中教仪装备技术有限公司
AMBA AXI4协议
--AXI4-Stream功能
信号
源
描述
ACLK
时钟源
全局时钟信号。所有信号在ACLK信号上升沿采样
ARESETn
复位源
全局复位信号,ARESETn低有效
TVALID
主
TVALID表明主设备正在驱动一个有效的传输。当确认TVALID和TREADY信号后
,发生一个传输。
TREADY
从
TREADY表明在当前周期能接收一个传输
TDATA[(8n1):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协议
在PCIe核内的”用户”接口可
以是”流”,但是数据被封装”
User Logic /
Bridge / etc
例子: PCI Express
Streaming Interface
--AXI4-Stream功能
– 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存储器结构
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单精度格式
0
符号
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处理器虚拟存储器管理
运行在MicroBlaze处理器的应用程序要求使用有效地
址访问4GB地址空间。处理器通过转换模式,以下面两种
方式理解该地址空间。
在实模式下,有效地址直接访问物理存储器;
在虚拟模式下,通过处理器的虚拟存储器管理硬件
(MMU)有效地址被转化物理地址。
北京中教仪装备技术有限公司
MicroBlaze软核处理器原理
--MicroBlaze软核处理器MMU
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处理器的事件及处理
MicroBlaze支持复位、中断、用户异常、断点和硬件
异常。下面将描述和这些事件相关的处理流程。这些事件
按优先级从高到低依次为:复位、硬件异常、非屏蔽断点、
断点、中断、用户矢量(异常)。
下表记录了这些事件相关的存储器地址和保存返回地
址的寄存器。每个矢量分配了两个地址以便允许全地址范
围分支(要求 BRAI IMM指令)。地址范围0x28-0x4f是为
支持将来的Xilinx软件而保留的。
北京中教仪装备技术有限公司
MicroBlaze软核处理器原理
--MicroBlaze处理器的事件及处理
事件
复位
用户矢量(异常)
中断
断点:非屏蔽硬件
断点:硬件
断点:软件
硬件异常
保留
向量地址
0x00000000-0x00000004
0x00000008-0x0000000c
0x00000010-0x00000014
0x00000018-0x0000001c
返回地址的寄存器
Rx
R14
R16
0x00000020-0x00000024
0x00000028-0x0000004f
R17或BTR
-
北京中教仪装备技术有限公司
MicroBlaze软核处理器原理
--MicroBlaze处理器的数据缓存
MicroBlaze处理器有可选的数据缓存提高性能。缓存的存
储器地址不得在LMB的地址范围内。
数据缓存有以下特点:
直接映射(1-way 关联);
 完全写入;
 用户可选择的缓存地址范围;
 可配置的缓存和标记大小;
 CacheLink(XCL)接口上的缓存;
 选择使用4/8线字缓存行;
 使用MSR寄存器控制打开/关闭缓存;可选的;
 WDC指令使指令缓存行无效。
北京中教仪装备技术有限公司
MicroBlaze软核处理器原理
--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软核处理器接口概述
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结构
1-16个PLB主设备,每个主设备将它们所有的信号连接
到PLB仲裁器上。
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_S_Clk
FSL_M_Data [0:31]
FSL_S_Data [0:31]
FSL_M_Control
FIFO
FSL_M_Write
FSL_M_Full
32位数据
•
•
•
•
•
FSL_S_Control
FSL_S_Read
FSL_S_Exists
FIFO Depth
北京中教仪装备技术有限公司
MicroBlaze软核处理器原理
--简单快速链路(FSL)
北京中教仪装备技术有限公司
MicroBlaze软核处理器原理
--CacheLink接口
对外部存储器的访问来说,XCL接口是高性能的解
决方案。XCL通过使用集成的FSL缓冲区直接和存储
器控制器连接,例如MPMC。这种方法有最低的延迟
和最小数目的例化。下图给出了使用集成FSL缓冲区
的XCL连接原理图。
当缓存使能时,XCL接口可以使用。可以在指令
侧或数据侧使用一个XCL缓存。
北京中教仪装备技术有限公司
MicroBlaze软核处理器原理
--MicroBlaze软核典型P-SoC结构
MicroBlaze
总线
可配置大小
32位 RISC核
D-Cache
BRAM
仲裁器
快速简单链路
FSL
0,1….15
定制功能
PLB的其它短是必须的,当有低速设备操作在低
总线速度
需要仲裁器,当一个外设可作为主设备,想要对
其它外设进行写操作
PLB
PLB
处理器本地总线PLB
总线桥
处理器本地总线PLB
仲裁器
本地存储器
BRAM
I-Cache
BRAM
定制功能
缓存连接
SDRAM
10/100
E-Net
片外
存储器
Memory
Controller
UART
GPIO
片上外设
FLASH/SRAM
北京中教仪装备技术有限公司
MicroBlaze软核处理器原理
-- MicroBlaze软核典型P-SoC结构
AXI4
AXI
互连块
MBDEBUG
MDM
AXI4
BRAM
存储器
AXI4
BRAM
AXI4
D-LMB
AXI DDR2/3
存储器控制器
AXI4
AXI4
AXI – PLB46
桥
MicroBlaze
AXI4-Lite
DMA
AXI4-Stream
TEMAC
Ethernet
I-LMB
AXI4-Lite
AXI4
AXI4-Lite
AXI
互连块
AXI4 support is available starting v8.0
AXI4-Lite
GPIO
Switches
UARTLITE
RS232
Timer
AXI4-Lite
中断控制器
AXI4-Lite
Flash接口
To Flash
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开发流程
EDK中所提供的工具用来完成嵌入式设计的整个过
程。下图给出了基本嵌入式设计流程。
北京中教仪装备技术有限公司
Xilinx片上系统开发平台结构
在SDK内完成
库生成
MHS
硬件平台生成
CompXLib
MSS
IP Models
ISE Models
IP 库或者用户定制 IP
EDK SW
Libraries
LibGen
Drivers,
MDD
MPD, PAO
.a
Libraries,
OS, MLD
Pcore
HDL
PlatGen
SimGen
System and
Wrapper VHD
system.bmm
Behavioral
VHD Model
Synthesis (XST)
嵌入式软件开发
NGC
应用程序
.c, .h, .s
UCF
NGDBuild
NGD
编译器 (GCC)
MAP, PAR
SimGen
ISE
Tools
Structural
VHD Model
.o, .a
NCD
链接器(GCC)
system_bd.bmm
BitGen
SimGen
BITINIT
ELF
system.bit
download.bit
XMD, GDB
Timing
VHD Model
Simulation
download.cmd
iMPACT
仿真
生成器
JTAG Cable
FPGA
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)
GNU Debugger(GDB)
Simulation Model
Generator(Simgen)
Simulation Library
Compiler(CompEDKLib)
Bus Functional Model
Compiler(BFM)
打开shell用于软件下载和调试,也提供通道用
于GNU调试器访问设备。
调试软件的GUI,基于仿真模型或目标设备。
产生硬件仿真模型和编译脚本文件用于对完
整系统的仿真。
在开始对设计进行仿真时,为目标仿真器编
译EDK仿真库。
通过建立一个总线环境的模型去代替真实的
嵌入式系统来帮助简化定制外设的验证。
北京中教仪装备技术有限公司
Xilinx片上系统开发平台结构
--EDK功能
设备配置
Bitstream Initializer(Bitinit)更新FPGA的配置比特流,用可执行的软件初始
化片上指令存储器
System ACE File
基于FPGA的配置比特流和存储在非易失性存储
Generator(GenACE) 器的可执行软件,产生一个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
在主机上建立一个MFS存储器镜像,该镜
Generator (LibXil 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)
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
BSB向导帮助设计人员快速建立一个嵌入式系统工
程。对于更复杂的工程,BSB向导提供基本的系统,通过
这个系统设计人员可以定制完成嵌入式设计。为了高效率
的建立工程,Xilinx推荐使用BSB向导。
北京中教仪装备技术有限公司
Xilinx片上系统开发平台结构
--Base System Builder(BSB)Wizard
基于设计人员选择的板子,设计人员通过BSB选择并
配置基本元素,比如:处理器类型、调试接口、缓存配置、
存储器类型和大小、外设等。
对于BSB不支持的目标系统,设计人员可以选择定制
板选项。使用这个选项时,必须指定未来板子的硬件,并
且要给出用户约束文件UCF。
如果选择的是支持的目标板,BSB向导自动加入UCF
文件。当退出BSB时,BSB所建立的MHS和MSS文件自动
加入到XPS工程中,设计员能在XPS中进行更进一步设计。
北京中教仪装备技术有限公司
Xilinx片上系统开发平台结构
--Platform Generator(PlatGen)
平台产生器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)
Libgen为嵌入式处理器系统配置库,设备驱动,文件
系统和中断句柄,称这些为软件平台。
嵌入式软件平台为每个处理器定义了系统内外设的驱
动(板级支持包),可选择的库,标准的输入/输出设备,
中断句柄例程和其它相关的软件特征。
基于这个软件平台,设计人员更进一步的定义了软件
的应用程序。
北京中教仪装备技术有限公司
Xilinx片上系统开发平台结构
--库产生器(Libgen)
Libgen为嵌入式处理器系统配置库,设备驱动,文件
系统和中断句柄,以及创建板级支持包BSP。嵌入式软件
平台为每个处理器定义了系统内外设的驱动(板级支持包
),可选择的库,标准的输入/输出设备,中断句柄例程和
其它相关的软件特征。
SDK工程进一步定义了运行在每个处理器上的软件,
这些软件基于BSP运行。
北京中教仪装备技术有限公司
Xilinx片上系统开发平台结构
--库产生器(Libgen)
来自于EDK安装的库和驱动,以及设计人员提供的定
制库和驱动,SDK将用户程序,包括库和驱动程序编译
成处理器硬件平台上可执行可链接的文件(Executable
Linked Format,ELF)。
Libgen读取选择的EDK库和不同的处理器核软件描述
文件(Microprocessor Driver Defination, MDD)和驱动代
码。
北京中教仪装备技术有限公司
Xilinx片上系统开发平台结构
--GNU编译工具
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)
GNU调试器是个强大和灵活的工具,它为在不同的开
发周期验证MicroBlaze和PowerPC系统提供了统一的调试和
验证手段。
GDB使用了XMD作为最基本的引擎和处理器目标通讯。
北京中教仪装备技术有限公司
Xilinx片上系统开发平台结构
--仿真模型产生器Simgen
仿真模型产生器Simgen为硬件产生和配置不同模型。
为产生行为模型,Simgen使用MHS文件作为基本的输
入。为产生结构或时序模型,Simgen使用综合后或布局布
线后的设计数据库作为基本的输入。
Simgen为每个处理器也读取嵌入式应用ELF文件去初
始化片上存储器;这样处理器在仿真阶段就可以执行这些
软件代码。
北京中教仪装备技术有限公司
Xilinx片上系统开发平台结构
--仿真库编译器(CompEDKLib)
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编程
编程解决方案被设计成通用的,面向不同的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
Xil MFS
Xil lsf
XilFlash
独立BSP
Xilinx驱动
C,Math和GCC库
北京中教仪装备技术有限公司
操作系统及板级支持包
--板级支持包BSP
BSP是单线程库。BSP提供对硬件的小的接口。向应
用程序提供所要求的最少的功能。
BSP提供的一些典型的函数包括:




设置中断
系统异常
配置缓存
其它硬件指定的功能。
北京中教仪装备技术有限公司