SoC设计方法与实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 逻辑综合及综合工具

从硬件的行为描述转换到电路结构,这种自动产生电路结构的过程称为综合。它把设计人员从门级电路的设计中解脱出来,让设计人员把更多的精力放在电路的逻辑功能的设计上,只需要用专用的硬件描述语言把电路的功能描述清楚即可,这就大大提高了设计效率。同时,电路的设计者往往希望所设计的电路可以自由地移植到另外的环境和工艺下,所以他们希望这种移植工作不需要设计人员花费过多的精力,而由软件工具自动来完成。所以在当今的EDA设计与实现过程中,综合是一个非常重要的环节。

3.3.1 EDA工具的综合流程

图3-5 综合流程

如图3-5所示,就现有的EDA工具而言,逻辑综合就是将RTL级的描述转换为门级网表的过程,一般分3步完成这一过程。

首先将RTL描述转换成未优化的门级布尔描述,即布尔逻辑方程的形式,这个过程可以称为翻译,或者展平。

接下来执行优化算法,化简布尔方程,这一步叫作优化。

最后按照半导体工艺要求,采用相应的工艺库,把优化的布尔描述映射为实际的逻辑电路,这一步称作映射,即门级网表的映射。在这一过程中,提取工具会取出经过优化后的布尔描述,并利用从工艺库中得到的逻辑和时序信息去做网表。网表是对用户所提出的面积和速度指标的一种体现方式。工艺库中存有大量的标准单元的元器件信息,他们在功能上相同,但可以在速度和面积等特性上不同。

3.3.2 EDA工具的综合策略

不同的电路描述方法将导致生成不同的电路,为了使设计更加有效,设计者应该了解一些EDA工具基本的综合和优化策略,这样可以选择和规划不同的综合策略来实现高效的电路。

1.以速度为目标的综合策略

以速度为目标的综合策略是当速度问题是设计的主要矛盾时,需要采用的综合方案。这一类算法的核心是忽略所有的有关代价的约束,寻找出具有最大速度特性的算子调度方案。只有当速度满足了设计要求时才去考虑其他代价的优化。

2.成本尽可能低的综合策略

成本尽可能低的综合策略是当成本问题是设计的主要矛盾时,需要采用的综合方案。这一类算法的核心是忽略所有的有关速度的约束,寻找出具有最低成本特性的算子调度方案。只有当成本特性满足设计要求时才去考虑速度的优化。

3.速度和成本折中的综合策略

速度和成本折中的综合策略是当所寻找的是一个最优的设计时,需要采用的综合策略。这一类算法的核心是将速度尽可能快的调度算法给出的速度和低成本(面积)分别作为系统速度的上界和下界,寻找出具有最低成本和最快速度的调度方案。

3.3.3 优化策略

在综合过程中,综合工具需要调整电路的结构以满足约束的要求。一个好的综合工具,可以在保证电路功能与设计一致的前提下,对电路的结构有比较大的调整,使电路的性能有较大的提高。较典型的策略如下。

1.器件复用

该策略在不影响功能的前提下,把不同的电路中某些相同的器件进行复用,以减小芯片的面积。但这种优化策略有可能会降低速度,设计者应该统筹考虑。

2.时序重排

该策略允许把触发器间的延时比较大的组合逻辑的一部分调整到前一级或后一级,以平衡时序关系,降低关键路径,提高系统的性能。

3.状态机重新编译

状态机的实现是非常复杂的,往往设计者只是保证状态机的正确,而很难根据实际电路的情况设计状态机。该策略允许对电路中的状态机重新编译,以找到使电路性能更高、资源更省的实现方式。

以上所提到的综合及优化策略只允许设计者在宏观上指导综合的进行。事实上,同样的硬件描述语言在不同的综合工具中所得到的结果都是不同的,而综合工具对某一特定电路的综合和优化又与该电路的描述方法息息相关。这就要求设计者能够熟悉综合工具更为具体的综合策略,掌握其中的规律,设计出更有效率的电路。

3.3.4 常用的逻辑综合工具

Synopsys的RTL综合工具Design Compiler自从1987年以来在全球范围内使用,它也是当前90%以上ASIC设计人员广泛使用的软件。据统计,使用Design Compiler系列软件仅有1%的设计风险,它可以快速生成面积有效的ASIC设计。采用用户指定的标准单元或门阵列库可将设计从一种工艺转换成另一种工艺,能使设计人员有效地进行静态时序分析、测试综合和功耗综合集成,形成完整的解决方案。几乎所有的硅片供应商、IP供应商和库的供应商都支持Design Compiler。