Formality:黑盒(black box)
相关阅读Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482简介在使用Formality时黑盒(black box)的概念很重要指的是一个其功能未知的设计。黑盒通常用于设计中不可综合的组件包括RAM、ROM、模拟电路和硬核IP等。它也是需要匹配的对象之一必须确保参考设计和实现设计之间存在一一对应的映射黑盒输入引脚被视为比较点而黑盒输出引脚被视为普通匹配点关于这两者的概念详见下面这篇博客。Formality匹配(match)是如何进行的https://chenzhang.blog.csdn.net/article/details/144404964哪些情况会产生黑盒只有端口定义而没有其他定义的设计或者说STUB模块例1所示的设计black_box只有端口定义因此被认为是黑盒设计这种黑盒拥有完整的引脚定义名字和方向。// 例1 module black_box ( input wire clk, input wire reset, input wire [7:0] data_in, output wire [7:0] data_out ); endmodule module top_module ( input wire clk, input wire reset, input wire [7:0] data_in, output wire [7:0] data_out ); black_box u_black_box ( .clk(clk), .reset(reset), .data_in(data_in), .data_out(data_out) ); endmodule下面是使用report_black_boxes命令进行报告的结果。Formality (setup) report_black_boxes ************************************************** Report : black_boxes Reference : r:/WORK/top_module Implementation : None Version : W-2024.09-SP2 Date : Thu Jan 30 22:59:54 2025 ************************************************** Information: Implementation design is not set. (FM-149) Information: Reporting black boxes for current reference design. (FM-184) ___________________________________________________ | | | Legend: | | Black Box Attributes | | s Set with set_black_box command | | i Module read with -interface_only | | u Unresolved design module | | e Empty design module | | * Unlinked design module | | ut Unread tech cells pins | | L Linked to non-black box design | | cp Cutpoint blackbox | | ir Internal rounded blackbox | | f Formality Power Model | | m Technology Macro cell (.db) | |___________________________________________________| ################################################################## #### DESIGN LIBRARY - r:/WORK ################################################################## Type Design Name ---- ---------- e black_box Instances : 1 of 1 ------------------------ r:/WORK/top_module/u_black_box功能信息不包含库文件(.db)中的设计以存储器为例Memory Compiler会生成含引脚和时序信息的.lib文件而经过Library Compiler编译后的.db文件中一般只含有一个存储器宏单元且不包含功能信息如下报告所示其中的b属性代表该宏单元没有功能信息。lc_shell report_lib ram4x32_max ram4x32 **************************************** Report : library Library: ram4x32_max Version: O-2018.06-SP1 Date : Mon Jan 27 23:04:54 2025 **************************************** Library Type : Technology Tool Created : W-2004.12 Date Created : .18-Dec-2001 Library Version : .1.0 Comments : Unit Area representation 6.0516 sq.micron Components: Attributes: af - active falling ah - active high al - active low ar - active rising b - black box (function unknown) Cell Footprint Attributes ------------------------------------------- ram4x32 ram4x32 b, d, mo, s, u例2所示的设计ram4x32是来自逻辑库的宏单元因此被认为是黑盒设计这种黑盒拥有完整的引脚定义名字和方向。// 例2 module ram4x32_top( input wire CE1, input wire CE2, input wire OEB1, input wire OEB2, input wire CSB1, input wire CSB2, input wire WEB1, input wire WEB2, input wire [4:0] A1, input wire [4:0] A2, input wire [3:0] I1, input wire [3:0] I2, output wire [3:0] O1, output wire [3:0] O2 ); ram4x32 U_ram4x32 ( .CE1(CE1), .CE2(CE2), .OEB1(OEB1), .OEB2(OEB2), .CSB1(CSB1), .CSB2(CSB2), .WEB1(WEB1), .WEB2(WEB2), .A1(A1), .A2(A2), .I1(I1), .I2(I2), .O1(O1), .O2(O2) ); endmodule下面是使用report_black_boxes命令进行报告的结果。Formality (setup) report_black_boxes ************************************************** Report : black_boxes Reference : r:/WORK/ram4x32_top Implementation : None Version : W-2024.09-SP2 Date : Thu Jan 30 22:55:14 2025 ************************************************** Information: Implementation design is not set. (FM-149) Information: Reporting black boxes for current reference design. (FM-184) ___________________________________________________ | | | Legend: | | Black Box Attributes | | s Set with set_black_box command | | i Module read with -interface_only | | u Unresolved design module | | e Empty design module | | * Unlinked design module | | ut Unread tech cells pins | | L Linked to non-black box design | | cp Cutpoint blackbox | | ir Internal rounded blackbox | | f Formality Power Model | | m Technology Macro cell (.db) | |___________________________________________________| ################################################################## #### TECH LIBRARY - r:/RAM4X32_MAX ################################################################## Type Design Name ---- ---------- m ram4x32 Instances : 1 of 1 ------------------------ r:/WORK/ram4x32_top/U_ram4x32变量hdlin_unresolved_modules定义为black_box时未解析的设计当设计的所有定义都缺失时默认情况下即变量hdlin_unresolved_modules定义为error时在使用set_top命令进行展开时会报错“Error: Unresolved references detected during link.”。如果将变量hdlin_unresolved_modules定义为black_box则会将所有未解析的设计当做黑盒设并提示“Warning: 1 blackbox designs were created for missing references.”。如果使用命名端口连接则该黑盒设计拥有引脚名字的定义而没有引脚方向的定义如例3所示。// 例3 module top_module ( input wire clk, input wire reset, input wire [7:0] data_in, output wire [7:0] data_out ); black_box u_black_box ( .clk(clk), .reset(reset), .data_in(data_in), .data_out(data_out) ); endmodule如果使用位置端口连接则该设计没有引脚名字和引脚方向的定义如例4所示。// 例4 module top_module ( input wire clk, input wire reset, input wire [7:0] data_in, output wire [7:0] data_out ); black_box u_black_box ( clk, reset, data_in, data_out, ); endmodule对于引脚名字未定义的情况Formality会使用默认的引脚名(p1、p2、p3...)对于引脚方向未定义的情况Formality会尝试根据连接关系和局部几何结构智能地、保守地猜测引脚方向并提示“Warning: 19 black-box pins of unknown direction found; see formality.log for list”。如果工具无法确定引脚方向它会假设该引脚是双向的这可能会导致多驱动线网。此外可以使用set_direction命令来显式定义引脚方向。下面是使用report_black_boxes命令进行报告的结果。Formality (setup) report_black_boxes ************************************************** Report : black_boxes Reference : r:/WORK/top_module Implementation : None Version : W-2024.09-SP2 Date : Thu Jan 30 23:02:29 2025 ************************************************** Information: Implementation design is not set. (FM-149) Information: Reporting black boxes for current reference design. (FM-184) ___________________________________________________ | | | Legend: | | Black Box Attributes | | s Set with set_black_box command | | i Module read with -interface_only | | u Unresolved design module | | e Empty design module | | * Unlinked design module | | ut Unread tech cells pins | | L Linked to non-black box design | | cp Cutpoint blackbox | | ir Internal rounded blackbox | | f Formality Power Model | | m Technology Macro cell (.db) | |___________________________________________________| ################################################################## #### TECH LIBRARY - r:/FM_BBOX ################################################################## Type Design Name ---- ---------- u black_box Instances : 1 of 1 ------------------------ r:/WORK/top_module/u_black_box使用变量hdlin_interface_only定义的设计在读取设计文件时变量hdlin_interface_only指定的设计将被当做黑盒设计这种黑盒拥有完整的引脚定义名字和方向如例5所示如果变量hdlin_interface_only设置时该设计已经读取但还未使用set_top命令进行展开其也会被当做黑盒设计但此时report_black_boxes命令的结果将不被标记为i而是e。// 例5 // 在使用set_top命令前设置变量hdlin_interface_only为black_box module black_box ( input wire clk, input wire reset, input wire [7:0] data_in, output reg [7:0] data_out ); always (posedge clk or posedge reset) begin if (reset) data_out 8b0; else data_out data_in; end endmodule module top_module ( input wire clk, input wire reset, input wire [7:0] data_in, output wire [7:0] data_out ); black_box u_black_box ( .clk(clk), .reset(reset), .data_in(data_in), .data_out(data_out) ); endmodule下面是使用report_black_boxes命令进行报告的结果。Formality (setup) report_black_boxes ************************************************** Report : black_boxes Reference : r:/WORK/top_module Implementation : None Version : W-2024.09-SP2 Date : Thu Jan 30 23:13:27 2025 ************************************************** Information: Implementation design is not set. (FM-149) Information: Reporting black boxes for current reference design. (FM-184) ___________________________________________________ | | | Legend: | | Black Box Attributes | | s Set with set_black_box command | | i Module read with -interface_only | | u Unresolved design module | | e Empty design module | | * Unlinked design module | | ut Unread tech cells pins | | L Linked to non-black box design | | cp Cutpoint blackbox | | ir Internal rounded blackbox | | f Formality Power Model | | m Technology Macro cell (.db) | |___________________________________________________| ################################################################## #### DESIGN LIBRARY - r:/WORK ################################################################## Type Design Name ---- ---------- i black_box Instances : 1 of 1 ------------------------ r:/WORK/top_module/u_black_box使用set_black_box命令指定的设计使用set_black_box命令可以将一个设计设置为黑盒设计无论此时是否已使用set_top命令进行展开这种黑盒拥有完整的引脚定义名字和方向如例6所示。// 例6 // 使用set_black_box命令设置black_box设计为黑盒 module black_box ( input wire clk, input wire reset, input wire [7:0] data_in, output reg [7:0] data_out ); always (posedge clk or posedge reset) begin if (reset) data_out 8b0; else data_out data_in; end endmodule module top_module ( input wire clk, input wire reset, input wire [7:0] data_in, output wire [7:0] data_out ); black_box u_black_box ( .clk(clk), .reset(reset), .data_in(data_in), .data_out(data_out) ); endmodule下面是使用report_black_boxes命令进行报告的结果。Formality (setup) report_black_boxes ************************************************** Report : black_boxes Reference : r:/WORK/top_module Implementation : None Version : W-2024.09-SP2 Date : Thu Jan 30 23:20:41 2025 ************************************************** Information: Implementation design is not set. (FM-149) Information: Reporting black boxes for current reference design. (FM-184) ___________________________________________________ | | | Legend: | | Black Box Attributes | | s Set with set_black_box command | | i Module read with -interface_only | | u Unresolved design module | | e Empty design module | | * Unlinked design module | | ut Unread tech cells pins | | L Linked to non-black box design | | cp Cutpoint blackbox | | ir Internal rounded blackbox | | f Formality Power Model | | m Technology Macro cell (.db) | |___________________________________________________| ################################################################## #### DESIGN LIBRARY - r:/WORK ################################################################## Type Design Name ---- ---------- s black_box Instances : 1 of 1 ------------------------ r:/WORK/top_module/u_black_box使用create_cutpoint_blackbox命令创建的设计// 例7 // 使用create_cutpoint_blackbox命令创建cut-point黑盒 // create_cutpoint_blackbox cut_blackbox [get_pins r:/WORK/top_module/u_black_box/data_in[6]] module black_box ( input wire clk, input wire reset, input wire [7:0] data_in, output reg [7:0] data_out ); always (posedge clk or posedge reset) begin if (reset) data_out 8b0; else data_out data_in; end endmodule module top_module ( input wire clk, input wire reset, input wire [7:0] data_in, output wire [7:0] data_out ); black_box u_black_box ( .clk(clk), .reset(reset), .data_in(data_in), .data_out(data_out) ); endmodule下面是使用report_black_boxes命令进行报告的结果。Formality (setup) report_black_boxes ************************************************** Report : black_boxes Reference : r:/WORK/top_module Implementation : None Version : W-2024.09-SP2 Date : Thu Jan 30 23:20:41 2025 ************************************************** Information: Implementation design is not set. (FM-149) Information: Reporting black boxes for current reference design. (FM-184) ___________________________________________________ | | | Legend: | | Black Box Attributes | | s Set with set_black_box command | | i Module read with -interface_only | | u Unresolved design module | | e Empty design module | | * Unlinked design module | | ut Unread tech cells pins | | L Linked to non-black box design | | cp Cutpoint blackbox | | ir Internal rounded blackbox | | f Formality Power Model | | m Technology Macro cell (.db) | |___________________________________________________| ################################################################## #### DESIGN LIBRARY - r:/WORK ################################################################## Type Design Name ---- ---------- cp black_box Instances : 1 of 1 ------------------------ r:/WORK/top_module/cut_blackbox使用create_power_model命令创建的设计

相关新闻

OpenClaw浏览器自动化卡死与数据提取失败排查指南

OpenClaw浏览器自动化卡死与数据提取失败排查指南

1. 项目概述:当OpenClaw“罢工”时如果你正在用OpenClaw做浏览器自动化,比如自动抓取商品信息、批量填写表单,或者模拟客服对话,那么最让人头疼的瞬间,莫过于脚本运行到一半突然卡住不动,或者明明页面元素就…

2026/8/19 12:16:38 阅读更多 →
Simple USB Terminal高级应用:如何利用前台服务实现后台数据缓冲

Simple USB Terminal高级应用:如何利用前台服务实现后台数据缓冲

Simple USB Terminal高级应用:如何利用前台服务实现后台数据缓冲 【免费下载链接】SimpleUsbTerminal Android terminal app for devices with a serial / UART interface connected with a USB-to-serial-converter 项目地址: https://gitcode.com/gh_mirrors/si…

2026/8/15 15:24:31 阅读更多 →
如何使用PESecurity快速检测EXE/DLL安全属性?5分钟上手教程

如何使用PESecurity快速检测EXE/DLL安全属性?5分钟上手教程

如何使用PESecurity快速检测EXE/DLL安全属性?5分钟上手教程 【免费下载链接】PESecurity PowerShell module to check if a Windows binary (EXE/DLL) has been compiled with ASLR, DEP, SafeSEH, StrongNaming, and Authenticode. 项目地址: https://gitcode.co…

2026/8/15 15:24:31 阅读更多 →

最新新闻

暗影精灵的钥匙在这里:OmenSuperHub 免费开源,把风扇、功耗与键盘灯的控制权一次拿回

暗影精灵的钥匙在这里:OmenSuperHub 免费开源,把风扇、功耗与键盘灯的控制权一次拿回

暗影精灵的钥匙在这里:OmenSuperHub 免费开源,把风扇、功耗与键盘灯的控制权一次拿回 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/…

2026/8/19 13:06:15 阅读更多 →
Pot 翻译:开源免费的跨平台划词翻译与 OCR 工具

Pot 翻译:开源免费的跨平台划词翻译与 OCR 工具

Pot 翻译:开源免费的跨平台划词翻译与 OCR 工具集成多翻译引擎的划词/截图翻译桌面工具📖 背景说明 Pot(pot-app/pot-desktop)是一款开源免费的桌面翻译工具,集成百度翻译、腾讯翻译、DeepL、Google 翻译、有道翻译、C…

2026/8/19 13:06:15 阅读更多 →
CAD高效绘图实战:从基准定位到复杂图形绘制的完整流程

CAD高效绘图实战:从基准定位到复杂图形绘制的完整流程

大家好,我是CSDN的一名技术博主。今天我们来聊聊一个看似基础,实则能极大提升绘图效率与准确性的CAD实战练习——如何高效绘制一个带有特定角度和尺寸的复杂图形。很多朋友在初学CAD时,常常对着一个看似简单的组合图形感到无从下手&#xff0…

2026/8/19 13:06:15 阅读更多 →
开源无人机DIY:基于M5Stack的Stamp Fly模块化飞控套件全解析

开源无人机DIY:基于M5Stack的Stamp Fly模块化飞控套件全解析

1. 从“旧手机DIY”到开源飞控:Stamp Fly的诞生背景 最近几年,DIY圈子里有个挺有意思的现象:大家不再满足于购买成品,而是热衷于“从零到一”的创造过程。从用旧手机零件组装智能家居中控,到各种小程序里的手工制作&am…

2026/8/19 13:06:15 阅读更多 →
柔性可卷曲屋顶交互界面:基于ESP32与LED网格的智能家居创新方案

柔性可卷曲屋顶交互界面:基于ESP32与LED网格的智能家居创新方案

1. 项目概述:当屋顶成为交互界面 最近在折腾一个挺有意思的玩意儿,我把它叫做“滚动屋顶计算机界面”,英文名是Rolling Roof Computer Interface,简称RRCI。这名字听起来有点唬人,但核心想法其实挺直观的:把…

2026/8/19 13:06:15 阅读更多 →
从零构建自动车辆追踪系统:架构、硬件选型与高并发实践

从零构建自动车辆追踪系统:架构、硬件选型与高并发实践

1. 项目概述:从“车在哪”到“如何管”的智能跨越“我的车现在在哪?”、“这趟运输走了多久了?”、“司机有没有绕路或者异常停留?”。如果你管理着一个车队,或者哪怕只是关心自己爱车的实时状态,这些问题都…

2026/8/19 13:05:15 阅读更多 →

日新闻

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/19 0:00:30 阅读更多 →
AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

1. 项目概述:当AI开始“猜”数学定理 最近在AI研究圈里,一个名为“Moonshine”的项目引起了不小的讨论。这名字本身就挺有意思,直译是“月光”,但在数学史上,它特指一个神秘而美丽的联系——魔群月光猜想,连…

2026/8/19 0:00:30 阅读更多 →
WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一台刚配的新电脑,跑《魔兽争霸3》却卡成 PPT——这…

2026/8/19 0:02:31 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/19 11:55:18 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/19 9:46:27 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/19 11:55:16 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/19 5:04:55 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/19 7:42:22 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/19 11:55:13 阅读更多 →