综合是使用软件的方法来设计硬件,然后将门级电路实现与优化的工作留给综合工具的一种设计方法,也就是利用综合工具将 RTL 代码转换为门级网表。它是根据一个系统逻辑功能与性能的要求,在一个包含众多结构、功能、性能均已知的逻辑元件的单元库的支持下,寻找出一个逻辑网络结构的最佳实现方案。即实现在满足设计电路的功能、速度及面积等限制条件下,将行为级描述转化为指定的技术库中单元电路的连接。门级网表中的基本元件包括触发器、逻辑门和缓冲器(Buffer)等称为 cell,由流片厂家(Foundry)以库的方式提供,门级网表就是 cell 和连接关系的集合。常用综合工具是Synopsys 的 DC(Design Compiler)。
综合(Synthesis)= 翻译(Transiation)+ 优化(Optimization)+ 映射(Mapping)
1)翻译(Transiation)过程是使用gtech.db库(对于Synopsys的综合工具DC来说)中的门级单元来组成HDL语言描述的电路,从而构成初始的未优化的电路网表。
2)优化(Optimization)过程是综合工具对已有的初始电路网表进行分析,去掉电路网表中的冗余单元,并对不满足限制条件的路径进行优化。
3)映射(Mapping)过程是将优化之后的电路映射到由制造商提供的工艺库上,从而转化为综合后的网表。
大家可以从下面两个图更直观的理解综合的过程。
综合是连接电路的高层描述与物理实现的桥梁。综合结果的好坏直接决定于HDL语言的描述,综合给定的限制条件与综合之后的门级网表将送到后端工具用于布局布线,而且在使用HDL语言描述电路以及在综合的过程中就需要考虑电路的可测试性,在综合之后需要对电路的可测试性进行处理,也就是做DFT相关的工作。