C程序和FPGA程序

C程序和FPGA程序,第1张

C语言是目前世界上流行、使用最广泛的面向过程的高级程序设计语言。 C语言对 *** 作系统和系统使用程序以及需要对硬件进行 *** 作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行 *** 作, 而这三者是计算机最基本的工作单元。

运算符丰富

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

FPGA一般来说比ASIC(专用集成电路)的速度要慢,实现同样的功能比ASIC电路面积要大。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。

FPGA快。

微处理器用C,FPGA用HDL。论算法实现速度,FPGA肯定比微处理器快多了,因为FPGA可以算准每一个时钟周期的任务,而微处理器执行C程序可能会浪费很多时钟周期。

作为FPGA新人,对FPGA学习肯定会有很多问题,像FPGA是什么?FPGA怎么学?FGPA用什么语言之类的,前两者我们专门发文章讨论过,今天我们重点谈一谈FPGA用什么编程语言。

经常看到不少人在论坛里发问,FPGA是不是用C语言开发的?国外有些公司专注于开发解决编译器这方面问题,目的让其能够达到用C语言替代VHDL语言的目的,也开发出了一些支持用c语言对FPGA进行编程的开发工具。但在使用多的FPGA编程语言还是verilog和VHDL语言,一般不使用C语言进行编程。

FPGA可以用VHDL语言和VERILOG语言进行编程开发,目前欧洲前者用的多,而,美国,日本则更多的使用后者,而且后者和C语言比较的接近,如果你对C比较熟悉的话,可以选择使用VerilogHDL语言,基本语法和C非常相似,而且也非常灵活,VHDL语言则相对来说比较严谨。

其实两种语言的差别并不大,他们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。当然,如果您是专用集成电路(ASIC)设计人员,则必须首先掌握verilog,因为在IC设计领域,90%以上的公司都是采用verilog进行IC设计。对于PLD/FPGA设计者而言,两种语言可以自由选择。

设计人员通过计算机对HDL语言进行逻辑仿真和逻辑综合,方便高效地设计数字电路及其产品。

相对而言,欧洲方面多用VHDL,特点是逻辑严谨、慎密。而verilog则是美国用的较多,特点是语法上更灵活一些。两者在语法构成方面都差别不大,一般都是通用的。VHDL编写的程序可能看上去会臃肿一些但是对于后续的调试和修改会更方便一些。

FPGA用什么编程语言呢?verilog和VHDL,这里给初学者的建议是:从VHDL入手,进阶兼顾Verlilog,相互对比着学习,更有利于程序的理解和编写。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11089868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存