Handelc

開放電腦

簡介

函式庫

處理器

主機板

輸出入

虛擬機

組譯器

連結器

編譯器

嵌入式系統

作業系統

原始碼下載

文件下載

設計想法

訊息

相關網站

參考文獻

最新修改

簡體版

English

簡介

  • 節錄自百度百科

一、简介

Handle-C在硬件的算法实现和硬件/软件结合设计中,可谓是一种具有革命性意义的语言,它的标准是由Celoxica公司提出的。Handle-C语言在基于ISO/ANSI-C语言的基础上,能够通过软件设计方法来实现硬件设计。Handle-C具有硬件发展的外延扩展,包括可变的数据宽度,并行处理方式和并行线程的通讯方式。该语言使用了一种简单的同步模型,简化了系统配置人员和软件工程师的设计工作。Handle-C的连续和并行操作的描述能力,可以用更短、更易懂的代码来代替以前的复杂状态图。 —-大部分的算法都是以C语言为原代码的,通常我们要进行硬件实现,就必须将C语言转化成VHDL或Verilog语言,这样就很容易导致风险和错误的出现。但利用Handle-C语言则不会出现这样的问题,因为它本身是基于C的语言体系,可以直接用来描述算法,随后进行编译加载到硬件上,方便易懂,大大地节省了编程时间,提高效率。

二、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的编译环境简介

—-Handle-C语言标准是由Celoxica公司提出的,该公司同时也推出了相应的编译环境软件DK1.1,该软件的使用要先与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的应用范围更加广泛。

參考文獻

  1. 百度百科 handel-c : http://baike.baidu.com/view/1917675.html?fromTaglist
  2. Handel-C Examples — http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.25.2244&rep=rep1&type=pdf

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License