Verilog的基础语法

Verilog入门

模块表达

module 模块名(模块端口名表);

     模块端口和模块功能描述

input  端口名1,端口名2,…;

output  端口名1,端口名2,…;

inout 端口名1,端口名2,…;

input[msb:lsb] 端口名1,端口名2,…;

endmodule

//标识符:由英文字母、数字、下划线、$组成,

由字母下划线开始,不能有双下划线。   

//Intput outout都是默认wire型

//逻辑操作符号

&    与            |     或          ~非         ^  异或     ~^   同或

//Always里面被赋值的都是reg类型变量

always

凡是在always里面赋值的变量都是寄存器类型的变量

顺序语句一定要写在always里面,即:任何顺序语句都要放在结构语句里面

解释一下always语句的含义:always语句本质上对实际电路并行运行的一种模拟

always括号里面标记着各种输入信号的激励,每一次激励的发生都会触发一次请求事件

然后执行一遍always里面的顺序语句。相当于网页页面中的添加事件发生

Verilog的基础语法

 

Verilog的基础语法

//块语句begin_ end:相当于C语言的花括号

//任何变量有4种逻辑状态

0 1  Z高阻态   X不确定

 

// assign

assign 连续赋值语句

用前面的case条件判断来类比此处的assign语句

assign 目标变量名 = 驱动表达式

 Verilog的基础语法

// 等式操作符

==等于   ===全等

Verilog的基础语法

//过程赋值语句

1阻塞式赋值:  =   立即得到值,顺序性(当执行某一语句时,其他语句不可能同时执行           即顺序执行

2)非阻塞式赋值:<=    即同时执行

总结:

1:组合逻辑,使用 “阻塞赋值”。

2:时序逻辑,使用“非阻塞赋值”。

 

// assign

assign 连续赋值语句

assign 目标变量名 = 驱动表达式

Verilog的基础语法