Verilog简明教程
Verilog简明教程(适用于略有HDL知识,想快速了解verilog的人)
目录:
A verilog的流行,有两方面的原因;
B verilog与VHDL相比的优点
C 典型的verilog模块
D verilog语法要点
A) verilog的流行,有两方面的原因:
1 它是cadence的模拟器verilog-XL的基础,cadence的广泛流行使得verilog在90年代深入人心;
2 它在硅谷获得广泛使用;
B) verilog与VHDL相比的优点
二者的关系仿佛C与FORTRAN,具体而言:
1 verilog的代码效率更高:
? 比较明显的对比:
VHDL在描述一个实体时采用entity/architecture模式,
verilog在描述一个实体时只需用一个"module/edumodule"语句块.
此外verilog的高效性还在很多地方体现出来;
2 verilog支持二进制的加减运算:
VHDL在进行二进制的加减运算时使用conv_***函数或者进行其他的定义,总之必须通知
编译器;
verilog直接用形如"c=a+b"的表示二进制的加减运算;
3 综合时可控制性好:
VHDL对信号不加区分地定义为"signal",
而verilog区分为register类型的和wire类型的;
但是也有人支持VHDL,认为verilog和VHDL的关系仿佛C和C++.
C) 典型的verilog模块
讨论以下典型电路的verilog描述:
* 与非门;
* 加法器;
* D触发器;
* 计数器;
* latch;
* 时序机;
* RAM;
* 模块引用;
* 预编译;
* 与非门的verilog描述如下:
//verilog使用和C语言相同的注释方法
module nd02(a1,a2,zn);//一个verilog模块总是以module开始,以endmodule结束, ?? //nd02是模块名,a1,a2,zn是模块的3个输入输出信号
input a1,a2;? //告诉编译器a1,a2对此模块而言是输入,并且数据类型是"bit"
output zn;? //告诉编译器zn对此模块而言是输出,数据类型也是"bit"
nand (zn,a1,a2); //我理解nand是运算符,我们不必深究verilog中的正式术语是什