Verilog语法笔记_基本概念

语法经常记混淆,忘掉细节,记录一下一些易错和遗忘的地方。

 

一、模块

相当于函数 —— module

//语法格式

 

module <模块名> (<模块端口列表>);

。。。

<模块内容、功能>;

。。。

endmodule

 

//ripple_carry_counter(脉动进位计数器)的例子

module ripple_carry_counter (q, clock, reset);

 

ouput [3:0] q;

input clk, rst;

 

//调用子模块

T_FF tff0 (q[0], clk, rst);

T_FF tff1(q[1], q[0], rst);

T_FF tff2(q[2], q[1], rst);

T_FF tff3(q[3], q[2], rst);

 

endmodule

 

//注意点:

1. module声明最后有;分号。

2. endmodule没有分号。

3. 可以在端口列表中定义input、output端口。

4. q前面的[3:0]代表位宽为4bit,后面如有[3:0]代表为4个值的向量。

5. module内部不能定义子module。

 

二、基本语法

1、注释(和c一样)

一行// 或者多行

2、数字声明

指明位数的数:2'b11(二进制)、16'd255(十进制)、8'o77(八进制)、12'habc(十六进制)

不指名位数的数(位宽和计算机硬件有关):23456(32位十进制)、'hc3(32位十六进制)

高阻态和不确定值:12'h13x(12位十六进制,四个最低位不确定)、32'bz(32位高阻值)

你可能感兴趣的:(Verilog)