每天进步一点点------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 ...
随机推荐
- 牛客寒假6-F十字阵列
链接:https://ac.nowcoder.com/acm/problem/201986来源:牛客网 题目描述 小 Q 新学会了一种魔法,可以对一个 N行M列 的网格上的敌人造成伤害 第 i 次使用 ...
- PAT (Advanced Level) Practice 1035 Password (20 分)
To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ...
- Unable to execute command or shell on remote system: Failed to Execute process
1.问题描述 先说下我的项目环境:jenkins部署在windows下面,项目部署也是在windows下面,ssh服务器是FreeSSHd,原来是打算用Send files or execute co ...
- 中软国际首届嘉年华晚会 创新网络年会PK“春晚”
随着新年脚步的来临,各大公司的年会陆续出炉,但是中软国际的首届嘉年华晚会,以创新网络年会和全国八地同步进行的模式,演绎不一样的互联网年会,简直可以PK“春晚”.IT届中最漂亮的美女热舞,程序员中最会唱 ...
- Cenos7 学习笔记
一.nmtui nmtui——Text User Interface for controlling NetworkManager,这是一个NetworkManager服务的网卡接口配置工具,能实现在 ...
- 求素数p的原根
定义: 设m>1,gcd(a,m)=1,使得成立的最小正整数d为a对模m的阶,记为δm(a) 如果δm(a)=φ(m),则称a是模m的原根 定理:设m>1,gcd(a,m)=1,那么正整数 ...
- Git仓库创建---克隆仓库---初始提交代码
1.在Git上创建仓库,添加成员,默认分支是“master”,仓库路径假设为http://192.168.1.1/root/project.git 2.在sourceTree上,点击“克隆”,输入上面 ...
- 销量下跌、质量问题不断,小鹏G3“维权门”之后的日子不好过
编辑 | 于斌 出品 | 于见(ID:mpyujian) 小鹏汽车何时能站上国内新能源汽车行业C位?这是于见之前提出过的问题.随着上个月小鹏汽车终于发布了2020款小鹏G3,从该款产品的用户反馈及销量 ...
- 【转】Java(多)线程中注入Spring的Bean
问题说明 今天在web应用中用到了Java多线程的技术来并发处理一些业务,但在执行时一直会报NullPointerException的错误,问题定位了一下发现是线程中的Spring bean没有被注入 ...
- JDBC——Statement执行SQL语句的对象
Statement该对象用于执行静态SQL语句并返回它产生的结果.表示所有的参数在生成SQL的时候都是拼接好的,容易产生SQL注入的问题 PreparedStatement对象是一个预编译的SQL语句 ...