移动实验室的代码经验,又看了一下谭大哥的代码,总结一下。
1) 按照小组的统一要求要求。(没有谁谁合理与否,大家遵照同一个约定,方便管里)
1.文件头信息
2.模块名小写,例化时候的名称U_XXX(大写)
3.端口名称是否大写,是否要_IN, _OUT后缀
4.信号是高电平有效,还是低电平有效, _N后缀
2)好的习惯
1.多用define,会发现最后还是自己得到方便
2.信号的命名要统一,要花时间思考来命名。共同的约定要遵照。比如: _w, _reg,现在看来是不错的。
2.注释要清晰,排版要好。比如
========================
========== XXX START
========================
// edit your code here
========================
XXX END ============
========================
3) 自己有统一的风格
1.always 是否顶格,always 下一行是否缩进。都无所谓,但是自己必须一样。
2.不要有些地方有 begin,end, 有些地方又没有。有些地方即使不需要begin,end 也加上,这样统一了缩进
3.赋值语句前面空多少,后面空多少,最好是1个空格,不要TAB。TAB在这个时候可能会1~4个空格不等。
4)状态机
1.三段式状态机。(这里对于Moore,Mealy状态机理解还是不够深刻。)
2.一个always最好只对一个信号赋值。即使是状态机赋值,也应该是很相近(同一个状态)的几个输出在同一个always里面赋值/
~2. 不要把一个状态机的所有输出都在一个always 块里面。
3.状态机的状态编码用: localparam
~~~~~~~~~~
推荐参考书: Motor Standard