Verilog HDL和VHDL相比有很多优点,有C语言基础的话很容易上手。搜集了一些网上大神的经验总结和书上的例子,所以对于和我一样的初学者,这篇博客应该还是很有提高作用的,至于具体语法,任何一本书都讲的很详细。
HDL 是 Hardware Description Language 的缩写,中文名“硬件描述语言”,并不是“硬件设计语言(HardwareDescription Language)”。正是这个单词,决定了绝大多数部分电路设计必须遵循RTL的模式来编写代码,而不能随心所欲的写仅仅符合语法的HDL代码。
VHDL 于1980年开始在美国国防部的指导下开发,完成于1983年,并于1987年成为IEEE 的标准。Verilog HDL也形成于差不多的年代,是由Gateway Design Automation 公司大约在1983年左右开发的。其架构同VHDL 相似,但主要被用来进行硬件仿真。探究HDL语言的历史,就能明白这两种最流行的用于电路设计的语言,没有一种是为了设计硬件而开发的(更何况80年代还没有现在的那些功能强大的EDA软件呢)。因此,当初制订 HDL语言标准的时候,并没有考虑这些代码如何用硬件来实现。换句话说,有些代码写起来简单,实现起来却可能非常复杂,或者几乎不可能实现。
always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,
not,bufif0,bufif1,notif0,notif1,if,inout,input,instantitation,module,negedge,posedge,operators,output,parameter
有些工具支持,有些工具不支持:casex,casez,wand,triand,wor,trior,real,disable,forever,arrays,memories,repreat,task,while
time,defparam,$finish,fork,join,initial,delays,UDP,wait
用一句简单的话概括:电脑永远没有你聪明。具体来说,通常EDA软件对HDL代码的综合能力总是比人差。对于一段代码,如果你不能想象出一个较直观的硬件实现方法,那 EDA软件肯定也不行。一般来说:在 RTL 级的描述中,所有逻辑运算和加减法运算、以及他们的有限次组合,基本上是可综合的,否则就有无法综合的可能性。当然,这样的标准仍然有缺陷,更况且EDA的技术也在不断发展,过去无法综合的代码或许将来行,某些软件不支持的代码换个软件或许行。比如固定次数的循环,含一个常数参数的乘法运算等等,有些EDA软件支持对它们的综合,而有些软件不行。
所以,正确的判断仍然要靠实践来积累经验。当你可以较准确判断代码的可综合性的时候,你对HDL的掌握就算完全入门了。