片上系统(SOC)稠浊旗子暗记含量越来越高
集成电路从仿照电路开始,后来数字电路发达发展,而今为了能够知足多种场合的不同繁芜运用,例如高集成/低本钱/可移动/多接口等哀求,稠浊旗子暗记片上系统SOC(System On Chip)日益盛行。SOC中的数模稠浊旗子暗记含量已经从10%~20%增加到50%或更高。

例如,在以数字为主的SOC中,离不开连接真实天下的ADC(Analog-to-Digital-Converter),DAC(Digital-To-Analog-Converter),还有供应高速时钟的PLL(Phase-Locked-Loop)以及射频收发器,存储器接口等。在以仿照为主的SOC中,也增加了Control/Trim/Calibration等数字逻辑,来补偿PVT(Process, Voltage, Temperature)的变革,提高性能指标和良率。数模电路乃至在不同层次中紧密结合。

图1 稠浊旗子暗记SOC范例框图
这张图是一颗稠浊SOC芯片,蓝色部分是数字部分,常日有微处理器、基带(BB)、总线、SRAM (缓存,或者叫内存)、有NVM(非易失落性存储器),比如说像FLASH、EEPROM,或者OTP,还有Video, Audio, USB,以及外设的一些接口掌握电路,像SPI、I2C、HDMI接口或者UART、GPIO、PWM掌握等。
绿色部分是仿照或者仿照为主的稠浊模块,常日有OSC/PLL振荡器,有作为数字和外界的窗口ADC或者DAC,有逻辑掌握的GPIO作为通用的I/O接口,为了给数字电路供电有LDO,由于数字电路须要比较稳定的电源。
右边第一个是PHY,是协议物理层,常日它本身也是一个数模稠浊的模块,它既有数字电路也有仿照电路,把它放在这里就表示须要仿照工程师对它进行重点的关注。还有作为对微弱旗子暗记处理的放大器和仿照前端AFE(Analog Front End),AFE将仿照旗子暗记经由放大处理,把它输入到ADC或者数字电路当中。Power Management是常常会用到的一个模块,包括BUCK,BOOST或Charge Pump等模块,其余便是传感器的掌握电路。前面这几个模块每个芯片都不一样,有可能有,有可能没有。但是左边这一列,基本上每个SOC芯片都会有。
数模稠浊SOC设计常用流程与工具
既然数模稠浊SOC市场需求越来大,那么如何设计与实现一款稠浊SOC呢?本章节紧张磋商数模集成电路设计常用的流程与工具。
1.以数字为主的SOC设计流程
常用文档编辑工具,从高等描述开始,采取Verilog, System Verilog或者C措辞,去设计数字电路并制作Test Bench(TB)和层次化的模型,再用仿真工具去仿真模型,然后通过标准单元库,自动综合成门级电路,天生网表,再对网表进行布图并天生三个文件(GDS、Netlist和Timing信息的SDF),设计告一段落。
在验证阶段须要仿照的Model,供数字掌握仿照或者仿照返回到数字的仿照验证。也须要固件的二进制码供给TB对SOC进行仿真。
2.以仿照为主的SOC设计流程
差异于写代码,仿照IC设计常日因此电路图来做设计,电路图中包括电阻电容/MOS管等基本元件,和干系拓扑连接关系。仿照工程师常日先设计子模块,电路图的顶层则是由一个仿照顶层的线路图和一个空的数字模块构成。
顶层仿真开始阶段用Digital的RTL的IP模块和Firmware组合,加之仿照电路,进行Analog On Top的仿真。仿真验证通过后,RTL进行PR,再由Schematic Verilog-in组成终极顶层的线路图,结合数字的SDF的Timing约束,完成PR后的仿真。
从后端看,顶层仿真后进行Analog layout将等在Digital PR完成,然后Stream-in进来一起形成TOP的Layout,纵然有些IP可能不会给底层的GDS,通过Phantom View形成TOP的Layout,再对它进行LVS。
3.数模集成电路设计的常见工具
图2 数模稠浊设计与实现的常见工具
数模稠浊验证须要在顶层同时整合两套设计流程。仿照工程师熟习的流程是Schematic Based,数字设计师利用RTL module。
常日熟习Cadence Virtuoso schematic + Spectre的是仿照设计者。数字设计工具Synopsys用VCS+Verdi,Cadence用的是Xrun+Simvison,此外还要搭建Firmware的设计环境。当然,写程序和编译还要用到ARM CC或者像GCC之类的工具。
后端设计,仿照每每用Virtuoso Layout,再加上Calibre,做LVS和DRC;数字设计要用DC综合,时序剖析PT(Prime Time),布图用ICC(或Encounter),还有FM(形式验证),Patten(测试矢量的自动天生)工具。
4.数模稠浊SOC并行协同设计流程
公开的/工业标准的数据库的涌现,例如Open Access(OA),对数模稠浊SOC方法学的开拓与运用做出了主要贡献。OA是一种层次化的数据库,能同时存储数字和仿照,从而不须要将数据从一种格式转换到其余一种格式。公共数据库是同步稠浊旗子暗记设计的基本哀求,否则在以前单独的仿照或者数字方法学中,每个区域对对方而言都是黑盒子,就非常随意马虎出错,乃至是低级缺点,由于繁芜的功能,不同的Background, 模糊的“Common Sense”,都增加了芯片出bug的风险,一些大略缺点可能会导致很严重的后果,例如功能不正常,过长的流片后的debug韶光,昂贵的再流片本钱,更主要的是Delay的研发周期,错失落的市场窗口。
通过OA数据库的支持,数字和仿照之间完备透明,从而出身了数模稠浊并行协同设计的流程,它可以同时汲取数模流程中的优点,回避其缺陷,从而最高效率地设计稠浊SOC。
以下表格比拟和总结了以上三种数模稠浊IC的设计验证与实现流程。
表1 数模稠浊IC的设计/验证/实现流程
稠浊SOC验证的寻衅与方法先容
验证是在流片前,担保芯片的设计知足客户运用的指标哀求。数模稠浊SOC的验证面临很多寻衅,Time To Market的压力,芯片的研发周期Schedule在不断被压缩,本钱也越来越低,且IC人才又相对有限。验证更须要一些对应的技巧与流程规范来达到验证目的。
一个好的验证,须要达到什么目的呢?首先是最最少担保芯片的质量,以便First Silicon Sample。在担保质量的根本上,须要提高效率。紧张有三个维度:首先是Automatic,如何让验证环境自动化产生,Test Bench自动产生,乃至Model自动产生等;其次是Reusable,例如Stimulus,Checker等,又或是DV/AE(Application Engineer)和TE(Test Engineer)之间的Reuse。第三是Scalable,高度集成的数模稠浊验证,常日须要很多人参与。如何让新资源快速的Ramp Up起来缩短适应韶光;这么多人事情在同一个项目上,且做到彼此不相互影响,不Block Other’s work, 那就更须要验证环境和全体流程的分配折衷,从而担保大家能够“各自为战”。
图3 验证目标
1.稠浊SOC验证的寻衅
稠浊旗子暗记设计的繁芜度急剧增长,匆匆使设计军队须要各种技能的工程师紧密互助;随工艺尺寸变小,须要电路抽象级别更高,以便在系统级进行剖析和验证;为缩小数模之间的设计差距,须要更多采纳软硬件结合的自动化方法;数模之间数据交互,须要EDA工具和设计方法学支持,以加速数模稠浊验证的收敛。但是正如上文所述,数字仿照IC采取了不同的设计流程和工具,加之SOC繁芜的功能性能哀求,然而仿照工程师和数字工程师的背景却很不相同,任何一个环节出错,都可能造成严重的后果。
图4数模稠浊设计验证的寻衅
图4列出来了目前公认的稠浊旗子暗记SOC所面临的寻衅:仿照Spice/Fast Spice在繁芜的SOC系统中仿真速率显然不足快,使得如果用最精确的仿照仿真会严重影响研发周期。晶体管-门级协同稠浊仿真比全Spice仿真要快,但是依然比较慢。对仿照电路去创建模型,则须要人才储备,知识积累,以及模型开拓与验证韶光。这是稠浊IC验证面临的前三大寻衅。其余还有缺乏仿照稠浊设计验证IP,功耗意图,为覆盖率(Coverage)产生测试向量,软硬件协同验证等寻衅。
其余物联网在低功耗方面的哀求越来越高。造成芯片测试本钱超过硅片本身,可测性设计就该当在设计过程中考虑。为此在担保正常功能与性能不降落的同时,增加片内自建的测试电路(Scan,IDDQ等),会使芯片尺寸增大10%旁边,加上冗余修复等电路,都为提高产品品质和Debug供应了良好的根本,但也增大了数模稠浊的验证难度,由于不仅要验证正常功能,还须要验证可测试性功能。
2.稠浊SOC验证的方法流程
为了仿照和数字仿真同步的、平行的运行,办理稠浊旗子暗记验证的问题,有以下几项选择方案:
表2 稠浊SOC仿真验证方案
显然这四种方案各有优缺陷,常常须要几种方案交互利用。这就出身了基于Model的验证方法,以及层次化的验证技巧。
行为建模使得仿真在速率与精度之间做了非常好的折中,极大的提高了仿真效率;而且也能够让验证在项目的早期就参与个中,与设计并行,缩短整体研发周期。以是接下来本文第五部分将重点先容Model知识。
层次化的验证方法,是将Block级设计者与验证者的事情,纳入了整体验证考量成分之中。哪些性能指标是该当在Block级进行验证,无须在Sub-System再验证,是须要有履历的工程师进行验证方案的。层次化的验证,重点强调每个级别上验证的侧重点的不同,使其形成一种整体的互补策略。同时也在层次化的Reuse验证部分的相同环节,减少Test Case 中Stimulus与Checker的创建。
图5数模稠浊SOC验证的方法
芯片的PVT变革,加之数字Random的观点,哀求稠浊SOC必须做Regression测试,以便能够遍历所有的Mode和Setting,同时自动化的检讨PASS或者FAIL的仿真结果,以应对设计变革时候的快速验证迭代。基于覆盖率Coverage和断言Assertion的指标驱动验证(MDV),是数模稠浊验证的主要内容。这在纯数字验证中,已经作为Sign Off标准。数字覆盖率紧张有代码覆盖率,有限状态机覆盖率,功能覆盖率和构造覆盖率。稠浊旗子暗记的覆盖率通过采取数据分级(bin)的观点,将连续的电压电流等仿照值,转换为离散的用户自定义的范围,从而实现覆盖率的观点。断言Assertion,便是捕捉设计的预期行为,来判断数模稠浊属性是否知足Spec需求。标准的Assertion措辞有PSL和SVA。为了知足稠浊旗子暗记,IC标准委员会正在致力于仿照SVA(ASVA)和System-Verilog的AMS(SV-AMS)。
FPGA验证对付验证数字模块有用,大略的数字模块仿真能够覆盖。繁芜的数字模块,比如有上位机软件互动等,可以有效减少仿真验证事情量。对付提前开拓软件、烧录工具、自动测试有帮助。对付数模稠浊部分,FPGA验证环境很难搭建。形式验证和硬件加速目前还没有针对仿照电路大量利用。以是以仿照为主的稠浊SOC紧张以仿真验证为主。
数字验证已经有了比较盛行的UVM(Universal Verification Methodology)方法学,稠浊旗子暗记领域的UVM-MS方法扩展包括仿照模块的验证操持,仿照旗子暗记的产生,仿照属性的检讨和断言技能,以及仿照功能覆盖的剖析。
图6 验证流程先容
末了,从项目研发进度的角度谈一下验证的流程。在项目刚开始阶段,须要考虑稠浊验证的策略(Strategy),紧张包括验证目标是什么,客户哀求Spec有哪些,项目周期,开拓职员数量与技能等。项目风险在哪里,以前类似产品有哪些Bug。在方法学上采取自上而下与自下而上的结合么?怎么样做层次化的验证?建立Model的策略是什么?
清楚了策略之后,就须要开始详细系编制定验证操持。包括验证须要哪些Input File,哪些Output result,采取什么样的验证工具与手段,是否须要形式验证等。哪些通过RTL进行,哪些须要通过稠浊仿真,哪些须要通过晶体管仿真进行。
制订完操持后便是详细的履行阶段。紧张包括验证环境(ENV)的搭建,UVM的引入,基于Model验证的Model本身的创建,以及Test Case所涉及的Stimulus,Checker与Assertion。
当Test Case建立完成往后,就须要开始跑Regression,剖析Coverage,做MDV验证。
末了还要做一些后仿真。仿照的寄生R,C,的仿真,数字基于SDF的门级仿真。也须要做一些和可靠性干系的检讨,例如电子迁移EM,过压OV,浮点Floating Nodes,与老化Aging等检讨。
题外话:
未来几天,一款特殊实用的 声卡开拓板 将与大家分享!
其功能紧张带有光纤输入和光纤输出(SPDIF-IN和SPDIF-OUT),仿照AUX-IN和差分输入,仿照输出;特殊是采取了两种USB端口跟电脑连接,利用起来不再为USB端口不符合而犯愁!
本头条搭建一个互换平台,欢迎各位也分享你的行业认知,技能分享,履历之谈,欢迎留言投稿!







