1 / 72
文档名称:

Verilog编码规范.doc

格式:doc   大小:2,103KB   页数:72页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Verilog编码规范.doc

上传人:Alone-丁丁 2021/8/17 文件大小:2.05 MB

下载得到文件列表

Verilog编码规范.doc

文档介绍

文档介绍:Verilog编码规范
D



修订记录
修订日期
修订版本
描述
修订者

目录
1 命名规范 8
2 代码编写规范 12
版面 12
编写代码规范 13
3 电路设计规则 32
时钟 32
复位 35
避免LATCH 36
避免组合反馈 37
赋值语句 37
case语句和if-then-else语句 37
状态机 38
异步逻辑 42
4 模块划分 43
5 提高可移植性的编码风格 44
采用参数化设计 44
采用独立于工具平台和工艺库的设计 45
尽量使用已经得到验证的IP 46
6 其他一些设计建议 47
7 附件 51
8 参考文档: 58


基本原则:简单,一致,可重用。
简单指尽量使用简单的语句,尽量使用简单的设计,尽量使用简单的时钟,尽量使用简单的复位。
一致指尽量保持代码风格一致,尽量保持命名一致。
可重用指有成熟的IP尽量使用IP,设计的代码要尽量可重用。

命名规范
给信号命名就像给孩子取名字一样,有区别,有根源,有深度,还有一点,要简单,别冗长。
有区别指取名字不要一样,假如大家只有一个手机号码,那这个号码还能有什么用处?
有根源指取名字要能象姓氏一样,让人一看就直到是张家的后代而不是李家的。
有深度就是取名字要有涵义,张一,张二,张三虽然也是名字,但是请考虑一下被取名字人的感受。
简单点,几十个字母长的名字,打字的和看字的都累。
大小写规则:只有parameter,`define和module名称才能享受大写。
Module 名应与文件名保持一致(文件名是小写),假如不想在设计后面遇到麻烦的话。
不要尝试使用任何保留字,因为他们已经被保留了。

不要重复使用同样的名字去命名不同的数据。
(建议)对module名加”_LVx”的后缀,增强module名称的结构层次含义
如:设计顶层为TOP LEVEL,即LEVEL1,命名为QTRxxxx_LV1;
时钟模块,IO_PAD,CORE,为LEVEL2,命名为CLK_PROC_LV2等等;
CORE内子模块为LEVEL3,然后以此类推。
对于来自同一驱动源的所有时钟信号使用相同的名字。
对于低电平有效的信号,应该以_n结尾。
模块间相连端口名称要一致。
(建议)使用下表所列的命名缩写方式。
全称
名称
clock
Clk
reset
rst
clear
clr