IEEE1801 UPF 编写指南-1.MSV设计

news2024/12/24 20:04:16

多电源电压(MSV)设计为核心技术使用多个电源电压,如图1-1“MSV设计示例”所示。顶层设计和实例inst_A在电压VDD1下操作,而实例inst_B在电压VDD2下操作,实例inst_C在电压VDD3下操作。

在相同操作电压下运行(即使用相同的主电源)的设计部分属于对应于该操作电压的电源域。

设计的稳定状态称为电源状态。纯粹的MSV设计只有一个电源状态,因为假定电源域的操作电压不会改变。

要在操作于不同电压的设计部分之间传递信号,需要电平转换器。电平转换器是一种特殊单元,它有两个独立的电源供应,并把输入电压级别转换为输出电压级别。set_level_shifter命令定义了电平转换器的要求;这包括需要将哪些电源组连接到电平转换器的输入和输出电源引脚。

读取1801设计的工具可以自动推导出电平转换器的输入和输出电源。输入电源组将是驱动逻辑的电源组,输出电源组将是接收逻辑的电源(如果所有接收器都在同一电源上)。对于更复杂的情况,必须使用set_level_shifter命令显式指定输入和输出电源。

图1-1 "MSV设计示例" 展示了每个电源域的典型操作电压。

1.1 示例:完整的MSV IEEE 1801文件

upf_version 2.0

# 定义电源端口和网络

create_supply_port VDD

create_supply_net VDD

connect_supply_net VDD -ports VDD

create_supply_port VDD2

create_supply_net VDD2

connect_supply_net VDD2 -ports VDD2

create_supply_port VDD3

create_supply_net VDD3

connect_supply_net VDD3 -ports VDD3

create_supply_port VSS

create_supply_net VSS

connect_supply_net VSS -ports VSS

# 将电源网络连接到电源域电源组

create_supply_set ss_PD1 -function {power VDD} -function {ground VSS}

create_supply_set ss_PD2 -function {power VDD2} -function {ground VSS}

create_supply_set ss_PD3 -function {power VDD3} -function {ground VSS}

# 创建电源域

create_power_domain PD1 -include_scope -supply {primary ss_PD1}

create_power_domain PD2 -elements {inst_A inst_B} -supply {primary ss_PD2}

create_power_domain PD3 -elements {inst_C} -supply {primary ss_PD3}

# 为LD1创建电平转换器规则 -

# 其电压低于其他域

set_level_shifter LS_PD1_PD2 -domain PD2 -applies_to inputs \

-location self \

-source PD1.primary \

-input_supply_set PD1.primary \

-output_supply_set PD2.primary

set_level_shifter LS_PD1_PD3 -domain PD3 -applies_to inputs \

-location self \

-source PD1.primary \

-input_supply_set PD1.primary \

-output_supply_set PD3.primary

set_level_shifter LS_PD2_PD3 -domain PD3 -applies_to inputs \

-location self \

-source PD2.primary \

-input_supply_set PD2.primary \

-output_supply_set PD3.primary

# 定义每个域的电源状态

add_power_state PD1.primary \

-state ON {-supply_expr {power == `{FULL_ON, 0.8} && ground == `{FULL_ON, 0.0}} \

-simstate NORMAL}

add_power_state PD2.primary \

-state ON {-supply_expr {power == `{FULL_ON, 1.0} && ground == `{FULL_ON, 0.0}} \

-simstate NORMAL}

add_power_state PD3.primary \

-state ON {-supply_expr {power == `{FULL_ON, 1.2} && ground == `{FULL_ON, 0.0}} \

-simstate NORMAL}

add_power_state PD1 \

-state PM1 {-logic_expr {PD1.primary == ON && PD2.primary == ON && PD3.primary == ON}}

1.2 为MSV设计创建IEEE 1801文件的步骤

本节描述了在MSV设计的IEEE 1801文件中包含的信息。本节中始终使用图1-1所示的“MSV设计示例”。

以下与设计相关的信息捕获了电源意图和约束:

- 指定电源域

- 指定电源和地网络以及端口

- 指定供电组

- 将供电组与电源域关联

- 指定每个域允许的电压状态

- 定义系统级电源状态

- 指定创建电平转换器逻辑的规则

最后一个步骤对于物理实现是必需的:

- 指定全局连接

1.2.1 指定电源域

为了识别设计中在同一电压下运行的部分,使用`create_power_domain`命令来指定一个电源域:

create_power_domain power_domain [-elements elements_list]

对于图1-1中的“MSV设计示例”,指定三个域:

create_power_domain PD1 -include_scope -supply {primary ss_PD1}

create_power_domain PD2 -elements {inst_A inst_B} -supply {primary ss_PD2}

create_power_domain PD3 -elements {inst_C} -supply {primary ss_PD3}

顶级模块属于top域。可以使用`-include_scope`选项或`-elements {.}`来指定top域。

1.2.2 指定电源和地网络以及端口

对于IEEE 1801,可以定义设计中使用的供电端口和网络(电源和地)。供电端口是提供电压供应给设备的外部端口。供电网络是将用于连接设计中的域和各个组件的电源引脚的内部网络。一旦指定,这些电源或地供应可以与电源域关联,并作为特殊单元的连接。

使用以下语法定义电源和地供应:

create_supply_port supply_port_name

create_supply_net supply_net_name

然后,如下所示将供电端口连接到供电网络:

connect_supply_net supply_net_name -port supply_port_name

有关这些命令的完整描述,请参阅IEEE 1801-2013规范。

1.2.3 指定供电组

对于IEEE 1801,低功耗意图的一个基本构建块是供电组。由于供电组是供电网络的捆绑,可以使用供电组来简化供电网络与电源域和特殊单元的连接。也就是说,而不是单独指定每个供电网络,可以使用供电组。

使用以下语法为每个电源域定义供电组:

create_supply_set ss_name [-function {supply_function supply_net}]*

供电组定义了一组功能,如主电源和主地,然后定义哪些供电网络提供这些功能。例如,以下命令指定ss_PD1的主电源由供电网络VDD1提供,地功能由VSS提供:

create_supply_set ss_PD1 -function {power VDD1} -function {ground VSS}

1.2.4 将供电组与电源域关联

要将供电组与电源域关联,请使用`associate_supply_set`命令,如下所示:

associate_supply_set ss_name -handle power_domain.handle

例如:

associate_supply_set ss_PD1 -handle PD1.primary

关联的供电组定义了PD1中任何单元的所有主电源和地引脚将连接到ss_PD1供电组中定义的网络。在这种情况下,这意味着PD1域中的所有主电源引脚将连接到供电网络VDD1。

1.2.5 指定每个域允许的电压状态

对于IEEE 1801,建议为每个电源域使用`add_power_state`命令。使用此命令定义每个指定域允许的操作电压。虽然这不是必需的,但它确实为更复杂的设计提供了非常清晰的电源意图定义。

要指定设计中使用的操作电压,请使用`add_power_state`命令。例如:

add_power_state PD1.primary \

-state ON {-supply_expr {power == `{FULL_ON, 0.8} && ground == `{FULL_ON, 0.0}} \

-simstate NORMAL}

add_power_state PD2.primary \

-state ON {-supply_expr {power == `{FULL_ON, 1.0} && ground == `{FULL_ON, 0.0}} \

-simstate NORMAL}

add_power_state PD3.primary \

-state ON {-supply_expr {power == `{FULL_ON, 1.2} && ground == `{FULL_ON, 0.0}} \

-simstate NORMAL}

如果设计具有pmos或nmos偏置,也可以使用`-supply_expr`选项来指定这些偏置。

1.2.6 定义系统级电源状态

`add_power_state`命令还可以定义系统级的电源状态。系统级电源状态定义了域之间的交互,而不是每个域允许的状态。

通常,电源状态的使用如下:

- 用于IEEE 1801的验证。

- 用于仿真中的覆盖率和断言创建。

- 在运行低功耗设计检查时,验证所有电平转换和隔离要求是否符合电源意图。

纯MSV设计被认为只有一个电源模式,每个电源域应该与一个单一电压相关联。纯MSV设计是使用多个电源电压但没有其他低功耗技术的设计,例如PSO或DVFS方法。

要定义电源状态,请使用`add_power_state`命令:

add_power_state PD1 \

-state PM1 {-logic_expr {PD1.primary == ON && PD2.primary == ON && PD3.primary== ON}}

系统级的`add_power_state`命令应该只使用`-logic_expr`选项指定电源域状态,而不是单独的电源网络。在层次化的IEEE 1801流程中,`logic_expr`也可以引用其他较低级别的系统状态。这样,顶层就不需要指定所有较低级别的域。

1.2.7 指定创建电平转换器逻辑的规则

根据技术需求,当信号通过时,可能需要电平转换器:

- 从电压较低的电源域传递到电压较高的电源域。

- 从电压较高的电源域传递到电压较低的电源域。

在这两种情况下,要创建一个用于电源域之间或一组引脚的电平转换器策略,请使用`set_level_shifter`命令,其中最常见的选项和值包括:

set_level_shifter strategy_name \

    -domain domain_name \

    -applies_to <inputs|outputs|both> \

    -location <parent|self|other> \

    -input_supply_set supply_set_name \

    -output_supply_set supply_set_name \

    -threshold <value|list>

电平转换器策略通常适用于`-applies_to`选项指定的特定域的输入或输出。`-location`选项提供了实现工具应放置隔离单元的指导:要么在指定域的内部(`self`),要么在层次结构的外部(`other`)。

阈值`-threshold`定义了何时插入电平转换,这个选项通常用于避免在电压差异较小时进行电平转换。

对于图1-1所示的“MSV设计示例”,指定如下:

set_level_shifter LS_PD2_inputs \

       -domain PD2 \

    -applies_to inputs \

    -location parent \

-input_supply_set PD1.primary \

-output_supply_set PD2.primary

set_level_shifter LS_PD1_PD3 \

-domain PD3 \

    -applies_to inputs -pins {B} \

    -location self \

-input_supply_set PD1.primary \

-output_supply_set PD3.primary

set_level_shifter LS_PD2_PD3 \

-domain PD3 \

    -applies_to inputs -pins {a} \

    -location self \

    -input_supply_set PD2.primary \

    -output_supply_set PD3.primary

请注意,示例中的`-pins {B}`和`-pins {a}`指定了应用电平转换策略的特定引脚。根据设计和需求,这些引脚名称可能需要调整。此外,`strategy_name`是为电平转换器策略定义的名称,而`domain_name`是应用该策略的电源域的名称。

1.2.8 指定全局连接

如果设计中包含具有非默认或多个电源和地连接的硬宏单元,则必须使用供电网络来指定如何连接全局网络,例如电源和地网络。在本节中使用的例子中,对设计没有特殊需求,因此不需要此命令。但在实践中,这通常用于存储器和其他宏单元。

要指定全局连接,请使用以下命令:

connect_supply_net net_name \

-ports pin_list \

-domain domain

在这个命令中:

- `net_name` 是要连接的供电网络的名称。

- `pin_list` 是一个列表,包含了要连接到该供电网络的引脚名称。

- `-domain domain` 是一个可选参数,用于指定应用此连接的特定电源域。如果省略此参数,连接将适用于所有域。

此命令的使用确保了设计中的硬宏单元能够正确地连接到电源和地网络,从而满足其特定的电源需求。这对于保证设计的整体功能和稳定性至关重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1969887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chapter 23 数据可视化——地图

欢迎大家订阅【Python从入门到精通】专栏&#xff0c;一起探索Python的无限可能&#xff01; 文章目录 前言一、基础绘图二、视觉映射三、案例分析 前言 随着地理信息系统&#xff08;GIS&#xff09;技术的迅猛发展和大数据时代的到来&#xff0c;数据可视化已经成为分析和理…

供应链下生产计划有什么新要求?详解供应链下生产计划编制步骤!

在当今全球化和市场快速变化的商业环境中&#xff0c;供应链管理下的生产计划比以往任何时候都更为关键。企业不仅要应对需求的波动和供应的不确定性&#xff0c;还要在激烈的市场竞争中保持敏捷和效率。有效的生产计划已成为制造业乃至整个供应链成功的核心。本文将深入探讨供…

一款.NET开源、跨平台的DASH/HLS/MSS下载工具

前言 今天大姚给大家分享一款.NET开源&#xff08;MIT License&#xff09;、免费、跨平台的DASH/HLS/MSS下载工具&#xff0c;并且支持点播和直播&#xff08;DASH/HLS&#xff09;的内容下载&#xff1a;N_m3u8DL-RE。 网络流媒体传输协议介绍 DASH DASH是一种基于HTTP的…

更改ubuntu的主屏幕

一、【问题描述】 如果有多个屏幕连接到ubuntu&#xff0c;Ubuntu的这个上面的通知栏如果不在我们希望的位置&#xff0c;会让人很不舒服&#xff0c;这个是根据主屏幕位置显示的&#xff0c;这个文章水一下如何改这个 二、【解决方法】 总之就是两个命令&#xff0c;先查再改…

3.Java面试题之AQS

1. 写在前面 AQS&#xff08;AbstractQueuedSynchronizer&#xff09;是Java并发包&#xff08;java.util.concurrent&#xff09;中的一个抽象类&#xff0c;用于实现同步器&#xff08;如锁、信号量、栅栏等&#xff09;。AQS提供了一种基于FIFO队列的机制来管理线程的竞争和…

condapytorch环境搭建笔记

1. 安装conda 官网安装地址&#xff1a;https://docs.anaconda.com/anaconda/install/linux/ 下载Installer curl -O https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh注&#xff1a;可以到这里查看和选择适合的版本&#xff1a;https://repo.anacon…

实验2-4-6 求交错序列前N项和

//实验2-4-6 求交错序列前N项和//本题要求编写程序&#xff0c;计算交错序列 1-2/33/5-4/75/9-6/11... 的前N项之和。 #include<stdio.h> #include<math.h> int main(){int n;scanf("%d",&n);//输入在一行中给出一个正整数N。double sum0;for(int i1…

SpringCloud Alibaba 微服务(三):OpenFeign

目录 前言 一、什么是OpenFeign&#xff1f; Feign 的实现 Feign 和 OpenFeign 的区别 二、OpenFeign的优点 三、基本用法 新建子工程 配置文件 服务注册 ​编辑 新建Controller 引入依赖 创建接口 启动类开启Feign注解 访问测试 四、FeignClient 标签的常用属性…

solidity抽象(abstract)合约(很常用)

当合约中至少有一个函数没有被实现&#xff0c; 或者合约没有为其所有的基本合约构造函数提供参数时&#xff0c; 合约必须被标记为 abstract。 即使不是这种情况&#xff0c;合约仍然可以被标记为 abstract&#xff0c; 例如&#xff0c;当您不打算直接创建合约时。 抽象&a…

Langchain-Chatchat3.1——搜索引擎bing与DuckDuckGo

Langchain-Chatchat3.1——搜索引擎bing与DuckDuckGo 1. 前提是咱们的Chatchat服务一起部署好了&#xff0c;可以参考 Langchain-Chatchat3.1版本docker部署流程——知识库问答 2. 搜索引擎 DuckDuckGo&#xff1a;该搜索引擎不需要key&#xff0c;但是需要全球上网服务&…

MongoDB change stream 详解

文章目录 什么是 Chang Streams实现原理故障恢复使用场景Spring Boot整合Chang Stream 什么是 Chang Streams Change Stream指数据的变化事件流&#xff0c;MongoDB从3.6版本开始提供订阅数据变更的功能。 Change Stream 是 MongoDB 用于实现变更追踪的解决方案&#xff0c;类…

MySQL基础练习题16-电影评分

题目 准备数据 分析数据 总结 题目 查找评论电影数量最多的用户名。如果出现平局&#xff0c;返回字典序较小的用户名。 查找在 February 2020 平均评分最高 的电影名称。如果出现平局&#xff0c;返回字典序较小的电影名称。 准备数据 ## 创建库 create database db; u…

微信小程序电商直播功能如何开通?

作者&#xff1a;阿龙 目前&#xff0c;公域直播电商平台&#xff08;抖音、快手、视频号等&#xff09;的获客流量成本越来越高&#xff0c;同时监管规则越来越严&#xff0c;扣点越来越高&#xff0c;并且没有用户分销机制&#xff0c;这些都在迫使商家尽快建立自己的私域直…

苹果Vision Pro在中国市场遇冷?连黄牛都炒不动了

随着科技巨头苹果公司推出的首款混合现实头戴设备Vision Pro正式登陆中国市场&#xff0c;这款备受瞩目的产品引发了广泛关注。 然而&#xff0c;短短一周之后&#xff0c;许多早期尝鲜的用户却开始陆续退场。究竟是什么原因导致大量用户选择退场呢&#xff1f;本文将从多个维…

绝密!OceanBase OBCP备考模拟题讲解(3)

「源de爸讲数据库」每天更新OceanBase OBCP题库及全网独家超详细题目解析&#xff0c;祝您早日持证上岸&#xff01; 现如今&#xff0c;一大批国产数据库随着国产化浪潮&#xff0c;已经逐步被越来越多的人认可。OceanBase便是其中一个优秀代表。 做这个日更专题&#xff0c…

ESP32-C2 烧录

自动下载电路 dtr rts &#xff1b;WCH 提供了相应的芯片&#xff0c;实现自动下载 CH340X &#xff08;*不要使用天问的下载器&#xff0c;电压为5V&#xff0c;下载前会重启电源&#xff0c;导致无法识别ESP芯片&#xff0c;修改&#xff0c;将电源线重引出 使用IDF编辑完成…

实测体验:劣质宠物空气净化器有啥危害?值得买的养宠空气净化器

作为一名猫咖店老板&#xff0c;换季时节&#xff0c;家中不仅要面对恼人的异味&#xff0c;还要忍受满天飞舞的猫毛&#xff0c;真是让人头疼。虽然和毛孩子在一起充满了乐趣&#xff0c;但随之而来的毛发和异味问题却令人苦不堪言。普通的空气净化器虽然能净化空气&#xff0…

写一个图片裁剪的js,JavaScript图片裁剪插件PlusCropper

在前端开发中&#xff0c;图片裁剪是一个常见的需求。本文将深入解析一个功能完善的JavaScript图片裁剪插件——PlusCropper&#xff0c;带你一步步了解其实现原理和使用方法。 一、插件概述 PlusCropper是一个轻量级的JavaScript插件&#xff0c;它允许用户在网页上交互式地…

CTFHUB-文件上传-双写绕过

开启题目 1.php内容&#xff1a; <?php eval($_POST[cmd]);?> 上传一句话木马 1.php&#xff0c;抓包&#xff0c;双写 php 然后放包&#xff0c;上传成功 蚁剑连接 在“/var/www/html/flag_484225427.php”找到了 flag

How Can I display Reference/Citation using Streamlit Application?

题意&#xff1a;怎样在Streamlit应用程序中显示参考文献或引用&#xff1f; 问题背景&#xff1a; I have created an Azure AI Search Service, created index using Azure Blob Storage and Deployed a web application and made a chat Playground using AzureOpenAI. 我…