1.综合过程
综合(Synthesis)=转换(translation)+映射(mapping)+优化(optimization)
转换:将RTL电路转换为与工艺无关的通用门级网表GTECH,例如布尔逻辑,与或非门;
映射:将转换后的门电路映射到特定工艺库上,例如TSMC48nm工艺;
优化:添加时序、面积、功耗等方面约束,生成理想中的电路。
2.综合的不同层次
(1)逻辑级
设计实体以布尔逻辑(与或非等)、触发器、锁存器等元件例化实现。例如四位全加器,可以用RTL级描述,也可以使用门电路描述。
(2)RTL级
使用硬件描述语言设计,Verilog与VHDL较为常用。RTL级描述可以依照基础语法划分,如选择语句、循环语句;也可以按照时序划分,组合逻辑电路和时序逻辑电路。
(3)行为级
比RTL更高层次的描述,更注重于功能的实现,添加时序约束让工具在约束范围内自动生成可以工作的电路,例如Vivado HLS工具,可以添加directives,对latency和interval进行约束。其优点是设计方便,接近我们的设计习惯;缺点是debug比较麻烦,调试耗时长。
3.综合与Design Compiler
Synopsys的Design Compiler是常用的综合工具,其使用与综合流程一致,如下图所示
DC类似于脚本处理软件。首先读入.v格式的设计文件,然后加入.db格式的工艺库、链接库,最后添加tcl约束脚本,综合生成特定工艺库、特定约束条件下的电路。
4.超深亚微米综合
亚微米:<1um;深亚微米:<0.5um;超深亚微米:<0.25um
面对制程越来越小的工艺,超深亚微米电路综合面临最大的问题是不可忽略的线延迟。
我们在做时序约束时主要考虑电路模块内部,连接线上的延迟所占时间很小。但线宽缩小到一定程度时,可以理解为电阻R在增大(R=ρL/S),对某一结点的充电时间t=RC不断增加。可能导致电平不能在约束时间内翻转,从而导致逻辑功能错误。
解决这一问题,需要在IC设计过程中不断地迭代逼近。例如Physical Compiler可以在结合前端与后端的时序约束不断拟合,直到获得较为理想的时序。