《基于Xilinx FPGA的多核嵌入式系统设计基础》课件第5章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《基于Xilinx FPGA的多核嵌入式系统设计基础》课件第5章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Xilinx FPGA的多核嵌入式系统设计基础 基于Xilinx FPGA的多核嵌入式系统设计基础课件第5章 基于 Xilinx FPGA 多核 嵌入式 系统 设计 基础 课件
- 资源描述:
-
1、第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 5.1 基于基于FSL体系的多核系统设计体系的多核系统设计5.2 基于基于Mailbox体系的多核系统设计体系的多核系统设计5.3 基于基于Mutex体系的多核系统设计体系的多核系统设计5.4 基于基于Interrupt体系的多核系统设计体系的多核系统设计5.5 基于基于Shared Memory体系的多核系统设计体系的多核系统设计5.6 本章小结本章小结 第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 首先给出Microblaze之间的连接方式图,如图5.1.1所示,在阐述其间四核通信模式的同时,也对相应外围
2、设备做出必要说明。5.1 基于基于FSL体系的多核系统设计体系的多核系统设计 第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.1 Microblaze之间的连接方式图第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 5.1.1 建立单核硬件系统建立单核硬件系统建立单核硬件系统的具体步骤如下:(1)运行Xilinx Platform Studio软件,利用BSB向导建立一个基于Virtex2Pro的工程,选择Microblaze处理器,处理器的总线频率为100 MHz,具体步骤如下:打开Xilinx Platform Studio软件,选择BSB向导建
3、立一个单核工程,点击OK按钮。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.2 利用BSB向导创建一个XPS工程第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 在Create New XPS Project Using BSB Wizard窗口(见图5.1.2)中输入文件存放路径,和ISE环境相同,切忌在路径中包含中文或空格等字符。进入Base System Builder-Welcome窗口,选择“I would like to create a new design”选项后,点击Next按钮。在图5.1.3下的Select board窗口中对
4、选用的板型进行正确选择,由于本文采用ML310示范板,因而在提供的Board name中能够找到这款板型。更多的时候往往采用用户自定义的开发板,它和官方发布的开发板不尽相同,这时就只能选择“I would like to create a system for a custom board”。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.3 板型选择界面第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 出现如图5.1.4所示的Select Processor窗口,选择所使用的处理器。在Configure MicroBlaze Processor窗口
5、中,主要是时钟频率的选用以及Local Memory的大小选择。对于未用到的逻辑单元,如FPU浮点运算尽量不选用,以减少片上资源的浪费。相关设置信息如图5.1.5所示,完成后点击Next按钮。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.4 处理器选择界面第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.5 时钟频率以及启动内存的选择第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线(2)选择相应的外围设备,并对各个选用设备进行适当的参数配置。在Configure I/O Interfaces窗口中,仅选择需要用到的外设,以
6、减少资源浪费。这里选用RS232串口打印,以便后期在PC机上能够从终端通过观察核间通信的信息来验证通信系统是否正常运行。串口的波特率、数据位长度、奇偶校验位等采用默认设置即可,如图5.1.6所示。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 连续三次点击Next按钮,当出现Add Internal Peripherals窗口时,点击Next按钮跳过即可,本文不涉及需要额外添加的外围设备。进入Software Setup窗口,如图5.1.7所示,根据需要选择输入/输出标准以及启动内存所存放的空间。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.6
7、串口设置信息的选择界面第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.7 有关软件设置的选择界面第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 在弹出的Configure Memory Test Application窗口中内容按照默认设置即可,点击Next按钮进入System Created窗口,然后点击Generate按钮。在后续窗口中点击Finish按钮。经过上述步骤,一个简单的单核系统就建立了。如图5.18所示为该系统框图,图5.1.9、图5.1.10、表5.1.1所示为System Assembly View相关视图及相关信息。第第5章章
8、 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.8 单核系统创建第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.9 System Assembly View视图的总线连接第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.10 System Assembly View视图的端口连接第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 表表5.1.1 System Assembly View视图的地址空间分配视图的地址空间分配实例 名称 基址 高址 大小 dlmb_cntlr C_BASEADDR 0 x00000
9、000 0 x00001fff 8 KB ilmb_cntlr C_BASEADDR 0 x00000000 0 x00001fff 8 KB debug_module C_BASEADDR 0 x84400000 0 x8440ffff 64 KB mb_plb C_BASEADDR N/A N/A N/A RS232_Uart C_BASEADDR 0 x84000000 0 x8400ffff 64 KB 第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 5.1.2 EDK工程中创建自定义工程中创建自定义FIFOEDK工程中创建自定义FIFO的具体步骤如下:(1)在Har
10、dware下选择Create and Import Peripheral Wizard,进入Welcome界面,点击Next按钮。(2)选择Create templates for a new peripheral选项。如果在其他XPS工程中有已实现的完整IP核,可以通过“Import existing peripheral”选项,然后利用关联文件(如PAO文件)将其导入EDK下的工程中。创建和导入IP核的向导界面如图5.1.11所示。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.11 创建和导入IP核的向导第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件
11、设计实线(3)连续点击两次Next按钮,弹出Name and Version窗口,如图5.1.12所示,在该窗口下输入IP核的名称以及版本,完成后点击Next按钮。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.12 自定义IP核的名称和版本设置第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线(4)在出现Bus Interface窗口后,选择IP核选用的总线类型,这里为FSL。(5)弹出FSL Bus Interface Settings窗口,如图5.1.13所示,其中有关FSL接口的输入/输出选用1即可。第第5章章 多核嵌入式系统硬件设计实线多核嵌
12、入式系统硬件设计实线 图5.1.13 FSL总线接口的相关设置第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线(6)弹出OPTIONAL窗口,在该窗口中不作改动,当使用Verilog实现逻辑设计时应该选中选项,本实验采用VHDL语言来实现,故不选。(7)在Driver Settings窗口中采用默认设置,点击Next按钮,再点击Finish按钮。文件目录树如图5.1.14所示。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.14 EDK工程目录下存放的文件树结构第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 当所有步骤实施之后,XP
13、S工程的IP Catalog下会出现自定义的IP核,如图5.1.15所示。双击fifo_link即可将自定义的IP核添加到工程中。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.15 自定义IP核导入成功后出现于IP Catalog可选项中第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 5.1.3 利用利用ISE设计自定义设计自定义FIFO本实验之所以要创建自定义FIFO,其原因在于FSL总线的主从端口之间并不能直接相连,需要一个类似于FIFO一样的透传容器来过渡。自定义FIFO本身并不具有任何复杂的逻辑设计,只是单纯实现了数据的传送与接收,具体的
14、设计步骤与流程已经在2.2节给出,按照书中介绍的设计流程,在E:fsl_multiprocessorpcoresFifo_link_v1_00_adevlprojnav中打开ISE工程进行设计。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 5.1.4 添加多添加多MB,搭建多核系统,搭建多核系统添加多MB搭建,多核系统的具体步骤如下:(1)首先利用BSB向导创建双核的工程。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 先建双核的工程,即在IP Catalog中通过双击添加Microblaze_1、LMB总线(ilmb_1、dlmb_1)、内存块(lmb_
15、bram_1)、内存控制器(dlmb_cntlr_1、ilmb_cntlr_1)、fifo01和FSL总线(fsl0m、fsl0s、fsl1m、fsl1s)建立好双核之间的通信,后续的MB2和MB3的添加以此类推。双击Microblaze0和Microblaze1进入属性框,设置两个处理器支持FSL接口,因为默认情况下不会开放FSL接口。如果Number of FSL Links设置为1,则表示开放一对FSL接口。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 在System Assembly View面板的Bus Interfaces下为新增加的各个IP核连接总线端口,以确
16、保正确组件之间在架构上是互连的,如图5.1.16所示。在Ports下新增IP核的端口连线设置,如图5.1.17所示。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.16 System Assembly View面板下的总线连接第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.17 System Assembly View面板下的端口连接第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 在Address下为其设置内存地址空间,如图5.1.18所示。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.18
17、 System Assembly View面板下的内存空间地址设置第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线(2)按照(1)中的设计步骤继续添加Microblaze2和Microblaze3,最终设计出的Block Diagram图如图5.1.1所示。完整设计后的System Assembly View下的相关信息,如图5.1.19及表5.1.2所示。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.19 System Assembly View面板下的总线连接图第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 表表5.1.2 S
18、ystem Assembly View面板下的地址空间分配面板下的地址空间分配 实例 名称 基址 高址 大小 dlmb_cntlr0 C_BASEADDR 0 x00000000 0 x0000ffff 64 KB dlmb_cntlr1 C_BASEADDR 0 x00000000 0 x00001fff 8 KB dlmb_cntlr2 C_BASEADDR 0 x00000000 0 x00001fff 8 KB dlmb_cntlr3 C_BASEADDR 0 x00000000 0 x00001fff 8 KB ilmb_cntlr0 C_BASEADDR 0 x00000000 0
19、 x0000ffff 64 KB ilmb_cntlr1 C_BASEADDR 0 x00000000 0 x00001fff 8 KB ilmb_cntlr2 C_BASEADDR 0 x00000000 0 x00001fff 8 KB ilmb_cntlr3 C_BASEADDR 0 x00000000 0 x00001fff 8 KB debug_module C_BASEADDR 0 x41400000 0 x4140ffff 64 KB sysACE_CF C_BASEADDR 0 x41800000 0 x4180ffff 64 KB RS232_Uart C_BASEADDR
20、0 x40600000 0 x4060ffff 64 KB DDR_256M C_MEM0_BASEADDR 0 x30000000 0 x3fffffff 256 MB 第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 5.1.5 添加测试核间通信的程序添加测试核间通信的程序搭建了四核通信体系后,通过核上应用程序的简单测试来验证通信机制是否可行。验证的步骤如下:(1)在XPS菜单Software下选择“Add Software Application Project”,弹出如图5.1.20所示的窗口,输入工程名称,同时可选择处理器。第第5章章 多核嵌入式系统硬件设计实线多核嵌
21、入式系统硬件设计实线 图5.1.20 软件应用程序的添加以及处理器选择第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线(2)点击OK按钮,在Project Information Area工作区的Application下显示刚刚创建的工程,此时双击工程下的Sources和Headers分别添加C代码形式的源文件和头文件。测试代码如图5.1.21所示。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.21 Microblaze0上的测试代码第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线(3)以同样的方式在核1、核2、核3上添加相应的工程
22、文件,做到每个核在接收到上一个处理器的传送结果后,将其值加1再传给后续的核,最终核3将结果传回核0,核0读出数据值并于终端上打印出来,如图5.1.22所示。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.22 其他MB上的测试代码第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 5.1.6 下载比特流,配置下载比特流,配置FPGA1.编写编写UCF文件文件UCF文件即所谓的用户约束文件,用以告知编译器有哪些实现约束条件,最基本的如工程文件的输入/输出信号与FPGA管脚的管脚锁定约束,时序收敛设计中的时钟周期、偏移约束,工程实现的面积约束等等。在ISE
23、开发平台下的UCF编写有两种方式:文本输入和带图形界面的PACE向导,而在XPS开发平台下只有文本输入方式。在本设计中,UCF文件的修改需要在system.ucf文件中加以编辑,如图5.1.23所示。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.23 UCF文件的编辑第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 2.下载比特流,配置下载比特流,配置FPGA配置FPGA方式有很多种,常用的是利用XPS中自带的配置方式(如图5.1.24所示),选择Download Bitstream功能,使用JTAG下载线(开发板的JTAG配置口与PC机USB口相
24、接)直接以比特流形式配置FPGA,配置用的比特流文件同时也是Xilinx公司用于配置FPGA方式的特色之一。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.24 XPS自带配置方式 第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 注意在这种配置模式下,首先要确保工程文件被标识为内存初始化,否则处理器不会装载应用程序,更不会为此工程文件生成比特流。初始化内存成功的表现为工程前面的红叉消失,选中“Mark to initialize BRAMs”选项,如图5.1.25所示。第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 图5.1.25
25、 初始化启动内存块第第5章章 多核嵌入式系统硬件设计实线多核嵌入式系统硬件设计实线 打开Putty工具,该工具用于模拟通信终端,选择合适的端口(确保USB口转串口线正确连接,可在设备管理器中查找到具体是哪个端口用于串口通信)和波特率,在添加RS232时采用默认配置,即9600波特率。选用串口类型、端口COM4、速率等级9600,以便下次使用,以com4_9600作为名称进行存储,双击com4_9600,如图5.1.26所示。打开iMPACT工具,双击Boundary Scan选项。右键单击Initialize Chain选项,进行初始化链的操作,如图5.1.27所示。确保JTAG线与开发板、电
展开阅读全文