打印

Verilog/VHDL 语言描述规范

[复制链接]
1559|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星之火红|  楼主 | 2012-10-16 20:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
3
VHDL/Verilog HDL
设计
基于VHDL/Verilog HDL 描述语言具有不同的优缺点,两者可以互为补充。为此我们不强制规定开发人员使用的描述语言种类。基于混合设计的趋势,建议开发人员熟悉两者描述语言,方便同事间开发设计相互借鉴和学习。

3.1
编程风格(Coding Style)要求3.1.1
文件(1)
建议每个进程(process)或(always)一般应存在于单独的源文件中,通常源文件名与所包含实体(entity)或模块名(module)相同。

(2)
整个体系结构中,同一信号用相同的名字表示;

(3)
参数和文本宏的常数名字用大写字母表示;端口、信号、结构体和实例名字用小写表示;

(4)
实例名字和模块名字必须一致;

(5)
多位总线描述位数顺序必须一致,eg [X..0]

(6)
每个源文件代码不能超过1000行代码(包括注释)。

(7)
每个设计文件开头应包含如下注释内容:(中文描述)

l
年份及公司名称。

l
作者。

l
文件名。

l
所属项目。

l
顶层模块。

l
模块名称及其描述。

l
修改纪录。

3.1.2
大小写(1)
对于VHDL系统保留字全部小写。

(2)
对于Verilog HDL系统保留字全部小写。

相关帖子

沙发
星星之火红|  楼主 | 2012-10-16 20:44 | 只看该作者
3.1.3
标识符(1)
标识符采用传统C语言的命名方法,即在单词之间以“_”分开,如:max_delaydata_size等等。

(2)
文件名和其他命名只能用字母、数字和下划线;名字必须以字母开头. Verilog名字区分大小写;而VHDL不区分大小写;

(3)
所有对象名字不能超过32个字母;

(4)
采用有意义的、能反映对象特征、作用和性质的单词命名标识符,以增强程序的可读性。时钟用clk表示,复位rst表示;_n表示低电平有效;状态机变量表示如fsm_cs;锁存器变量表示in_lat;异步信号表示
名字_a;三态信号表示_z

(5)
Verilog/vhdl中的关键词被禁止使用;

(6)
为避免标识符过于冗长,对较长单词的应当采用适当的缩写形式,如用‘buff’代替‘buffer’,‘ena’代替‘enable’,‘addr’代替‘address’等。

3.1.4
参数化设计
为了源代码的可读性和可移植性起见,不要在程序中直接写特定数值。源代码都采用正逻辑,即高电平表示有效,低电平表示无效;

3.1.5
空行和空格(1)
适当地在代码的不同部分中插入空行,避免因程序拥挤不利阅读。

(2)
条件判断必须用括号表达优先级。

(3)
在表达式中插入空格,避免代码拥挤,包括:

赋值符号两边要有空格;
双目运算符两边要有空格;
单目运算符和操作数之间可没有空格,

示例如下:
a  <=  b;
c  <=  a  +  b;
if (a  ==  b) then ...
a  <=  ~a  &  c;
3.1.6
对齐和缩进(1)
使用连续的空格来进行语句的对齐。

(2)
各种嵌套语句尤其是IF..ELSE语句,必须严格的逐层缩进对齐。IF..ELSE语句中间超过10行代码必须注释IF..ELSE对应关系。

使用特权

评论回复
板凳
星星之火红|  楼主 | 2012-10-16 20:45 | 只看该作者
3.1.7          注释

必须加入详细、清晰的注释行以增强代码的可读性和可移植性,注释内容占代码篇幅不应少于30%。
(1)       注释采用中文描述,言简意赅。
(2)       注释每个进程(PROCESS)完成的功能。注释需要表达该进程的设计思想。
(3)       注释重要的内部信号、变量、输入和输出信号、常数和参数等。
3.1.8          参考C语言的资料

       要形成良好的编程风格,有许多细节需要注意。VHDL,Verilog HDL和C语言风格比较接近,所以里面提到的很多原则都是可以借鉴的。
3.1.9          顶层文件表述方法

       为提高设计效率,规定顶层文件采用语言形式描述。
  3.2             可综合设计
       用HDL实现电路,设计人员对可综合风格的RTL描述的掌握不仅会影响到仿真和综合的一致性,也是逻辑综合后电路可靠性和质量好坏最主要的因素,对此应当予以充分的重视。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

1782

帖子

22

粉丝