文章目录

  • 前言
  • 一、UPF文件是什么
    • 1.电源域(power_domain)
    • 2.电源开关(power_switch)
    • 3.电源隔离(power_isolation)
    • 4. 其他
  • 二、如何快速上手
    • 1.学习VCS自带的demo
    • 2.启动带UPF的仿真
    • 3.debug带UPF的仿真
  • 总结

前言

最近在做VCS带UPF文件的低功耗仿真,把这个上手的过程,以及要注意的事项记录一下。


一、UPF文件是什么

UPF(Unified Power Format)文件主要用来描述RTL代码的供电情况。在UPF文件中,描述RTL中的电源域(power_domain)、电源开关(power_switch)以及电源隔离(power_isolation)等。简单的说,在UPF文件里边,通过代码来描述,整颗芯片中,不同RTL层次结构的供电关系。

1.电源域(power_domain)

电源域用来逻辑区分不同的供电模块。
create_power_domain命令定义一个电源域,通常用于电源域中的设计元素列表。电源域是一个或多个电源设计元素的逻辑分组。一个电源域应具有一个电源和地。

2.电源开关(power_switch)

电源开关用来打开或者关闭电源域。
create_power_switch命令在电源域中定义电源开关实例。电源开关在电源域的范围内创建。电源开关只有开或者关两种状态。

3.电源隔离(power_isolation)

电源隔离主要用于不同的电源域之间,其中一个电源域断电后,不对另外一个电源域造成影响。主要是将断电后电源域的输出信号钳位到高或者低电平,防止掉电后的叉态传播。
set_isolation和set_isolation_control命令确定要隔离哪些端口,以及在逻辑层次结构中创建产生的隔离单元的位置。

4. 其他

set_scope用来定位当前scope,表明UPF command应该在hierarchy中的哪个位置执行。

set_design_top用来联系UPF和design module,该UPF将应用到每个由该module例化的instance。

port和net的区别:port是指module的接口,连接相邻的hierarchy,而net是module内部的,连接各个port。

power domain:在物理上,同一个power domain的instance会放在一起,并由相同的电源供电。power domain定义时,一般会指定该处在domain的最高层instance。子instance的默认domain跟它的上层instance一致。子instance如果处在不同的domain, 需要显式地从该domain中移除,或者在对应的domain中指定。

isolation的作用是,防止大电流损害电路,以及防止不定态影响电路逻辑。isolation cell有两种模式:normal模式,作用类似buffer,isolation模式,输出(clamp)一个特定值。模式通过isolation enable信号来选择。isolation cell 可放在power domain的input或者output。

如果两个相邻的power domain电压不一样,需要用到level-shifter。
isolation和level-shifter功能通常放在同一个cell里面。

add_power_state 与 create_pst/add_pst_state combination的作用类似,都用来指定power状态信息。

create_power_switch的作用是插入一个switch可以用来关断输出电压。

二、如何快速上手

1.学习VCS自带的demo

VCS工具自带了一个UPF仿真的demo供学习,具体的路径在$VCS_HOME/doc/examples/NLP/MVSIM_NATIVE_DEMO。
demo的介绍可以参考如下文章:
VCS自带的UPF低功耗仿真demo介绍

2.启动带UPF的仿真

要启动一个带UPF的仿真首先需要写好RLT前仿的测试用例,其次,需要具备几个条件:(1)写好UPF文件;(2)加入编译选项;(3) 在顶层导入UPF库并供电。
1、写好UPF文件
写UPF文件之前,要对整个芯片的供电方案有一个全局的了解,自顶向下的方式,挨个电源域的方式去写。

写UPF时要注意initial块的执行。
initial语句,是在仿真的0时刻开始执行。如果模块是在仿真非0时刻上电,那么上电之后,initial语句,是不会执行的。
在VCS中,需要在UPF中打开SNPS_reinit属性,来确保上电后执行initial块。
set_design_attributes -attribute SNPS_reinit TRUE
在irun中,需要加入set_sim_control命令来控制。具体可以参考如下链接:
https://aijishu.com/a/1060000000119148

2、加入编译选项。
加入的编译选项如下:

  • +define+UPF :定义UPF的宏;
  • -upf upf_filename.upf :导入UPF文件(irun中的选项是 - upf_1801);
  • -power_top TOP:指定UPF供电的顶层。这一条也可以在UPF文件中进行指定。

3、在顶层导入UPF库并供电
在顶层可以加入如下代码:

`ifdef UPFimport UPF::*;initial beignsupply_on("VDD", 1.1);supply_on("GND", 0);end
`endif

3.debug带UPF的仿真

在跑带UPF文件的RTL仿真时,一开始将UPF全部写完去仿真,结果仿真一下就卡死了,卡死的现象是不管等多久,仿真始终停在某一个状态,而且仿真时间不往前走,查看log文件也找不到问题所在。
最后解决的办法是,一开始将所有电源域的电都供上,再一个一个去加入电源开关和电源隔离,加一个跑一下,仿真过了再加下一个,最终解决问题。


总结

本文主要介绍了如何利用VCS,进行带UPF的RLT低功耗仿真。主要的内容都是入门级需要了解和注意的,并没有涉及到深入的低功耗分析。

VCS带UPF的RTL低功耗仿真介绍相关推荐

  1. VCS自带的UPF低功耗仿真demo介绍

    文章目录 前言 1.demo所在的位置 2.demo的介绍 3.启动demo仿真 4.利用verdi来分析UPF文件 总结 前言 VCS工具安装路径下,自带了一个UPF低功耗仿真的演示用例,本文主要介 ...

  2. 常规调幅系统matlab结果,基于MATLAB的单边带调幅系统的建模仿真.doc

    基于MATLAB的单边带调幅系统的建模仿真 目 录 0 前言1 1 单边带调制与解调的基本概念2 1.1 单边带调制2 1.2 单边带解调2 1.3 希尔波特(Hilbert)变化2 2 单边带调制的 ...

  3. 带你走近AngularJS - 基本功能介绍

    带你走近AngularJS系列: 带你走近AngularJS - 基本功能介绍 带你走近AngularJS - 体验指令实例 带你走近AngularJS - 创建自定义指令 ------------- ...

  4. (四)UPF之常用低功耗单元(Isolation、Level Shifter、Power Switch、State Retention、Always on cell)

    文章目录 一.低功耗单元介绍 二.Isolation 2.1.Isolation分类 2.2.Isolation编码规则 三.Level Shifter 3.1.Level Shifter分类 3.2 ...

  5. 带滤波器的PID控制仿真-3(Simulink仿真)

    在带滤波器的PID控制仿真-2的基础上对算例进行Simulink仿真. 控制器采用积分分离PI控制,即当误差的绝对值小于等于0.80时,加入积分控制,仿真结果如图1和2所示. 图1 加入滤波器时PID ...

  6. VREP(Coppeliarobotics)仿真介绍

    仿真介绍 在内部,模拟器将使用额外的中间状态,以便正确地通知脚本或程序接下来会发生什么. 以下状态图说明了模拟器的内部状态: Simulation Loop(仿真循环) 模拟器通过以恒定时间步长推进模 ...

  7. 超宽带室内信道模型研究与matlab仿真,复杂室内环境超宽带信号信道模型及仿真结果分析.pdf...

    第22卷第4期 电波科学学报 VoI.22,No.4 2007年8月 CHINESEJOURNALOFRADIoSCIENCE Augustt2007 文章编号1005-0388(2007)04-05 ...

  8. Chapter1.3:控制系统的仿真介绍

    该系列博客主要讲述Matlab软件在自动控制方面的应用,如无自动控制理论基础,请先学习自动控制系列博文,该系列博客不再详细讲解自动控制理论知识. 自动控制理论基础相关链接:https://blog.c ...

  9. 【通信原理课程设计】基于MATLAB/Simulink的2ASK数字带通传输系统建模与仿真

    基于MATLAB/Simulink的2ASK数字带通传输系统建模与仿真 目录 基于MATLAB/Simulink的2ASK数字带通传输系统建模与仿真 课程设计要求 方法选择 设计步骤 结果显示与性能分 ...

  10. matlab单边带调幅系统的建模仿真(笔记)

    单边带调幅系统的建模仿真 希尔伯特变换 实信号 x(t) 的希尔伯特变换就是将该信号中所有频率成分的信号份量移相 −π/2 而得到的新信号,记为 x^(t)\hat{x}(t)x^(t).对于单频率正 ...

最新文章

  1. 华为畅享8可以云闪付吗_华为Mate40Pro不如小米11的8个理由,这些差距无法忽视,懂了吗...
  2. Understanding Design And Development Job Titles--reference
  3. Horizon View 6-安装View Composer组件⑵
  4. linux下epoll如何实现高效处理
  5. 【Storm篇】--Storm并发机制
  6. MacOSX环境上的多个Java JDK
  7. SQL WITH NOCHECK 和 CLUSTERED | NONCLUSTERED
  8. Windows BAT中7zip压缩时排除某些目录
  9. CarMaker与NS3联合仿真平台--安装
  10. 杰控组态变量单向数据传递的经验
  11. VOSviewer:高频关键字段共现网络制作入门教程(以PubMed数据为例)
  12. python爬虫刷网课答题_python实践:利用爬虫刷网课
  13. VMware 虚拟机图文安装和配置 AlmaLinux OS 8.6 教程
  14. 微信公众号点击图片跳转关注
  15. 28335和C语言数据存储检索
  16. 计算机晋级职称考试内容,职称计算机考试内容
  17. HDR关键技术:色度学,颜色空间及转换
  18. itest(爱测试) 4.1.1 发布,开源BUG 跟踪管理 敏捷测试管理软件
  19. MATLAB中findpeaks函数使用
  20. Torvalds 拒绝接受 ZFS 文件系统

热门文章

  1. 「斑愿称为最肝」小狮子前端知识食谱 / 生日之际,好运分享 / 秋招和你手摸手入大厂【史上最全指北】 | CSDN技术征文
  2. 如何让百度谷歌快速shopex网店系统内容
  3. [原创]Kjava手机顽童模拟器
  4. 局域网联机游戏找不到服务器,国庆想局域网联机,除了“吃鸡”,这些Steam游戏别错过...
  5. 计算机软硬件故障排除知识,计算机软硬件基础知识及常见故障排除方法
  6. python实现简单的三边测量定位
  7. 淘宝镜像(浏览器驱动等等等)
  8. acdsee ultimate 2020 特别版 v13.0附安装教程
  9. JavaWeb——JavaScript精讲之DOM、BOM对象与案例实战(动态添加删除表格)
  10. Android聊天室(源码)