首页/新闻资讯/正文详情

Formality:原语(primitive)的概念

发布时间:2026/11/5 9:51:01 来源:云帆数科 栏目:资讯中心
Formality:原语(primitive)的概念
相关阅读Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482原语(primitive)一般指的是语言内置的基本构件它们代表了基本的逻辑门和构件通常用于建模电路的基本功能例如Verilog中可以会使用and、or等门级原语进行门级建模、Verilog仿真库中存在用户自定义原语(User Defined Primitive, UDP)。Formality也存在类似的原语概念这一般出现在对门级单元进行建模时本文将对此进行详细解释。假设以例1所示的RTL代码作为参考设计可以看出添加了// synopsys sync_set_reset综合指令让Design Compiler将其实现为带同步复位端的D触发器例2所示的综合后网表作为实现设计其中data_out_reg原语是一个带同步复位端的D触发器(FDS2)。// 例1 module ref( input clk, input reset, input data_in, output reg data_out ); // synopsys sync_set_reset reset always (posedge clk) begin if (reset) begin data_out 1b0; end else begin data_out data_in; end end endmodule// 例2 ///////////////////////////////////////////////////////////// // Created by: Synopsys DC Expert(TM) in wire load mode // Version : O-2018.06-SP1 // Date : Fri Jun 27 15:52:09 2025 ///////////////////////////////////////////////////////////// module ref ( clk, reset, data_in, data_out ); input clk, reset, data_in; output data_out; wire n1; FDS2 data_out_reg ( .CR(data_in), .D(n1), .CP(clk), .Q(data_out) ); IV U4 ( .A(reset), .Z(n1) ); endmodule在Formality中完成了参考设计、实现设计和库文件的读取后参考设计的结构如图1所示注意勾选Primitive原理图如图2所示。图1 参考设计的结构图2 参考设计的原理图可以看出就像Design Compiler读取RTL代码后会将其转化为GTECH网表那样其实GTECH也可以被认为是一种primitiveFormality读取RTL代码后直接将其用内部原语实现了其中date_out_reg原语是一个有同步使能SL同步数据输入SD和时钟CLK的D触发器。实现设计的结构如图3所示注意勾选Primitive和Tech Cells原理图如图4所示。图3 实现设计的结构图4 实现设计的原理图从图3所示的结构我们可以看到来自标准单元库的date_out_reg单元注意这与参考设计中的date_out_reg原语不是一个概念和U4单元但是可以看出它们是可以再分的U4单元由cell0原语组成date_out_reg单元则由包括*dff.00**在内的四个原语组成。date_out_reg单元的内部结构如图5所示。图5 date_out_reg单元的内部结构*dff.00**原语就像参考设计中的date_out_reg原语那样是一个有同步使能SL同步数据输入SD和时钟CLK的D触发器但此时搭配cell2原语实现了一个带同步复位端的D触发器。总结一下就是为了让等价性检查更标准化Formality将直接用内部原语实现RTL代码而用功能等效的方式用内部原语实现门级网表中的各个标准单元并最终对内部原语进行比较。在工艺库列表中可以查看各个标准单元是如何映射到内部原语的如图6所示。图6 查看标准单元库中每个标准单元原语映射方式这也解释了为什么在进行比较点验证时会将参考设计中的date_out_reg原语和实现设计中的date_out_reg/*dff.00**原语进行比较了此时它们才应该是比较是否等价的对象如图7所示。图7 比较点的验证

相关推荐

如何在浏览器中免费体验完整的三国杀游戏?无名杀网页版终极指南
如何在浏览器中免费体验完整的三国杀游戏?无名杀网页版终极指南

如何在浏览器中免费体验完整的三国杀游戏?无名杀网页版终极指南 【免费下载链接】noname 项目地址: https://gitcode.com/GitHub_Trending/no/noname 还在为安装繁琐的三国杀客户端而烦恼吗?想要随时随地体验经典的三国杀对决却受限于设备存储&a… · 2026/10/29 1:10:15

Wand-Enhancer终极指南:为WeMod用户打造个性化游戏增强体验
Wand-Enhancer终极指南:为WeMod用户打造个性化游戏增强体验

Wand-Enhancer终极指南:为WeMod用户打造个性化游戏增强体验 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer Wand-Enhancer是一款专为We… · 2026/10/29 8:06:52

PlainDraggable高性能拖拽库架构解析:从事件驱动到性能优化最佳实践
PlainDraggable高性能拖拽库架构解析:从事件驱动到性能优化最佳实践

PlainDraggable高性能拖拽库架构解析:从事件驱动到性能优化最佳实践 【免费下载链接】plain-draggable The simple and high performance library to allow HTML/SVG element to be dragged. 项目地址: https://gitcode.com/gh_mirrors/pl/plain-draggable P… · 2026/10/3 7:38:42

提升PR效率10倍:CodiumAI PR-Agent代码建议功能深度剖析
提升PR效率10倍:CodiumAI PR-Agent代码建议功能深度剖析

提升PR效率10倍:CodiumAI PR-Agent代码建议功能深度剖析 【免费下载链接】pr-agent 🚀 PR Agent: The Original Open-Source PR Reviewer. This project is not the Qodo free tier. 项目地址: https://gitcode.com/GitHub_Trending/pr/pr-agent … · 2026/11/5 9:48:28

【亲测免费】 Distil-Whisper: distil-large-v2的安装与使用教程
【亲测免费】 Distil-Whisper: distil-large-v2的安装与使用教程

Distil-Whisper: distil-large-v2的安装与使用教程 【免费下载链接】distil-large-v2 项目地址: https://ai.gitcode.com/hf_mirrors/distil-whisper/distil-large-v2 引言 随着语音识别技术在各个领域的广泛应用,高效、准确的语音识别模型成为了研究人员和… · 2026/11/5 9:46:26

10款开源Android游戏完整指南:从离线解谜到Roguelike地牢,按上手成本一次选齐
10款开源Android游戏完整指南:从离线解谜到Roguelike地牢,按上手成本一次选齐

10款开源Android游戏完整指南:从离线解谜到Roguelike地牢,按上手成本一次选齐 【免费下载链接】open-source-android-apps Open-Source Android Apps 项目地址: https://gitcode.com/gh_mirrors/op/open-source-android-apps 本清单收录10款可装进… · 2026/11/5 9:46:26

【亲测免费】 CodiumAI PR-Agent:重塑代码审查的未来
【亲测免费】 CodiumAI PR-Agent:重塑代码审查的未来

CodiumAI PR-Agent:重塑代码审查的未来 【免费下载链接】pr-agent 🚀 PR Agent: The Original Open-Source PR Reviewer. This project is not the Qodo free tier. 项目地址: https://gitcode.com/GitHub_Trending/pr/pr-agent 随着软件开发日新… · 2026/11/5 9:45:25

UART接口24位ADC在工业温度采集中的工程实践
UART接口24位ADC在工业温度采集中的工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 9:43:24

ADS122U04IPWR+TM4C129ENCPDT工业温度采集系统实战
ADS122U04IPWR+TM4C129ENCPDT工业温度采集系统实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 9:43:24

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码