赞
踩
《命名规范》
1、 文件头:必须包含正确的版权信息和声明。可以包含简短说明、设计工程师名字和电子邮箱、版本几对该文件进行更改的列表。
格式:/*--------------------------------------------------------------------------------------------------------------
说明……
------------------------------------------------------------------------------------------------------------------*/
2、 一个文件实现一个verilog模块,模块名称与文件名相匹配。
//file: my_module.v
module my_module;
//module implementation
endmodule //my_module
3、 标示符命名两种风格:
a. 大小写混合,没有下划线,每个单词第一个字母大写,如reg MyRegister;
b. 全部小写,字与字之间用下划线(推荐),reg my_register;
4、 常用后缀:
_p,_n:正极性或负极性,或两个差分信号
_ff,_q:寄存器输出
_c:组合门驱动的信号
_cur:现态
_next:次态
_tb:测试平台
_en:使能
5、 时钟信号:wireclk50; wire clk_200_p,clk_200_n; wire clk_en;
6、 复位信号:regreset;//高电平有效 reg reset_n;//低电平有效
7、 端口名称:_i,_o等等。
《连接模块实例的端口》
有两种方法:通过名称和通过顺序。推荐用通过名称方法,允许更多灵活性,例如可以省略一个未连接的端口。虽然代码量稍大,但更具有可读性且不容易出错,尤其适合具有数百个端口的大型模块。
个人写法:module名 m(.旧端口(新端口),……);
《使用可变的比特范围选择》
看例子:assign qout[24+:8] = din[7-:8];
等价于 assign qout[24:31] = din[7:0];
这种方法不容易出错,可以防止胃口不匹配情况
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。