1、第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.1 开发软件简介开发软件简介2.2 利用利用ISE进行硬件逻辑设计的流程进行硬件逻辑设计的流程2.3 利用利用XPS向导进行多核硬件系统设计的流程向导进行多核硬件系统设计的流程2.4 利用利用EDK套件进行多核软件开发的流程套件进行多核软件开发的流程2.5 本章小结本章小结 第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.1.1 ISE开发软件简介开发软件简介Xilinx公司推出的ISE10.1开发套件包括了以下几个主要组成部分。(1)ChipScope Pro:一种片内逻辑分析工具,它能通过JTAG口
2、,将FPGA内部信号实时读出,并传入计算机进行分析。2.1 开发软件简介开发软件简介第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(2)DSP_Tools:在ISE10.1套件的DSP_tools中集成了AccelDSP Synthesis Tool和System Generator工具。(3)EDK:作为一套完整的嵌入式开发套件,集成了Xilinx Platform Studio(XPS)、Software Development Kit(SDK)、库文件产生器(Libgen)和编译工具(GNU Compile Tools)等开发模块。第第2章章 多核系统设计环境与设计流程
3、多核系统设计环境与设计流程(4)ISE:侧重于硬件逻辑设计,其项目导航器是项目管理工具的主体,集成了设计过程中要使用的一系列软件工具,主要包括设计输入(Design Entry),设计综合(Design Synthesis)、仿真(Simulation)以及器件编程等。(5)PlanAhead:用于设计大规模FPGA设备的一款设计和分析的软件产品,其核心技术包括了层次化的floorplanning工具,用以将物理设计划分为更小的、更易于管理的小模块,从而减少了FPGA上理解、设计、辨认和实现的时间。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.1.2 ISE的安装的安装
4、ISE10.1开发软件支持Windows 2000、Windows XP、Windows Vista以及Linux操作系统。(1)将ISE10.1 DVD光盘放入主机光驱中,等待安装光盘自动启动安装界面(见图2.1.1),当然也可以手动进入安装光盘的根目录(如E:ISE10.1 10.1_unified),双击Setup.exe安装,如图2.1.2所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.1.1 ISE10.1安装启动界面第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.1.2 ISE10.1的安装图标第第2章章 多核系统设计环境与设计
5、流程多核系统设计环境与设计流程(2)进入ISE10.1安装的欢迎界面。进入ISE10.1安装的欢迎界面后,输入购买ISE软件时Xilinx公司提供的序列号,点击Next按钮,进入下一个界面,如图2.1.3所示。(3)根据用户的需求,选择你所要用到的开发工具,即在开发工具前面的方框中打钩即可,如图2.1.4所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.1.3 安装序列号的输入界面第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.1.4 开发工具的选择界面第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(4)按照安装向导的提示,
6、同意相应的软件协议并点击一系列的确认按钮进入安装目录的选择界面,如图2.1.5所示。ISE10.1开发套件占用资源比较大,不推荐安装在系统盘C盘下。此外,安装目录的文件夹命名需要注意,不能出现中文以及类似于空格这种ISE10.1无法识别的命名方式。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.1.5 安装目录的选择文件第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(5)选择安装目录后,点击一系列的确认按钮。最后点击Install按钮进入到软件的安装过程,过程中会显示各个安装组件的特性。(6)ISE10.1安装完成后,会针对SP2系统的某些不兼容性,自
7、动从Xilinx官网上下载相应的补丁。当然,出于安装速度的考虑,可以选择手动从Xilinx官网上逐个下载这些补丁。安装完成后的ISE10.1集成环境的图形用户界面如图2.1.6所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.1.6 ISE10.1的用户界面第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 用于嵌入式系统设计的XPS工具,其图形用户界面如图2.1.7所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.1.7 XPS图形界面第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.2.1 创建新工程
8、创建新工程创建一个新工程,工程名为“fifo_link”,具体步骤如下:(1)首先双击桌面上的ISE10.1软件,选择File菜单下的New Project新建工程,注意,工程的存放路径中不能含有中文文字以及空格,因为ISE和EDK系统均无法识别中文路径。完成之后点击Next选项,如图2.2.1所示。2.2 利用利用ISE进行硬件逻辑设计的流程进行硬件逻辑设计的流程第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.2.1 创建新工程第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(2)在Device Properties属性窗口中,选择合适的开发板系列(F
9、amily)、器件类型(Device)、封装形式(Package)、速度等级(Speed)、综合工具(Synthesis Tool)、仿真器(simulator)以及编程语言等。完成之后连续点击Next选项,直至Project Summary窗口出现,如图2.2.2所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.2.2 设备属性窗口第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(3)在Project Summary窗口中,可以了解到该工程创建的选项信息,如图2.2.3所示,检查是否与之前的设置相符合。确认无误后点击Finish按钮。第第2章章 多
10、核系统设计环境与设计流程多核系统设计环境与设计流程 图2.2.3 项目的信息概述窗口第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.2.2 新建新建HDL源文件源文件新建一个HDL源文件,命名为“fifo”,具体步骤如下:(1)选中Sources窗口下的器件类型,然后在Project下选择New Source新建源文件,出现Select Source Type窗口框。左边选中VHDL Module,右边给出文件名称,点击Next按钮,如图2.2.4所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.2.4 新建源文件类型选择列表第第2章章 多核系
11、统设计环境与设计流程多核系统设计环境与设计流程(2)在Define Module窗口下(如图2.2.5所示),可以选择将模块中所有的in、out、inout型端口一次性列出,方便ISE自动生成模板,也可以选择跳过该步骤,在源文件编辑框下手动输入各个端口。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.2.5 模块端口定义界面第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(3)点击Next按钮,出现Summary窗口,可以核对一下信息。确认后点击Finish按钮。(4)在自动生成的fifo.vhd文件中,所用到的库已经自动添加。所需要做的是在fifo的实
12、体定义部分(entityend内)检查有没有尚未添加的端口定义,然后在实现部分(architecture下 beginend内)给出模块功能性的描述,如图2.2.6所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.2.6 FIFO功能设计代码第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.2.3 对源文件进行综合以及仿真对源文件进行综合以及仿真对源文件进行综合以及仿真的具体步骤如下:(1)源文件设计完成之后,在Processes窗口下选择仿真工具XST带有的语法检查Check Syntax,如果设计无误,则该选项前方会出现标志,如图2.2.7所
13、示。Transcript窗口的Console视图区内也会打印出语法检查的信息,如图2.2.8所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.2.7 XST中的语法检查第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.2.8 Console窗口下的打印信息第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 (2)双击XST下的View RTL Schematic选项,查看设计模块的电路原理图,如图2.2.9和2.2.10所示。之所以需要做这一步,是由于只有在电路图级别达到综合与验证时,才能保证这样的逻辑设计在FPGA上是有可能通过
14、门电路实现的。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.2.9 自定义FIFO的顶层模块 第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.2.10 自定义FIFO的底层门电路第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 实验要求:创建一个单核系统,要求包含UART和Compact_Flash等IP核。模块图如图2.3.1所示。2.3 利用利用XPS向导进行多核硬件系统设计的流程向导进行多核硬件系统设计的流程第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.1 单核硬件系统的模块图第第2章章 多核
15、系统设计环境与设计流程多核系统设计环境与设计流程 2.3.1 利用利用BSB新建一个工程新建一个工程利用BSB新建一个工程的具体步骤如下:(1)双击桌面上的XPS图标,打开Xilinx Platform Studio软件,出现如图2.3.2所示的对话框,选择BSB向导建立一个单核工程,点击OK按钮。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.2 进入BSB创建向导第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(2)在Create New XPS Project Using BSB Wizard窗口中输入文件存放路径,和ISE环境相同,切记路径名
16、中不能包含中文或是空格等字符,如图2.3.3所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.3 单核工程的存放路径第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(3)进入Base System Builder-Welcome窗口,选择“I would like to create a new design”选项后,点击Next按钮。在Select board窗口下选用合适的板型,由于本文所采用的是ML310示范板,故在提供的Board name中能够找到这款板型,如图2.3.4所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计
17、流程 图2.3.4 板型选择界面第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(4)在Select Processor窗口下选择使用MicroBlaze软核处理器,如图2.3.5所示,点击Next按钮。(5)在Configure Microblaze Processor窗口中,主要选择时钟频率以及Local Memory的大小。对于未用到的逻辑单元,如FPU浮点运算尽量不选用,以减少片上资源的浪费。相关设置信息如图2.3.6所示,完成后点击Next按钮。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.5 处理器选择界面第第2章章 多核系统设计环境与
18、设计流程多核系统设计环境与设计流程 图2.3.6 MicroBlaze处理器的配置界面第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.3.2 选择必要外设,并进行参数配置选择必要外设,并进行参数配置在Configure I/O Interfaces窗口中,仅选择需要用到的外设,以减少资源浪费。这里选用RS232串口打印,以方便后期在PC机上能够从终端中通过观察核间通信的信息来验证通信系统是否正常运行。串口的波特率、数据位长度、奇偶校验位等采用默认设置即可。同时选择Compact_Flash外设和MDM模块,便于后续的一些应用程序的设计,如图2.3.7所示。第第2章章 多核
19、系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.7 外围设备的选择第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.3.3 配置启动内存,并选用内存测试文件配置启动内存,并选用内存测试文件配置启动内存并选用内存测试文件的具体步骤如下:(1)进入Software Setup窗口,如图2.3.8所示,根据需要选择输入/输出标准以及启动内存所存放的空间。(2)弹出的Configure Memory Test Application窗口中相关内容就按默认设置即可,点击Next按钮进入System Created窗口,再点击Generate按钮。第第2章章 多核系统设计环
20、境与设计流程多核系统设计环境与设计流程 图2.3.8 软件设置界面 第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.9 单核系统的Block Diagram第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.10 System Assembly View面板下的总线接口设置第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 表表2.3.1 System Assembly View面板下的内存地址空间分配面板下的内存地址空间分配实例 名称 基址 高址 大小 dlmb_cntlr C_BASEADDR 0 x00000000 0 x
21、00001fff 8 KB ilmb_cntlr C_BASEADDR 0 x00000000 0 x00001fff 8 KB debug_module C_BASEADDR 0 x84400000 0 x8440ffff 64 KB SysACE_CompactFlash C_BASEADDR 0 x83600000 0 x8360ffff 64 KB RS232_Uart C_BASEADDR 0 x84000000 0 x8400ffff 64 KB 第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.11 System Assembly View面板下的端口连
22、接设置第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 由于本实验中RS232和SysACE_Compactflash均是利用BSB向导建立的,很多设计的细节和步骤都由BSB自动完成,比如有关外设的端口设置,但凡牵涉到开发板上提供的外部资源与设备时,都应该将其引脚设置为Make External,如图2.3.12所示(仅显示了SysACE_compactflash,RS232同理)。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.12 将SysACE_Compactflash的端口进行Make External设置第第2章章 多核系统设计环境与设计流
23、程多核系统设计环境与设计流程 将端口进行Make External设置的目的在于,将内部连线从FPGA器件管脚中引至开发板具体的实现管脚上。换句话说,FPGA内部只有CF卡的理论和逻辑实现,并没有物理可支持硬件,而开发板的作用相当于给FPGA处理芯片提供这样一个可实现其内部逻辑功能的现实硬件环境。设置完成后,可以发现在最上端的外部端口中将会罗列出这些被设置为“Make External”的端口,如图2.3.13所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.13 外部端口的显示第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.3.4 编译源
24、文件,生成硬件网表编译源文件,生成硬件网表编译源文件,生成硬件网表的具体步骤如下:(1)在Application窗口下双击TestApp_Memory文件,可以查看到内存测试文件的编写。TestApp_Memory文件的存放位置如图2.3.14所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.3.14 TestApp_Memory.c文件的存放位置第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.3.5 下载比特流,配置下载比特流,配置FPGA下载比特流,配置FPGA的具体步骤如下:(1)点击Hardware下的Generate Bitstrea
25、m按钮或是直接点击按钮,生成配置FPGA所需要的比特流文件。(2)将PC机与Virtex-Pro开发板正确连接,并且给开发板上电。(3)打开超级终端或是Putty工具,设置正确的参数(如波特率、奇偶校验位以及流控制位等),确保和创建硬件系统时的设置一致。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(4)点击Device Configuration下的Download Bitstream或者直接点击按钮进行比特流的下载配置。(5)观察终端中的打印信息,判断是否和TestApp_Memory.c文件中一致,打印结果如图2.3.15所示。第第2章章 多核系统设计环境与设计流程多核
26、系统设计环境与设计流程 图2.3.15 终端打印结果第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 有关多核软件开发的流程主要也是利用XPS中Add Software Application Project向导进行应用程序的添加。这里首先给出单核系统上如何添加和设计应用程序的介绍,多核嵌入式系统与单核系统大同小异,具体设计将在第6章中详尽说明。2.4 利用利用EDK套件进行多核软件开发的流程套件进行多核软件开发的流程第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.4.1 在单核基础上添加工程应用在单核基础上添加工程应用在上一个实验基础上,选择工具栏Sof
27、tware下的“Add Software Application Project”,出现如图2.4.1所示的窗口。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.4.1 创建工程名第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 对于多个应用程序的设计与添加,体现在Processor的下拉可选项,如图2.4.2所示。一个Microblaze处理器只能一次性初始化启动内存从而运行一个应用程序,多个处理器则可以同时运行加载在各自核上的应用程序。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.4.2 Processor下拉菜单选项第第2
28、章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.4.2 编辑编辑.c文件并编译文件并编译输入源文件工程名称后,点击OK按钮,对源文件进行编辑,代码如图2.4.3所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.4.3 CF卡的测试文件的编写第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.4.3 编写用户约束文件编写用户约束文件为CF卡编写用户约束文件(UCF),如图2.4.4所示,所有的管脚引用均可以从Virtex-Pro的电路原理图找到(购买开发板时会附送光盘,存放一些用户手册或是例程及习题参考答案)。RS232管脚分配原理图
29、如图2.4.5所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.4.4 SysACE_CompactFlash的UCF文件第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.4.5 RS232管脚分配原理图第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.4.4 修改修改MSS中的驱动文件中的驱动文件修改MSS文件的原因在于,MSS文件中存放了操作系统及其板极支持包的相关信息,而测试代码中用到了sysace_fopen/fwrite/fread/fclose等函数,这些函数是由xilfatfs板极支持包提供的,只有操作系统支持
30、这一支持包,才有权限调用这些函数。具体步骤是,打开MSS文件,在文件最后加上如图2.4.6所示的代码。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.4.6 MSS文件中添加xilfatfs文件驱动第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 2.4.5 下载比特流,配置下载比特流,配置FPGA下载比特流,配置FPGA的具体步骤如下:(1)格式化CF卡。运行命令行窗口,利用mkdosfs工具对CF卡进行格式化,采用无参数形式的格式化即可,因为默认格式化为FAT16文件系统。格式化结果如图2.4.7所示。第第2章章 多核系统设计环境与设计流程多核系统设
31、计环境与设计流程 图2.4.7 利用mkdosfs工具对CF卡进行格式化第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(2)将Virtex-Pro开发板正确连接到PC机上,并且给开发板上电。(3)打开Putty工具,选择波特率为9600、COM4口的串口终端。(4)对于需要运行的应用程序,选中以初始化内存块。(5)在Device Configuration中点击,配置FPGA。(6)输出终端显示结果,如图2.4.8所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.4.8 终端显示结果第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程(
32、7)再次将CF卡用读卡器连接到PC机上,查看JPEG格式的图片是否正确创建。CF卡中的内容如图2.4.9所示。右击IMAGE01.JPG图片,图片大小为写入的4字节,如图2.4.10所示。打开UltraEdit工具查看写入内容,如图2.4.11所示。第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.4.9 CF卡中成功创建了JPEG格式图片第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.4.10 JPEG格式图片大小第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 图2.4.11 JPEG格式图片中的写入内容第第2章章 多核系统设计环境与设计流程多核系统设计环境与设计流程 本章主要介绍ISE 10.1开发套件的使用方法,详细介绍了利用ISE 10.1进行硬件逻辑设计以及多核嵌入式硬件系统设计的主要流程和步骤,同时对多核嵌入式软件开发的流程给出了一般性的介绍。2.5 本本 章章 小小 结结