尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Genus:设计信息结构以及导航方式(路径种类)
相关阅读Genushttps://blog.csdn.net/weixin_45791458/category_13003519.html?spm1001.2014.3001.5482Genus使用设计信息结构Design Information Hierarchy对数据库进行建模其中包括各种对象以及其属性设计信息结构与Linux的目录结构非常相似如图1所示。图1 设计信息结构当用户启动Genus时会进入设计信息结构的根目录/或者说root如下面的命令提示符所示。genus:root: 1就像Linux中的ls、cd、pwd命令那样Genus也提供了很多导航命令用于与设计信息结构进行交互如下所示。get_logical_name get_object_type set_top_module vbasename vcd vdirname vdirs vfind vls vname vpopd vpushd vpwd下面将以vls命令为例说明设计信息结构中的导航方式及路径种类首先在根目录中使用vls命令查看内容如下所示。genus:root: 1 vls ./ designs/ hdl_libraries/ messages/ tech/ commands/ flows/ libraries/ obj_types/其中designs目录保存了设计对象使用vls命令查看其内容如下所示。genus:root: 2 vls ./designs root:.designs: ./由于尚未读取设计此时其为空目录下面使用read_hdl命令读取设计、read_libs命令读取库、最后使用elaborate命令展开设计如下所示。genus:root: 3 read_hdl test.v genus:root: 4 read_libs slow.lib genus:root: 5 elaborate top *****此时使用vls命令查看可以发现designs目录中出现了一个目录top注意使用了-attribute选项显示属性信息小括号中的design表示目录top是一个设计对象如下所示。genus:root: 6 vls ./designs -attribute root:.designs: Total: 2 items ./ top/ (design) Attributes: arch_filename test.v arch_name top base_name top dont_use_cells_effective base_cell:HOLDX1 entity_filename test.v entity_name top escaped_name top hdl_all_filelist {default -v2001 {SYNTHESIS} {test.v} {} {}} hdl_filelist {default -v2001 {SYNTHESIS} {test.v} {} {}} hdl_user_name top language Verilog library_name default lp_clock_gating_max_flops inf lp_clock_gating_min_flops 3 name top obj_type design sdp_files verification_directory fv/topGenus中的所有对象都是由目录或文件如果其不可再分表示的例如/designs/top是一个设计对象/designs/top/nets/clk是一个线网对象/designs/top/ports/clk是一个端口对象。但不是所有目录都表示对象例如/designs不是对象/designs/top/nets不是对象/designs/top/ports不是对象。细心的读者可能注意到了之前的所有路径都是以相对路径的形式给出的就像是Linux中的相对路径那样但设计信息结构的路径种类却更复杂PSGenus的手册上对这些路径的用法解释地十分模糊笔者也是经过了大量的实验进行了总结。完整的绝对路径完整的绝对路径就是从根目录写起以/开头的路径下面展示了几个完整的绝对路径它们之中有些是对象有些不是。/designs // 非对象 /designs/top // 对象 /designs/top/nets // 非对象 /designs/top/ports // 非对象 /designs/top/nets/clk // 对象 /designs/top/ports/clk // 对象 /libraries // 非对象 /libraries/base_cells // 非对象 /libraries/base_cells/OR2X1 // 对象 /libraries/base_cells/OR2X1/base_pins // 非对象 /libraries/base_cells/OR2X1/base_pins/A // 对象不完整的绝对路径如果路径层次较深使用完整的绝对路径会显得十分臃肿和繁琐不完整的绝对路径允许在路径中只保留如有那些作为对象的层次对于那些不作为对象的层次可以任意删减下面展示了几个不完整的绝对路径它们之中有些是对象有些不是。/top // 对象 /top/nets // 非对象 /top/ports // 非对象 /top/nets/clk // 对象 /top/ports/clk // 对象 /top/clk // 对象 /base_cells // 非对象 /base_cells/OR2X1 // 对象 /libraries/OR2X1 // 对象 /OR2X1 // 对象 /OR2X1/base_pins // 非对象 /OR2X1/base_pins/A // 对象 /OR2X1/A // 对象完整的相对路径完整的相对路径就是相对当前目录以./或../开头的路径下面展示了几个完整的相对路径它们之中有些是对象有些不是。// 假设当前工作目录为/designs ./ // 非对象 ./top // 对象 ./top/nets // 非对象 ./top/ports // 非对象 ./top/nets/clk // 对象 ./top/ports/clk // 对象 ../libraries // 非对象 ../libraries/base_cells // 非对象 ../libraries/base_cells/OR2X1 // 对象 ../libraries/base_cells/OR2X1/base_pins // 非对象 ../libraries/base_cells/OR2X1/base_pins/A // 对象不完整的相对路径就像不完整的绝对路径那样不完整的相对路径允许在路径中只保留如有那些作为对象的层次对于那些不作为对象的层次可以任意删减下面展示了几个不完整的绝对路径它们之中有些是对象有些不是。// 假设当前工作目录为/designs ./top/clk // 对象 ../base_cells // 非对象 ../base_cells/OR2X1 // 对象 ../libraries/OR2X1 // 对象 ../OR2X1 // 对象 ../OR2X1/base_pins // 非对象 ../OR2X1/base_pins/A // 对象 ../OR2X1/A // 对象完整的相对path属性的路径与Linux不同的是当路径不以/或./或../开头时将视为相对path属性下面展示了几个完整的相对path属性的路径它们之中有些是对象有些不是。// 假设path属性为/designs top // 对象 top/nets // 非对象 top/ports // 非对象 top/nets/clk // 对象 top/ports/clk // 对象 top/../../libraries/ // 非对象 top/../../libraries/base_cells // 非对象 top/../../libraries/base_cells/OR2X1 // 对象 top/../../libraries/base_cells/OR2X1/base_pins // 非对象 top/../../libraries/base_cells/OR2X1/base_pins/A // 对象不完整的相对path属性的路径就像不完整的绝对路径那样不完整的相对path属性的路径允许在路径中只保留如有那些作为对象的层次对于那些不作为对象的层次可以任意删减下面展示了几个不完整的相对path属性的路径它们之中有些是对象有些不是。// 假设path属性为/designs top/clk // 对象 top/../../base_cells // 非对象 top/../../base_cells/OR2X1 // 对象 top/../../libraries/OR2X1 // 对象 top/../../OR2X1 // 对象 top/../../OR2X1/base_pins // 非对象 top/../../OR2X1/base_pins/A // 对象 top/../../OR2X1/A // 对象指定对象类型的路径当使用不完整的路径时可能会出现一个路径对应多种对象的情况如下所示。genus:root:.messages 7 vls /top/clk hnet:top/clk net:top/clk port_bus:top/clk port:top/clk genus:root:.messages 8 vcd /top/clk Error : A single object was expected, but multiple objects were found. [TUI-62] [vcd] : The argument that found multiple objects was /top/clk. : Use the vfind command to narrow the list down to a single object. vcd: sets position in object hierarchy对于vls命令它会考虑所有符合的对象但对于vcd命令他只能接受一个对象就会出现错误。使用类型作为前缀可以解决这个问题这也被称为DPO(Dual Port Object)标记但需要注意的是该方法将会把所有路径视为相对根目录即使以./开头下面展示了几个指定对象类型的路径它们之中有些是对象有些不是。需要注意的是如果指定对象类型如果不会出现一个路径对应多个对象的情况则允许在路径中只保留最后一层对象名对于其他层次可以任意删减这更加激进。// 指定对象类型主要是为了解决不完整路径因此不展示完整路径的例子 design:/top // 对象 net:/top/nets/clk // 对象 port:/top/ports/clk // 对象 net:/top/clk // 对象 port:/top/clk // 对象 port:/clk // 对象 net:/clk // 对象 base_cell:/base_cells/OR2X1 // 对象 base_cell:/libraries/OR2X1 // 对象 base_cell:/OR2X1 // 对象 base_pin:/OR2X1/base_pins/A // 对象 base_pin:/OR2X1/A // 对象 // base_pin:/A 不允许
RELATED

相关推荐

Agent时代3D生成大模型:从可交互到格式生态的胜负手

Agent时代3D生成大模型:从可交互到格式生态的胜负手

1. 从"生成一张图"到"运行一个世界":Agent改变了3D的验收标准过去半年,我反复听到同一个问题:3D 生成大模型的风吹了这么久,为什么落地还是这么难?大家习惯拿文生图的标准来要求它——出个赛博朋克…

📅 2026/10/26 17:53:50
Leviathan实现原理(三):keyed slot替换、去重合并与秘密守卫的多层防线

Leviathan实现原理(三):keyed slot替换、去重合并与秘密守卫的多层防线

【免费下载链接】leviathan Deep memory for agents over large datasets. Leviathan is a single static binary that turns your records (JSONL, JSON, CSV/TSV, SQLite, or anything a database CLI can export) into a ranked full-text index. 项目地址: http…

📅 2026/10/26 17:53:50
ESP-Mosaico模块化架构:ESP32物联网开发解耦与总线通信实践

ESP-Mosaico模块化架构:ESP32物联网开发解耦与总线通信实践

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

📅 2026/10/26 17:48:50
MORE NEWS

更多资讯

📰

C# Winform开发WCS仓储控制系统架构与实战

1. 项目概述:WCS上位机控制系统核心价值 这套基于C# Winform开发的WCS(Warehouse Control System)上位机控制系统模板,是我在多个智能仓储项目中沉淀下来的技术方案。它采用经典的三层架构设计,以MySQL作为核心数据存储…

📰

Web文本编辑器开发:光标定位与精确删除实现

1. 文本编辑界面的核心需求解析在Web开发中&#xff0c;实现一个功能完整的文本编辑界面远比想象中复杂。基础的<input>或<textarea>标签虽然能提供简单的文本输入功能&#xff0c;但当我们想要实现类似现代IDE或文档编辑器的光标精确定位、选区操作和字符删除功能…

📰

IntelliJ IDEA安装配置与Java开发效率提升指南

1. IntelliJ IDEA&#xff1a;Java开发者的生产力倍增器 第一次接触IntelliJ IDEA是在2013年&#xff0c;当时刚从Eclipse转过来的我完全被它的智能提示和代码分析能力震撼了。十年过去&#xff0c;这款由JetBrains打造的IDE已经成为Java开发领域的事实标准&#xff0c;根据202…

📰

PHP大文件断点续传实现与优化方案

1. 大文件断点续传的核心挑战 当我们需要在PHP环境中处理500MB以上大文件的上传或下载时&#xff0c;传统的文件传输方式会面临几个关键瓶颈。首先是内存消耗问题——如果尝试一次性读取整个文件到内存中&#xff0c;PHP进程很可能会因内存不足而崩溃。其次是网络稳定性——在长…

📰

STM32双串口DMA互透传实战:空闲中断、发送队列与错误恢复

简介&#xff1a;面向嵌入式开发者与学习STM32串口通信的学生&#xff0c;这份STM32CUBE双串口DMA互透传工程聚焦UART1与UART2之间基于DMA的高效数据转发&#xff0c;可用于连续、不定长串口数据的透明传输实验与项目原型验证。压缩包约3.62MB&#xff0c;共143个文件&#xff…

📰

二分查找解决愤怒的牛问题:最大化最小距离算法

1. 愤怒的牛问题解析 这道题目源自经典的"愤怒的牛"问题&#xff0c;属于算法竞赛中的二分查找应用题型。题目描述通常为&#xff1a;农夫John建造了一个有N个隔间的牛棚&#xff0c;这些隔间分布在一条直线上&#xff0c;坐标分别为x1,...,xN。他的C头牛对隔间非常挑…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬