第3节 C2H Cmpiler 的使用.docxVIP

  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文档。上传文档
查看更多
第3节 C2H Cmpiler 的使用

Nios II C-to-Hardware加速(C2H) 编译器是使得用户可以直接从ANSI C源代码创建定制外设加速器。硬件加速器是在硬件中实现C函数的逻辑模块,通常可以提高执行效率一个数量级。使用C2H编译器,用户可以在以Nios II 处理器为目标处理器的C程序中开发和调试一个算法,然后将C代码转化成在FPGA实现的硬件加速器。??????? C2H编译器通过将特定的C函数实现为硬件加速器,来改善Nios II程序的性能。C2H编译器不是将C作为设计语言来产生任意的硬件系统的工具。 C2H编译器建立在下面的前提之上:ANSI C的语法足以描述计算密集或是存储器访问频繁的任务。C-to-hardware工具一定不能打乱已有的软件和硬件开发流程。基于以上的前提,C2H编译器的设计方法论提供下面的特性:兼容ANSI C—— C2H编译器对ANSI C代码进行操作,支持大部分的C构造,包括指针、数组、结构、全局和局部变量、循环和子函数调用。C2H编译器不需要特殊的语法或者库函数来指定硬件的结构。?直接的C到硬件映射—— C2H编译器将C语法的每一个元素映射成一个定义的硬件结构,赋予用户对硬件加速器的结构的控制。同Nios II IDE集成——用户通过Nios II IDE控制C2H编译器,不必去学习使用C2H编译器的环境。基于SOPC Builder和Avalon交换架构—— C2H编译器使用SOPC Builder将硬件加速器连接到Nios II系统中。C2H加速器成为一个Nios II系统中的一个元件。SOPC Builder自动地产生Avalon交换架构将加速器连接到系统,省去了手动集成硬件加速器的时间。报告生成的结果—— C2H编译器产生一个详细的报告:包括硬件结构、资源使用和吞吐量。C2H编译器生成的硬件加速器有下面的特性:并行时序—— C2H编译器认可并行发生的事件。独立的声明在硬件上是同时执行的。直接存储器访问—— 加速器可以同时和Nios II处理器访问的相同的存储器。循环流水线—— C2H编译器基于存储器访问延迟和并行执行的代码大小,将循环的逻辑实现流水线化。?存储器访问流水线—— C2H编译器采用流水线来访问存储器以降低持仓前延迟的效应。8.3.1 C2H 概念??????? 这部分介绍一些支撑C2H编译器的基本概念。这些概念帮助读者更好地理解C2H编译怎样工作,以及怎样来获得更好的结果。1. 简单和易于使用C2H编译器将对现有的设计流程的影响降到最小。生成硬件加速器的流程和为加速器连接软件使用熟悉的Nios II IDE和 SOPC????? Builder设计工具。在Nios II IDE中编译的时候,用户可以指定是否一个C函数是作为处理器的指令还是硬件加速器进行编译。C2H编译器在后台调用其它的工具来处理硬件和软件的集成工作。特别地,C2H编译器在后台自动执行那个下面的任务:1. 调用SOPC Builder指定硬件加速器怎样连接到系统,然后生成系统硬件。2. 调用Quartus II 编译硬件设计,生成FPGA配置文件。2. 快速的反复设计以找到最优的软硬件分配比例 C2H编译器允许用户在C代码中方便地更改硬件和软件的分界线,不需要很多的额外的??????? 设计工作。因此,用户可以很自由地进行重复的设计,实验多种结构。使用HDL文件来编写硬件加速器则需要很多的时间去创建逻辑设计和将加速器集成到系统中去。功能和性能需求的改变将会对设计实践产生很大的影响。??????? 使用C2H编译器,用户可以加速必要的函数来获得需要的性能。用户可以通过简单的编辑C的源代码来平衡性能和资源的使用。通过这些可用的工具,获得渴望的系统性能的过程经历了深远的改变。设计时间从创建、接口、调试硬件向完善算法实现和寻求最优的系统结构倾斜。3. 加速对性能影响大的代码C2H编译器只转化用户指定的代码。典型的程序中包含对性能影响大的代码以及其它的代码。对性能影响大的代码通常是重复和简单的,但是消耗了处理器执行的大部分时间。这些代码占用处理器来计算数值或移动数据,或进行以上的两种工作。硬件资源最好用来加速对性能影响大的函数,而不是将整个程序转换成硬件。4. C2H 编译器工作在函数级??????? 用户想要加速的代码必须是一个独立的C函数。C2H编译器将选中的函数内部的所有代码转化成硬件加速器模块。如果加速的函数中调用了子函数, C2H编译器也将子函数转化成硬件加速器。因此,用户必须注意,是否子函数也是适合C2H加速的。如果用户想要加速的代码,不再一个函数中,那么要将这些代码放到一个函数中去。转换成的硬件加速器只完成处理器密集的任务,而不是处理器可以高效实现的设置和控制等任务。5. 系统结构图8-31显示了一个简单的Nios II 处

文档评论(0)

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

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

1亿VIP精品文档

相关文档