当前位置: 首页 > news >正文

Formality:两种等价状态consistency和equality

相关阅读

Formalityicon-default.png?t=O83Ahttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm=1001.2014.3001.5482


背景

        逻辑锥的等价性检查时,存在两种验证模式:一致(consistency)和等同(equality),要理解这两点,首先得明白综合工具(Design Compiler)是如何处理不定态(x)的信号。

        下面是一个存在x值的RTL代码示例(这不推荐,因为会造成前仿和后仿的不一致)。

// 文件:case_example.v
module case_example (input [1:0] state,output reg out
);always @ (state) begincase (state)2'b00: out = 1'b0;2'b01: out = 1'b1;2'b10: out = 1'b1;2'b11: out = 1'bx;endcaseendendmodule

        当进行前仿时,如果state信号取得10值时,输出信号out直接为x值,如图1所示。

图1 前仿中出现的x值

        但在使用Design Compiler进行综合时,x值会被当做不关心(don't care),因而可以有任意的实现方式,如果state信号取得11值时,输出信号out的值由Design Compiler决定,在这个例子中,Design Compiler选择输出1,因为这样就可以直接用一个与门描述逻辑功能了,如图2所示。

图2 综合结果

正题

        下面介绍一致(consistency)和等同(equality)的概念。

一致(consistency)

        对于参考设计中比较点响应为1或0的每一个输入模式(pattern),实现设计必须给出相同的响应;对于参考设计中比较点响应为x(不关心,don't care)的每一个输入模式,实现设计在相应为1或0时都可以通过。可以注意到,这与Design Compiler的处理方式是一致的。一致是不对称的,也就是说如果RTL到门级设计的验证通过,但门级到RTL的验证可能会失败。

等同(equality)

        在一致性的基础上增加了额外的要求,对于参考设计中比较点响应为1或0或x的每一个输入模式(pattern),实现设计必须给出相同的响应才可以通过。等同常在检查两个RTL之间的等价性时很有用。

        可以在Setup模式下使用下面的两种方式切换验证的两种模式(默认为consistency):

fm_shellGUI
使用set_app_var verification_passing_mode [consistencyequality]命令

1、选择Edit > Formality Tcl Variables,将会显示Formality Tcl Variables对话框。

2、在Verification部分,选择verification_passing_mode变量。

3、点击consistencyequality

实践

        下面将继续用上面的例子进行详细说明,假设其综合后的网表如下所示。

/
// Created by: Synopsys DC Expert(TM) in wire load mode
// Version   : O-2018.06-SP1
// Date      : Sun Jan 12 14:18:23 2025
/module case_example ( state, out );input [1:0] state;output out;OR2X1 U4 ( .A(state[0]), .B(state[1]), .Y(out) );
endmodule

默认情况

        当设置为一致时,验证结果如图3所示,可以从Pattern窗口中看出,当state信号取得11值时,参考设计输出x而实现设计输出1(符合预期),最终验证通过。

图3 默认情况下的匹配结果

非默认情况

        当设置为等同时,验证结果如图4所示,可以从Pattern窗口中看出,当state信号取得11值时,参考设计输出x而实现设计输出1(符合预期),但验证没有通过。

图4 非默认情况下的匹配结果

x值的建模

        可能有人会有疑问,在参考设计中x值是如何建模的?要回答这个问题,可以从逻辑锥入手,首先打开输出端口对应的逻辑锥,如图5所示。

图5 逻辑锥 

        接着选中输出值为x的线网,并依次右键->Find->Find X Sources,结果如图6所示。

图6 x值的源头:C0单元

        C0单元是x值的源头,当DC引脚为1时,无论F引脚是何值,输出都为x值。

相关文章:

Formality:两种等价状态consistency和equality

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 背景 逻辑锥的等价性检查时,存在两种验证模式:一致(consistency)和等同(equality),要理解这两点,首先得明白综合工具…...

Java Web开发基础:HTML的深度解析与应用

文章目录 前言🌍一.B/S 软件开发架构简述🌍二.HTML 介绍❄️2.1 官方文档❄️2.2 网页的组成❄️2.3 HTML 是什么❄️2.4html基本结构 🌍三.HTML标签1.html 的标签/元素-说明2. html 标签注意事项和细节3.font 字体标签4.标题标签5.超链接标签…...

第30章 汇编语言--- 性能优化技巧

汇编语言是用于直接编程计算机硬件的低级语言,它几乎是一对一地映射到机器指令。因为汇编代码与特定处理器架构紧密相关,所以在讨论性能优化技巧时,通常需要考虑具体的CPU架构和指令集。 以下是一些通用的汇编语言性能优化技巧,并…...

HTB:Paper[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 对靶机进行子域…...

数据库中的 DDL、DML 和 DCL

数据库中的 DDL、DML 和 DCL 在数据库的定义与操作中,DDL、DML 和 DCL 是三个核心概念,分别用于不同层面的数据库管理与操作。 1. DDL(Data Definition Language) - 数据定义语言 定义 DDL 用于定义和管理数据库的结构或模式。…...

OKR 极简史及理解

大家读完觉得有帮助记得点赞和关注!!! 目录 MBO SMART 和 KPI OKR 1. 什么是 OKR? 1.1 Objectives(目标) 1.2 Key Results(关键成果) KR 应当是困难的,但并非不可…...

电商项目-基于ElasticSearch实现商品搜索功能(四)

一、 高亮显示 1.1 高亮分析 高亮显示是指根据商品关键字搜索商品的时候,显示的页面对关键字给定了特殊样式,让它显示更加突出,如商品搜索中,关键字变成了红色,其实就是给定了红色样式。 1.2 高亮搜索实现步骤解析 …...

TCP封装数据帧

void *send_data(void *arg) //这是一个发送数据的线程 {int sockfd init_tcp_cli("192.168.0.148",50000) //传ip和port&#xff0c;port 50000是因为大概前五万都被其它服务所占用&#xff0c;50000后是私人ipif(sockfd < 0){return NULL;}unsigned char …...

数据结构与算法之二叉树: LeetCode 515. 在每个树行中找最大值 (Ts版)

在每个树行中找最大值 https://leetcode.cn/problems/find-largest-value-in-each-tree-row/description/ 描述 给定一棵二叉树的根节点 root &#xff0c;请找出该二叉树中每一层的最大值 示例1 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例2 输入: root [1,2,3]…...

百度视频搜索架构演进

导读 随着信息技术的迅猛发展&#xff0c;搜索引擎作为人们获取信息的主要途径&#xff0c;其背后的技术架构也在不断演进。本文详细阐述了近年来视频搜索排序框架的重大变革&#xff0c;特别是在大模型技术需求驱动下&#xff0c;如何从传统的多阶段级联框架逐步演变为更加高…...

构造函数的原型原型链

代码示例 // 定义一个构造函数 Test function Test() {this.name 张三 }; //向构造函数的原型添加一个属性 age18 Test.prototype.age 18;//使用构造函数 Test 来实例化一个新对象 const test new Test();//向 Object.prototype 添加了一个名为 sex 的属性&#xff0c;其值…...

nginx反向代理及负载均衡

华子目录 nginx反向代理功能http反向代理反向代理配置参数proxy_pass的注意事项案例&#xff1a;反向代理单台后端服务器案例&#xff1a;反向代理实现动静分离案例&#xff1a;反向代理的缓存功能非缓存场景下测压准备缓存缓存场景下测压验证缓存文件 反向代理负载均衡&#x…...

单片机实物成品-011 火灾监测

火灾监测&#xff08;20个版本&#xff09; 版本20&#xff1a; oled显示温湿度烟雾浓度火焰传感器天然气浓度窗户风扇水泵排气系统声光报警语音播报按键WIFI模块 ----------------------------------------------------------------------------- https://www.bilibili.com…...

使用 Docker 在 Alpine Linux 下部署 Caddy 服务器

简介 在现代 web 开发中&#xff0c;选择合适的 web 服务器至关重要。Caddy 是一个功能强大的现代化 HTTP/2 服务器&#xff0c;支持自动 HTTPS&#xff0c;配置简单&#xff0c;适合开发和生产环境。Docker 则为我们提供了一种轻量级的容器化技术&#xff0c;使得应用程序的部…...

每日十题八股-2025年1月12日

1.为什么四次挥手之后要等2MSL? 2.服务端出现大量的timewait有哪些原因? 3.TCP和UDP区别是什么&#xff1f; 4.TCP为什么可靠传输 5.怎么用udp实现http&#xff1f; 6.tcp粘包怎么解决&#xff1f; 7.TCP的拥塞控制介绍一下&#xff1f; 8.描述一下打开百度首页后发生的网络过…...

Python中定位包含特定文本信息的元素

目录 一、为什么需要定位包含文本信息的元素 二、使用Selenium定位包含文本的元素 1. 使用find_element_by_link_text 2. 使用find_element_by_partial_link_text 3. 使用XPath定位包含文本的元素 4. 使用CSS选择器定位包含文本的元素 三、使用BeautifulSoup定位包含文本…...

uniapp实现H5页面内容居中与两边留白,打造类似微信公众号阅读体验

在 UniApp 中&#xff0c;由于需要兼容多端应用&#xff0c;我们通常使用 rpx 作为尺寸单位。然而&#xff0c;在某些情况下&#xff0c;如需要实现内容居中且两边留白时&#xff0c;直接使用 rpx 可能会带来一些限制。这时&#xff0c;我们可以考虑使用 px 或 rem 等单位&…...

极品飞车6里的赛道简介

极品飞车里有很多赛道,赛道分为前向赛道Forward、后向赛道Backward。前向赛道Forward是从A点到B点;后向赛道Backward是前向赛道的逆过程,即从B点到A点。这里介绍极品飞车6的赛道长度、中英文名称翻译、难度等级。 序号赛道英文名赛道中文名总长(km)急弯难度等级1Alpine Trai…...

SAP推出云端ERP解决方案,加速零售行业数字化转型

2025年1月9日&#xff0c;SAP发布了一款专为零售行业设计的云端ERP行业解决方案——S/4HANA Cloud Public Edition&#xff0c;进一步推动企业向云端迁移。这款解决方案旨在集中运营数据&#xff0c;整合财务、采购和商品管理流程&#xff0c;以帮助零售企业优化运营效率。 核…...

Python爬虫进阶——案例:模拟bilibili登录)

主要内容&#xff1a;模拟bilibili账号密码登录&#xff0c;不要实现的的实现功能是单击登录按钮&#xff0c;切换登录方式&#xff0c; 输入账号和密码&#xff0c;然后完成图片点击验证&#xff0c;最后单击立即登录按钮。 1、第一步&#xff1a;通过selenium模块访问bilibi…...

​​​​​​​中山网站建设哪家好?从AI搜索变革看网站建设的规范流程

在讨论“中山网站建设哪家好”之前&#xff0c;有一个更底层的问题需要先理解&#xff1a;&#x1f449; 网站的价值&#xff0c;正在被AI重新定义。一、信息获取路径正在发生根本变化过去二十年&#xff0c;用户获取信息的方式大致是&#xff1a;用户提出问题 → 打开搜索引擎…...

PhotoScan软件在无人机航测数据处理中的高效应用流程

1. 无人机航测数据处理入门指南 第一次接触无人机航测数据处理的同学可能会觉得这是个高大上的技术活&#xff0c;其实只要掌握了PhotoScan这个神器&#xff0c;处理起来比想象中简单得多。我刚开始接触时也走了不少弯路&#xff0c;现在把最实用的经验分享给大家。 PhotoScan是…...

weibo-rss:让微博内容主动找到你的高效订阅工具

weibo-rss&#xff1a;让微博内容主动找到你的高效订阅工具 【免费下载链接】weibo-rss &#x1f370; 把喜欢的微博转为 RSS 订阅源 项目地址: https://gitcode.com/gh_mirrors/we/weibo-rss 在信息爆炸的时代&#xff0c;我们每天要处理大量碎片化内容。微博作为主流社…...

Windows热键冲突终结者:Hotkey Detective让键盘操作回归掌控

Windows热键冲突终结者&#xff1a;Hotkey Detective让键盘操作回归掌控 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 当…...

深入理解请求限流算法的实现细节

在技术领域&#xff0c;我们常常被那些闪耀的、可见的成果所吸引。今天&#xff0c;这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力&#xff0c;让我们得以一窥未来的轮廓。然而&#xff0c;作为在企业一线构建、部署和维护复杂系统的实践者&#xff0c;我们深知…...

大数据领域HBase的备份与恢复方案

大数据领域HBase的备份与恢复方案 关键词&#xff1a;HBase备份恢复、分布式存储、数据持久化、全量备份、增量备份、灾难恢复、快照机制 摘要&#xff1a;本文系统解析HBase分布式环境下的数据备份与恢复技术体系&#xff0c;涵盖核心存储原理、多维度备份策略&#xff08;全量…...

【数据结构】二叉树入门全解:从定义、性质到经典真题

一、先搞懂&#xff1a;什么是二叉树&#xff1f;二叉树&#xff08;Binary Tree&#xff09;是一种特殊的树形结构&#xff0c;定义非常清晰&#xff1a;它是由 n&#xff08;n≥0&#xff09; 个结点构成的有限集合&#xff0c;满足&#xff1a;空树&#xff1a;当 n0 时&…...

渗流完美降雨边界:单、双重渗透介质降雨边界处理的改进探索

渗流完美降雨边界——基于单、双重渗透介质降雨边界处理的改进 [1]模型简介&#xff1a;使用数值模拟软件COMSOL复现论文&#xff08;窦智,刘一民,周志芳,等.基于单、双重渗透介质降雨边界处理的改进[J].岩土力学,2022,43(03):789-798.&#xff09;&#xff0c;该文献针对传统降…...

Linux五种I/O模型详解与性能对比

1. Linux I/O 模型基础概念解析在深入探讨五种I/O模型之前&#xff0c;我们需要先理解几个关键的基础概念。这些概念是理解不同I/O模型差异的基石&#xff0c;也是很多开发者在实际工作中容易混淆的地方。1.1 用户态与内核态Linux系统将运行环境分为用户态(User mode)和内核态(…...

UWB定位算法避坑指南:如何避免常见错误并提升定位精度(含2025最新优化技巧)

UWB定位算法避坑指南&#xff1a;如何避免常见错误并提升定位精度&#xff08;含2025最新优化技巧&#xff09; 在工业4.0和智能物联网的浪潮中&#xff0c;超宽带&#xff08;UWB&#xff09;技术凭借其厘米级高精度定位能力&#xff0c;正在重塑智能制造、仓储物流和医疗监护…...