(转)在《Reuse methodology manual》第五章,主要收集了一些HDL代码的规范和指导。遵照这些规范或者指导的目的是让你的代码更加的具有可读性、可修改性、可重用;这个应该是所有语言所追求的;而针对HDL代码,还要使代码适合综合和仿真。
注:下面所说的不是什么金科玉律,但是如果能够遵循的话,一定可以增加编程的效率和提高设计的质量。
1. 一般的命名规范
原则:设计自己的命名规范,并对该规则编写文档;在以后的设计中也需要保持一致。
建议:
用小写字母表示所有的信号(signal),变量(variable)和端口(port)名字;
用大写字母表示常量(constant)和用户自定义的类型(type);
用有意义的名字来表示信号,端口,函数或者参数,例如ram_addr用来表示RAM address bus.
用一致的名字表示时钟信号(clock signal);如CLK;
用一致的名字表示复位信号(reset signal);如RST;
低电平有效的信号,名字末尾添加”_b” 或者”_n”;如复位信号低电平有效,可表示为:rst_n;
参考如下:

参考如下:

注:上面的端口定义中请注意各个端口的名称以及常量的名称,当然在这里没有详细对每个端口进行注释;如果端口比较多且容易分组的时候,请对端口进行分组注释,主要的目的还是为了增加可读性。
2. 源文件头信息的内容(Informational Headers)
每个源文件都应该包含该文件的相关信息,以便读者或者将来自己的更新,所以头信息必须包含一下内容:
头文件参考如下:

3.时钟和复位信号的设计

4. 综合

5. 模块划分(Partitioning)
一个好的模块划分有以下优点:
建议:

Bad example:

Good example:


Bad example:

Good example:

6.总结
林林总总说了这么多,杂乱无章,内容基本上都是从书中摘录下来,没有很细的地方,只说了点怎么做,但是绝对没有说到为什么这么做。以上都是书中的经验之谈,话说经验还是自己经历了,遇到了,体会才会深刻。边实践边学习,边思考边总结,经验总会有的,体会总会有的,思想深度也会提高的。
最新评论
2 天 6 小时之前
2 天 6 小时之前
2 天 6 小时之前
2 天 10 小时之前
3 天 6 小时之前
5 天 4 小时之前
5 天 11 小时之前
6 天 1 小时之前
6 天 6 小时之前
6 天 10 小时之前