一种基于FPGA的板上系统实现方法与流程

文档序号:13876325阅读:850来源:国知局
一种基于FPGA的板上系统实现方法与流程

本发明涉及一种基于fpga的板上系统实现方法,属于计算机系统硬件技术领域。



背景技术:

进入二十一世纪以来,半导体工艺的进步和高性能计算的需求推动了计算机系统的迅猛发展,处理器的体系结构发生了巨大变化。作为计算机核心部件的处理器,其性能的提升在很大程度上归功于半导体工艺的进步和体系结构的发展。半导体工艺的进步和体系结构的发展一直是相互促进的关系,前者是后者的基础,后者又推动着前者。体系结构发展上的每一次变化都伴随着芯片上集成晶体管数目的突破,可以说是晶体管数目的“量变”所导致的“质变”。

在处理器技术的发展过程中,可重构计算是一个重要的方向。可重构计算(reconfigurablecomputing)的概念最早由estrin等在1963年提出,但是现在的概念与当时已有较大不同,目前所常用的可重构计算是指:系统具有某种形式可编程性的硬件,可通过一系列物理控制点定期的定制硬件的功能,从而可以使用相同的硬件执行不同的应用。可重构计算有望填补硬件计算(基于asic的计算)和软件计算(基于通用处理器的计算)之间在性能与灵活性上的鸿沟,从而在获得高于软件计算的性能同时保持高于硬件计算的灵活性。

可重构计算的器件通常由计算单元(computationalelements)阵列和连线资源(routingresources)构成,两者都是可编程的。计算单元又被称作逻辑块(logicblock),它的功能由一定数量的配置位所决定,逻辑块之间的互连由连线资源所决定。逻辑块实现简单的逻辑功能,经过可配置连线的连接从而实现复杂的定制功能。根据逻辑块粒度的大小,可重构器件可以分为细粒度结构和粗粒度结构,一些更细化的分类也将粒度大小分为细粒度、中等粒度、粗粒度和超粗粒度。最常见的可重构硬件当属fpga(fieldprogrammablegatearrays),有些文献直接将基于fpga的计算等同于可重构计算,fpga就是一种细粒度可重构器件。

一般可重构计算系统都采用可重构硬件和通用微处理器结合的形式,通用处理器执行可重构硬件无法高效完成的操作,例如数据依赖的控制、存储访问等,而计算密集的程序热点则被映射到可重构硬件上完成。根据通用微处理器和可重构硬件的耦合方式,可重构硬件在计算系统中大致可以分为四类:可重构功能单元、可重构协处理器、可重构附属处理单元和可重构的独立处理单元。

在商用可重构硬件中,fpga最为成熟普遍,而它通常作为独立的芯片甚至板卡的形式存在,所以在现有商用可重构计算系统中,fpga的使用最多,且多数是以上述后两种耦合结构存在的,如作为附属处理单元的有intelquickassist的fsb-fpga加速系统以及xtremedata的fpga加速平台等,作为独立处理单元的有src-7可重构超级计算机等。

可重构计算使用可重构硬件针对不同的应用进行定制,可以充分利用从指令级到任务级间多个级别的并行性,从而达到接近asic的性能;并通过运行时重构(run-timereconfiguration,rtr)对可重构硬件进行电路功能的重配置,从而保持着接近软件的灵活性。因此,可重构计算相对于两个极端都具有更高的性价比,而与通用计算相比,在不同应用中取得了显著的性能提升且具有更低功耗,如入侵检测、模式匹配、数值分析、生物信息等。

从实现角度讲,编写或使用模拟器能够更便捷的进行处理器或者系统的模拟。而使用硬件描述语言在fpga物理硬件上实现一个处理器,则与实际计算机更为贴近。如何在fpga上实现计算机系统硬件大体有两类:一种是主要使用硬件描述语言,在寄存器传输级(rtl,registertransferlevel)上进行开发设计。此种方式接近c语言的开发形式,具有较高的抽象程度,但容易忽视实际的电路图。虽然一些fpga综合工具支持根据hdl代码自动生成对应的电路图,但这种电路图对用户友好度不是很好,因为容易造成主次不分,抓不住重点。另一种则主要使用门电路逻辑,以电路图形化的方式从最简单的与非门出发,搭建所需的部件,如多路选择器、加法器等,再到cpu的各个模块,如数据通路、控制器、alu等。很明显,第二种更贴近硬件,所需的工作量也更大,要完全掌握各个部件之间的线网连接,知晓各个数据信号的走向,在各个部件之间的传输过程。这种工作太过精细,很容易因为个别信号线处理不当,导致整体系统运行不符合预期,同时,加大了调试的难度。

针对以上现有模式存在的弊端,本发明提供了一种基于fpga的板上系统实现方法,硬件描述语言的实现、调试和测试等多方面维度,利用fpga的重构特点来达到对计算机系统硬件平台的快速构建,提高了计算机系统硬件的实现和测试效率。由于本发明最终在fpga板上进行实现,故此称为板上系统。



技术实现要素:

本发明为了克服以上技术的不足,提供了一种基于fpga的板上系统实现方法。

本发明克服其技术问题所采用的技术方案是:

一种基于fpga的板上系统实现方法,包括步骤如下:

s1、建立处理器模块:所述处理器模块包括控制器和数据通路;

s2、建立fpga设备模块:所述fpga设备模块包括ps/2接口、rs232接口、vga接口、7段led显示屏、led显示屏、switch、button、片上rom、总线接口以及io控制逻辑;

s3、建立板上存储器模块:所述板上存储器模块包括vram和内存;

s4、将处理器模块、fpga设备模块、存储器模块的电路综合为流文件,烧写到fpga上。

本发明优选的,所述步骤s1中,处理器模块的内部连接方式为:控制器与数据通路通过片上网络连接。

本发明优选的,所述步骤s2中,fpga设备模块的内部连接方式为:所述ps/2接口、rs232接口、vga接口、7段led显示屏、led显示屏、switch及button均通过io总线连接至io控制逻辑。

本发明优选的,所述处理器模块与fpga设备模块之间的连接方式为:控制器通过控制线与总线接口连接,数据通路通过片上网络与片上rom及总线接口连接。

本发明优选的,所述步骤s3中,内存包括静态或动态存储器层次构架,可用于cache和独立存储。

本发明优选的,所述步骤s3中,板上存储器模块的内部连接方式为:vram和内存全都连接至板上总线,所述板上总线包括控制总线,32位数据总线,n位地址总线,以及16位tag总线或vram总线;其中n位地址总线中的n由实现时地址的长度确定。

本发明优选的,所述板上存储器模块与fpga设备模块之间的连接方式为:板上存储器模块与fpga设备模块通过板上总线连接,所述板上总线包括控制总线,32位数据总线,n位地址总线,以及16位tag总线或vram总线;其中n位地址总线中的n由实现时地址的长度确定。

本发明优选的,所述fpga设备模块中,ps/2接口与外部键盘连接,rs232接口与外部pc终端连接,vga接口与外部vga显示器连接。

本发明的有益效果是:

1、实现效率高。fpga所提供的硬件资源丰富,可以快速的将设计好的计算机系统硬件在fpga上进行实现,实现效率更高。

2、灵活性高。由于fpga是可以重配置的,当计算机系统硬件的部分硬件参数发生变化时,可以在运行时进行重新配置,这就使得通过fpga实现的计算机系统硬件更加灵活。

附图说明

图1为本实施例的基于fpga的板上系统实现方法的流程示意图。

图2为本实施例的fpga板上系统结构示意图。

具体实施方式

为了便于本领域人员更好的理解本发明,下面结合附图和具体实施例对本发明做进一步详细说明,下述仅是示例性的不限定本发明的保护范围。

本发明所述的一种基于fpga的板上系统实现方法,如图1和2所示,包括步骤如下:

s1、建立处理器模块:所述处理器模块包括控制器和数据通路。

所述步骤s1中,处理器模块的内部连接方式为:控制器与数据通路通过片上网络连接。

s2、建立fpga设备模块:所述fpga设备模块包括ps/2接口、rs232接口、vga接口、7段led显示屏、led显示屏、switch、button、片上rom、总线接口以及io控制逻辑。

所述步骤s2中,fpga设备模块的内部连接方式为:所述ps/2接口、rs232接口、vga接口、7段led显示屏、led显示屏、switch及button均通过io总线连接至io控制逻辑。

所述处理器模块与fpga设备模块之间的连接方式为:控制器通过控制线与总线接口连接,数据通路通过片上网络与片上rom及总线接口连接。

s3、建立板上存储器模块:所述板上存储器模块包括vram和内存,所述内存包括静态或动态存储器层次构架,不仅可用于cache,还可以用于独立存储。

所述步骤s3中,板上存储器模块的内部连接方式为:vram和内存全都连接至板上总线,所述板上总线包括控制总线,32位数据总线,n位地址总线,以及16位tag总线或vram总线;其中n位地址总线中的n由实现时地址的长度确定。控制总线用于发送控制信号,如read/write,32位数据总线用于收发数据,n位地址总线用于发送访存地址,其中控制总线以及16位tag总线或vram总线未在图2中画出。

所述板上存储器模块与fpga设备模块之间的连接方式为:板上存储器模块与fpga设备模块也通过板上总线连接,所述板上总线包括控制总线,32位数据总线,n位地址总线,以及16位tag总线或vram总线;其中n位地址总线中的n由实现时地址的长度确定。

s4、将处理器模块、fpga设备模块、存储器模块的电路综合为流文件,烧写到fpga上。

具体地,如图1所示,在将处理器模块、fpga设备模块、存储器模块的电路综合后,进行波形仿真判断,如果波形仿真不正确,则继续调试,直到波形仿真正确,然后生成流文件;同时,采用汇编语言和高级语言编写软件程序,将两种语言编写的程序交叉编译后,通过模拟器运行,如果不符合预期,则继续调试,直到调试到符合预期,然后生成可执行文件,最后将可执行文件连同生成的流文件一并烧写到fpga上。

所述fpga设备模块中,ps/2接口与外部键盘连接,rs232接口与外部pc终端连接,vga接口与外部vga显示器连接。

以上仅描述了本发明的基本原理和优选实施方式,本领域人员可以根据上述描述做出许多变化和改进,这些变化和改进应该属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1