没有合适的资源?快使用搜索试试~ 我知道了~
首页Verilog编程规范.pdf
Verilog编程规范.pdf
需积分: 39 295 浏览量
更新于2023-03-03
评论 1
收藏 401KB PDF 举报
一些基础的verilog规范,适用于新人学习的时候。建议养成良好的习惯。。。。。。。。。。。。。。。。。。。。。。。。。。。欢迎大家一起学习
资源详情
资源评论
资源推荐

目录
一、 规则等级 .................................................................................................................... 2
二、 命名规范 .................................................................................................................... 3
三、 文件头规范 ................................................................................................................ 7
四、 注释规范 .................................................................................................................... 8
五、 代码风格 .................................................................................................................... 9
六、 可综合规范 .............................................................................................................. 16

一、
规则等级
M1:该规则必须遵守。如果代码中出现违反该规则的情况,
需要修改代码。
M2:该规则应该遵守。如果代码中出现违反该规则的情况,
需要给出说明文档。
R:建议参考该规则。

二、
命名规范
1)
命名时只允许使用字母、数字和下划线(
M1
)
只能使用[A-Z, a-z, 0-9, _ ] 对文件、模块、信号命名,同时连续的”_”也
是不允许的。
2)
不能只使用大小写来区分不同的命名(
M1
)
不要使用 ABC, abc 表示两个不同的信号
3)
禁止使用
VHDL
和
Verilog
关键字(
M1
)
4)
一个文件中最多包含一个模块单元(
M2
)
一个文件中只有一个模块可以让整个设计架构看起来更直观
5)
命名必须以字母开始(
M1
)
有些综合工具不支持以下列线开头的命名
6)
端口例化时,在不同的结构层次之间使用相同的命名(
M2
)
7) Parameters
和宏文件等常量使用大写字母(
M2
)
Use:
block1 u_block1
(
.rst_n (rst_n),
.clk (clk),
.addr (addr),
.wr_data (wr_data),
. . .,
);
Do not use:
block2 u_block2
(
.reset_n (rst_n),
.clock (clk),
.address (addr),
.Wr_data (wr_data),
. . .,
);

8)
信号、模块例化时使用小写字母(
M2
)
9)
时钟、复位信号的命名方式保持一致(
M2
)
对于时钟信号,建议以 clk_开头;复位信号使用 rst_开头
10)
低电平信号命名的方式保持一致(
M2
)
对于低电平有效的信,使用_n 结尾
11)
信号长度不要超过
32
个字符(
M2
)
过长的信号命名会降低代码的可读性
12)
模块例化的名字必须和模块的名字一致;(
M2
)
parameter DATA_WIDTH = 32;
`define AHB_TRANS_SEQ 2'b11
Ports
input rst_n,
output wr_data,
Signals
reg [7:0] a_reg;
wire wr_en;
constructs
task busy;
function call_addr;
Instance names
block1 u_block1
(
…
);
剩余16页未读,继续阅读









安全验证
文档复制为VIP权益,开通VIP直接复制

评论0