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

FPGA商用级ISP:动态坏点校正(DPCC)的滑窗架构与并行判决实现

FPGA商用级ISP:动态坏点校正(DPCC)的滑窗架构与并行判决实现

【写在前面:为什么要写这个专栏?】 在数字图像处理领域,ISP(图像信号处理器)的算法原理并不罕见,但真正能够支持 4K@60fps 实时处理、并经过商用验证的 Verilog 硬核实现思路 却往往秘和封装在黑盒之中。 我手里有一套商用级的 ISP 源码,通过对其进行深度拆解,我希望能够分析并抽象出其背后的设计逻辑。这不仅是对高性能图像处理架构的复盘,更是希望能为广大 FPGA 开发者和 ISP 算法工程师提供一个硬核的设计基线(Baseline)。通过分享这些商用 IP 的实现细节,我希望能帮助更多人了解如何将复杂的图像算法转化为高效的硬件流水线,为行业提供一份有价值的参考。 1. 深度解析:为什么“商用级”坏点校正极其困难? 在传感器(Sensor)制造中,由于半导体工艺缺陷或后期老化,不可避免会出现常亮像素(Hot Pixel)或死像素(Dead Pixel)。 * 痛点一:误杀边缘。 如果只是简单的中值滤波,图像中真实的星星、

【宇树机器人强化学习】(一):PPO算法的python实现与解析

【宇树机器人强化学习】(一):PPO算法的python实现与解析

前言 * 本系列将着手解析整个仓库的核心代码与算法实现和训练教程。此系列默认读者拥有一定的强化学习基础和代码基础,故在部分原理和基础代码逻辑不做解释,对强化学习基础感兴趣的读者可以阅读我的入门系列: * 第一期: 【浅显易懂理解强化学习】(一)Q-Learning原来是查表法-ZEEKLOG博客 * 第二期: 【浅显易懂理解强化学习】(二):Sarsa,保守派的胜利-ZEEKLOG博客 * 第三期:【浅显易懂理解强化学习】(三):DQN:当查表法装上大脑-ZEEKLOG博客 * 第四期:【浅显易懂理解强化学习】(四):Policy Gradients玩转策略采样-ZEEKLOG博客 * 第五期:【浅显易懂理解强化学习】(五):Actor-Critic与A3C,多线程的完全胜利-ZEEKLOG博客 * 第六期:【浅显易懂理解强化学习】(六):DDPG与TD3集百家之长-ZEEKLOG博客 * 第七期:【浅显易懂理解强化学习】(七):PPO,策略更新的安全阀-ZEEKLOG博客 * 阅读本系列的前置知识: * python语法,明白面向

基于学习的机器人变阻抗控制实现peg-in-hole(轴孔装配)任务

Peg-in-Hole任务 的核心是在存在位置不确定性(如孔的位置、方向偏差)和接触约束的情况下,引导机器人(或机械臂)末端的“轴”顺利插入“孔”中。 传统变阻抗控制 已能很好解决部分问题: * 原理:通过动态调整阻抗模型(惯性、阻尼、刚度参数),使机器人在自由空间呈现高刚度以快速运动,在接触空间呈现低刚度以顺应接触力,避免卡死或产生过大接触力。 * 局限: 1. 参数调优困难:阻抗参数(尤其是刚度、阻尼)高度依赖于任务几何、材料特性、环境动力学,需要专家经验手动调整。 2. 缺乏适应性:固定的或简单规则切换的阻抗参数,难以应对复杂多变的环境(如不同公差、不同摩擦系数、未知的接触面几何)。 3. 状态依赖复杂:最优的阻抗参数往往是机器人位姿、接触力、任务阶段等多维状态的复杂函数,难以用解析式表达。 基于学习的方法 的核心优势在于:从数据或与环境的交互中自动学习出复杂的、状态相关的阻抗控制策略,从而克服上述局限。

CVPR 2026 Oral实测|YOLO-DRONE:无人机低空巡检的“性能天花板”,小目标召回率狂升39%(清华团队力作,电力部署实操全解析)

CVPR 2026 Oral实测|YOLO-DRONE:无人机低空巡检的“性能天花板”,小目标召回率狂升39%(清华团队力作,电力部署实操全解析)

前言:作为长期深耕无人机计算机视觉落地的算法工程师,我始终认为,无人机低空巡检场景的核心痛点,从来不是“模型精度多高”,而是“能否适配复杂飞行工况下的实战需求”。无论是电力巡检中的导线断股、绝缘子破损,还是安防巡检中的人员遗留、设备异常,这些目标往往尺寸极小、飞行过程中受风速扰动导致画面模糊、目标尺度动态变化,传统YOLO系列模型要么小目标漏检严重,要么抗扰动能力弱,要么实时性不足,根本无法满足工业级巡检的落地要求。 2026年CVPR大会上,清华大学团队提出的YOLO-DRONE模型惊艳全场,成功入选Oral(口头报告),成为低空巡检领域唯一入选的单阶段检测模型。这款专为无人机低空巡检设计的多尺度动态感知模型,创新性融合自适应尺度感知头(ASPH)与风速补偿特征对齐模块,彻底解决了传统模型“小目标漏检、抗扰动差、实时性不足”三大痛点——在UAV-DT无人机巡检专用数据集上,小目标召回率直接提升39%,同时支持1080p@45FPS实时处理,目前已正式部署于国内某省级电力巡检系统,实现输电线路的自动化巡检落地。 我第一时间获取了YOLO-DRONE的技术论文及开源代码,搭建了模拟无