开题报告基于Xilinx FPGA的双核系统设计.docx
- 文档编号:16829965
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:19
- 大小:181.44KB
开题报告基于Xilinx FPGA的双核系统设计.docx
《开题报告基于Xilinx FPGA的双核系统设计.docx》由会员分享,可在线阅读,更多相关《开题报告基于Xilinx FPGA的双核系统设计.docx(19页珍藏版)》请在冰点文库上搜索。
开题报告基于XilinxFPGA的双核系统设计
毕业设计(论文)开题报告
题目:
基于XilinxFPGA的双核系统设计
院(系)机电与信息工程学院
专业测控技术与仪器
学生王晓璐
学号200900840035
班号测控
指导教师王少军
开题报告日期2013年3月28日
哈尔滨工业大学教务处制
2013年3月
说明
一、开题报告应包括下列主要内容:
1.课题来源及研究的目的和意义;
2.国内外在该方向的研究现状及分析;
3.主要研究内容;
4.研究方案及进度安排,预期达到的目标;
5.为完成课题已具备和所需的条件和经费;
6.预计研究过程中可能遇到的困难和问题,以及解决的措施;
7.主要参考文献。
二、对开题报告的要求
1.开题报告的字数应在3000字以上;
2.阅读的主要参考文献应在10篇以上,其中外文资料应不少于三分之一。
本学科的基础和专业课教材一般不应列为参考资料。
3.参考文献按在开题报告中出现的次序列出;
4.参考文献书写顺序:
序号作者.文章名.学术刊物名.年,卷(期):
引用起止页。
三、如学生首次开题报告未通过,需在一周内再进行一次。
四、开题报告由指导教师填写意见、签字后,统一交所在院(系)保存,以备检查。
指导教师评语:
指导教师签字:
检查日期:
目录
1.课题来源及研究的目的和意义1
2.国内外在该方向的研究现状及分析2
2.1嵌入式系统的发展现状及分析2
2.1.1嵌入式系统概述2
2.1.2嵌入式系统现状分析3
2.2基于Virtex-5嵌入式系统的发展现状及分析4
3.主要研究内容5
4.研究方案5
4.1总体设计方案6
4.1.1硬件开发平台介绍6
4.1.2基于FPGA的双核系统构建6
4.2双核之间数据交互的设计方案7
4.2.1基于SharedBRAM共享内存方式7
4.2.2基于Mailbox实现核间数据的交互8
4.3双核的同步设计方案9
4.4双核系统启动的设计方案10
4.5实验验证及分析12
4.5.1测试实验12
4.5.2综合实验12
4.5.3应用实验12
5.预期达到目标12
6.进度安排13
7.为完成课题已具备和所需的条件和经费13
8.预计研究过程中可能遇到的困难和问题,以及解决的措施13
9.主要参考文献14
1.课题来源及研究的目的和意义
本课题属技术研发类。
近年来,FPGA凭借其低成本、大容量、超高速的性能,以其革命性的能力在越来越多的领域得到应用。
正是由于FPGA芯片具备可重复“擦写”,配置数千次而不失效的特点,因而,普遍被认为是建构原型和开发设计的最快途径,基于FPGA的开发设计也成为系统设计的主流。
随着微电子技术的发展,片上可编程技术也逐渐兴起,同时,由于FPGA内部可以嵌入硬核或软核处理器,从而构成片上可编程系统(SOPC,SystemOnaProgrammableChip)。
源于这种系统设计灵活、速度快、集成度高、功耗低等特点,目前,基于FPGA的片上可编程系统在航空航天、消费电子、工业控制等领域得到了广泛的应用。
SOPC是一种基于FPGA的SOC解决方案,将处理器、存储器、I/O接口等系统设计所需的功能模块集成到一个可编程逻辑器件FPGA上,构成一个可编程的片上系统。
SOPC一般采用大容量FPGA作为载体,用户可以在一片FPGA中定制MCU和DSP功能模块,并且将自己开发设计的逻辑功能模块以IP核的方式添加进去。
目前,大部分的应用是基于一个处理器的片上可编程系统,这种系统就是所谓的嵌入式单核系统。
单核系统结构简单,设计实现容易,然而,随着嵌入式处理需求的快速增长,单核系统逐渐暴露出设计的不足,系统的复杂度太高使得单核系统不能满足要求,在面对大数据量、多任务、多线程的实际问题时很难并行处理,这就加大了阻塞状态下的等待时间,从而延长了数据的交互时间,降低了算法的分析速度,较长的执行时间在实时性要求较高的应用中无法满足现实的需求,前期实验室在做509的项目中也发现了类似的问题。
项目中采用的是单核系统,由于任务数的增多,单核系统从BRAM向DDR中写入数据时,同时需要完成多个网口从DDR中读取数据,由于对存储器的访问不能同时进行,再加上非常快的处理速度,任务的调度出现混乱,使得有些数据还没来得及读取就被新的数据刷新,造成数据的丢失。
如果采用并行执行的双核系统进行处理,读写数据可以分别控制,实现两个进程的同步。
基于FPGA的双核系统缩短了阻塞状态下的等待时间,优化了系统性能。
伴随着单核系统在提升系统整体性能上出现瓶颈,嵌入式系统架构开始转向多处理器的协同工作,这样针对同一系统的多任务需求,协同工作的处理器可以充分完成各自管辖的不同功能应用。
近年来,FPGA凭借其高逻辑集成度和内嵌的高性能硬件模块优势,使得功能强大的芯片多处理器(CMP)解决方案成为现实。
本课题拟基于Xilinx公司FPGA开展双核系统的设计,突破双核系统设计的关键技术,利用双核系统更强的处理能力,分担应用系统复杂的任务,降低系统的响应时间,解决单核系统面对多任务的实际需求无法高效甚至实时处理的问题,为实际应用奠定技术基础。
总的来说,设计基于Xilinx公司FPGA的片上系统,利用标准化的总线连接各模块,组成一套完整的片上系统,为在此基础上添加新的外设和应用程序打好了基础。
本课题具有一定的开拓性,其预研成果能为将来在航空航天等领域使用片上系统提供一定的经验和技术基础,具有很好的指导和借鉴意义。
本课题的成果也将在后续FPGA嵌入式系统开发中得到应用和扩展,作为一项重要的技术储备,具有很强的应用前景和价值。
2.国内外在该方向的研究现状及分析
随着嵌入式技术的快速发展,为了使系统更为灵活完备,功能更为强大,对更多任务的完成具有更好的适应性,越来越多的FPGA厂商开始在FPGA的内部嵌入微处理器,并且嵌入微处理器的个数由一个发展到两个甚至更多。
嵌入微处理器个数的增多对FPGA的制造工艺着实是一种挑战,但挑战也带来系统性能的极大提高。
嵌入式微处理器目前有多种,常用的有软核MicroBlaze、硬核PowerPC405和硬核PowerPC440,开发基于不同微处理器的系统为实际应用中出现的问题提供了解决方案,面对不同层次、不同任务的实际需求,我们需要开发特定的系统来满足实际的应用。
随着对信息处理技术要求的不断提高,提升系统整体性能越来越受到重视,然而,嵌入式单核系统在实现功能、提升性能上出现瓶颈,新的设计方案被提出,基于FPGA的多核系统备受关注;重要的是,伴随设计技术的快速进步,在系统设计中采用IP核实现所需功能已成为广泛接受的设计方案,由于IP核已经过精心设计、验证和测试,它们可以直接为新的系统设计所采用,而无需更多的测试和验证,这就在相当大的程度上为现代的基于FPGA的原型构架和开发设计提供了有效和高效的手段。
下面将着重介绍嵌入式系统的发展现状以及基于Virtex-5双核系统的发展及应用现状。
2.1嵌入式系统的发展现状及分析
2.1.1嵌入式系统概述
一个嵌入式系统是一个具有特定功能或用途的计算机软、硬件的集合体。
通常的嵌入式系统是以嵌入式处理器为核心,根据具体应用需要外接一些存储器,外围接口等,完成特定功能,嵌入式系统的最高形式——片上系统(SystemonChip,SoC)将是这些技术的集大成者。
构架嵌入式系统的处理器有单片机、ARM、DSP等,另外,还包括嵌入在FPGA中的软核或硬核。
SOPC作为一种特殊的嵌入式系统:
首先,它是系统芯片SoC,即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁剪、可升级、可扩展,并具备软硬件在系统中的可编程功能。
由于SOPC结合了SoC和FPGA的优点,基于FPGA的嵌入式系统受到国内外学者的青睐。
2.1.2嵌入式系统现状分析
当前,可作为嵌入式系统开发的平台繁多,而之中的FPGA优势和特点极为明显,FPGA具有丰富的逻辑设计资源,可以完成复杂的数据处理任务以及逻辑控制任务,另外FPGA还具备独特的特点,特别适合嵌入式系统。
(1)、可重复编程。
当设计需要升级或者产品需要换代的时候,利用FPGA可以在现场或者远程更新设计,提高性能,满足更高的需求,完成升级换代。
(2)、设计周期短,研发费用低。
因为其设计不需要经过制造的过程,从而可以在短时间内将低成本高性能的嵌入式处理器内核与定制的FPGA电路集成的嵌入式系统方案产品以较快的速度推向市场。
(3)、通过FPGA中嵌入低成本、高性能的处理器,可以在一个芯片上集合多种功能,降低系统总成本、复杂性和功耗。
由于FPGA的这些先天的优势,再加上FPGA价格越来越被市场接受和认可,以“嵌入式微控制器+FPGA”为核心的嵌入式系统体系结构因其强大的处理能力和灵活的工作方式而被广泛采用,其在嵌入式系统中的前景也广为看好。
目前,结构最简单的嵌入式系统即为嵌入式单核系统,由于这种系统设计实现比较容易,基于FPGA的嵌入式单核系统已经广泛应用在航天、航空、工业机器人、系统控制等领域,然而,随着嵌入式处理需求的快速增长,海量数据处理对于嵌入式计算系统提出了更高的要求,多任务、多线程的实际问题也逐渐被提出,单核系统在面对大数据量、多任务时很难并行处理的缺点,加大了阻塞状态下的等待时间,耽搁了数据交互进程,降低了算法的分析速度。
面对这些问题和要求,单核系统逐渐暴露出设计的不足,在提升系统整体性能上出现瓶颈,较长的执行时间在实时性要求较高的应用中无法满足现实的需求,嵌入式系统架构面临新的挑战,开始转向多处理器的协同工作。
通过处理器之间的协同工作,各个处理器可以充分完成各自管辖的不同功能,处理数据量也会得到明显提升。
近年来,嵌入式单核系统的应用时代逐渐远离,嵌入式多核系统的开发应用得到大力支持。
截止到目前,基于FPGA的双核系统在国内国外都有所研究,但研究的内容在研究高度、研究平台上都有所不同。
在国内,对双核系统的研究已经展开。
(1)、吕平等人做过基于Virtex-IIPro开发板的双核系统设计,本设计针对Virtex-IIPro开发板进行双核系统设计难度大的问题,对极具挑战性的设计给出了方案。
设计充分利用板上资源,通过共享串口的方法实现双核系统的构建,该设计重点给出了系统的构建方法及共享资源控制机制,下载调试便利,测试结果验证了系统的可行性。
在设计中,利用起关键作用的IP核:
Mutex,完成对共享串口的互斥访问;通过共享BRAM进行数据交换,实现系统的并行协同处理;直接下载比特流即可实现双核的系统运行。
(2)、杨定定等人对基于MicroBlaze软核的SOPC系统进行了设计,此设计采用Spantan-6Atlys开发板,基于AXI低速总线实现双核系统的构架。
主要利用Mailbox和MutexIP核实现双核之间的通信,同时,在两个低速MicroBlaze之间加入一个axi2axi_connector实现总线上slave共享,在软件平台XilinxEDK上进行软件程序的编写,得出了核间通信的可行性以及共享slave实现LED灯时控实用性。
由于XilinxFPGA内置两个MicroBlaze处理器软核,这种处理器在上电的时候根据配置文件在FPGA内部生成,具有设计的灵活性、适应性,应用的实时性和广泛性。
国外的研究层次相对国内来说要高,在双核系统的设计上,赛灵思公司的技术相对比较成熟,在Virtex-4和Virtex-5开发平台上对基于MicroBlaze软核和PowerPC硬核的双核系统提出了设计方案。
双核系统的研究在国内外通过不同的手段实现了双核之间的数据通信,选择的开发平台各异,但对于双核系统的启动功能没有做出研究,这对于实际应用带来不便,总的来说,还有很大的提升空间。
嵌入式系统是面向用户、面向产品、面向应用而提出的,因此必须与具体应用相结合才会具有生命力、才更具有优势。
我们设计的嵌入式系统要服务于实际应用,这样才能体现它的专用性,必须结合实际,满足应用系统的功能、可靠性、成本、体积等要求,所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需求的系统,是一个比较好的发展模式。
2.2基于Virtex-5嵌入式系统的发展现状及分析
Virtex-5系列是Virtex系列FPGA的第5代产品,Virtex-5FXTFPGA的推出,意味着组成Xilinx公司Virtex-5系列的四款FPGA平台已经全部推出。
Virtex-5第一个平台LX是针对逻辑应用领域而优化的、第二个平台LXT则是针对支持低功耗串行连接逻辑应用领域而优化、第三个SXT平台是针对支持串行连接的DSP应用领域而优化、而前不久推出的FXT平台是专门针对支持高速串行连接的嵌入式处理应用领域而优化的。
四个平台的24款器件都提供了一系列创新的特性。
Virtex-5FXTFPGA提供了同时符合两个业界标准的PowerPC440处理器,其增强的系统性能可支持设计人员快速容易地实现先进的可升级嵌入式处理应用。
每个处理器集成32KB指令和32KB数据缓存,在550MHz时钟下可以提供高达1,100DMIPS的性能。
先进的处理器模块架构,支持128位连接纵横交叉式构造,大大提高了系统能力。
Virtex-5FXTFPGA可为有线和无线通信、音频、视频广播设备、军事、航空航天、工业系统以及其它应用提供了一个终极系统集成平台。
Xilinx新发布的ISEDesignSuite10.1开发工具为Virtex-5FXTFPGA平台提供全面支持。
然而,在Virtex-5的开发平台上进行单核系统的设计并不能充分发挥开发板的价值,越来越多的研究者着手在本开发平台上进行双核系统的设计。
然而,对于同一系列的不同开发板,其上FPGA集成的处理器核也存在不同,同是Virtex-5系列的开发平台,在ML510的开发板上,嵌入了两个PowerPC440硬核,此硬核较PowerPC405硬核有更突出的优势,550M的时钟频率比PowerPC405硬核450M的时钟频率有所提高,并且性能也有很大改善,本设计考虑在其上进行双核系统的设计。
赛灵思公司在Virtex-5系列的开发平台上已进行了如下的设计:
1.基于Virtex-5ML505开发平台实现两个MicroBlaze双核系统设计;
2.基于Virtex-5ML507的开发板,实现MicroBlaze软核和PowerPC405硬核的双核系统的设计。
这两种类型的设计,虽然选择了不同的处理器组合,但有其共同之处,其设计平台的选择高于国内,选用的都是Xilinx高端系列产品,这为系统性能提供了保障。
这两种设计方案均采用XPS提供的用于核间通信的重要IP核:
Mailbox和Mutex,这点与国内的研究是类似的。
到目前为止,基于Virtex-5的双核系统的设计和应用并不是很多,但它的较大的应用前景和应用价值吸引了越来越多的人对它展开研究。
3.主要研究内容
1)掌握XilinxVirtex-5系列FPGA开发工具ISE,重点掌握嵌入式开发工具XPS和SDK。
利用硬件开发平台XPS提供的大量IP核搭建系统,同时,在软件开发工具SDK中用C语言编写逻辑来实现相应的功能;
2)构建基于PLB总线的双PowerPC440系统,并分别通过SharedBRAM及Mailbox方式实现双核系统的数据交互,通过Mutex实现双核的同步运行,解决对共享资源访问的问题。
重点掌握Mailbox和MutexIP核的开发和应用方法;
3)基于SystemACE和iMPACT工具,完成双核系统配置文件的存储和加载,实现系统的自启动功能;
4)对课题工作进行总结,形成研究工作总结和论文。
4.研究方案
本课题是以设计单核系统为基础,在XPS中利用其提供的大量IP核设计包含两个处理器内核的双核系统,通过SDK中编程实现双核的同步运行及双核之间数据的交互,数据交互的方案有多种,重点掌握SharedBRAM和Mailbox的实现原理;双核同步运行的实现是通过IP核Mutex完成的;在众多的系统自启动的方案中,经过对比分析,确定了基于SystemACE和iMPACT工具的设计,之后经过一系列的实验验证,确定设计的合理性及可靠性,下面将对研究方案进行详细分析:
4.1总体设计方案
4.1.1硬件开发平台介绍
在Virtex-5系列ML510的开发平台上,FPGA提供了包含两个处理器的开发环境,包括PowerPC440硬核处理器和MicroBlaze软核处理器。
对于MicroBlaze软核处理器,在使用的过程中必须通过HDL语言或网表进行描述,使用虽然灵活,但编程比较麻烦,而高处理速度、低延迟的PowerPC440硬核处理器不仅具有较高的性能,用起来简单,容易上手,因此,在本课题中,设计包含两个PowerPC440硬核处理器的双核系统成为重点。
这部分主要是在XPS中实现硬件工程设计。
本课题是基于Virtex-5ML510的开发板进行的设计,开发板实物图如图1所示:
图1ML510开发板实物图
此开发平台提供了型号为XC5VFX130T的FPGA,该款FPGA内部集成了两个高性能的PowerPC440硬核处理器,内置大量IP核系统级模块,另外,此开发板还提供双串口输出,省去了单串口输入输出的麻烦,对于调试带来了很大的便利;同时,开发板上还提供SystemACECF卡模块,为系统的自启动功能的实现提供方案;具备2GB内存的DDR2内存条,可以为系统提供更大的存储空间。
功能强大的ML510开发平台为本课题的完成提供了支持和保障。
4.1.2基于FPGA的双核系统构建
ML510的开发板为课题提供了性能齐全的实验平台,便捷的软件开发工具XPS(XilinxPlatformStudio)提供灵活、面向用户的设计向导,这些条件支撑了整个设计的完成。
通过XPS设计的双核系统的总体硬件设计图如图2所示:
图2系统总体硬件设计简图
由于本设计涉及到的IP核在创建的过程中都已经添加,因此不需要定制额外的IP核。
系统的总体框架完成之后,需要生成系统的硬件网表,即对嵌入式系统进行综合,之后生成硬件系统的比特流文件,即完成翻译(将综合输出的逻辑网表翻译成所选器件的底层模块和硬件原语)、映射(将设计映射到器件结构上)和布局布线,达到在选定器件上实现设计的目的。
在本设计中用到的IP核除PowerPC440外,还用到Mailbox、Mutex、SharedBRAM、SysACE_CompactFlash以及必不可少的中断、定时控制器等,详细的IP核的介绍将在下面的设计方案中给出。
4.2双核之间数据交互的设计方案
在XPS中提供了大量集成的IP核,如何巧妙的运用已有的IP核实现双核间数据的交互成为本课题的重点。
能够使两个硬核处理器之间实现数据交互,在其中一个处理器中灵活的调用另一个处理器产生的数据,数据交互的过程中同步实现数据的存储,因此整个过程还要用到PowerPC440的自带内存储器作为缓存。
本设计列出了两种进行核间数据交互的方案:
1)基于SharedBRAM共享内存方式。
2)基于Mailbox实现核间数据的交互。
下面将对上述两种方案做详细分析:
4.2.1基于SharedBRAM共享内存方式
基于SharedBRAM上共享内存方式相对来说比较简单。
SharedBRAM是FPGA片上资源,同时挂接在Plb_v46_0和Plb_v46_1两条总线上,共享内存是一种典型的快速异步通信机制,适应于1000字节的大型数据量共享情况,并且通过访问SharedBRAM的方式速度相对较快。
SharedBRAM内存大小从8K到256K的变化范围,可以任意配置内存大小;同时灵活的真双端口RAM,两个端口对称且完全独立,仅共享存储的数据;存储器读写数据端口宽度以及写使能字节的位数都可配置,为SharedBRAM的应用提供了很大的便利。
通过片上共享内存实现核间数据交互的结构图如图3所示:
图3基于SharedBRAM实现核间数据交互结构图
首先,处理器1向SharedBRAM内存中写入数据,待写完后,处理器2从SharedBRAM的同一地址读取数据,若读取的数据与写入的数据值相等,则代表两个核之间数据交互成功。
同样的道理,可以先从处理器2向SharedBRAM写入数据,处理器1从其中读取,这种方式简单,容易实现,比较适合在突发性的大量数据实现交换,但两个处理器对SharedBRAM读写数据不灵活,只能从特定的地址读取特定的数据,无法实现数据的实时交互,并且处理器之间没有直接的的数据交流,考虑到这些不足,本设计又从另一个角度实现核间数据的交互。
4.2.2基于Mailbox实现核间数据的交互
这种方案采用XPS提供的用于核间通信的Mailbox,该IP核的主要功能是用于两个处理器间的通信,使两个单独的处理器系统建立连接;其他的多端口IP核:
如内存控制器,也可以通过Mailbox被两个系统共享;除了在处理器之间发送实际的数据之外,Mailbox还可以用来在处理器之间产生中断。
图4MailboxinaPLBv46System
这种方案借助Mailbox自带数据发送和接收FIFO,每个Mailbox自带两个FIFO,它通过消息队列实现数据块的转移,两个处理器之间可以实现直接的数据交互,并且更适宜频繁的数据帧交换的系统。
这种方式解决了通过SharedBRAM实现核间数据交互的不足,数据交互速度有了很大的提高,在实际多任务情况下各任务之间数据的及时传输需求下,得到了很好的解决。
4.3双核的同步设计方案
双核系统中,程序可以在两个内核上同时执行,然而当访问共享资源时,如果不对线程进行同步,就有可能发生各个线程之间相互覆盖共享数据的情况,造成访问数据处于不一致的状态,这是使系统不稳定的一大隐患。
为了解决这个问题,本课题对双核的同步进行了设计,采用Mutex访问共享资源提供的互锁机制。
Mutex是XPS提供的用于处理多线程同时工作时对共享资源的访问的重要IP核,每个Mutex核包含可配置数目的mutexes,每一个mutex可以和一个32位的用户配置寄存器相连,此寄存器用来存储任意的数据。
Mutex提供多核环境下处理器对共享设备的互斥访问。
当一个处理器正在访问共享资源时会阻碍另一个处理器对相同的地址进行访问。
其互斥访问机制的原理图如图5所示:
图5Mutex提供互斥访问机制的原理图
Mutex具有32bit的写数据寄存器,CPU_0访问共享资源前,先向该数据寄存器写自己的CPU_ID,如果Mutex设备空闲,则将CPU_ID写入寄存器,并将Mutex自带的Lock置1。
CPU_0通过查询和比较写数据寄存器和自己的CPU_ID,以确定是否获得访问共享资源的权限。
没有获得权限,则等待或者退出;获得权限后,对共享资源访问,访问结束后释放锁。
CPU_1待释放锁后将自己的CPU_ID写入数据寄存器,开始对共享资源的访问,如此通过申请权限、获得权限、释放权限的流程完成两个线程下对共享资源的访问,实现双核的同步运行。
通过上述方案,可以解决两个处理器同时访问共享资源有冲突的问题,实现双核的同步。
4.4双核系统启动的设计方案
由于设计的双核系统是为处理多任务的实际问题考虑的,而在执行任务的过程中,不可能在线运行,实时性和便携性的要求使得设计的嵌入式系统需要具备自启动功能,替
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开题报告基于Xilinx FPGA的双核系统设计 开题 报告 基于 Xilinx FPGA 系统 设计