逻辑综合在整个IC设计流程RTL2GDS中的位置

根据摩尔定律的发展,晶体管的poly的最小栅极长度已经到达了1nm甚至更小,集成电路的规模越来越大,集成度越来越高。因而,设计者已经无法像最原始的手动将hdl(verilog/vhdl)等描述语言转化为电路图并描述元件间互联来产生一个门级网表。所以各种用于asic设计的eda工具(dc,genus等)也应运而生。
图1 逻辑综合在整个ic设计流程rtl2gds之间的位置
在整个asic设计的流程中,需要前端设计工程师完成可实现功能的rtl代码,最后到用于流片的gdsii则是包含芯片制造厂家的工艺信息,这中间逻辑综合起到了很重要的桥接作用。综合工具会根据我们使用的芯片厂商提供的标准单元库文件的信息,将hdl的rtl代码转化为带工艺信息的门级电路网表(netlist),进行formal形式验证,确保综合过后与rtl阶段功能逻辑一致后,综合阶段时序没风险后再交付给后端工程师来进行布局布线。
小编以s家的dc为例子分享一些在设计过程中需要进行的时钟结构分析(以经典的reg2reg为例子),约束设置,逻辑综合。
首先作为一个优秀的逻辑综合工程师,sdc约束/upf/cpf约束是少不了写的,尤其是对一些端口和critical path,一个“干净”的网表是后端的完美开局!约束包括环境约束和设计约束,设计约束又分 为时序约束和设计规则约束。整个综合的过程,最关键的部分就是制定一个正确的约束,特别是时序约束。约束定义的好坏影响到综合结果的优劣。
图2 reg2reg的经典sta路径
我们以对clock的约束为例子, clock latency通常指的就是从clock pin(source)或io pad中传递到sink点cp端的延迟,在综合阶段由于是未传播的,因此skew的值通常是前后两级寄存器对应的source到cp端的cell delay或单纯net delay计算的差值,并包含在uncertainty内。
clock_transiton的值要根据工艺来进行调整,通常在28nm以下的工艺,clock_transition的值要取在对应时钟周期的十分之一内,具体情况要根据lib内的查找表来定。下面简单写下在sdc中对input clock—i_clk时需要注意的约束:
同时,异步复位信号造成网表内的部分寄存器的q—>rstn端发生setup violation也是一个逻辑综合工程师会经常遇到的问题,这种异步的复位端时序检查我们需要添加muticyle来进行检查上的放松。muticyle的放松约束包括:同频时钟,快到慢,慢到快等等,不同情况muticyle的约束书写也不尽相同:
介绍完综合工程师需要掌握的部分重要约束的书写,icer们再跟着小编来看看逻辑综合的每个阶段,到底在干什么吧!
电路的综合一般分为三个步骤,分别是转化(translation)、逻辑优化(logic optimizaion)和映射(mapping)。
转化(translation):把描述rtl级的hdl语言(verilog),在约束下转化成综合工具内部的统一用门级描述的电路(generic boolean gates),即hdl—>netlist 
逻辑优化(logic optimization):把统一用门级描述的电路进行优化,改善路径和门。
映射(mapping):把优化了的统一门级描述。以dc为例,dc使用工艺库(lib库)将电路映射出来,得到.ddc文件,该文件包含如映射的门电路信息与网表,.v格式的网表,延时信息(sdf)【sdf文件主要包括cell, net delay信息和cell的hold,setup,recover,removel等边沿应该满足的要求等信息】,工作约束(sdc)【包含clk的信息,以及驱动,输入输出延时,最大最小延迟约束,特殊路径等】等信息。.ddc中包含的网表是实际意义上的综合过后的网表文件(类似pt中的session,innovus内的enc),.v的网表是用于进行后仿的文件。
在上面的过程中,约束对于综合而言非常重要,如果不施加约束,综合工具会产生非优化(no-opt)的网表,无法满足要求。综合是约束驱动(constraint driven)的,给定的约束是综合的目标,约束一般是在对整个系统进行时序分析得到的,综合工具会对电路进行优化以满足约束的要求。综合以时序路径为基础进行优化。
综合的具体过程 
1. 准备rtl代码,经过前端仿真后才能用于综合;
2. 定义库,设定好所需要用到的综合库等多种库;
3. 读入设计,综合工具读入rtl代码并进行分析;
4. 定义设计环境,设定设计的工作环境、端口的驱动和负载、线负载模型等;
5. 设置设计约束(关键),主要是定义时钟和i/o的约束,约束要适当,只有正确的约束才能得到正确的结果;
6. 设置综合策略,top-down和bottom-up两种策略(就是文件目录顺序不一样),根据需求进行选择;
7. 优化设计,综合工具可以根据约束对电路进行优化,也可认为加入命令改变优化方法;
8. 分析和解决设计的问题,在设计综合后,根据报告分析设计中出现的问题,并修订问题;
9. 保存设计数据,综合结束后,保存各种数据以供后续布局布线使用(需先通过formal验证)
好了,今天这期的逻辑综合内容小编就介绍到这里了,下期小编将会以一个带载入upf流程的genus的syn flow为切入点,进行实战中的综合flow的解析!


在虚幻引擎4中使用多核最大化视觉效果
皮秒激光器与飞秒激光器之间有何特点差异
分析苹果或与特斯拉、蔚来等合作造车
魏德米勒LUF及LLF系列直插式电源端子可免工具接线
华为以三大核心和三个子平台为打造工业互联网核心技术使能
逻辑综合在整个IC设计流程RTL2GDS中的位置
真无线降噪:索尼WF-1000X降噪豆拆解报告
关于USB Type-C的11个常见问题解析
国际空间站首次迎来太空链的区块链技术
叶鲜叶农残检测设备的操作方法及注意事项
燃料电池领域新动态的简单解析
齿轮减速机正常温度多少
什么是“密码散列”?如何正确使用PassGan?
电池修复技术:简单自制锂电均衡充
诚邀报名 | 开放原子训练营(第三季)——基于UBML开源项目的免费企业级低代码平台inBuilder低代码开发实验室
一个能够支持SYZYGY标准的多功能板应用
华为网络安全技术与实践系列丛书在华为全联接大会2022成功发布
吉方工控厂务能耗智能管理解决方案
医疗穿刺采血机器人研发助力医院实现全自动化验检
差分放大电路设计(二)