当前业界的硬件描述语言中主要有VHDL 和Verilog HDL还有SystemVerilog,FPGA和ASIC设计使用前两者居多,SystemVerilog用于ASIC的设计居多。
Verilog HDL 语言在全球范围具有广泛的用户群,具有超过 80%的行业覆盖率。在美国,使用 Verilog HDL 进行设计的工程师大约有 l0 多万人, 占 HDL 设计行业工程师的 90%左右, 并有超过 200 多所大学开设Verilog
HDL 语言的相关课程,包括斯坦福大学、卡梅隆大学这样的著名高校。在中国,业界大约有一半的工程师在使用 Verilog HDL 语言,并且这一比例还在快速上升;在教育界有以夏宇闻老师为代表的各位前辈进行了初期推广, 目前已具备较大的应用规模。 其实就学习难度而言,Verilog HDL 语言要比 VHDL 简单的多,且和 C 语言语法风格类似,更容易被在校大学生和初学者接受。
verilog 简史
为什么要使用硬件描述语言?从VDHL的发展史更能看出原因。
VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。
传说在早期美国国防部的供应商在提供数字电路硬件的时候提供的是硬件相应的电路图纸,包括早期的芯片设计也是先画电路原理图然后手工刻版,但是这里有一个问题,当数字电路变得复杂时从电路图纸上将很难快速确认电路的功能,无法确认新的供应商的硬件是否能完整兼容原有的硬件,因此美国国防部要求供应商都用硬件描述语言来完整描述硬件的功能。另一方面随着集成电路的发展,硬件描述语言使得业界可以借助计算机进行自动化电路推导来辅助设计规模越来越大的数字电路。试想一个具有几十亿晶体管的IC,如果用电路图画出来,不可能有人能读懂。
接下来我们简要介绍下verilog的发展历史:
- 1983年末,Gateway设计自动化公司的工程师创立了Verilogs。当时Gateway设计自动化公司还叫做自动集成设计系统(Automated Integrated Design Systems),1985年公司将名字改為Gateway设计自动化。该公司的菲尔·莫比(PhilMoorby)完成了Verilog的主要设计工作。1990年,Gateway设计自动化被Cadence 公司收购。
- 1990年代初,开放Verilog国际(Open Verilog International, OVI)组织(即现在的Accellera)成立,Verilog面向公有领域开放。1992年,该组织寻求将Verilog纳入电气电子工程师学会标准 。最终,Verilog成为了电气电子工程师学会1364-1995标准,即通常所说的Verilog-95。
- 设计人员在使用这个版本的Verilog的过程中发现了一些可改进之处。为了解决用户在使用此版本Verilog过程中反映的问题,Verilog进行了修正和扩展,这部分内容后来再次被提交给电气电子工程师学会。这个扩展后的版本后来成为了电气电子工程师学会1364-2001标准,即通常所说的Verilog-2001。Verilog-2001是对Verilog-95的一个重大改进版本,它具备一些新的实用功能,例如敏感列表、多维数组、生成语句块、命名端口连接等。目前,Verilog-2001是Verilog的最主流版本,被大多数商业电子设计自动化软件包支持。
- 2005年,Verilog再次进行了更新,即电气电子工程师学会1364-2005标准。该版本只是对上一版本的细微修正。这个版本还包括了一个相对独立的新部分,即Verilog-AMS。这个扩展使得传统的Verilog可以对集成的模拟和混合信号系统进行建模。容易与电气电子工程师学会1364-2005标准混淆的是加强硬件验证语言特性的SystemVerilog (电气电子工程师学会1800-2005标准),它是Verilog-2005的一个超集,它是硬件描述语言、硬件验证语言(针对验证的需求,特别加强了面向对象特性)的一个集成。
- 2009年,IEEE 1364-2005和IEEE 1800-2005两个部分合并为IEEE 1800-2009,成为了一个新的、统一的SystemVerilog硬件描述验证语言(hardware description and verification language, HDVL)。
主要特性
下面是 Verilog 的主要特性:
- 可采用 3 种不同的方式进行设计建模:行为级描述——使用过程化结构建模;数据流描述——使用连续赋值语句建模;结构化方式——使用门和模块例化语句描述。
- 两类数据类型:线网(wire)数据类型与寄存器(reg)数据类型,线网表示物理元件之间的连线,寄存器表示抽象的数据存储元件。
- 能够描述层次设计,可使用模块实例化描述任何层次。
- 用户定义原语(UDP)创建十分灵活。原语既可以是组合逻辑,也可以是时序逻辑。
- 可提供显示语言结构指定设计中的指定端口到端口的时延,以及路径时延和时序检查。
- Verilog 支持其他编程语言接口(PLI)进行进一步扩展。PLI 允许外部函数访问 Verilog 模块内部信息,为仿真提供了更加丰富的测试方法。
- 同一语言可用于生成模拟激励和指定测试的约束条件。
- 设计逻辑功能时,设计者可不用关心不影响逻辑功能的因素,例如工艺、温度等。
综上由于verilog本身相对简洁,所以PotatoPie的例程也都以verilog为主。其实VHDL也是非常好的硬件描述语言,本身严谨,而且有大量的IP是基于VHDL,我上学时学的也是VHDL,只是后来工作中verilog居多才又学了verilog,二种语言之间没有本质区别,学会其中一种再来看另一种都很快能上手。本教程侧重讲解verilog的可综法语法,verilog的完整语法请自行学习。
没有回复内容