以下为建议规范,可以增强代码的阅读性和可观性,并不是强制的规范
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.youkuaiyun.com/VCA821/article/details/81989846)
12.输入输出的信号声明一行只能写一个
13.时序逻辑电路中使用非阻塞赋值,组合逻辑中使用阻塞赋值

博客给出了FPGA Verilog设计的建议规范,包括逻辑电路类型、always块使用规则、信号类型定义、敏感信号设置、赋值方式等,旨在增强代码的阅读性和可观性,还提及输出信号类型以防止亚稳态。
1297

被折叠的 条评论
为什么被折叠?



