梁 超1,2
(1.哈尔滨工业大学 航天学院,黑龙江 哈尔滨150001;2.恩智浦半导体苏州研发中心,江苏 苏州215011)
混合信号验证在当前SoC设计中的作用越来越重要, 被称为芯片流片以前的健康体检, 可以有效避免芯片二次流片。结果证实大部分芯片的问题可以通过合适的混合信号验证方法发现。当前混合信号验证的主要挑战包括行为级模型建模、晶体管级仿真速度、低功耗验证等,介绍了微控制器芯片KW41中使用的一整套混合信号验证方法, 包括使用电路模型产生器生成wreal模型, 混合模式数模混合信号仿真,模拟电路断言和电路检测帮助实现自动化检验,模拟电路检测发现模拟电路潜在问题,用XPSMS做全芯片晶体管级仿真。该方法适用于所有数字设计为主的芯片。
混合信号验证;wreal模型;电路模型产生器;XPS;全芯片晶体管级仿真;模拟电路断言
中图分类号:TN45
文献标识码:A
DOI:10.16157/j.issn.0258-7998.179007
中文引用格式:梁超. 数字为主的混合信号设计的验证方法学[J].电子技术应用,2017,43(8):37-39,42.
英文引用格式:Liang Chao. Low power and mixed signal verification method for digital centric mixed signal designs[J].Application of Electronic Technique,2017,43(8):37-39,42.
0 引言
目前大部分的SoC是混合信号设计,混合信号验证成为了SoC成功的重要一环。混合信号验证的挑战主要包括:产生和验证行为级模型、晶体管级仿真速度不够快、缺少混合信号VIP、验证功耗目标等。本文将分别介绍行为模型产生和数字为主的混合信号验证方法学[1]。
1 KW41设计
KW41是一款超低功耗、高集成度的单芯片多协议无线通信MCU, 它集成了2.4 GHz收发器,同时具备BlueTooth Low Energy(BLE) V4.2 和IEEE 802.15.4射频连接功能,内核采用ARM Coretex M0 ,Flash容量高达512 KB,SRAM容量128 KB,具备硬件加密模块,拥有丰富的外设接口。KW41 主要的应用包括:安保和近距离、医疗、智能家居、遥控无钥门禁、远程遥控、信标等。KW41是有NXP苏州研发中心独立完成的项目,包括顶层设计、验证、后端、测试设计。KW41获得了NXP 2016年度第四季度产品奖, 该奖项在NXP全球每季度只有一个。图1为KW41的设计图。KW41为NXP吸引了众多客户,创造了巨大的效益。KW41项目使用了先进的混合信号验证方法,在项目流片之前能够及时发现设计的问题, 流片前提供了信心,充分保证了KW41能够一次流片成功。
2 用Schematic Model Generator创建行为级模型
在传统验证流程中,模拟设计是由行为级模型来表征的,行为级模型包括:传统数字模型、VerilogAMS模型、wreal模型、Verilog、SV nettype模型等[2-3]。模型的创建者需要有一定的语言基础,建模工作对模拟设计师提出了挑战。一直以来,模拟设计师都期待一款图形化的建模工具,Cadence schematic model generator(简称SMG)就是一款这样的工具。SMG是基于virtuoso界面,通过创建模型电路图, 一键自动生成行为级模型。行为级模型包括Verilog模型、VerilogAMS模型、wreal模型等,模型电路图需要使用building blocks(简称BBT)来构建,类似搭积木的概念。SMG针对的用户是缺少建模语言的模拟设计师。SMG提供了基本和高级的BBT,帮助用户构建模型电路图,模型电路图在不同设计之间可以复用。SMG生成的模型是完全开放的,可以使用第三方的仿真器仿真。SMG提供了160种BBT, 包括模拟功能、数字功能、算数功能、信号转换功能等。wreal模型的双向传输门可实现双向通信功能。wreal模型是最适合数字为主的微控制器的模型,KW41设计中大量使用了wreal模型。
建模的第一步就是端口类型的声明,连接到数字模块的端口应该声明成logic类型,连接到模拟模块的端口应该声明成wreal类型或者electrical类型,这样可以避免插入互联模块。图2为SMG的工作流程。
多层次建模是建模中一个重要的方面,全部打平的一层建模很难保证模型和电路图的一致性,电路图更新以后,模型维护难度增大。图3是多层设计理念。在模拟设计中需要提出多层次设计的要求,自上而下分别是L2层、L1层和L0层,只有L0层允许有基本的单元,L1、L2都是symbol和symbol的互联。SMG支持多层次建模。
模型需要对电压进行检测,成为功率感知建模。比如对于时钟模块,当输入电压低于0.6 V时,时钟输出0;当输入电压大于0.6 V且小于0.9 V时,时钟输出x;当输入电压大于0.9 V且小于1.3 V时,时钟输出是一个周期性的时钟信号。对于输入电压的检测,可以满足实现低功耗验证的需要。
模型内建自测试需求。对于模拟设计来说,可能对于输入信号有具体的要求,比如2个输入信号同时为高是不允许的,内建的自测试可以帮助验证工程师发现来自数字部分的错误设计。
3 数字为主的混合信号设计验证流程
微控制器是典型的数字为主的混合信号设计,包括混合信号设计,如ADC、DAC、时钟、射频模块、电源管理模块等。微控制器的混合信号验证流程包括基于wreal模型的数字仿真、混合模式的数模混合仿真、全芯片的晶体管级仿真。
3.1 混合模式的数模混合仿真
基于wreal模型的数字仿真使用Metrix driven验证方法学,用wreal模型代表模拟设计,目标是发现数字设计的问题。模拟设计的仿真是在单独的模拟仿真环境中进行,端口加的是静态的激励,通过运行各种corner的仿真来发现模拟设计的问题。通常数字和模拟关系十分紧密,有反馈的环路,由于wreal模型的局限性,模型不是100%精准,基于wreal模型的数字仿真和模拟模块的晶体管级仿真都不能满足复杂SoC设计的要求。为实现既使用来自数字设计的激励,又能够达到晶体管级仿真的精度[4],就需要混合模式的数模混合仿真[5]。
KW41项目的混合模式的数模混合仿真是在SoC验证环境中完成的,是基于命令行方式的仿真。首先要制定详细的混合模式数模仿真计划,根据计划编写测试向量,对于仿真的结果,使用了自动化检测的方法,包括模拟断言、静态动态模拟检测等方法。这样可以在设计的不同阶段多次运行所有仿真激励,自动化得到仿真结果,不是依靠人工检测波形的方法。以上电序列验证为例,设计中包括3个关键电压输入,每个电压域的上电先后顺序和上电快慢都没有明确的要求。综合考虑各个电压的范围,上电先后快慢因素,3个电压域的上电关系有几十种组合情况,所有的模拟断言会在上电过程中检测所有模拟模块的行为,对于错误的行为会及时报错,有效地发现了模拟设计中相关的问题,这些问题在单模拟模块的晶体管级仿真中无法发现[6]。
alwas @(ref_clka)
begin
vdd_lv_core_out=$cgav("testbench.top.alwayson_
domain.m4_core_driver.vddlv","potential");
pmc_isnk_2u=$cgav("testbench.top.alwayson_
domain.pmc_core_ln28fdsoi.REFBIAS.reg_isnk_2u_ztc_0","flow");
core_vdddig_1p8_current = $cgav("testbench.top.
alwayson_domain.pmc_core_ln28fdsoi.vdddig_1p8","flow");
end
average #(.id("core_vdddig")) monitor_core_vdddig
(.in(core_vdddig_1p8_current),.clka(`CLKA));
这是模拟断言的一个例子,用$cgav可以拿到模拟电路内部截点电压和电流的值,可以用system verilog assertion来检测这些电压电流。Average函数可以算出电流的平均值。
模拟assert是Cadence混合仿真中测模拟电路的一个重要特性。在图4的设计中,来自bandgap的vref连接给一个模拟开关。图5中pmos的衬底vdd来自adc regulator是关闭的,这违反了v(d,b)<0.3的规则,导致bandgap vref下降。Assertion 代码:
assert_vds assert sub=psvt33 expr="(v(d,s)>0.3)"
assert_vdb assert sub=psvt33 expr="(v(d,b)>0.3)"
生成的log文件:
Warning from aps at time=10.5469 us during transient analysis `tran'.
WARNING (APS-4056): assert_vdb, Instance
testbench.top.a_ip_2p4ghz_transceiver_c90tfs.IRF_
ANATOP.Ilf_sys.IADC.IADCQ.dac.I17.I0.MP:
Expression `(v(d,b)>0.3)' is getting true.
ANATOP.Ilf_sys.IADC.IADCI.dac.I17.I0.MP:
Expression `(v(d,b)>0.3)' is getting true.
Circuit check也可以用来检测模拟电路,针对APS, XPS仿真器分别提供了不同的检测语法。Static check在仿真开始之前进行检测,dynamic check整个瞬态分析过程中持续检测,最终结果为XML格式文件,可用浏览器查看。目前常用的是high impedance node、高阻截点检查、leakage path检查、floating node induced leakage path。
3.2 用XPS MS做全芯片晶体管级仿真
混合模式晶体管级仿真中,数字设计是由RTL代码来表征,由于使用了CPF流程,综合以后会插入level shifter、isolation等单元,这些在RTL阶段是不可见的。为了更精准仿真整个芯片的上电和进出低功耗模式的功能,需要在流片之前进行全芯片晶体管级仿真。使用Cadence XPS MS仿真工具。
全芯片晶体管级仿真流程:产生全芯片网表,转换模拟CDL网表到spice网表格式,产生SRAM verilogA模型,把C代码转成hex文件加载进入SRAM模型,加模拟激励,用XPS仿真,存储波形,使用circuit check检测电路。
3.3 混合模式仿真发现问题分析
图6是混合模式数模混合仿真中发现的问题。27%的数字控制问题是指由于数字控制错误导致的模拟设计的错误,例如当LDO和DCDC同时工作时,LDO输入应该比DCDC更低,由于数字的错误控制,出现了相反的情况。23%的模拟内部控制错误指的是模拟设计中的问题,如ADC外部参考电压选择电路错误,导致无法使用外部参考电压。18%模拟模块互联错误指的是单个模拟模块功能正确,但是互联以后功能不正确,例如LDO输出的参考电压连接给IO regulator,当IO regulator打开之后,LDO参考电压会出现上升,从而导致芯片产生低电复位。
4 结论
在本项目中,数字验证工程师基于SMG产生的wreal模型发现了大量数字设计的问题,wreal模型大大提高了仿真效率。混合模式的数模混合仿真发现了模拟模块互联、数字和模拟交互等方面的问题,以及多电压域、漏电等问题,全芯片晶体管级仿真保证芯片可以正常上电。混合信号验证方法学保证了芯片一次流片成功。
参考文献
[1] Liang Chao.Mixed-signal verification methods for multi-power mixed-signal System-on-Chip(SoC) design[C].IEEE 10th Int.Conf.on ASIC,Oct,2013:1102-1104.
[2] Wong Waisum,Gao Xiaofang,Wang Yang,et al.Overview of mixed signal methodology for digital full-chip design/verification[C].IEEE Proc.7th Int.Conf.on Solid-State and Integrated Circuits Technology,2004:1421-1424.
[3] CHEN J,HENRIE M,MAR M F,et al.Mixed-signal methodology guide[M].Copyrighted Material,2012.
[4] Liang Chao,Fang Zhou,CHEN C Z.Method for analog mixed signal design verification and model calibration[C].China Semiconductor Technology International Conference(CSTIC),2015:1340-1342.
[5] KUNDERT K.Principles of top-down mixed-signal design[EB/OL].The Designer′s Guide Community.(2003)[2017].http://www.designers-guide.org/Design.
[6] Liang Chao,Zhong Geng,Huang Song,et al.UVM-AMS based sub-system verification of wireless power receiver SoC[C].IEEE 12th Int.Conf.on Solid-State and Integrated Circuit Technology,2014:1108-1109.
,