Formality:原语(primitive)的概念

Formality:原语(primitive)的概念

相关阅读

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


        原语(primitive)一般指的是语言内置的基本构件,它们代表了基本的逻辑门和构件,通常用于建模电路的基本功能,例如Verilog中的门级建模会使用and、or等关键词表示单元门。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 <= 1'b0; 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也可以被认为是一种primitive),Formality读取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 比较点的验证

Read more

FLUX.1-dev FP8完整部署教程:让6GB显存显卡也能玩转AI绘画

FLUX.1-dev FP8完整部署教程:让6GB显存显卡也能玩转AI绘画 【免费下载链接】flux1-dev 项目地址: https://ai.gitcode.com/hf_mirrors/Comfy-Org/flux1-dev 还在为显卡配置不够而苦恼吗?🤔 FLUX.1-dev FP8版本的出现彻底改变了游戏规则!这款革命性的量化模型将显存需求从16GB大幅降低至仅6GB,让RTX 3060、4060等主流显卡也能流畅运行专业级AI绘画,为普通用户打开了无限创意的大门。 🎯 为什么选择FLUX.1-dev FP8版本? 突破性的量化技术让中端显卡也能享受顶级AI绘画体验!通过智能分层量化策略,在保持核心功能精度的同时,实现了显著的性能提升。无论你是设计师、内容创作者还是AI爱好者,这款模型都能满足你的创作需求。 核心优势一览 * 显存需求降低60%:从16GB降至6GB * 兼容性全面提升:支持RTX 3060、4060等主流显卡 * 画质几乎无损:智能量化确保关键组件精度 * 部署简单快捷:完整教程带你从零开始 🛠️ 环境准备与项目获取 第一步

【图像处理基石】VR的眩晕感是如何产生的?

【图像处理基石】VR的眩晕感是如何产生的?

引言 随着元宇宙、工业仿真、太空探索模拟等场景的快速发展,虚拟现实(VR)技术正从实验室走向规模化应用。然而,VR眩晕感始终是制约其普及的核心痛点——据行业统计,约30%-60%的用户在使用VR设备时会出现不同程度的头晕、恶心、平衡失调等症状,严重影响体验与使用时长。 作为算法工程师,我们不仅需要理解眩晕感的产生机制,更要从算法层面提出可落地的优化方案。本文将从生理机制、技术成因、全链路解决方案三个维度展开,重点聚焦算法工程师的核心关注方向,并结合代码示例与工程实践,为VR眩晕感的优化提供技术参考。 一、VR眩晕感的产生机制:生理与技术的双重冲突 VR眩晕感的本质是多感官信息不一致导致的大脑认知混乱。其产生可分为生理层面的核心矛盾和技术层面的诱发因素,二者相互叠加,共同影响用户体验。 1.1 生理核心:视觉-前庭系统的感官冲突 人类的平衡感与运动感知由两大系统协同完成: * 视觉系统:通过眼睛捕捉环境变化,传递“是否运动”的视觉信号; * 前庭系统:位于内耳,通过半规管和耳石感知头部姿态与加速度,传递“是否运动”的体感信号。 在现实世界中,这两个系统的信号高度一致

无人机飞行空域申请全流程指南

无人机飞行空域申请全流程指南 一、哪些情况需要申请空域? 必须申请空域的情况: * 在管制空域内飞行(包括机场周边、军事区、120米以上空域等) * 微型/轻型无人机在适飞空域内超过真高120米飞行 * 轻型无人机进行特殊操作(如中继飞行、载运危险品、飞越人群) * 小型及以上无人机(空机>4kg或最大起飞重量>7kg)在任何空域飞行 无需申请的情况: * 微型无人机在真高50米以下适飞空域内飞行 * 轻型无人机在真高120米以下适飞空域内飞行 二、申请前必备准备 1️⃣ 实名登记(所有无人机必备) * 登录民用无人驾驶航空器综合管理平台(UOM)(https://uom.caac.gov.cn或UOM APP) * 个人用户:完成实名认证(上传身份证),为≥250g的无人机登记,获取唯一编码和二维码 * 企业用户:准备营业执照、法人身份证、运营合格证、无人机适航证 2️⃣ 人员资质要求

用大白话讲解人工智能(1) AI不是“机器人“:它到底是个啥?

用大白话讲解人工智能(1) AI不是“机器人“:它到底是个啥?

AI不是"机器人":它到底是个啥? 你真的懂AI吗? 当你听到"人工智能"这个词时,脑海里浮现的是什么?是电影《终结者》里的T-800机器人,还是《钢铁侠》里能说会道的Jarvis?其实这些都是被好莱坞夸张化的AI形象。今天我们就用最接地气的方式,聊聊AI到底是个什么东西,它和我们想象的机器人有什么不同。 生活中的AI,你每天都在接触 早上被手机闹钟叫醒,你说"小爱同学,今天天气怎么样"——这是AI在听你说话;打开外卖软件,首页推荐的都是你爱吃的东西——这是AI在猜你喜欢什么;刷短视频时,永远有看不完的内容——这是AI在根据你的喜好推荐。 这些都是AI,但你看到机器人了吗?没有。因为AI不是具体的物体,而是一种"能自主学习的电脑程序"。就像我们大脑的思考能力和我们的身体是两回事一样,AI相当于电脑的"思考能力"