verilog学习笔记(一)

来源:互联网 发布:投稿可以造假数据吗 编辑:程序博客网 时间:2024/04/30 09:32

什么是Verilog HDL?

 Verilog HDL (Hardware Description Language) 是一种硬件描述语言,可以在算法级、门级到开关级的多种抽象设计层次上对数字系统建模。它可以描述设计的行为特性、数据流特性、结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。此外,verilog提供了编程语言接口,通过该接口用户可以在模拟、验证期间从外部访问设计,包括模拟的具体控制和运行。
Verilog 不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用 Verilog 仿真器进行验证。 Verilog 从C语言中继承了多种操作符和结构,所以从结构上看两者有很多相似之处。

Verilog HDL是你在开发 FPGA 、ASIC 时使用的语言,跟开发软件使用 C语言一个道理。

Verilog的历史

Verilog HDL是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得 Verilog HDL 迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得 Verilog HDL成为了该公司的独家专利。1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995. 

Verilog-1995后的版本是Verilog 2001,称作Verilog 2.0。

SystemVerilog 是近几年发展起来的,称作 Verilog 3.0.


下面列出的是 Verilog 硬件描述语言的主要能力(不耐烦的读者可以略过):

(1)基本逻辑门,例如 and、or 和 nand 等都内置在语言中。 

(2)用户定义原语(UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。 

(3)开关级基本结构模型,例如 pmos 和 nmos 等也被内置在语言中。 

(4)提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。 

(5)可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。 

(6)Verilog HDL 中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。 

(7)能够描述层次设计,可使用模块实例结构描述任何层次。 

(8)设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。 

(9)Verilog HDL 不再是某些公司的专有语言而是 IEEE 标准。 

(10)人和机器都可阅读 Verilog 语言,因此它可作为 EDA 的工具和设计者之间的交互语言。 

(11)Verilog HDL 语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。PLI 是允许外部函数访问 Verilog 模块内信息、允许设计者与模拟器交互的例程集合。 

(12)设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。 

(13)能够使用内置开关级原语在开关级对设计完整建模。 

(14)同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。 

(15)Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。 

(16)在行为级描述中,Verilog HDL 不仅能够在 RTL 级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。 

(17)能够使用门和模块实例化语句在结构级进行结构描述。 

(18)Verilog HDL 还具有内置逻辑函数,例如 &(按位与)和 |(按位或)。 

(19)对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。 

(20)可以显式地对并发和定时进行建模。 

(21)提供强有力的文件读写能力。 

(22)语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义。