收藏 分享(赏)

验证方法学论文集,面试专用.doc

上传人:hyngb9260 文档编号:6559668 上传时间:2019-04-17 格式:DOC 页数:58 大小:3.33MB
下载 相关 举报
验证方法学论文集,面试专用.doc_第1页
第1页 / 共58页
验证方法学论文集,面试专用.doc_第2页
第2页 / 共58页
验证方法学论文集,面试专用.doc_第3页
第3页 / 共58页
验证方法学论文集,面试专用.doc_第4页
第4页 / 共58页
验证方法学论文集,面试专用.doc_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、低功耗验证解决方案August 20, 2010林雪梅 王凤海 王欣 中星微电子有限公司摘要随着便携性要求的提高,低功耗设计的需求推动了低功耗设计技术在 多电压,电压内部管理等技术上的突破。以 MTCMOS/ AVS 等一系列技术为代表的设计方案越来越多的应用,让传统的数字电路验证技术受到了越来越大的挑战。本文通过对现有解决方案的应用,将介绍如何引入业界标准的 UPF 流程完成多项低功耗设计的验证,以确保电源管理的正确实现。ABSTRACTAs the requirements of portal devices keep increasing, new design techniques,

2、including multi-voltage, MTCMOS, AVS, etc., are adopted in many low power devices. These design techniques further brings new verification challenges, which are new but critical. This paper, by applying existing solutions, introduces how to apply UPF flow, an industry standard, to verify low power d

3、esigns. So the management of power supplies can be verified.1.0 简介嵌入式应用是目前 SOC 芯片最重要的应用之一。在嵌入式应用,尤其是便携设备的应用中,功耗成为设计者越来越关注的因素。20 世纪 80 年代,大规模集成电路的发展导致了硬件描述语言(Verilog 和VHDL)和综合工具的出现;到了 90 年代,设计复用以及 IP 的利用成为了 IC 设计经常采用的技术。现在,为了方便进行低功耗设计,IEEE 制定了 IEEE1801 标准,即 Unified Power Format (UPF),从而为从系统设计、分析、验证到设

4、计实现的整个流程提供了完整的功耗描述规范。目前 SOC 设计中主要采用了如图 1 所示的几种降低功耗的设计技术:Clock Gating(时钟关断)、Multi Threshold(多阈值)、 Power Gating(电源关断)、Multi VDD(多 VDD)、Retention( 状态保持)等。目前为了进一步降低功耗,有些 SOC 芯片还采用了 Dynamic Voltage and Frequency Scaling(动态频率电压调整, DVFS)及 Adaptive Voltage Scaling(自适应电压调整, AVS)技术。图 1 Low power Design Techni

5、ques这些低功耗技术引入了新的单元库,包括 level shifter, isolation cell, retention cell 等等,如图 2 所示。同时,这些新技术给低功耗验证也带来了新的影响。传统的 Clock Gating 和 Multi Threshold 技术对于验证基本没有影响,但是新的技术如 Multi VDD, DVFS, AVS 都对验证带来了新的挑战, 如图 3 所示。图 2 Special Cells for Low power Design图 3 Low Power Impact on the Design Flow我们在最近的两款低功耗 SOC 芯片中( P

6、C camera 和多电压域 SoC)采用了 Clock Gating, Power Gating, Multi VDD, DVFS 及 AVS 等技术,为了在 RTL 阶段就能进行比较全面的验证,我们采用了IEEE-P1801 标准,UPF,对设计的功耗意图进行描述,并使用 Synopsys 的 Power-aware 的仿真工具MVSIM 与 VCS 配合来对这些芯片进行低功耗验证。2.0 MVSIM 工具介绍MVSIM 工具是 Synopsys 推出的基于 UPF 流程的低功耗动态验证工具。此前,对于多电压域的 SOC 芯片,只有在硅片出来以后,才可以对功耗管理机制进行验证。但如果有问题

7、的话,进行修改的代价(无论是时间代价还是金钱代价)比较大。MVSIM 工具允许 IC 设计团队在 RTL 阶段(结合 UPF 文件)即可对自己的功耗管理机制进行功能的验证,从而尽量在设计的早期阶段发现问题,这样能够大大降低芯片的风险以及成本。MVSIM 工具是一款协仿真器(Co-simulator),它可与当下流行的功能仿真器(如 VCS、Modelsim 等)协同仿真,达到对低功耗设计的动态验证目的。使用 MVSIM 的验证平台框架图所图 4 所示:图 4 Low Power SimulationUPF 文件反映了设计者的功耗管理意图与机制,MVSIM 工具正是根据 UPF 文件来进行低功耗

8、行为的仿真。MVSIM 仿真器根据 UPF 文件内嵌了低功耗行为的断言。当这些断言被触发时,MVSIM 会在 log 文件中打印出功耗相关行为的信息,根据 MVSIM 的判断,分别打印出 info, warning, error 等信息,以帮助验证者发现问题。下面是 MVSIM 打印 log 的一段实例:MVSIM INFO 5632: SupplyNet TB_VDD_CORE_PMU started with Voltage ON State/Voltage value 0.000000.MVSIM INFO 5632: SupplyNet TB_VDD_CORE_D3 started w

9、ith Voltage ON State/Voltage value 0.000000.MVSIM INFO 5632: SupplyNet TB_VSS started with Voltage ON State/Voltage value 0.000000.MVSIM WARNING 5042: Isolation Enable signal 多电压域 SoC_tb_top.多电压域 SoC_dut.u_多电压域SoC.u_power_pmu.u_pmu_top.u_pmu_top_reg.pmu_en_iso_D2 corresponding to Isolation Policy 多电

10、压域 SoC_dut/u_多电压域 SoC/pd_pso_D2_iso started with invalid value X.另外,MVSIM 会根据 UPF 文件的描述,以及对工具的配置(通过 archpro.ini 文件)来对设计中变量的值进行 force。比如某个 power domain 断电以后,MVSIM 工具会将该 domain 的输出信号 force 成 X,这样,如果设计的低功耗管理机制有问题,这些 X 就会传播到另外一个 power on 的区域,造成功能上的错误,这样验证者很容易就能发现问题。archpro.ini 文件是 MVSIM 仿真的配置文件。下面介绍几种比较

11、重要的配置。首先, archpro.ini 文件中的UPF_ON_OFF 选项有两种设置,一种是设为 yes,这种设置下,MVSIM 仿真时没有真正电压值的概念,它主要有 power off, partial-on 和 power on 三种模式(其它模式归为 error 模式),如果设计中只有power gating,或者进行比较简单的 multi VDD 的仿真,比较适合采用此种设置;另一种是设为 no,这种设置下,MVSIM 可以根据具体的电压值来进行仿真。另外,MVSIM 有 3 种仿真模式,这可以通过 archpro.ini 中的 simulation_mode 选项来进行设置。第一

12、种是 transparent 模式, 这种模式下 mvsim 仿真时会忽略所有 UPF 文件中指定的功耗控制机制,这就跟不带 MVSIM 工具的普通 RTL 或门级仿真一样,只验证功能,不涉及 power 方面的验证。这种模式主要用于刚刚开始 MVSIM 流程的阶段,在验证低功耗机制以前要保证功能的仿真没有问题。同时,在 MVSIM仿真发现问题时,也可以切换为 transparent 模式,以确认是 MVSIM 仿真产生的问题还是逻辑仿真产生的问题;第二种是 protected 模式,在这种模式下,MVSIM 会根据 UPF 的设计意图自动在 RTL 中添加模拟 isolation cell,

13、 level shifter, MTCMOS, retention cell 等库单元的逻辑,并通过 force 各个 power domain(或 voltage domain)的信号来模拟各种低功耗模式时的仿真。在 RTL 阶段,MVSIM 的验证以protected 模式为主。通过这种模式,我们可以验证出 UPF 的设计意图与 RTL 是否一符,是否带来低功耗方面的 bug;第三种是 accurate 模式,这种模式下主要用于门级网表仿真。当综合以后,所有的低功耗库单元(比如 isolation cell 等等)已经添加入网表,就可以用 accurate 模式来准确地仿真设计的行为。3.

14、0 MVSIM 的编译运行流程MVSIM 的编译流程主要分为以下几步:1. 使用 mvcmp 编译 UPF 文件,如下所示:mvcmp -upf tb.upf此步完成以后,会在当前仿真目录下产生一个 mvreports 目录,并在这个目录下面产生一个mvcmp.log 文件。该文件中包括编译时的 log 信息。2. 使用 mvcmp 编译设计及 tb 文件,如下所示:mvcmp -vcs -sep_cmp +systemverilogext+.sv+.svshell -f file.f此步完成以后,该步编译的 log 信息也写在 mvreports 目录的 mvcmp.log 文件里。这里-v

15、cs 选项表明是用 VCS 工具来进行仿真。3. 使用 mvdbgen 来产生一个数据库,用于 power 方面的仿真。如下所示:mvdbgen -top 多电压域 SoC_tb_top此步完成以后,该步编译的 log 信息写在 mvreports 目录的 mvdbgen.log 文件里。同时还会在当前仿真目录下生成一个 apdb 目录,这个目录里包括产生的数据库(供 VCS 通过 PLI 来调用)。另外,apdb/ev/EXTERNAL/目录下还会包含一些 RTL 代码,这些代码是 MVSIM 工具根据 UPF 里规定的低功耗机制来修改原设计中的 RTL,在 MVSIM 仿真时,用的是这些修

16、改后的 RTL 代码,而不是原设计中的RTL 代码。这种修改的原因主要是为了处理 power domain crossing 的信号,MVSIM 会添加一些以ARCH+数字结尾的信号(比如 prst_n_ARCH465 信号),在 power 转换的时候,可能会对这些信号进行force,但请注意, MVSIM force 的信号不仅限于这些信号。4. 使用 VCS 工具来进行编译。如下所示:vcs -sep_cmp -ntb_vl -f apdb/ev/vcs_options_1 -f ./apdb/ev/cmdfile_1 -load “libmvsim-vcs.so:mvsimInit”

17、-P /tools/synopsys/mvtools/vC-2009.06-2/templates/mvsim_vcs.tab请注意-f 指向的是 apdb 目录下的 filelist,而不是 mvcmp 编译时指向的 file.f,这是因为 MVSIM 仿真时用到了修改后的 RTL(在 apdb/ev/EXTERNAL 目录下),而不是原始设计的 RTL。5. 最后执行 simv。如下所示;./simv -sep_cmp=p1 l ./run.log此步执行时,会在 mvreports 目录下生成一个 mvsim.log 文件,在该文件中,会打印出低功耗仿真相关的log 信息。在多电压域 S

18、oC 这款芯片的验证流程中,我们使用了 VCS 的分离编译技术,因此在将 Mvsim 与 VCS 协同仿真进行低功耗验证时,我们也将 VCS 的分离编译技术(separate compile)与 MVSIM 的编译流程结合在一起,因此在上面的各步中会有-sep_cmp 选项。因为我们在项目的功能仿真流程中使用了 VCS 比较新的 feature,即分离编译技术,而当我们在项目中使用 MVSIM 工具时,其对 VCS 分离编译技术的支持还有待完善。当 VCS 编译选项中有“-sep_cmp” 时,用 mvcmp 编译会报错。但我们可以通过一些配置文件来绕过这个问题。在 archpro.ini 文

19、件中,我们这样设置一个选项 tool_compilation_options = ignore_option.vcs。然后我们在当前仿真目录下建立一个ignore_option.vcs 的文件,在文件中写入下列的内容:-sep_cmp 0这样就可以通过 mvcmp 对 Verilog 代码的编译。4.0 电源关断 (Power-Gating)技术电源关断技术是指在芯片中某些模块不工作时,可以关断其电源,需要工作时,再将其电源导通。它可以使电源关断区域的漏电流降至接近零,极大的减小芯片的静态功耗。现在电源关断的技术也很多,有片内关断、片外关断。需要使用 Power-Gating Cell(也称

20、MTCMOS)来实现电源的关断。可以选择断开电源或者地的连接来实现 Power-Gating,这两种 Power-Gating Cell 分别被称为 Header-Switch 和 Footer-Switch。结构如图 5所示。图 5 Header-Switch structure and Footer-Switch structure本章阐述对一款使用 HEADDER MTCMOS 来实现片内关断电源技术的芯片,如何使用 UPF 来查找低功耗设计问题以及简化验证工作,实现 RTL 级代码的 power aware 验证。使用 VCS+MVSIM 来做 power aware 验证。图 6 是

21、芯片的电源分布和控制图。芯片划分成 2 个 power domain,asicbody_nor 是可掉电区域、其余的是常开区。电源关断的控制信号来自芯片内部。VDD 是芯片外部提供的电源,分别提供给常开区和可掉电区,VDD 经过 MTCMOS 产生 VDD_PSO,可以通过控制 MTCMOS 关断使 asicbody_nor 掉电。图 6 芯片的电源分布和控制为了避免突然上电和断电带来过大的冲击电流,对 MTCMOS 的打开和关断控制序列,将其分成八次开关动作,每两次开关间隔要求为 80ns。此行为在 UPF 中的描述为:create_power_switch power_switch0 -d

22、omain top -input_supply_port VDDG VDD -output_supply_port VDD VDD_PSO -control_port SLEEP u_asicbody/u_asicbody_sus/u_cpm/u_cpm_reg/power_vdd_sleep_out0 -ack_port SLEEPOUT u_asicbody/u_asicbody_sus/u_cpm/u_cpm_reg/sleep_out0 -on_state ON VDDG !SLEEP -off_state OFF SLEEPcreate_power_switch power_swit

23、ch1 -domain top -input_supply_port VDDG VDD -output_supply_port VDD VDD_PSO -control_port SLEEP u_asicbody/u_asicbody_sus/u_cpm/u_cpm_reg/power_vdd_sleep_out1 -ack_port SLEEPOUT u_asicbody/u_asicbody_sus/u_cpm/u_cpm_reg/sleep_out1 -on_state ON VDDG !SLEEP -off_state OFF SLEEP 为检查电源打开关断的过程是否正确,在 UPF

24、中创建一个 power state 描述状态的转变。create_pst pst_table -supplies VDD power_switch0/VDD power_switch1/VDD power_switch2/VDD power_switch3/VDD power_switch4VDD power_switch5/VDD power_switch6/VDD power_switch7/VDD add_pst_state all_off -pst pst_table -state ON OFF OFF OFF OFF OFF OFF OFF OFFadd_pst_state nor_

25、off0 -pst pst_table -state ON OFF ON ON ON ON ON ON ON add_pst_state all_on -pst pst_table -state ON ON ON ON ON ON ON ON ONMVSIM 的行为使得电源关断(power switch)控制信号有效时所有被定义为电源关断的模块的内部及输出信号都变为 x 态。当 power switch 控制信号无效时所有被定义为电源关断的模块的内部及输出信号都依然保持为 x 态。当对应的信号恢复程序(如 reset)执行后,信号恢复正常。为避免 power down 域的 X 传入 alwa

26、ys on 域,对 power down 域的输出信号都要加入 isolation cell 与always on 域隔离。此行为在 UPF 中的描述为:set_isolation nor_and -domain PD_asicbody_nor -applies_to outputs -clamp_value 0 -isolation_power_net VDD -isolation_ground_net VSSset_isolation_control nor_and -domain PD_asicbody_nor -isolation_sense low -isolation_signal

27、 u_asicbody/u_asicbody_sus/power_iso_en set_isolation nor_or -domain PD_asicbody_nor -clamp_value 1 -isolation_power_net VDD -isolation_ground_net VSS -element u_asicbody/u_asicbody_nor/cfa_cen u_asicbody/u_asicbody_nor/cfa_wen u_asicbody/u_asicbody_nor/fcs_wen u_asicbody/u_asicbody_nor/cap_mem10_we

28、nset_isolation_control nor_or -domain PD_asicbody_nor -isolation_sense low -isolation_signal u_asicbody/u_asicbody_sus/power_iso_en有了以上的描述,结合我们的 power aware 验证目的可做到如下测试:芯片进入节能模式时:电源是否能够关断,关断顺序是否正确,关断后 power down 域信号是否有wiggle。芯片退出节能模式时:电源是否能够打开,打开顺序是否正确,功能能否正常,isolation 插入是否正确。电源状态转换,isolation 状态,信号

29、wigggle 都在仿真 log 中 report 出来。基于 UPF 使用 VCS+MVSIM 仿真此芯片找到的与低功耗设计相关的 bug 如下:1 power control 信号序列变化错误2 退出节能模式时 power down 域的信号一部分未能够回复到正常状态。5.0 多电压 (Multi-VDD)技术我们知道,动态功耗与 VDD 的平方成正比,因此在必要的时候,降低某个 power domain 的电压可以有效地降低芯片的功耗。在我们的多电压域 SoC 芯片中,除了使用 power gating 的技术以外,我们还使用了多电压(Multi-VDD)技术。在这款芯片中,我们划分了两

30、个电源域(power domain),一个是 PMU域,也就是 always on 域,另外一个是 PSO 域,也就是 shut off 域。在 PSO 域,我们又划分了 4 个电压域(voltage domain):D1、D2、D3, D4。前 3 个电压域的电压可根据当时的频率、温度等条件独立地在 0.7 伏至 1.5V 之间进行调整,第 4 个电压域则与 PMU 域的电压相同,如图 7 所示:图 7 多电压域 SoC power domain structure多媒体应用中,不同的场景对硬件频率要求不同。比如 D1 分辨率的视频解码,需要电路工作在 80Mhz就可以满足 30 帧/每秒的

31、要求。而同样的硬件电路,要支持 720P 的 30 帧/每秒的视频解码速度,其频率可能需要升到 200Mhz。即便在同一场景中,硬件频率也可能需要变化。仍然是 D1 分辨率的视频解码,如果一段时间因为总线带宽被别人抢占而不能及时获得所需数据,导致解码速度降低,那么我们就需要在后续一段时间里通过增加硬件频率来提升其解码速度来达到整体均匀解码的目标,以维持良好的视频播放效果。不管是场景间还是场景内的频率切换,我们都称为 Dynamic Frequency Scaling(DFS).我们的芯片用 CMOS 工艺制造的。对于 CMOS 电路来说,电压越大,电路延时越小,电路可以工作的频率就越高。所以,

32、为了维持电路在某一频率下正常工作,我们需要供给电路一定的电压,而为了让电路尽量少耗电,我们又希望所供的电压是满足电路正常工作的最小电压。随着电路频率的切换,满足要求的最小电压也跟着改变,不管是场景间还是场景内的电压切换,我们都称为 Dynamic Voltage Scaling(DVS)。上面两种紧密联系的技术合起来就是 Dynamic Voltage real VDD_CORE_PMU ;real VDD_CORE_D4 ;real VDD_CORE_D3 ;real VDD_CORE_D2 ;real VDD_CORE_D1 ;real VSS;real VDD_TB;always (*)

33、 beginVDD_CORE_PMU = .;endalways (*) beginVDD_CORE_D4= .;endalways (*) beginVDD_CORE_D3 = .;endalways (*) beginVDD_CORE_D2 = .;endalways (*) beginVDD_CORE_D1= .;endalways (*) beginVDD_TB = .;endendmodule请注意,电压要声明为 real 格式,而且要在模块的端口上。另外,在进行 mvsim 仿真时,除了设计的各模块所在的 power domain 以外,还要为 tb 顶层单独设立一个 power

34、domain,这样即使整个设计都处于power off 的状态,但 tb 顶层的信号并不会受到影响。如果不为 tb 顶层单独设立一个 always on 的 power domain(假设 tb 跟设计中的 pmu 域是一个 power domain),可能会遇到下面的问题。有一个 clk 信号在 tb顶层是这么产生的:initial beginpclkin = 1b0;forever pclkin = #(pclkin_period/2.0) pclkin;end在测试 power off 转换时,进入 power off 以后,由于该 power domain 已经断电,这样该 power

35、 domain的信号会被 force 为 X,因此 pclkin 信号也被 force 为 X。当从 power off 恢复以后,由于 pclkin 只是在initial 时被赋了初值,这样无论 pclkin 如何翻转,都会保持为 X 值。为了避免这样的问题,我们需要为 tb 顶层单独建立一个 always on 的 power domain,该 domain 在仿真中永不断电。在我们的仿真环境中,tb 顶层的电压是由 vrm 模型中的 VDD_TB 来提供的,它的值一直为1.2V.为 tb 顶层建立 power domain 是在 tb.upf 文件中实现的,tb.upf 文件如下所示:c

36、reate_power_domain TBcreate_supply_net TB_VDD -domain TBcreate_supply_net TB_VDD_CORE_PMU -domain TB create_supply_net TB_VDD_CORE_D4 -domain TB create_supply_net TB_VDD_CORE_D3 -domain TB create_supply_net TB_VDD_CORE_D2 -domain TB create_supply_net TB_VDD_CORE_D1 -domain TB create_supply_net TB_VS

37、S -domain TB set_domain_supply_net TB -primary_power_net TB_VDD -primary_ground_net TB_VSSload_upf ./多电压域 SoC.upf -scope 多电压域 SoC_dut/u_多电压域 SoCconnect_supply_net TB_VDD -ports 多电压域 SoC_dut/u_vrm/VDD_TBconnect_supply_net TB_VDD_CORE_PMU -ports 多电压域 SoC_dut/u_vrm/VDD_CORE_PMU 多电压域 SoC_dut/u_多电压域 SoC/

38、VDD_CORE_PMUconnect_supply_net TB_VDD_CORE_D4 -ports 多电压域 SoC_dut/u_vrm/VDD_CORE_D4 多电压域SoC_dut/u_多电压域 SoC/VDD_CORE_D4connect_supply_net TB_VDD_CORE_D3 -ports 多电压域 SoC_dut/u_vrm/VDD_CORE_D3 多电压域 SoC_dut/u_多电压域 SoC/VDD_CORE_D3connect_supply_net TB_VDD_CORE_D2 -ports 多电压域 SoC_dut/u_vrm/VDD_CORE_D2 多电压

39、域 SoC_dut/u_多电压域 SoC/VDD_CORE_D2connect_supply_net TB_VDD_CORE_D1 -ports 多电压域 SoC_dut/u_vrm/VDD_CORE_D1 多电压域SoC_dut/u_多电压域 SoC/VDD_CORE_D1connect_supply_net TB_VSS -ports 多电压域 SoC_dut/u_vrm/VSS 多电压域 SoC_dut/u_多电压域 SoC/VSS在 tb.upf 中,我们通过 load 命令,将多电压域 SoC 设计的 upf 文件 load 进来,这样在进行 mvcmp upf编译时,只需要编译 t

40、b.upf 即可。另外,vrm 模型中的 real 格式的电压是通过 connect_supply_net 的语句来与 UPF 中的 power domain 联系在一起的。在使用 MVSIM 进行 value based 仿真时,我们发现了下面两个问题:1. 我们仿真中使用了 pll 的行为模型,在该模型中有类似这样的语句: initial beginStart = 0;#100;Start = 1;end这样,当 pll 掉电以后,start 被 force 成 X 以后,就无法再次重新启动,从而使仿真的功能出错。这个问题主要是由于 pll 的行为模型不合理,在仿真重新上电后,应该可以通过

41、 reset 信号对 start 信号进行重置。1. 前面谈到,我们写了一个 PMIC 的模型来驱动设计中各 power domain 的电压。但是我们加入该模型后,仿真功能出错。仿真波形如图 9 所示: 图 9 Power Supply Waveform with MVSIM其中信号 VDD_CORE_PMU 是 PMU 域的电压,而 VDD_CORE_CORE 是 D4 域的电压。pmu_en_isolation 信号是 PMU 域和 PSO 域的 isolation cell 的控制信号(低有效)。ddrphy_dll_srst_n是 PMU 域的输入信号,而 ddrphy_dll_sr

42、st_n_ARCH508 是 D4 域的输出信号(它是 MVSIM 修改 RTL 时添加的信号)。在经过 MVSIM 修改过的 RTL 中,这两个信号的关系如下所示:assign ddrphy_dll_srst_n = ddrphy_dll_srst_n_ARCH508;仅从 RTL 看,两个信号应该相同。但是 MVSIM 之所以添加以 ARCH+数字结尾的信号,就是为了方便对power domain crossing 的信号进行 force,如上面波形所示,当 pmu_en_isolation 信号为 0 时,PMU 域和 D4 域是隔离的,所以 ddrphy_dll_srst_n 信号不受

43、 ddrph_dll_srst_n_ ARCH508 信号的控制。但当pmu_en_isolation 信号变为 1 时, 这两个信号的值依然不一样。这是因为 VDD_CORE_CORE 的电压还没有升上来,因此尽管在它自己的电压域,ddrph_dll_srst_n_ ARCH508 信号已经变为 1,但当它输入到 PMU 域时,会被 force 为 0 或者 X。在 archpro.ini 文件中有这样两个选项:max_low_level = 30;min_high_level = 70;如果不修改这两个选项,当一个电压域 A 的高电平信号穿到另一个电压域 B 时,如果 A 的电压不到 B

44、电压的 30%,那么输入到 B 域的信号会被 force 为 0;如果 A 的电压在 B 电压的 30%-70%之间,则输入到 B 域的信号会被force 为 X;只有 A 的电压超过 B 电压的 70%,A 域的高电平才会传播到 B 域。从上面的波形看,尽管 ddrph_dll_srst_n_ ARCH508 信号已经变为高电平,但在 VDD_CORE_CORE 到达 0.37V(波形中的 370.0m)以前,ddrphy_dll_srst_n 信号一直为 0。这里 0.37V 基本上是 PMU 域电压 1.2V 的 30%;此后,在 VDD_CORE_CORE 到达 0.84V 以前,dd

45、rphy_dll_srst_n 信号一直为 X;只有 VDD_CORE_CORE 的电压升到 0.84V 以上时,ddrphy_dll_srst_n 信号才变为 1。ddrphy_dll_srst_n 信号是我们设计中 DDR-PHY 的一个 reset 信号,这个信号上出现 X 值会导致 DDR-PHY 的逻辑跑飞掉。经过分析,我们知道,之所以会出现这个 X 值,是因为 D4 域的电压还没有升到足够的高度,我们就把 D4 域和 PMU 域之间的 isolation enable 信号给 release 了。解决这个问题的办法有两个:一是晚些 release pmu_en_isolation

46、信号;二是加快 vrm 模型的上电速度;为了避免减缓仿真速度,我们采用了第 2 种方案。但这个 bug 提醒我们一定要注意低功耗库单元的控制信号与上电速度之间的配合。6.0 结论及建议我们在最近的两款 SOC 芯片中成功地使用 MVSIM 工具完成了低功耗技术的验证,在验证过程中,我们分别使用了 state based 和 value based 仿真,发现了一些上电序列以及仿真模型的 bug。使用 MVSIM可以使我们在 RTL 阶段就能对设计的低功耗机制进行验证,从而保证在设计的早期就能确定低功耗方面的问题,大大减少了设计反复的代价。低功耗设计流程被引入芯片设计的时间还不长,因此在技术以及

47、工具的支持方面,如文档等,还有一些有待进一步完善的地方。我们在功能验证中使用了一些 VCS 的先进 feature,并且在芯片中引入了 DVS 等相对较为复杂的功耗控制机制,因此花费了一定的时间和精力才将低功耗验证技术整合进入原有的验证流程。相信随着我们经验的积累以及流程的进一步成熟,在以后的项目中,我们对于低功耗验证流程的信心将进一步提高。7.0 致谢在使用 MVSIM 完成低功耗的验证过程中,得到了中星微同事的大力支持,在此感谢刘子熹、侯华敏、李树杰及其他同事的热情帮助。同时,我们要感谢 Synopsys 工程师时昕、赵兴亮提出的很多宝贵建议与周到细致的现场支持。8.0 参考文献1 Low

48、 Power Methodology Manual Michael Keating etc.2 Synopsys Low Power Verfication Tools Suite User Guide Synopsys3 多电压域 SoC PMU Module Macro Architecture Specification Vimicro.Written by admin Filed Under 产品及解决方案 | Leave a Comment 利用 VMM 搭建多媒体终端芯片的验证平台August 20, 2010陈辉 李树杰 商辉达半导体有限公司中星微电子有限公司 摘要目前,使用 Systemverilog 语言并结合 SYNOPSYS 的 VMM 验证方法学搭建验证平台已经得到广泛推广,基于 VMM 的验证平台具有很好的结构性和重用性,缩短了搭建验证平台的时间,并能支持约束随机验证,自动比对和功能覆盖率驱动等功能, 提高了验证的全面性和效率。在多媒体芯片的开发过程中,使用 SYNOPSYS 的 VMM 验证方法学和 Systemverilog 搭建验证平

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报