代码中的嵌套
代码中尽量不要设置太多的嵌套,例如嵌套的if和case语句。若在某条if语句中有太多的if语句,则不利于实现综合优化。如果遵循以下指导原则,代码的可读性会更强。当在HDL中描述“for-loops”语句时,最好在数据路径中放置至少一个寄存器,特别是有算术或其它逻辑多的操作时。在编译时,综合工具会解开环路。如果没有这些同步单元,它会级联环路每次反复时创建的逻辑,从而导致组合路径过长,降低设计性能。
本文小结
综合、布局和布线算法中的最新发展可使我们更直接地从特殊器件中获得最佳性能。综合工具可以选用复杂的算术和存储器描述并映射到专门的硬件模块上。它们也能执行再定时、逻辑和寄存器复制等优化操作。布局布线工具可以在时序约束的基础上重建网表,执行以时序为主导的封装和布局,从而减少布局布线拥塞。
不过,目前的工具在提高性能方面只能做到这么多。如果需要更高性能的设计,最有效的方法莫过于更好地理解目标器件、综合工具,并采用本文提供的编码指南。