FPGA实战-verilog设计规范及要点

以下为建议规范,可以增强代码的阅读性和可观性,并不是强制的规范

1.只有三种逻辑电路:组合逻辑,同步复位的时序逻辑电路,异步复位的时序逻辑电路

2.一个always只产生一个信号(方便调试,但是可以有多个输入)

3.一个信号只能在一个always产生

4.always是描述一个信号产生的方法,即在什么情况下,这个信号的值为多少,在其他情况下,值为多少(要考虑全面)

5.含有posedge或者negedge的一定是D触发器,是时序电路

6.设计时。如果想立即有结果,就用组合逻辑,想延时一拍有结果,就用时序逻辑

7.时序逻辑的敏感信号是always@(posedge clk or negedge rst_n);

8.组合逻辑的敏感信号是always@(*);

9.reg常用来表示用于“always”模块内的指定信号类型,常代表触发器,在alwyas里面赋值的信号都必须定义为reg型

10.wire类型信号表示线,常用于模块例化

11.输出信号必须是寄存器直接输出,不能用wire类型数据作为的输出(防止产生亚稳态,详情可参考:https://blog.csdn.net/VCA821/article/details/81989846

12.输入输出的信号声明一行只能写一个

13.时序逻辑电路中使用非阻塞赋值,组合逻辑中使用阻塞赋值

猜你喜欢

转载自blog.csdn.net/VCA821/article/details/82085473