当前位置:主页 > 科技论文 > 计算机论文 >

C-to-VHDL语言转换关键技术的研究与实现

发布时间:2020-10-30 11:09
   如何提高CPU的运行速度是当前的一个热门课题。现有的高效加速方法之一就是采用FPGA作为CPU的硬件加速部件,选取可加速的程序段放到FPGA上运行,减轻CPU的运算量,以达到提高整体运行速度的目的。为降低加速应用的开发难度,C-to-VHDL编译器的研究成为当前学术研究的一个热点。 本文选择了功能强大、性能良好、扩展方便的LLVM作为开发框架,设计实现C-to-VHDL编译器。首先,详细介绍了LLVM编译系统,分析了中间代码、集成库、工具集和编译流程,设计了后端代码生成器;分析了C与VHDL的区别,给出了IF结构到VHDL程序的设计方案,实现了IF结构到VHDL的自动编译转换,为项目的功能扩展奠定了基础。然后,本文研究了FPGA的流水加速技术,对FPGA的设计的进一步优化具有指导意义。本文分析了数据流的流水线实现的特点和方法,提出了流水线的三个实现方案,并进行对比,着重介绍了按照时间进行划分的具体实现。本文还研究了在ISE的优化功能与流水的相互作用下,如何选取最优时钟节拍的问题。同时,研究了在时钟限制下的最优流水处理的问题。最后,将C代码作为输入数据,应用本文的语言转换方法和流水处理方法实现了从C代码到VHDL代码转换和两种流水方式——依据串行指令条数进行流水和依据时间进行流水。实验证明,该编译方案能有效地实现IF结构到VHDL代码的自动转换,并且保证流水实现方案设计的正确性。
【学位单位】:哈尔滨工程大学
【学位级别】:硕士
【学位年份】:2010
【中图分类】:TP312.1;TP332
【部分图文】:

工具集,代码生成,集成库


种优化函数库。这些集成库可以分为以下几大类:核心库、分析库、转换库、代码生成库、目标处理器库、运行库等。本设计主要使用核心库和代码生成库中的相关函数。核心库主要用于中间代码的解析及相关处理;代码生成库用于目标代码生成。这些集成库是使用 C++语言编写的,运用面向对象的编程思想,使用数据的抽象和封装方法,功能强大,覆盖面广,定义严谨,为基于 LLVM 的相关开发提供了极大的便利。2.1.4 工具集

双分支,分支,基本块,键值


18中 br 是指令名称;bool 是运算类型,即布尔型;%tmp.1 为该条件跳转的键值,可以取 true 或 false,根据该关键值的结果,选择后续执行哪一个基块;label 表示后续名称是一个标号;%then 表示标号名称为 then 的基本块当关键值为 true 时,跳转到该基本块继续执行;%else 表示标号名称为 e的基本块,当关键值为 false 时,跳转到该基本块继续执行。双分支条件跳命令结构如图 3.1(b)所示。

等效电路图,等效电路图,实体,端口


其中实体说明以关键字加 实体名;”结束,中间是实体的组成部分,是对实体的外部接口动态通信的通道,其功能对应于须定义端口的名字、通信模式、过该端口的方向,主要有四类:式 INOUT。主要实现端口的说明、声明输入声明部分的内容一一对应,目前回值当作输出,函数的名直接当以得到函数的相关属性,运用 C函数声明为 int max(int a, int b, 2。
【参考文献】

相关期刊论文 前2条

1 陈吉华;VHDL——一种统一的设计描述语言[J];微电子学与计算机;1993年08期

2 王兼明,沈永朝;VHDL硬件描述语言及其设计环境[J];系统工程与电子技术;1990年01期


相关硕士学位论文 前1条

1 李原;VHDL编译系统设计方法及关键技术研究[D];四川大学;2005年



本文编号:2862389

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2862389.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户02a32***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com