"); //-->
过去半个月,因为华为禁运事件的进一步升级,又在国内掀起了关于本土集成电路实力的广泛讨论。尤其是在EDA方面,因为市场基本都集中在三家厂商手里,加上他们的技术积累。为此,对于本土EDA的未来,大家都保留态度。而在本文作者看来,国产EDA还有一个机会,那就是自动IP生成。
什么是自动IP生成
随着半导体行业的发展,SoC已经成为了芯片设计的最常见形式。在SoC中,通常都包括了多个半导体IP,之后在顶层把这些IP连接到一起组成完整的系统。
常规的IP设计过程费时费力。一般来说,数字IP设计首先需要定义IP实现的功能、接口和高层架构设计,此后进一步细化到微架构设计(如模块划分和RTL定义),然后再是映射到具体的电路设计。模拟IP设计则是需要首先定义模块的性能指标(spec),之后根据该指标再去仔细调整电路/版图设计并随时进行仿真验证,在多次迭代之后获得最终的模拟IP设计。在整个过程中,每一个环节都需要大量的时间和人力。
与之相对,自动IP生成则是希望能通过直接把顶层架构设计(对于数字IP)或模块指标(模拟IP)映射到电路。这样一来,就能大大节省设计的时间和成本,同时可以做更多的设计探索,最终收敛到最优设计。
数字领域的自动IP生成
传统的数字电路IP设计通常需要经过以下几个环节:
(1)制定顶层的架构和算法(使用C语言等高级语言设计),并且进行算法验证;
(2)根据顶层架构做模块划分和微架构设计/优化,包括时序规划、clock gating等;
(3)根据微架构设计RTL;
(4)根据RTL进行综合生成门级网表;
(5)根据门级网表做布局布线生成版图GDS。
而数字领域的自动IP生成则是指使用(1)中的高级语言设计,跳过(2)和(3),直接生成RTL/门级网表/GDS。
我们认为,数字领域的自动IP生成非常适合信号处理型IP。信号处理型IP主要是对于输入信号做数学运算,其中的主要部分即做运算的数据通路(data path),典型的信号处理型IP包括数字滤波器、视频编解码等等。
我们可以更进一步把数字领域的自动IP生成分为两大类。一类是对于某些算法和结构相对固定的数字IP,根据顶层的IP spec输入去自动生成电路设计。典型的例子是MathWorks Matlab中的数字滤波器自动RTL综合,用户只需要输入数字滤波器的类型(FIR,IIR)、指标(带宽、中心频率、滤波抑制比、通带纹波等)等信息,就能自动生成高质量的数字滤波器RTL代码。在这类应用中,使用自动生成的优势在于可以大大较少设计验证的迭代时间。例如,在数字滤波器设计中,用户最关心的就是带宽、滤波抑制比等高层的频域指标,但是如果使用RTL去做设计仿真的话,需要自行加入相应的激励波形,同时输出的时域波形图也无法直接反映频域的特性,而需要去把该波形图的数据点导出再去做傅立叶分析才能验证设计是否满足频域指标。这一来一去就会花很多时间,而使用数字IP直接生成则可以直接在Matlab里去验证滤波器的性能以及把滤波器接入系统中的整体性能,这样就大大加速了设计流程。
另一种数字IP自动生成则是针对更一般电路,它通常使用C/C++/SystemC等高级语言作为输入,其输出则是功能和高级语言输入等价的RTL/门级网表/GDS。这类数字自动生成工具通常又称作“high-level synthesis”(HLS)。HLS的优点和限制都很明确:优点是整体设计和验证速度都很快,省去了微结构设计和RTL编写的时间,验证上也可以直接和使用高级语言的系统验证方便地整合在一起。而其缺陷则在于高级语言在描述数字逻辑时的颗粒度较粗,且一般没有时序的概念,因此HLS生成的电路通常仅能保证功能正确,但是在电路的速度(往往由时序划分决定)和功耗(HLS对于常规的低功耗设计方法学如clock gating的支持还不方便)上比起手写的RTL可能有差距。在信号处理模块上,HLS生成的电路比起手写RTL差距较小,差距可以在20%以内,甚至在一些场合可以做到HLS生成的电路与手写RTL性能没有差距。目前,HLS的主要产品包括Mentor Graphics的Catapult,Cadence的Stratus,Xilinx的Vivado HLS等。
HLS的概念提出已经有十多年,但是在最近得到了越来越多的重视。这除了和HLS本身技术发展之外,还和半导体行业的趋势有关。在过去,半导体芯片的主要范式还是大的半导体厂商提供通用的处理器平台,在这样的范式下,由于在计算平台上执行的算法不确定,因此半导体厂商的策略就是把通用处理平台的每一个细节都做到完美,这样一来自然就没有HLS的发展空间。而在最近,随着人工智能、大数据和下一代多媒体需求的出现,SoC上对于执行固定算法的数字IP的需求在大大增强,而且随着互联网厂商加入芯片战局也为半导体芯片快速交付提出了需求。在这种情况下,HLS就变得越来越有价值。这是因为,对于这类执行固定算法的数字信号处理IP,算法本身以及IP顶层架构的优化对于SoC芯片整体性能的影响往往远远大于具体电路实现带来的影响。在较短交付周期的限制下,如果使用传统的数字设计方法论,往往就意味着留给顶层架构和算法探索的时间比较少,最后导致使用高效的RTL代码实现了并非最优的架构/算法。反之,如果使用HLS,则可以大大压缩RTL设计的时间,这样就给架构/算法探索留下了更多时间,最后尽管HLS生成的电路性能可能比手写RTL要差20%,但是顶层架构/算法的优化带来的影响可能是2-3倍的性能提升,而HLS带来的time-to-market的改善则可能是更大的影响。
谷歌使用Catapult HLS实现了视频解码IP中的绝大部分模块。该IP是典型的数字信号处理IP。
模拟IP自动生成
在模拟电路领域,自动IP生成也是EDA领域的一个热门方向。
模拟IP自动生成目前能做的是给定一种电路结构(例如带4-tap DFE的wireline receiver)和模块指标,自动生成电路图和版图并完成仿真验证。在未来,随着电路库中电路结构数量的上升,也有机会能实现仅需输入模块功能和指标,IP自动生成器可以自主选择最优电路结构并生成符合指标的电路和版图。
模拟IP自动生成可以分成两部分,即自动调优电路中的晶体管参数和自动生成版图。前者至少有30年的历史,上世纪九十年代就有不少学者在研究用各种数学优化方法来自动选择模拟电路中晶体管的参数。在今天,如果仅仅是选择电路中的晶体管参数而不考虑自动生成版图,那么常规的EDA工具中的参数扫描就能满足大部分需求。但是,电路图设计中的晶体管参数自动调优往往不能落实到实际设计中,这是因为随着半导体工艺越来越先进,模拟电路中的版图效应也越来越显著,而电路图设计中的晶体管参数调优并不能反映版图的影响,因此往往扫描得到的电路图最优晶体管参数和版图设计完成后的最优参数有一定差别。因此常见的做法是先做一个版本电路图设计,然后去画版图并做带版图效应的电路仿真,然后再去调整电路图设计中的晶体管参数。在这个过程中,即使电路图中的晶体管参数都能自动化调优,但是整体的设计流程还是卡在了手工画版图——仿真——调整电路图晶体管参数这个循环里。
而模拟IP自动生成解决的最大痛点,就在于能自动生成版图。这样一来,整体的流程都可以做到自动化,仅需输入指标,生成器可以自动生成一组晶体管参数,自动生成版图做仿真,并自动根据版图仿真结果去调整电路图晶体管参数。这就大大节省了模拟IP生成的人力和时间,并提升了设计效率。目前,模拟IP自动生成做的最领先的是UC Berkeley的BAG(Berkeley Analog Generator)项目,该项目已经能自动生成SerDes、ADC等复杂的模拟/混合信号IP的电路设计和版图,并且在28nm和16nm等先进工艺下都得到了流片验证。
自动IP生成是中国EDA的机会
自动IP生成在美国得到了相当的重视,美国国防高级研究计划局(DARPA)2019年的电子复兴计划(ERI)中,自动IP生成(IDEA)是其重点扶持方向之一。我们认为,这个领域对于中国的半导体行业有重要价值,同时中国距离全球先进的差距也并不大,因此如果得到足够支持的话有机会能在未来数年内追赶全球领先。
对于数字IP自动生成来说,其主战场在信号处理领域,这就从一个方面降低了工具所需要覆盖的设计范围。只要能加速设计流程,国产EDA版本的HLS完全可以考虑仅仅只支持一部分C/SystemC语言的特性或者甚至是自主的高级语言,只需要该语言能方便地描述这类信号处理电路即可。我们看到,在人工智能、大数据和下一代多媒体等新兴市场,中国有一大批互联网公司进入了芯片设计领域(如阿里,百度,以及最近的字节跳动等),这些互联网公司对于芯片的主要诉求就是加速信号处理,并且需要能快速交付,因此国产HLS对于这些互联网公司的芯片项目将有很大的吸引力。
对于模拟IP自动生成来说,我们看到自动版图生成技术至今大约有5年的时间,可以说中国半导体行业如果有心发展的话,完全可以在未来几年内赶上并达到全球一流水平。拥有下一代的自动模拟IP生成工具,也有利于巩固中国模拟IP设计强国的地位。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。