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

Formality:不可读(unread)的概念

相关阅读

Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm=1001.2014.3001.5482https://blog.csdn.net/weixin_45791458/category_12841971.html?spm=1001.2014.3001.5482


        在Formality中有时会遇到不可读(unread)这个概念,本文就将对此进行描述。不可读是一种状态,触发器、锁存器、输入端口等许多对象都可能位于这种状态,简单来说,不可读就是直接或间接没有驱动任何比较点。

        例1是一个RTL描述的不可读触发器的例子。

// 例1
module fred (a, b, clk, z);
input a, b, clk;
output z;reg ar1, ar2;assign z = ar1;
// Note ar2 does not drive anything
always @(posedge clk)
beginar1 <= a;ar2 <= a & b;
endendmodule

        对于Design Compiler来说,如果RTL描述中出现了没有负载的触发器,则门级描述中会自动将其移除,因此例1对应的门级网表如例2所示。

// 例2
module fred ( a, b, clk, z );input a, b, clk;output z;DFFQXL ar1_reg ( .D(a), .CK(clk), .Q(z) );
endmodule

        如果分别例1/例2作为参考/实现设计进行等价性检查,匹配时会提示一个出现一个不匹配的点(因为参考设计中没有移除不可读触发器,而实现设计中移除了),如下所示。

*********************************** Matching Results ***********************************2 Compare points matched by name0 Compare points matched by signature analysis0 Compare points matched by topology2 Matched primary inputs, black-box outputs0(0) Unmatched reference(implementation) compare points0(0) Unmatched reference(implementation) primary inputs, black-box outputs1(0) Unmatched reference(implementation) unread points
****************************************************************************************

        使用report_unmatched_points -status unread命令即可报告未匹配的不可读点,如下所示。

**************************************************
Report         : unmatched_points-status unread Reference      : r:/WORK/fred
Implementation : i:/WORK/fred
Version        : O-2018.06-SP1
Date           : Wed Jan 22 15:31:44 2025
**************************************************1 Unmatched point (1 reference, 0 implementation):Ref  DFF        r:/WORK/fred/ar2_reg

        其实还有一对点也是不可读的,只是此时匹配成功了,它们就是输入端口b。可以使用report_unread_endpoints -all命令报告所有的不可读来源以及不可读的原因,如下所示。

**************************************************
Report         : unread_endpoints-all Reference      : r:/WORK/fred
Implementation : i:/WORK/fred
Version        : O-2018.06-SP1
Date           : Wed Jan 22 15:37:10 2025
**************************************************Following 2 blocking objects identified in the fanout:(Net )  r:/WORK/fred/ar2  (no reader)(Net )  i:/WORK/fred/b  (no reader)

        不可读点在原理图中会用特殊标识说明,图1是参考设计的原理图(需要注意,由于输入端口b的扇出只有不可读触发器ar2_reg,它也被间接认定为不可读状态),图2是实现设计的原理图。

图1 参考设计

图2 实现设计 

        即使不可读的比较点匹配成功,它们在默认情况下也会被归为Not Compared类而不进行验证,如Formality:比较点的验证状态和整体验证状态-CSDN博客一文所说(可通过verification_verify_unread_compare_points变量改变)。

        下面展示了使用RTL描述同时作为参考设计和实现设计,从而让一对不可读比较点匹配后的验证结果。

----------------------------------------------------------------------------------------
Matched Compare Points     BBPin    Loop   BBNet     Cut    Port     DFF     LAT   TOTAL
----------------------------------------------------------------------------------------
Passing (equivalent)           0       0       0       0       1       1       0       2
Failing (not equivalent)       0       0       0       0       0       0       0       0
Not ComparedUnread                       0       0       0       0       0       1       0       1

        使用report_not_compared_points命令可以报告所有处于Not Compared类的比较点,包括不可读。

        不可读状态是可能传递的,如例3所示RTL描述的触发器链,其中最后一个触发器q4_reg没有负载,但由于q3_reg的扇出只有不可读触发器q4_reg,,所以它也为不可读触发器,以此类推。

// 例3
module dff_chain (input clk,    input d_in,      output d_out    
);reg q1, q2, q3, q4;  always @(posedge clk) beginq1 <= d_in;  q2 <= q1;    q3 <= q2;    q4 <= q3;    endendmodule

        使用例3同时作为参考设计和实现设计时的验证结果如下所示,其中四个触发器都因为不可读而没有进行验证。

----------------------------------------------------------------------------------------
Matched Compare Points     BBPin    Loop   BBNet     Cut    Port     DFF     LAT   TOTAL
----------------------------------------------------------------------------------------
Passing (equivalent)           0       0       0       0       0       0       0       0
Failing (not equivalent)       0       0       0       0       1       0       0       1
Not ComparedUnread                       0       0       0       0       0       4       0       4

        使用set_constant命令设置常数值也可能导致不可读,以例4来说,如果将q4的输出线网d_out设置为常数0,则会导致触发器q4_reg不可读,从而导致四个触发器都不可读。

// 例4
module dff_chain (input clk,    input d_in,      output d_out    
);reg q1, q2, q3, q4;  always @(posedge clk) beginq1 <= d_in;  q2 <= q1;    q3 <= q2;    q4 <= q3;    endassign d_out = q4;
endmodule

         使用例4同时作为参考设计和实现设计,并使用set_constant -type net r:/WORK/dff_chain/d_out 0和set_constant -type net i:/WORK/dff_chain/d_out 0命令设置常数0,此时report_unread_endpoints -all命令的结果如下所示。

**************************************************
Report         : unread_endpoints-all Reference      : r:/WORK/dff_chain
Implementation : i:/WORK/dff_chain
Version        : O-2018.06-SP1
Date           : Wed Jan 22 16:12:04 2025
**************************************************Following 2 blocking objects identified in the fanout:(Net )  r:/WORK/dff_chain/d_out  (blocked by constant)(Net )  i:/WORK/dff_chain/d_out  (blocked by constant)

        报告中清晰地说明了不可读的原因是因为常量阻塞。 

相关文章:

Formality:不可读(unread)的概念

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482https://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 在Formality中有时会遇到不可读(unread)这个概念&#xff0c;本文就将对此…...

stm32f103C8T6和AT24C256链接

模拟IIC总线 myiic.c #ifndef __24CXX_H #define __24CXX_H #include "myiic.h" #define AT24C01 127 //1kbit1*1024/8128byte地址寻址范围为0-127 #define AT24C02 255 #define AT24C04 511 #define AT24C08 1023 #define AT24C16 2047 #define AT24C32 …...

5.SQLAlchemy对两张有关联关系表查询

问题 例如&#xff0c;一个用户可以有多个收获地址。 定义表如下&#xff1a; 用户表 地址表 一般情况&#xff0c;我们会先查询用户表&#xff0c;拿到用户id后&#xff0c;再到地址表中查询关联的地址数据。这样就要执行两次查询。 仅仅为了方便查询&#xff0c;需要一些属…...

2.2.1 语句结构

ST(Structured Text)语言是一种基于IEC 61131-3标准的高级文本编程语言,其语法规则严格且清晰。以下是ST语言中关于分号、注释和代码块的详细语法规则说明: 分号(;)作用:分号用于表示语句的结束。语法规则: 每个独立的语句必须以分号结尾。分号是语句的终止符,用于分隔…...

安当二代TDE透明加密技术与SMS凭据管理系统相结合的数据库安全解决方案

安当二代TDE透明加密技术与安当SMS凭据管理系统的结合&#xff0c;为企业提供了一套完整的数据库安全解决方案&#xff0c;涵盖字段级加密脱敏和动态凭据管理两大核心功能。以下是其实现方式和技术特点的详细说明&#xff1a; 一、安当二代TDE透明加密技术&#xff1a;字段级加…...

es的date类型字段按照原生格式进行分组聚合

PUT student2 { "mappings": {"properties": {"name": {"type": "text","analyzer": "standard" // 使用标准分析器&#xff0c;适合姓名字段},"birthday": {"type": "date&…...

高频次UDP 小包丢包分析

目录 背景测试方法测试结果case1: (经过多级交换机)case2: 长时测试(经过多级交换机)case3: 长时测试(设备直联)可能原因分析解决方法背景 UDP作为面向非连接的传输协议,并不能保证可靠交付。本文编写代码测试设备之间UDP小包传输的可靠性。 测试方法 发送侧基于豆包…...

科目四考试内容

一、考试内容 科目四考试主要包含以下五个方面的内容&#xff1a; 法律法规与规章制度&#xff1a;理解并掌握道路交通规则&#xff0c;涉及交通信号、标志、标线以及相关设施的运用。综合判断与案例分析&#xff1a;培养学员应对复杂交通情况的能力&#xff0c;学会识别违法…...

2015 年 4 月多省(区、市)公务员录用考试 《申论》真题详解

一&#xff09;“给定资料1~2”反映了人们在过去的工作和生活方面形成的很多“惯例”或“习惯做法”正在悄然改变。请分析导致这种改变发生的主要原因。&#xff08;20分&#xff09; 一、给定资料   材料1&#xff1a;   互联网的日益普及和开发利用&#xff0c;不断为人…...

四、CSS效果

一、box-shadow box-shadow:在元素的框架上添加阴影效果 /* x 偏移量 | y 偏移量 | 阴影颜色 */ box-shadow: 60px -16px teal; /* x 偏移量 | y 偏移量 | 阴影模糊半径 | 阴影颜色 */ box-shadow: 10px 5px 5px black; /* x 偏移量 | y 偏移量 | 阴影模糊半径 | 阴影扩散半…...

全面评测 DOCA 开发环境下的 DPU:性能表现、机器学习与金融高频交易下的计算能力分析

本文介绍了我在 DOCA 开发环境下对 DPU 进行测评和计算能力测试的一些真实体验和记录。在测评过程中&#xff0c;我主要关注了 DPU 在高并发数据传输和深度学习场景下的表现&#xff0c;以及基本的系统性能指标&#xff0c;包括 CPU 计算、内存带宽、多线程/多进程能力和 I/O 性…...

图论 八字码

我们可能惊异于某些技巧。我们认为这个技巧真是巧妙啊。或者有人认为我依靠自己的直觉想出了这个表示方法。非常自豪。我认为假设是很小的时候&#xff0c;比如说小学初中&#xff0c;还是不错的。到高中大学&#xff0c;就有一些不成熟了。因为这实际上是一个竞技。很多东西前…...

OSI5GWIFI自组网协议层次对比

目录 5G网络5G与其他协议栈各层映射 5G网络 物理层 (PHY) 是 5G 基站协议架构的最底层&#xff0c;负责将数字数据转换为适合无线传输的信号&#xff0c;并将接收到的无线信号转换为数字数据。实现数据的编码、调制、多天线处理、资源映射等操作。涉及使用新的频段&#xff08…...

北理新源监控平台都管理哪些数据

北理新源信息科技有限公司&#xff08;简称“北理新源”&#xff09;依托北京理工大学电动车辆国家工程研究中心&#xff0c;建设和运营了“新能源汽车国家监测与管理平台”。该平台是国家级的新能源汽车数据监管平台&#xff0c;主要负责对新能源汽车的运行数据进行采集、监测…...

WPS不登录无法使用基本功能的解决方案

前言 WPS不登录无法使用基本功能的原因通常是为了同步数据、提供更多高级功能或满足软件授权要求。‌然而&#xff0c;一些用户可能出于隐私或便捷性的考虑&#xff0c;不愿意登录账号。在这种情况下&#xff0c;WPS可能会限制未登录用户的使用权限&#xff0c;导致工具栏变灰…...

车载软件架构 --- CP和AP作为中央计算平台的软件架构双核心

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 简单&#xff0c;单纯&#xff0c;喜欢独处&#xff0c;独来独往&#xff0c;不易合同频过着接地气的生活…...

【技巧】优雅的使用 pnpm+Monorepo 单体仓库构建一个高效、灵活的多项目架构

单体仓库&#xff08;Monorepo&#xff09;搭建指南&#xff1a;从零开始 单体仓库&#xff08;Monorepo&#xff09;是一种将多个相关项目集中管理在一个仓库中的开发模式。它可以帮助开发者共享代码、统一配置&#xff0c;并简化依赖管理。本文将通过实际代码示例&#xff0…...

【深度学习基础】多层感知机 | 权重衰减

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…...

修改word的作者 最后一次保存者 总编辑时间 创建时间 最后一次保存的日期

作者&#xff1a; 1.打开word文件 2.点击左上角的文件 3.选项 4.用户信息 5.将用户信息中的 姓名改为你需要的名字 最后一次保存者 1.word重命名为.zip文件 2.docProps中有个core.xml 3.用记事本打开有个lastModifiedBy标签&#xff0c;将里面内容改为你需要的名字 总编辑时…...

青少年编程与数学 02-007 PostgreSQL数据库应用 15课题、备份与还原

青少年编程与数学 02-007 PostgreSQL数据库应用 15课题、备份与还原 一、数据库备份与还原二、PostgreSQL中操作数据库的备份与还原1. 使用pg_dump进行逻辑备份2. 使用pg_restore进行逻辑还原3. 使用pg_basebackup进行物理备份4. 还原物理备份注意事项 三、自动备份1. 使用pg_d…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...