verilog 语法笔记

verilog语法和C语言差别很大,记下笔记以免经常出错

2019-12-18

1.wire类型不能使用 = <=操作符赋值。

2.模块端口列表有input output inout 分别对应输入、输出、输入/输出双向端口

3.端口的类型只能是net线网型

4.编译指令 格式 ',例如'define ,'ifdef,`timescale等

'define WIDTH 8;(错误,不能加“;”)

添加另一verilog源文件的方式 'include "source.v"(注意需要双引号)

5.需要缓存值使用 reg 类型

6.reg [31:0] a;//a为32比特值

7.reg [15:0] a[0:7];//a为16bit位宽长为8的数组

8.integer matrix[4:0][4:0];//5x5的整型数组 integer默认位宽32

9.是“先出后入”顺序库自带的门类型有:

wire OUT,IN1,IN2;

and a1(OUT,IN1,IN2);//与

nand nal(OUT,IN1,IN2);//与非门

or or1(OUT,IN1,IN2);//或

nor nor1(OUT,IN1,IN2);//或非

xor xor1(OUT,IN1,IN2)//异或

xnor xnor1(OUT,IN1,IN2);//同或

nand na2(OUT,IN1,IN2,IN3);//超过两个输入 三端与非门

10.与and/or门相反的,一个输入,多个输出("先出后入")的门类型(缓冲器/非门)有

buf not

基本实例有:

buf b1(OUT1,IN);

not n1(OUT1,IN);

buf b1_2out(OUT1,OUT2,IN);//输出端口数为2

not (OUT1,IN);//不给实例名的合法引用

11.四种带控制信号端口的buf/not门

 

图片摘自《VerilogHDL数字设计与综合》

 

 

你可能感兴趣的:(FPGA)