1. 作为一种硬件描述语言,verilog可以直接描述硬件结构,也可以通过描述系统行为实现建模,其主要特点和功能有:
*描述基本逻辑门和基本开关模型。
* 允许用户定义基元。
* 可以指定设计中的端口到端口的延时,路径时延和设计中的时序检查。
*可以采用多种方式进行建模,这些方式包括(1)顺序行为描述建模——使用过程化结构建模,(2)数据流行为方式——使用连续赋值语句方式建模,(3)结构化方式——使用门和模块实例语句描述建模。
* Verilog中有两类数据类型,线网数据类型和寄存器数据类型。线网数据类型表示构件间的连线,而寄存器类型表示抽象的数据存储元件。
* 能描述层次设计,可使用模块实例结构描述任何层次。
*不仅能在RTL上进行设计描述,而且能在体系结构级和算法级行为上进行描述。
*可以对并发行为和定时行为进行建模。
2. 模块
module是verilog HDL最基本的组成单元,模块的实际意义是代表硬件电路上的逻辑实体(实现特定逻辑功能的一组电路),其范围可以从门到很大的系统。模块的描述方式有行为建模和结构建模,模块之间并行运行。模块分层,各模块连接完成整个系统需要用一个顶层模块。
每个系统无论多么复杂,总能划分成多个小的功能模块,按下步骤:
(1)把系统划分层模块。
(2)规划各模块的接口。
(3)对模块编程并连接各模块完成系统设计。
Verilog HDL通过模块调用(模块实例化)来实现子模块与高层模块的连接。
模块实例化是通过结构建模的方法来完成的,verilog HDL中的子模块的调用确切的说是“嵌入”,这种引用会把子模块电路完全放在高层模块中。
3. verilog HDL驱分大小写。
4. 用parameter来声明参数。
5. 常用预处理指令:
‘define ‘undef ‘ifdef ‘else ‘endef ‘include ‘timescale
6. 线网数据类型:表示元件之间的物理连线,它不能存储数据,线网是被驱动的,可以用连续赋值语句或把元件的输出连接到线网等方式给线网提供驱动,给线网提供驱动的赋值和元件就是驱动源。Verilog HDL有11种线网类型。
7. 寄存器表示一个抽象的数据存储单元,可以通过赋值语句改变寄存器内存储的值,寄存器只能在always语句和initial中赋值,有5种寄存器类型值。
8. 数据流建模是一种简单的行为建模,它只有一种形式,用关键词“assign”引导的一条连续赋值语句,其赋值目标只能是线网,而且这种赋值行为没有任何附加的判断条件,常用来描述组合逻辑。
9. 顺序行为建模。
10. 结构建模方法
门级建模和开关级建模在verilog HDLk 都属于结构建模法,因为它们的建模都是对电路结构的具体描述。也即是把所需的基本电路单元(逻辑门,MOS,开关)调出来,再用连线把这些基本单元连接起来,这种描述简单严格,必须对底翅的门电路和MOS管功能及连接方式熟悉。
用于结构建模的门电路和MOS开关称为“基元”,verilog HDL内置了26个基元模型,基元的调用称为实例化,调用语句也称为实例语句,每次基元调用都将产生这个基元的一个实例,应该给该实例起一个名子,即实例名。
结构描述方法还有一个重要用途——调用子模块!!!