快捷搜索:

verilog语言与c语言的区别

  VHDL语言 C语言

  Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。

  Verilog的设计初衷是成为一种基本语法与C语言相近的硬件描述语言。这是因为C语言在Verilog设计之初,已经在许多领域得到广泛应用,C语言的许多语言要素已经被许多人习惯。一种与C语言相似的硬件描述语言,可以让电路设计人员更容易学习和接受。不过,Verilog与C语言还是存在许多差别。另外,作为一种与普通计算机编程语言不同的硬件描述语言,它还具有一些独特的语言要素,例如向量形式的线网和寄存器、过程中的非阻塞赋值等。总的来说,具备C语言的设计人员将能够很快掌握Verilog硬件描述语言。

  C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

  

 verilog语言与c语言的区别

  特有特点C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。不同的变量类型可以用结构体(struct)组合在一起。只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。部份的变量类型可以转换,例如整型和字符型变量。通过指针(pointer),C语言可以容易的对存储器进行低级控制。预编译处理(preprocessor)让C语言的编译更具有弹性。

  Verilog语言与C语言的区别

  数字电路设计工程师一般都学习过编程语言、数字逻辑基础、各种EDA软件工具的使用。就编程语言而言,国内外大多数学校都以C语言为标准,只有少部分学校使用Pascal 和Fortran。

  算法的描述和验证常用C语言来做。例如要设计Reed-Solomen编码/解码器,可以分为下面几个步骤。

  先深入了解Reed-Solomen编码/解码的算法。

  编写C语言的程序来验证算法的正确性。

  运行描述编码器的C语言程序,把在数据文件中的多组待编码的数据转换为相应的编码后数据,并存入文件。

  编写一个加干扰用的C语言程序,用于模拟信道。它能产生随机误码位(并把误码位个数控制在纠错能力范围内),将其加入编码后的数据文件中。运行该加干扰程序,产生带误码位的编码后的数据文件。

  编写一个解码器的C语言程序,运行该程序把带误码位的编码文件解码为另一个数据文件。

  比较原始数据文件和生成的文件,便可知道编码和解码的程序是否正确(能否自动纠正纠错能力范围内的错码位),用这种方法我们就可以来验证算法的正确性。但这样的数据处理其运行速度只与程序的大小和计算机的运行速度有关,也不能独立于计算机而存在。

  如果要设计一个专门的电路来进行这种对速度有要求的实时数据处理,除了以上介绍的C程序外,还需编写硬件描述语言(如Verilog HDL或 VHDL)的程序。然后进行仿真以便从电路结构上保证算法能在规定的时间内完成,并能与前端和后端的 设备或器件正确无误地交换数据。

  用硬件描述语言(HDL)的程序设计硬件的好处在于易于理解、易于维护,调试电路速度快,有许多的易于掌握的仿真、综合和布局布线工具,还可以用C语言配合HDL来做逻辑设计的前后仿真,验证功能是否正确。

  在算法硬件电路的研制过程中,计算电路的结构和芯片的工艺对运行速度有很大的影响。所以在电路结构确定之前,必须经过多次仿真。

  C语言的功能仿真。

  C语言的并行结构仿真。

  Verilog HDL的行为仿真。

  Verilog HDL RTL级仿真。

  综合后门级结构仿真。

  布局布线后仿真。

  电路实现验证。

  下面介绍用C语言配合Verilog HDL来设计算法的硬件电路块时考虑的三个主要问题:

  1.为什么选择C语言与Verilog 配合使用

您可能还会对下面的文章感兴趣: