small5的个人空间 https://blog.eetop.cn/nick [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

一个栗子详解带UPF的power仿真

已有 8582 次阅读| 2016-11-15 21:56 |系统分类:芯片设计

芯片设计的功耗要求越来越高,如何在验证过程(RTL 前仿)中提高对于low power design的覆盖率是一个难题,引入UPF至前端仿真是一个不错的办法,值得一看。


什么是UPF?请自行百度


先上低功耗要求,即power intent:顶层模块为TOP,而TOP中例化了一个子模块,其例化名为instA1,具体的代码如下所示: 


inst的模块的代码:

    
TOP模块的代码



顶层TOP 的供电轨道为VDD和VSS,而instA1的供电轨道为VDDA和VSS,并且当VDD掉电后instA1的out1端口也被关掉,out2不受VDD的影响。


首先我们编写power intent 文件


在power intent文件中,我们根据要求创建了两个电源域,并且为电源域指定了供电端口和供电线,并将供电端口和供电线进行连接构成供电网络,而且我们还为两个电源域显式的指定了主供电线网络,最后根据要求,VDD掉电后instA1的out1也将被关掉,这样我们需要为instA1的out1端口指定相对的供电线VDD


写好了powerintent文件后,我们需要构建测试平台



按照通常的testbench的写法,同时要模拟电源行为,我们使用了supply_on和supply_off函数,这两个函数是upf标准中定义的两个标准库函数,其中supply_on函数接受两个参数:参数一为字符串常量,所取值应该为power intent文件中定义的供电端口名,参数二为电压值。supply_off函数只有一个字符串常量参数。


写好testbench之后,我们需要使用synopsys公司的mvtool和vcs工具进行仿真:与一般的仿真步骤类似,仿真RTL+UPF也可以分为三步模式,不过笔者更喜欢一步到位,具体命令为:

vcsmvsim  -debug_all  -upf  demo.upf  -sverilog  $ARCHPRO_ROOT/templates/upf_package.sv  *.v &
其中ARCHPRO_ROOT应该在你的.cshrc或者.bashrc中设置为环境变量,指向你的mvtool安装的根路径。


执行上述命令,编译无误后,用dve观察仿真结果为



由仿真图可以看到instA1的out1有一段时间被corrupt掉了,而这段时间正是VDD掉电时,当VDD重新上电instA1的out1又恢复正常了;instA1的out2输出不受VDD掉电的影响。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 5

    粉丝
  • 0

    好友
  • 8

    获赞
  • 4

    评论
  • 2003

    访问数

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 10:24 , Processed in 0.019076 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部