LEC/FORMAL --- PARTI 原理介绍

2024-02-09 07:30
文章标签 介绍 原理 lec formal parti

本文主要是介绍LEC/FORMAL --- PARTI 原理介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

LEC:lec(logic equivalence checking)又叫formal check,是对ic design的综合,PR前后的设计进行逻辑对比检查的工具/手段,保证综合不改变rtl原始的logic function。目前用的较多的就是C家的formal工具。接下来介绍一下lec的原理和流程

在这里插入图片描述

1. Lec 原理介绍:

之所以搞这个lec,是因为在rtl实现的过程中,会进行各种的优化逻辑操作,有时候为了优化面积或者timing,把一些工具认为不必要的逻辑进行了优化,那优化后的逻辑是否真正的仍然是rtl的需求呢?就需要做一个对比的验证。
在验证过程中,通过对比所有的key point pairs的方式,将整个design进行对比验证。对比过程中,把更靠近设计上游的design认为是golden的,把另一个design认为是revised的。

1.1 key points

当我们的design的instance变成20万,100万时候,不可能把所有的小的逻辑单元拿出来一个个的对比,这样可能会跑上个很久很久很久。为了加速这种对比,通过设定key points的方式。如下图所示,无论是golden还是revised design,都可以设置为key points加上logic cones的方式进行。我们只需要对两者design中对应的key points点进行比较,因为logic cones只是组合逻辑内容,不会影响到结果。这样会大大的加快对比的速度,也能保证准确性。

在这里插入图片描述

Key point上都有那些:
Primary inputs (PI) /Primary outputs (PO) /D flip-flop /D latches
Blackboxes (BBOX)/TIE-Z gates /TIE-E gates/CUT gates

1.2 Mapping

在做compare之前,需要进行一个mapping 操作,何为map?其实就是把golden和revised design的key points点一一对应上,首先要保证我们的输入键是正确的,我们比较的两个点的位置是正确的,才能保证结果是正确的。那工具是如何把两个design的key points互相对上的呢?其实在进行map的时候,会有name based map和func-based map,这个要根据项目情况和综合情况,自行组合选择。

1.3 Compare

当上一步骤的map完成之后,接下来就是要进行compare步骤了。
那么compare对于时序逻辑如DFF是怎么处理的呢?如下图所示,并不把这个DFF当成是一个正常的功能逻辑,而是分开,D端口作为比较的点,而Q端口作为下个比较点的输入。

在这里插入图片描述

那都有哪些点进行比较呢?其实主要还是从key points中的内容。比较的点包含了逻辑堆的汇聚点,Primary outputs, cut gates, DFFs, D-latches, and blackboxes。
虽然此刻比较的是一些key points点,但是实际还是对逻辑堆的比较,因为工具所比较的内容是从key points点经过逻辑堆,再到key points点才进行的check,正确与否和中间经过的逻辑关系密切。

这篇关于LEC/FORMAL --- PARTI 原理介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693543

相关文章

Spring Cloud Hystrix原理与注意事项小结

《SpringCloudHystrix原理与注意事项小结》本文介绍了Hystrix的基本概念、工作原理以及其在实际开发中的应用方式,通过对Hystrix的深入学习,开发者可以在分布式系统中实现精细... 目录一、Spring Cloud Hystrix概述和设计目标(一)Spring Cloud Hystr

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实