7.1 为什么选择用Verilog HDL开发FPGA
7.1.1 Verilog HDL和VHDL的比较
硬件描述语言(Hardware Description Lagnuage,HDL)通过描述硬件的实现方法来产生与之对应的真实的硬件电路,最终实现所设计的预期功能,其设计方式与软件不同,因此也就意味着其描述的各个功能之间可以像硬件一样实现真正的并行执行。将这种语言称为硬件描述语言而非硬件语言的原因是:这种语言是用来描述我们设计的硬件所要实现的功能,而不是直接对硬件进行设计。在硬件描述语言描述完设计的功能后,还需要通过“综合”这一过程才能最终生成所设计的硬件电路。
目前常用的硬件描述语言主要有两种,一种是Verilog HDL(以下简称Verilog),另一种是VHDL,它们之间有什么不同呢?下面我们简单对比一下。
VHDL与Verilog相比,有以下优势:语法比Verilog严谨,通过EDA工具自动检查语法,易排除许多设计中被疏忽之处,有很好的行为级描述能力和一定的系统级描述能力,而用Verilog建模时,行为与系统级抽象及相关描述能力不及VHDL。
VHDL与Verilog相比,也有以下不足之处:VHDL代码较冗长,在进行相同的逻辑功能描述时,Verilog的代码比VHDL少许多,VHDL对数据类型匹配要求过于严格,初学时会感到不是很方便,编程耗时也较多;Verilog支持自动类型转换,初学者容易入门。VHDL对版图级、管子级这些较为底层的描述级别几乎不支持,无法直接用于集成电路底层建模。
综上所述,建议大家在初学时选择语法更简单、更容易接受的Verilog作为FPGA的开发语言,这样能够使我们更快速地上手FPGA的开发,把节省下来的学习复杂语法的时间用来专攻FPGA设计方法。但是无论对于哪种语言,都希望大家能够做到的精通、熟练,这样才能应对更多的问题。
7.1.2 Verilog HDL和C语言的比较
如果学习者有过学习C语言的经历,在学习Verilog时就会发现,Verilog的很多语法都和C语言极其相似,甚至有些语法是通用的,这也是Verilog语言容易上手的一个很重要的原因。Verilog语言本身就是从C语言继承并发展而来的,但是它主要用于描述硬件,和C语言这种软件语言的思想完全不同。C语言所描述的代码功能在执行时都是一行一行顺序执行的,而Verilog语言在设计完成后执行时则是并行执行的;C语言所描述的代码功能并不会真实地映射成最后的硬件,只是对内存进行操作和对数据进行搬移,而用Verilog语言所描述的代码功能则会真正生成所对应的硬件电路。C语言和Verilog语言之间的关系就是软件和硬件之间的关系,大家不要将二者混为一谈,可以通过C语言的语法基础来辅助学习Verilog语法,但是切不可生搬硬套,特别是在代码风格和对代码的理解上要区别对待。