功能定义部分有三种方法
1、assign语句
描述组合逻辑
2、always语句
描述组合/时序逻辑:
3、例化实例元件
如: and #2 u1(q,a,b);
上述三种逻辑功能是并行的
注意:
在的ways块中, 逻辑是顺序执行的。
而多个always块之间是并行的。
模块的调用(类似于C语言里面函数的调用)也叫作例化
在模块调用时,信号通过模块端口在模块之间传递。
例子
modulel time count
input clk ,
input rst_ n,
output reg flag ,
);
parameter MAX_ NUM = 50000_ 000;
reg [24:0] cnt;
然后调用这个模块
etime_ count# (
.MAX NUM(TIME_ SHOW)
)u_ time_ count ( //此处给名称
. cik(sys_ _clk ),
.rstn(sys_ rst_ n),
. flag(add_ _flag )
);
即可实现模块调用