时序逻辑和组合逻辑的写法
- 时序逻辑的敏感信号必须是(posedge clk or negedge rst_n)
- 组合逻辑的写法always@(*)
- 值允许使用always,不用assign
- 一个always里面只允许设计一个输出,但可以有多个输入。
注意要点:a.组合逻辑不能作为时钟、复位信号;b.组合逻辑一定要写else,避免生成锁存器。
begin end以及信号的对齐
- always、条件之间,必须要加begin和end
- begin统一写在括号后面,end与begin一行开始处对齐,内部内容缩进4格。
- 模块的信号定义对齐,包括类型、位宽定义、信号名等的对齐。
信号大小写
- 参数、宏定义大写,信号小写
时钟及复位信号
-
一个模块只使用一个时钟,该模块中,任何的时序逻辑敏感信号中的时钟,必须为该时钟。名称默认clk
-
禁止使用计数器分频后的信号做其他模块的时钟,如果使用,要改成时钟使能的方式。
复位信号默认低电平有效,名称为rst_n
reg,wire类型的使用
- reg常用来表示用于always模块内的指定信号的类型,常代表触发器,在always里面赋值的信号都必须定义为reg类型。
- wire类型的信号表示线,常用于模块的实例化等
注: