每天进步一点点------Xilinx FPGA开发工具 EDK SDK术语
XPS:Xilinx Platform Studio,平台工作室。用于嵌入式处理器硬件部分的开发。
SDK:Software Development Kit,软件开发套件。基于Eclipse平台,支持C/C++。
MicroBlaze总线:MB实质上是一个IP核,这个IP核对外总线接口有PLB(包括一个DPLB和一个IPLB)、LMB(包括一个DLMB和一个ILMB)、FSL(8个FSL主、8个FSL从接口)、XCL(包括一个DXCL和一个IXCL)、MDM。即指令只能通过LMB/XCL/PLB的指令端口访问,速度由快到慢。PLB、LMB、FSL总线也是一个IP核,XCL内嵌两个FSL总线接口,是点对点双向总线。MB应当选用不同的总线来访问不同的外设,且正确协调这些总线的工作。XCL主要是配合MPMC,用于MB的指令Cache和数据Cache从外部存储器读取指令或数据,例如可配置MPMC的两个访问端口为XCL,分别连到MB的DXCL和IXCL上。可以通过配置Microblaze_0模块添加FSL总线,用于和高速点对点输入输出的用户IP的连接。PLB用于MB与系统提供的其它基于PLB总线或基于PLB总线的用户IP相连接。使用CIP创建用户自己的IP,只有PLB和FSL两种可选接口,XCL/LMB为专用于存放程序代码。也可以手工创建NPI接口的用户IP,但以后版本不确定是否支持NPI接口。MDM总线用于调试。注:在SDK环境中,Xilinx Tools->Linker scripts中或在项目上右键,打开Linker scripts来分配程序、堆栈等所占的内存区域,在Windows程序组EDK->Documentation下面有SDK的帮助文档,可查看这部分的帮助。
在EDK12.2的edk_ctt手册中产生的XPS项目中,可以看出MB的总线结构。Microblaze_0下面有DLMB、ILMB、DPLB、IPLB、DXCL、IXCL、DEBUG、TRACE。其中DLMB连接到命名为dlmb的LMB总线上(最上面),同时IP模块dlmb_cntlr的一端也连接到dlmb总线上,一端连接到lmb_bram模块(双口BRAM)的端口B上,同样MB的ILMB最终也连接到lmb_bram模块的端口A上,即lmb_bram为内存,用于MB存放运行软件程序(XPS的帮助上说这个内存不要开的太大,以免LMB总线超负荷降低效率)。由于MB只有一个DLMB和一个ILMB,如果程序代码过大或数据空间不够用,可通过xps_bram_if_cntlr_0,其一端连接PLB,一端连接IP模块bram_block,把FPGA内部的BRAM外扩为MB的存储空间,其大小在XPS界面的Addresses栏设置,参见相应的IP核手册查看此IP能够管理的BRAM大小,此IP管理BRAM深度为32K,当BRAM宽度为32时支持128KB容量的BRAM,当BRAM宽度为64或128时分别为256KB/512KB;或通过MPMC和XCL或PLB外扩DDR;或通过xps_mch_emc和PLB外扩SRAM和NOR FLASH。上述例子里MB的DPLB和IPLB均连接到PLB总线上,和其它外设通过PLB连接到一起,也可以IPLB再用一个单独的PLB总线,外扩存储程序的内存,构成哈佛结构,但一般不必要。
PLB:Processor Local Bus总线。支持任意数目的PLB主设备,可支持128/64/32位宽的主设备和从设备。PLB接口包括IPLB和DPLB两种,IPLB接口用于外设与处理器指令缓冲的连接,DPLB用于外设与处理器数据缓冲的连接。
LMB:Local Memory Bus总线,同步总线,用于MB访问存放指令和数据的片上块RAM。32位宽,包括三种传输方式:字节/半字/字到32位宽BRAM、字节/半字到16位宽BRAM、字节到8位宽BRAM。使用最少的控制信号和简单的协议以达到单周期访问本地块RAM的目的。MB有两个LMB即ILMB和DLMB,分别用于处理器指令和数据接口。lmb_bram_if_cntlr核一端通过LMB总线连到MB的DLMB或ILMB端口,一端连到片上BRAM,由于lmb_bram_if_cntlr核支持最大BRAM大小为128KB,即MB片上BRAM最大为128KB。对于比较小的设计,可把代码直接放到片上BRAM,或者把复杂设计的BOOTLOADER放到片上BRAM。
FSL:Fast Simplex Link总线,32位宽。FSL用于单向、点到点、基于FIFO的快速接口,可用于连接FPGA上任意两个带有FSL总线接口的设备,及用户IP开发。每个FSL有一个输入口和一个输出口。FSL内部FIFO深度最小为1,最大8K。MB最多支持16个FSL接口,即8个FSL主(MFSL或DWFSL)和8个FSL从(SFSL或DRFSL)接口。MFSL(Master FSL Interface)用于FSL总线连接,而DWFSL(FSL master direct connectioninterface)用于直接连接到FSL从设备上。SFSL(Slave FSL Interface)用于FSL总线连接,而DRFSL(FSL slave direct connection interface)用于直接连接到FSL主设备上。XCL使用直接FSL连接方式。
XCL:Xilinx CacheLink总线,32位宽。只有在MB核的指令或数据缓存使能的情况下才可以使用(LMB不需要指令或数据缓存使能),指令或数据缓存可分别单独使能。与MB缓存接近直接连接。每个XCL内嵌两个FSL接口,是高性能的外部内存访问接口。在配合MPMC的情况下,是最小延时的解决方案,此时XCL接口时钟可以是MPMC_clk0的二倍或一倍。XCL分为指令端XCL(IXCL)和数据端XCL(DXCL)。猜想:XCL用于从外存读取连续的一段指令或数据到MB内部缓存中,类似于从windows系统从磁盘上预读取缓存技术,因此没有单独的地址线,需要使用额外信号线来表示地址还是数据,也仅用于缓存读取用,不能使用在用户IP接口上。
MDM:Xilinx Microprocessor Debug Module。
MPMC:Multi-Port Memory Controller,多端口内存控制器。MPMC通过可配置的PHY层连接外部内存,通过1到8个相互独立的端口供用户访问,每个端口包含一个可配置的PIM,配置成用户所需要的接口形式。MPMC包含仲裁器,支持多个端口同时访问内存。为减少MPMC所占用的资源,参见DS643手册206页“MPMC Size Optimization”。
PIM:Personality Interface Modules,MPMC提供给用户的访问端口,可配置成PLB、XCL、NPI、SDMA、VFBC、MCB(仅Spartan-6器件)接口形式。
NPI PIM:Native Port Interface。MPMC支持32/64位宽NPI。专用于MPMC的PIM中,是最高性能的PIM(除配置成MCB的PIM),所有其它的PIM形式均通过NPI连接到MPMC,例如XCL PIM接口可认为把XCL命令翻译成NPI命令的一个桥。以后版本不确定是否继续支持。NPI接口简单,几乎适用于任何协议;用户可以利用NPI扩展MPMC的接口形式,以适应用户自己的设计;NPI包括地址、数据和控制信号,允许从端口FIFO同时读写数据,数据位宽32或64位;NPI运行时钟频率必须与MPMC_clk01时钟频率一致。
SDMA PIM:Soft Direct Memory Access Controller。应用于MPMC中。中等吞吐性能Scatter Gather DMA核,需要CPU参与,因此适用于频发小数据量传输,典型应用于MPMC和XPS_LL_TEMAC核之间数据传输,参见UG643手册163页“SystemArchitecture using xps_ll_temac Core”。SDMA核包括一个NPI接口,一个PLB接口,一个TXLocalLink及一个RX LocalLink接口。NPI接口用于嵌入到MPMC;PLB用于CPU参与Scatter Gather DMA传输;数据利用LocalLink通过DMA传输到MPMC;NPI端接口宽度32或64位,LocalLink端接口宽度32位。Spartan-6支持所有位宽的DDR,其它器件支持16/32/64位宽DDR。
VFBC PIM:Video Frame Buffer Controller (VFBC),高延迟高性能两维DMA核,适用于长burst传输,如视频帧。
MCB PIM:仅Spartan-6器件支持的PIM形式,与硬件内存控制器直接连接,以获取最高的性能。如果MPMC同时使用了MCB PIM和PLBPIM, MCB为32位宽,因此MCB PIM和PLB PIM只能连接到32位宽的PLB总线。
字节/半字/字:MB里分别定义为Byte/half-word/word,位宽分别为8/16/32bit。MB使用BIG-Endian模式存储数据和指令。
BMM:BlockRAM Memory Map file
每天进步一点点------Xilinx FPGA开发工具 EDK SDK术语的更多相关文章
- FPGA开发工具套餐搭配推荐及软件链接 (更新于2020.03.16)
一.Xilinx(全球FPGA市场份额最大的公司,其发展动态往往也代表着整个FPGA行业的动态) (1) Xilinx官方软件下载地址链接: https://china.xilinx.com/supp ...
- Xilinx FPGA开发环境vivado使用流程
Xilinx FPGA开发环境vivado使用流程 1.启动vivado 2016.1 2.选择Create New Project 3.指定工程名字和工程存放目录 4.选择RTL Project 5 ...
- .net core开发工具与SDK
一.开发工具 开发工具使用Visual Studio 2017 下载官网:https://visualstudio.microsoft.com/zh-hans/vs/ 相关的安装已经有很多文章介绍过, ...
- Android 开发工具介绍-SDK工具和平台工具
原文链接:http://android.eoe.cn/topic/android_sdk Android的SDK提供各种工具可以帮你为Android平台开发移动应用程序.这些工具被分类成两组:SDK工 ...
- [转帖]FPGA开发工具汇总
原帖:http://blog.chinaaet.com/yocan/p/5100017074 ----------------------------------------------------- ...
- Xilinx FPGA开发随笔
1.UCF文件 1.1.UCF作用 UCF文件主要是完成管脚的约束,时钟的约束, 以及组的约束. 1.2.UCF语法 普通IO口只需约束引脚号和电压: NET "端口名称" LOC ...
- XILINX FPGA 开发板 XC3S250E 核心板 学习板+12模块
北京太速科技有限公司为广大合作单位特设海外代购业务,主要包括各类板卡.相机.传感器.仪器仪表.专用芯片等.代购业务仅收取基本的手续费. 北京太速科技有限公司在线客服:QQ:448468544 淘宝网站 ...
- 开发工具-Java SDK下载地址
更新记录 2022年6月14日 加入更多的下载地址. 2022年6月10日 完善标题. 下载地址: https://www.oracle.com/java/technologies/downloads ...
- C/C++开发工具大比拼【转】
C/C++开发工具大比拼[转] (http://hi.baidu.com/vipdowndown/blog/item/dcd7c1b5ad3209ef30add167.html) * NetBean ...
随机推荐
- u盘变成Read-only file system
先查看U盘的设备号,然后修改后重新挂载 fdisk -l sudo dosfsck -v -a /dev/sdb4
- a++ 和 ++a
//a++ 先赋值,后加 var a = 1 console.log(a++);//1 console.log(a) //2 //++a 先赋值,后加 var a = 1 console.log(++ ...
- golang channel 的一次内存错误
起因 原因调查 原因分析 问题解决 总结 起因 今天在做数据库数据读取时, 首先通过多个 goroutine 将从数据库读取的数据写入 channel, 同时通过另一个 goroutine 从 cha ...
- HDU2612 Find a way (双广搜)
Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year ...
- 2019-08-20 纪中NOIP模拟A组
T1 [JZOJ6310] Global warming 题目描述 给定整数 n 和 x,以及一个大小为 n 的序列 a. 你可以选择一个区间 [l,r],然后令 a[i]+=d(l<=i< ...
- mac屏幕录制
屏幕录制 shift+command+5 录制完成后将文件拖拽到要保存的文件中
- 爬虫学习笔记2requests库和beautifulsoup4库学习笔记
目录 1.requests库 1.1 安装 2.beautifulsoup4 2.1 常用方法 2.2 bs4 中四大对象种类 2.3 遍历文档树 2.4 搜索文档树 查询id=head的Tag 查询 ...
- Yeoman+Bower+gulp web前端自动化工作流程(初级教程)
Yeoman包括了三个部分yo(脚手架工具).grunt/gulp(构建工具).bower(包管理器).听说gulp更容易上手,所以我就没用grunt而选的gulp 什么是开发流程? 在我看来一个完整 ...
- tomcat常见状态码
- phpstorm实现分屏展示代码
第一种 选择你要分屏的页面 [Window]—>[Editor Tabs]—>[Split Vertically]or[Split Horizontally] 第二种 把鼠标箭头放到你想 ...