Azure' WorkSpace

RTL风格建议规范

移动实验室的代码经验,又看了一下谭大哥的代码,总结一下。

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

posted on   此用户有没昵称  阅读(451)  评论(0)    收藏  举报

编辑推荐:
· C#性能优化:为何 x * Math.Sqrt(x) 远胜 Math.Pow(x, 1.5)
· 本可避免的P1事故:Nginx变更导致网关请求均响应400
· 还在手写JSON调教大模型?.NET 9有新玩法
· 复杂业务系统线上问题排查过程
· 通过抓包,深入揭秘MCP协议底层通信
阅读排行:
· AI 的力量,开发者的翅膀:欢迎使用字节旗下的 AI 原生开发工具 TRAE
· 「闲聊文」准大三的我,思前想后还是不搞java了
· C#性能优化:为何 x * Math.Sqrt(x) 远胜 Math.Pow(x, 1.5)
· 千万级的大表如何新增字段?
· 《HelloGitHub》第 112 期
< 2010年7月 >
27 28 29 30 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7

导航

点击右上角即可分享
微信分享提示