当前位置:编程学习 > C/C++ >>

C语言中handle类型是什么意思?

在Linux下开发时,语句handle flowstarttime, flowendtime;来定义两个变量,handle是个什么类型?
答案:Handle-C为新一代硬件描述语言编译工具,过去因为太复杂而不能用硬件描述语言表示
的算法以及由于处理器运行速度太慢而不能处理的算法,现在都可以利用Handle-C语言在大规模
FPGA硬件上得以实现。设计者可以利用Handle-C语言,能在很短的时间里创建更庞大、更复杂和
更高速的系统。
关键词:FPGA;Handle-C;硬件描述语言
可编程逻辑器件的设计方法经历了布尔等式、原理图输入、硬件描述语言这样一个发展过程。随
着设计的日益复杂和可编程逻辑器件规模的不断扩大,人们不断地寻求着更加抽象的行为级设计
方法,以便在尽可能短时间内完成自己的设计构思,并希望能够找到一种方法,在更高的层次下
设计更复杂、更高速的系统,能将软件设计和硬件设计统一到一个平台下,这就是Handle-C产生
的现实背景。
---Handle-C在硬件的算法实现和硬件/软件结合设计中,可谓是一种具有易做图性意义的语言,
它的标准是由Celoxica公司提出的。Handle-C语言在基于ISO/ANSI-C语言的基础上,能够通过
软件设计方法来实现硬件设计。Handle-C具有硬件发展的外延扩展,包括可变的数据宽度,并行
的处理方式和并行线程的通讯方式。该语言使用了一种简单的同步模型,简化了系统配置人员和
软件工程师的设计工作。Handle-C的连续和并行操作的描述能力,可以用更短、更易懂的代码来
代替以前的复杂状态图。图1为Handle-C的实现流程图。
---大部分的算法都是以C语言为原代码的,通常我们要进行硬件实现,就必须将C语言转化成
VHDL或Verilog语言,这样就很容易导致风险和错误的出现。但利用Handle-C语言则不会出现这
样的问题,因为它本身是基于C的语言体系,可以直接用来描述算法,随后进行编译加载到硬件
上,方便易懂,大大地节省了编程时间,提高效率。
---直接面向于FPGA和PLD,Handle-C为硬件原型和最初电子产品的开发提供了一种快速的布线形
式,这种开发过程可以在完整的软件环境里进行。Handle-C为设计者提供很大的开发空间,可以
不断地进行调试以确定最终设计。
---Handle-C语言可以应用到广泛的硬件实现编程中,如:
---(1) 网络安全——DES编密码算法在硬件的实现
---(2) 数字音乐——在可重置的硬件实现MP3解码
---(3) 图形处理——在FPGA/PLD上实现复杂的图像处理
---以上只是Handle-C应用的一部分,随着它的不断发展,相信其应用范围也会越来越广。
Handle-C语言的特点
---这里以表格的形式来分析一下Handle-C语言的一些特征与优点(见表1)。

Handle-C与C语言的比较
---与C语言比较,Handle-C有如下的局限性:
---(1) 函数没有递归性;
---(2) 不支持旧类型的函数定义;
---(3) 不支持变量长度参数列表;
---(4) 不能改变变量的长度;
---(5) 1.0版本不支持浮点运算(新的1.1版本支持浮点运算的IP库,可以向该公司购买)。
---另外,Handle-C的操作符与C语言既有相同之处,又有其自身独有的关键词(见表2),编程人
员在实际的编程中应该对以下的异同加以重视。
---下面对Handle-C语言中仅有的操作符进行一些简单的说明。
---Delay表示对一个信号的延时;
---?与!是两个相对应的操作符,?表示从一个通道(channel)里读出数据;!表示向一个通道
里写进数据;
---piralt多用于分支语句,函数里面有多个操作,写在前面的case具有最高的执行优先权;
---seq 和par为Handle-C在语法上新增加的两种结构,seq为顺序结构,在seq内的每一句程序
都按每个时钟来执行;而在par语句中,所有的程序代码段都在同一个时钟来临时执行。在程序
中,如无seq和par操作符,则认为语句为顺序结构。
---Ifselect的用法如if...else。
---Handle-C程序的编写如同C/C++程序的编写规范,也要引进各种头文件,也可以对各种函数进
行调用。对于其输入输出端口有它自身严格的定义,时钟信号由用户自己定义,这些操作在此不
作深入的探讨。
---那么如何将C语言与Handle-C语言对应起来呢?以下是将传统的C语言映射到硬件上的几个步
骤:
---(1) 决定如何将软件系统映射到目标硬件平台。
---(2) 将传统的C语言程序转化成Handle-C程序,并用仿真器检查程序的语法错误。
---(3) 从Handle-C提供的特别的操作平台去修改已有的程序代码。
---(4) 加入良好的并行操作。
---(5) 在程序中加入必须的硬件接口及映射仿真通道。
---(6) 使用FPGA的布线工具去产生FPGA硬件映射程序。
---以上的映射步骤仅供参考,实际应用中,可以根据设计的需要适当地增加或是删减相应的步
骤。

Handle-C与VHDL的比较
---虽然Handle-C语言与VHDL语言各有自己的一套的编程语法规则,但两者的根本目的是一样
的,即要把算法思想硬件化,加载到可编程芯片里进行实际应用。Handle-C本身是基于C的语言
体系,可以直接用来描述算法,方便易懂,大大地节省了编程时间,提高效率。而VHDL语言的编
写符合硬件工作者的思维架构,较容易进行模块化编程,将所要实现功能进行分块实行。
---VHDL编程中的端口定义映射在Handle-C代码中的格式如下:
---Inte易做图ce VHDL_ entity_sort (VHDL_to_HC_port {, VHDL_to_HC_port})
---VHDL_from_HC_port{,VHDL_from_HC_port});
---其中:VHDL_entity_sort为VHDL实体的名称。
---VHDL_to_HC_port为Handle-C输入的端口的类型和名称。
---VHDL_from_HC_port为Handle-C输出的端口的类型和名称。
---如果要把程序进行综合,我们目前要把Handle-C程序编译成VHDL,用Snyplify、
LeonardoSpectrum或FPGA Exprerss等工具将这些代码进行综合。我们也可用Altera或Xilinx
公司的布线工具去将程序进行布局布线。
---其他编程上的区别在此就不展开讨论了。

Handle-C的编译环境简介
---Handle-C语言标准是由Celoxica公司提出的,该公司同时也推出了相应的编译环境软件
DK1.1(如图2所示),该软件的使用要先与C/C++的语言环境相连接起来,以C/C++作语言基础进行
编程,所以安装完DK1.1软件后,应该安装的编译器有Visual C++6.0(或更高版本),或者是
Borland C++编译器5.5版本。该编译环境所面向的FPGA设计的器件有如下系列:Xlinx 4000E、
Xlinx 4000L、Xlinx 4000EX、Xlinx 4000XL、Xlinx 4000XV、Xlinx Virtex、Altera
10K、Altera 20K。另外,此软件还可以使用Xilinx公司或Altera公司的可编程逻辑布局布线工
具、可以与ModelSim软件工具连接起来,直接在DK1.1里调用。
---如同在C语言中加上头文件即可调用库函数一样,在DK1.1中,也可很方便地调用各种功能
库,如浮点的IP库等。通过这样的连接,便可使Handle-C的应用范围更加广泛。

结论
---随着EDA技术的不断成熟,软件和硬件的相互融合也越来越多,Handle-C语言设计的前景应该
会更好。现在Celoxica公司提出的Handle-C语言已经越来越成熟,而且所能支持应用的FPGA芯片
也越来越多,这种新的硬件描述语言将会成为将算法硬件化的一种利器。int32
占4字节的  整数型   最大到 2的16次方再8次方-1 
支持符号位的话 减少1个次方  不支持的话在上面的最大

上一个:在C语言中loop是什么意思?
下一个:学C语言的重点有什么?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,