VHDL编码风格

本文介绍了VHDL编码的一系列最佳实践,强调了明确声明状态、理解设计实体综合结果、保持代码可读性、避免锁存、合理拆解设计实体、使用描述性信号名称以及重视注释质量等方面,旨在提升VHDL设计的效率和可维护性。
摘要由CSDN通过智能技术生成

VHDL编码风格

本编码风格基本基于VHDL-2008和Verilog编码风格指南,并结合多年设计经验的总结

A.1基本原则
知道状态在哪里 设计中的状态的每一位都应该被明确声明。在此风格中,所有状态都要明确是在触发器或者寄存器组件中,所有其他部分是纯组合逻辑。当在“if rising\edge(clk)then”声明中写入时序语句时,在一个进程内采用这一原则可以避免很多问题。当不是所有信号的所有值都被分配在条件语句的分支中时,这一原则使得检测潜在的锁存更容易。
知道设计实体会被综合成什么 当编写设计实体时,应该知道它对应着什么逻辑。如果设计实体时基于结构描述的,将其他部分连接在一起,结果时可预测的。小的行为设计实体和算术块也是可预测的。大型的行为设计实体,其综合结果是不可预测的,应该避免。
代码的可读性 在项目开发过程中,设计实体可能需要修改。修改的难易程度与设计实体的可读性有很大的关系。功能应该明确,例如使用case或“case?”来描述一个针织代码。当修改可读性好的实体时,将发现这样会更容易理解设计的功能并对其进行更改。如果设计实体使用奇怪的编码和隐喻名称,理解代码将边的很困难,特别是当此代码是很久之前写的。
保持警惕 想想你设计的实体可能会出什么问题。输入和输出的边界情况是什么?明确每种情况都是可以处理的,包括对必须维护的常量和可以被检查出的错误条件的断言。
让综合工具帮助设计 现代逻辑综合工具在优化小型组合设计实体(最多约10个输入)方面表现很好。在优化算法电路方面它们也做得很好。除非是非常罕见的情况,否则手动优化这些设计是没有意义的。设计实体描述应该是直接对行为进行描述,让工具做它们擅长的事情。
了解综合工具不能做的事情 现代综合工具不擅长进行高层次优化。它们不了解如何对逻辑进行因子

目 次 21 6.5 参数化元件实例......................................................... 20 6.4 程序包书写实例......................................................... 19 6.3 函数书写实例 .......................................................... 17 6.2 VHDL 编写范例......................................................... 17 6.1 VHDL保留字........................................................... 16 6 附录 .................................................................... 15 5.2.5 多赋值语句案例三态总线............................................ 15 5.2.4 避免使用Latch ...................................................... 15 5.2.3 考虑综合的执行时间................................................. 14 5.2.2组合逻辑描述的多种方式.............................................. 14 5.2.1 资源共享问题...................................................... 14 5.2 代码编写中容易出现的问题................................................ 13 5.1 代码模块划分 .......................................................... 13 5.1.13 TAB键间隔....................................................... 13 5.1.12.1 Comments 使用建议 ............................................ 13 5.1.12 Comments ........................................................ 13 5.1.11.1 FSM 使用规定 ................................................ 13 5.1.11 FSM 有限状态机 ................................................ 13 5.1.10.2package 使用注意内容........................................... 12 5.1.10.1 package 使用建议.............................................. 12 5.1.10 package .......................................................... 12 5.1.9.1 generic 使用注意内容............................................ 12 5.1.9 类属( generics) ...................................................... 12 5.1.8.2 procedure 使用注意内容 .......................................... 12 5.1.8.1 procedure 使用规定.............................................. 12 5.1.8 procedure .......................................................... 11 5.1.7.3 function 使用注意内容 ........................................... 11 5.1.7.2 function 使用建议............................................... 11 5.1.7.1 function 使用规定............................................... 11 5.1.7 function .......................................................... 11 5.1.6.2比较运算符规定 ................................................ 11 5.1.6.1 表达式书写规定................................................ 11 5.1.6 运算符(operator) .................................................... 11 5.1.5.3 VHDL 语句使用注意内容......................................... 10 5.1.5.2 VHDL 语句使用建议............................................ 7 5.1.5.1VHDL各语句使用规定 ............................................. 7 5.1.5 语句.............................................................. 6 5.1.4.3 实体使用注意内容 ............................................... 6 5.1.4.2 实体使用建议................................................... 4 5.1.4.1 实体结构体使用规定 ........................................... 4 5.1.4 实体.............................................................. 4 5.1.3.3 信号变量使用注意内容.......................................... 4 5.1.3.2 变量使用建议................................................... 4 5.1.3.1 信号不许赋初值 ............................................... 4 5.1.3 信号和变量......................................................... 4 5.1.2.3 数据使用注意内容 ............................................... 3 5.1.2.2 数据及数据类型使用建议 ......................................... 3 5.1.2.1类型使用规定................................................... 3 5.1.2数据对象和类型...................................................... 3 5.1.1.6 信号命名有关建议 ............................................... 2 5.1.1.5 信号名一致性规定............................................... 2 5.1.1.4 信号名缩写的大小写规定.......................................... 2 5.1.1.3 信号名连贯缩写的规定............................................ 2 5.1.1.2标识符大小写规定................................................ 2 5.1.1.1标识符定义命名规定 .............................................. 2 5.1.1 标识符Identifiers)命名习惯............................................ 1 5.1 VHDL编码风格.......................................................... 1 5 规范内容.................................................................. 1 4 引用标准和参考资料......................................................... 1 3 定义 ..................................................................... 1 2 范围 ..................................................................... 1 1 目的 .....................................................................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值