基于C语言的设计方式简化FPGA协处理器混合平台软硬件协同设计.docVIP

基于C语言的设计方式简化FPGA协处理器混合平台软硬件协同设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C语言的设计方式简化FPGA/协处理器混合平台软硬件协同设计 在最近几年中日益流行在高性能嵌入式应用中使用现场可编程门阵列(FPGA)。FPGA已经被证明有能力处理各种不同的任务,从相对简单的控制功能到更加复杂的算法操作。虽然FPGA在某些功能上比ASIC硬件具有时间和成本上的优势,但在面向软件应用中的FPGA比传统处理器和DSP的优势并没有体现出来。这很大程度上是由于过去割裂了硬件和软件开发工具和方法之间的关系。    然而最近FPGA在软件设计工具方面的发展,及器件容量的持续增加为软件开发者创造了新的环境。在这种环境下,FPGA可视为软件编译器的一个可能的目标。现在,工具能够帮助软件工程师利用FPGA平台,同时在结合了传统处理器(或软处理器核)和FPGA的单一目标平台上,帮助这些开发者利用其所具有的高度算法并行性。    基于FPGA的计算平台,尤其是那些具有嵌入式“软”处理器的平台,有能力实现非常高性能的应用。通过使用最新一代的硬件/软件协同设计工具,有可能使用多种面向软件的设计方式作为FPGA设计过程的一部分。    使用基于FPGA的参考平台    FPGA中使用嵌入式处理器的优势之一是能够在单个可编程器件上建立硬件/软件开发对象——等效硬件参考平台。 快速下载和测试新的软件/硬件配置的能力也能大大提高设计率。通过使用嵌入式处理器作为测试生成器,单独的硬件部件也可以快速地验证功能。    这种快速原型平台的典型例子是Altera公司提供的Nios开发包。Cyclone或Stratix FPGA中都包括这个工具包,除了高性能的Nios 32位软核处理器核之外还包括多种硬件和软件外设接口。在设计过程中可以选择这种核,使用Altera SOPC Builder工具配置并下载到相应的FPGA中。板上本身的连接容许直接和各种不同的外部部件连接,从串口(RS232和USB)到Flash存储器和网络接口。    在开发过程中使用这种板子并结合Altera工具,容许嵌入式系统设计者用应用原型所需的部件(包括嵌入式处理器)组成目标平台。然后,软件开发者能够关注应用本身,分析和试验不同的硬件/软件划分方案。   权衡硬件和软件资源    在一些高性能嵌入式应用中,从产品构建费用和开发成本考虑最佳的资源使用方案是混合处理器方案。在这种方案中非关键性能的功能由主处理器实现(它们可能是或不是嵌入式处理器核),而大计算量的部件是一个或多个DSP芯片、或者其它专用ASIC或FPGA。这种的解决方案通常需要丰富的硬件设计和工具的知识,但是在性能和成本方面上具有最佳的收益。    对于系统中的每个处理单元(即标准处理器、DSP、FPGA或ASIC),需要不同水平的专用技能。例如,虽然DSP是软件可编程的,在工具上的初期投入小,但他们需要在DSP专门的设计技术方面有一些专门经验,通常需要汇编级的编程技能。在另一方面,FPGA在设计和工具经验上需要相对高的投入,在硬件设计语言作为主要的设计输入方式时尤其如此。    然而FPGA和专用ASIC设计所需的经验和工具投入相比,显然FPGA在开发专用硬件上具有更低的风险。的确,相对于专用ASIC方案的简单性和低风险的设计过程是选择FPGA的关键因素。最近基于软件的FPGA设计工具使这种设计过程获得更大的效率。这反过来让系统设计者和软件应用开发者在实际的硬件上能够更快地尝试新的算法方式,使用迭代方式进行设计。    这种迭代方式重要好处是能够一次改变一个单元(例如将关键的算法移至FPGA)。应用最初是完全用软件进行原型设计,并验证其正确性,然后由FPGA完成特定的功能,这是在每个步骤都要对系统重新进行验证的硬件实现过程。这种方式被证实能大大地缩短调试时间,降低引入难以调试的系统错误的风险。    你如何在考虑“将设计的哪部分以硬件实现”上做出最明智的选择?一个普遍采用的方式是从用C,Matlab,SystemC或其它一些软件编程语言的软件模型开始。随着应用模型和部件算法的发展,设计者确定并发挥设计中的并行性(或重新设计算法),利用可编程硬件在建立并行结构方面的独有能力。增加并行度通常转化为增加硬件资源。使用软件模型验证假设,建立可重复的测试组,这些测试组可以作为模型,进一步提炼可以进行软件和硬件编译的内容。   混合软硬件设计方法    现今如何开发混合软件和硬件应用呢?如果设计是软件驱动的(现今越来越多的设计是这样),软件或系统工程师从编写代码(如上所述)来建立系统原型。 另一种是,工程师用更高级的工具如Simulink(来自Mathworks),基于UML的工具或其它系统设计环境开始。 在这个过程中,系统设计者或软件工程师将采用更高级的设计抽象以获得最大的效率,但是可能获

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档