基于c语言的设计方式简化fpga协处理器混合平台软硬件

基于c语言的设计方式简化fpga协处理器混合平台软硬件

ID:19299883

大小:99.00 KB

页数:5页

时间:2018-09-25

基于c语言的设计方式简化fpga协处理器混合平台软硬件_第1页
基于c语言的设计方式简化fpga协处理器混合平台软硬件_第2页
基于c语言的设计方式简化fpga协处理器混合平台软硬件_第3页
基于c语言的设计方式简化fpga协处理器混合平台软硬件_第4页
基于c语言的设计方式简化fpga协处理器混合平台软硬件_第5页
资源描述:

《基于c语言的设计方式简化fpga协处理器混合平台软硬件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于C语言的设计方式简化FPGA/协处理器混合平台软硬件协同设计在最近几年中日益流行在高性能嵌入式应用中使用现场可编程门阵列(FPGA)。FPGA已经被证明有能力处理各种不同的任务,从相对简单的控制功能到更加复杂的算法操作。虽然FPGA在某些功能上比ASIC硬件具有时间和成本上的优势,但在面向软件应用中的FPGA比传统处理器和DSP的优势并没有体现出来。这很大程度上是由于过去割裂了硬件和软件开发工具和方法之间的关系。  然而最近FPGA在软件设计工具方面的发展,及器件容量的持续增加为软件开发者创造了新的环境。在这种环境下,FPGA可视为软件编译器的一个可能的目标。现在,工具能够

2、帮助软件工程师利用FPGA平台,同时在结合了传统处理器(或软处理器核)和FPGA的单一目标平台上,帮助这些开发者利用其所具有的高度算法并行性。  基于FPGA的计算平台,尤其是那些具有嵌入式“软”处理器的平台,有能力实现非常高性能的应用。通过使用最新一代的硬件/软件协同设计工具,有可能使用多种面向软件的设计方式作为FPGA设计过程的一部分。  使用基于FPGA的参考平台  FPGA中使用嵌入式处理器的优势之一是能够在单个可编程器件上建立硬件/软件开发对象——等效硬件参考平台。快速下载和测试新的软件/硬件配置的能力也能大大提高设计率。通过使用嵌入式处理器作为测试生成器,单独的硬件

3、部件也可以快速地验证功能。  这种快速原型平台的典型例子是Altera公司提供的Nios开发包。Cyclone或StratixFPGA中都包括这个工具包,除了高性能的Nios32位软核处理器核之外还包括多种硬件和软件外设接口。在设计过程中可以选择这种核,使用AlteraSOPCBuilder工具配置并下载到相应的FPGA中。板上本身的连接容许直接和各种不同的外部部件连接,从串口(RS232和USB)到Flash存储器和网络接口。  在开发过程中使用这种板子并结合Altera工具,容许嵌入式系统设计者用应用原型所需的部件(包括嵌入式处理器)组成目标平台。然后,软件开发者能够关注应

4、用本身,分析和试验不同的硬件/软件划分方案。 权衡硬件和软件资源  在一些高性能嵌入式应用中,从产品构建费用和开发成本考虑最佳的资源使用方案是混合处理器方案。在这种方案中非关键性能的功能由主处理器实现(它们可能是或不是嵌入式处理器核),而大计算量的部件是一个或多个DSP芯片、或者其它专用ASIC或FPGA。这种的解决方案通常需要丰富的硬件设计和工具的知识,但是在性能和成本方面上具有最佳的收益。  对于系统中的每个处理单元(即标准处理器、DSP、FPGA或ASIC),需要不同水平的专用技能。例如,虽然DSP是软件可编程的,在工具上的初期投入小,但他们需要在DSP专门的设计技术方面

5、有一些专门经验,通常需要汇编级的编程技能。在另一方面,FPGA在设计和工具经验上需要相对高的投入,在硬件设计语言作为主要的设计输入方式时尤其如此。  然而FPGA和专用ASIC设计所需的经验和工具投入相比,显然FPGA在开发专用硬件上具有更低的风险。的确,相对于专用ASIC方案的简单性和低风险的设计过程是选择FPGA的关键因素。最近基于软件的FPGA设计工具使这种设计过程获得更大的效率。这反过来让系统设计者和软件应用开发者在实际的硬件上能够更快地尝试新的算法方式,使用迭代方式进行设计。  这种迭代方式重要好处是能够一次改变一个单元(例如将关键的算法移至FPGA)。应用最初是完全

6、用软件进行原型设计,并验证其正确性,然后由FPGA完成特定的功能,这是在每个步骤都要对系统重新进行验证的硬件实现过程。这种方式被证实能大大地缩短调试时间,降低引入难以调试的系统错误的风险。  你如何在考虑“将设计的哪部分以硬件实现”上做出最明智的选择?一个普遍采用的方式是从用C,Matlab,SystemC或其它一些软件编程语言的软件模型开始。随着应用模型和部件算法的发展,设计者确定并发挥设计中的并行性(或重新设计算法),利用可编程硬件在建立并行结构方面的独有能力。增加并行度通常转化为增加硬件资源。使用软件模型验证假设,建立可重复的测试组,这些测试组可以作为模型,进一步提炼可以

7、进行软件和硬件编译的内容。 混合软硬件设计方法  现今如何开发混合软件和硬件应用呢?如果设计是软件驱动的(现今越来越多的设计是这样),软件或系统工程师从编写代码(如上所述)来建立系统原型。另一种是,工程师用更高级的工具如Simulink(来自Mathworks),基于UML的工具或其它系统设计环境开始。在这个过程中,系统设计者或软件工程师将采用更高级的设计抽象以获得最大的效率,但是可能获得很低的性能结果。因为以这种方式自动选用的处理器类型是受限的,为性能转换低级代码的机会相对更少。有经验的嵌

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。