CN101847169B - 用于简化集成电路设计的原理图的方法和设备 - Google Patents
用于简化集成电路设计的原理图的方法和设备 Download PDFInfo
- Publication number
- CN101847169B CN101847169B CN201010145108.1A CN201010145108A CN101847169B CN 101847169 B CN101847169 B CN 101847169B CN 201010145108 A CN201010145108 A CN 201010145108A CN 101847169 B CN101847169 B CN 101847169B
- Authority
- CN
- China
- Prior art keywords
- node
- entity
- input
- user
- output port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/12—Symbolic schematics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- User Interface Of Digital Computer (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
交互式成组工具提供通过将没有被列为感兴趣的电路元件成组为任何大小的实体来简化集成电路(IC)设计的电路图的灵活性。可以将各种类型和功能的电路元件(包括端口和管脚)组合起来成为同一实体而不修改底层设计逻辑和连接关系。通过成组并且隐藏不必要的细节,所述工具降低了电路图中的凌乱程度并且极大地方便了遍历、调试和分析电路图的处理。用户可以动态地选定成组电路图上的电路元件而不经过任何编译或综合处理。用户也可以选择用解组操作将任一实体恢复到最初的电路图。为了特殊地或批量操控电路图,所述工具为用户提供了输入命令的脚本界面。可以通过使用用于特定操作的拖放技术来改变选中的实体的内容,特定操作包括将节点移入实体、从实体中移走节点和将节点加入实体。
Description
技术领域
本发明通常涉及设计集成电路(IC),更具体地说,涉及简化IC设计的原理图。
背景技术
在IC的设计周期中的其中一个处理包括在寄存器传输级(RTL)定义IC设计,在其中设计者确定硬件寄存器之间的信号流向和在信号上执行的逻辑操作。在RTL设计中,设计者使用硬件设计语言(HDL)来声明寄存器并且通过使用与标准编程语言中的那些类似的结构(例如if-then-else)和算术操作来描述组合逻辑。HDL的示例包括Verilog和VHDL。
在设计IC中通常使用电子设计自动化(EDA)软件。通过在IC设计周期中称为综合的处理期间使用EDA软件,可以将HDL文件转换成包含实现HDL文件中指定逻辑的通用硬件原型(hardwareprimitives)的等效网表。
一般来说,网表包含与IC设计中的元件的数目和类型以及它们互连的方式有关的信息。在网表中,互连的电路元件(典型地称为节点)可以是简单到如电阻器或复杂到如微处理器。连接电路元件的导线(wire)常称为线(net)。典型的网表可能包括连接在公共线上的电路元件的列表。
随着市场需求驱动电子公司将更多的性能和功能打包到尺寸日渐减小的芯片中,网表的复杂度也已经极大地增加,导致当对用户显示时,原理图在视觉上总是拥挤并且极难操控。因此,综合问题需要较大量的时间来分析和调试。
网表查看器典型地提供了图形用户界面(GUI)来展现网表的原理图(schematicdiagram)。通过网表查看器,设计者可以以视觉方式检查它们的设计以确保在仿真和其他验证处理之前连接关系和逻辑满足所有要求。查看以原理图形式表现的网表是分析、调试和优化IC设计的强有力的方式。例如,设计者可以在原理图中前进和后退,并且也可以在多级成组层级(groupinghierarchy)之间移动以通过视觉检查图表的方式找到特定的节点或定位特殊的线。
网表不断增长的复杂度使得对以较为简洁的方式提供原理图的方法的需求成为必要。隐藏不必要的实现细节而不改变底层逻辑的原理图使分析、调试和优化处理变得容易。通常,可以以许多方式来简化原理图,包括:
a)改变最初的源(例如HDL设计规范)并且生成新网表显示在网表查看器上。由于HDL设计在每次改变代码时需要重新编译,所以这个选择是乏味的并且耗时的。
b)通过GUI在网表查看器上编辑原理图。
许多EDA软件工具提供网表简化特征,其包括下述中的至少一项:
a)对节点成组和解组。然而,可以被成组或解组的节点必须已经在HDL设计中被定义为层级实例。因此,用户不能将节点从现有组中移走或将新的并且不相关的节点加入现有的组。
b)过滤节点。通过过滤特征,用户可以滤除网表中的节点和线以仅显示感兴趣的逻辑和连接关系。然而,过滤标准是由程序来固定的,并且用户不能绕开固定的网表修改程序来基于他们自己的标准直接修改网表。
c)将节点成组为“云(cloud)”。一个云包括一组组合逻辑节点。通过云成组特征,用户可以通过将节点成组为云来选择隐藏原理图中的组合逻辑。云成组特征基于在软件中定义的一组固定标准。用户可以打开或关闭云成组特征,但是不具有改变成组云的标准的灵活性。此外,云成组特征仅可以用于组合逻辑元件。
d)将节点划分为多个页面(page)。虽然划分特征仅减少了每页面细节的量,但是没有隐藏不必要的细节。当遍历难处理的原理图时,用户仍然不得不从一个页面移动到另一个页面。
EDA软件和网表查看器的示例包括:
a)内华达州韩德森市的Aldec公司的ActiveHDL;
b)加利福尼亚州圣何塞市的CadenceDesignSystems公司的Composer;
c)加利福尼亚州山景城市的Synopsys公司的DesignCompilerGraphical;
d)俄勒冈州波特兰市的MentorGraphics公司的DxDesigner;
e)加利福尼亚州圣何塞市的Xilinx公司的ISE;
f)俄勒冈州波特兰市的MentorGraphics公司的LeonardoSpectrum;
g)加利福尼亚州圣何塞市的Altera公司的Matrix;
h)加利福尼亚州圣何塞市的Altera公司的QuartusII;
i)加利福尼亚州山景城市的Synopsys公司的Synplify;
j)加利福尼亚州帕洛阿尔托市的Veritools公司的Undertow;以及
k)内华达州韩德森市的Aldec公司的ViewDraw。
一般来说,当前的许多网表查看器当其用来减少原理图上的节点和线的数目时提供了一组固定的标准,并且不为用户提供基于他们自己的需求简化原理图的灵活性。
发明内容
一般来说,本发明的实施例提供了查看和编辑工具,在其中用户可以使用许多编辑程序来减小网表原理图上的复杂度和凌乱程度。用户可以通过隐藏不必要的细节并且仅显示他们想要看到的节点和线来实现他们自己的成组和过滤标准。在一个实施例中,简化在综合阶段之后执行并且不会改变IC设计的底层逻辑和设计规范。
所公开的实施例通过将用户不感兴趣的元件进行成组来简化RTL网表的原理图。成组处理通过仅显示用户想要看到的元件减小了原理图中的凌乱程度。用户也可以选择通过解组元件将其恢复到最初的原理图。简化操作是交互式的,这意味着系统等待用户输入、处理该用户输入并且在每个用户交互之后立即将简化结果显示在原理图上而无需编译或综合。可以选择任何数目的节点和线进行成组。节点不限于网表的基本结构模块例如端口、逻辑门和寄存器,而且也包括更复杂的硬件结构例如数字信号处理器(DSP)和/或微处理器。节点的成组不只限于相同类型的节点。例如,可以将形成组合逻辑的一组逻辑门与寄存器成组。也可以将执行不同功能的节点组合在同一组中。
可以以许多方式实现本发明的实施例,包括方法、系统或设备。下面描述了本发明的若干富于创造的实施例。
本发明的一个实施例涉及一种简化IC设计的原理图的方法。在该方法中,将IC设计表示为原理图并且显示在GUI上。在原理图中,将硬件原型以不同的形式(包括形状、符号和颜色)表示为形象的元件。形象的元件表示设计中的节点和互连节点的线。在该方法中,用户能够从设计中的节点和线中进行选择并且将它们成组为一个或多个实体。实体被定义为节点和线的成组集合。从用户的角度来说,实体通常显示为单个节点,其中不显示底层实现细节。用户也能够将实体解组为其最初的元件或将之前已成组的一组元件重组回实体。
在本发明的另一实施例中,提供了一种用于生成和显示芯片设计的原理图的电子设备。该电子设备包括存储器和用于将原理图显示在GUI上的屏幕。该电子设备还包括用于执行与生成原理图、接收关于简化原理图的用户输入相关的指令的处理器,其中通过成组、解组或重组原理图中的电路元件来简化原理图。
结合附图参考以下详细描述,本发明的实施例的其他方面和优势将变得明显。
附图说明
在所附权利要求中列出了本发明的新颖特征。然而,出于解释的目的,参照附图描述本发明的特定实施例的若干方面。
图1示出了表示IC的一部分的示例性原理图。
图2a示出了原理图,图2b示出了根据一个实施例在已经使用交互式成组简化图2a中的图之后产生的图。
图3a示出了原理图,图3b示出了根据一个实施例在将XOR节点和NOR节点成组为实体inst_1之后产生的简化图。
图4a示出了原理图,图4b示出了根据一个实施例在将NAND节点、AND节点、BUFFER节点和OR节点成组为实体inst_2之后产生的简化图。
图5a示出了原理图,图5b示出了根据一个实施例在将inst_1节点、inst_2节点和寄存器节点成组为新实体inst_3之后产生的简化图。
图6a示出了具有实体inst_3的原理图,图6b示出了根据一个实施例将inst_3的输入端口成组为输入总线并且将inst_3的输出端口成组为输出总线之后产生的简化图。
图7a示出了原理图,图7b示出了根据一个实施例将输入管脚成组之后产生的简化图。
图8a示出了原理图,图8b示出了根据一个实施例将输出管脚成组在一起之后产生的简化图。
图9示出了根据一个实施例被展开以显示其底层部件的实体。
图10a、图10b和图10c示出了根据一个实施例的拖放操作。
图11a示出了根据一个实施例的复杂且凌乱的高速串行接口(HSSI)模块,可以通过原理图的交互式简化将所述高速串行接口模块减少到图11b的三模块图。
图12示出了根据一个实施例的成组处理的流程。
图13示出了根据一个实施例的解组处理的流程。
图14示出了根据一个实施例的拖放操作的流程。
图15示出了根据一个实施例的计算机系统。
具体实施方式
下述描述是为了使本领域任何技术人员能够理解并且使用本发明,并且以下描述是在特定应用及其需求的背景下提供的。对本领域技术人员来说,对示例性实施例的各种修改将是显而易见的,并且可以将本文限定的一般性原理应用到其他实施例和应用而不偏离本发明的精神和范围。因此,无意将本发明限制在所示的实施例,而是赋予其与本文公开的原理和特征一致的最宽的范围。
以下实施例描述了可以如何简化原理图。在分析或调试IC的设计中,大多数用户常常仅对设计的特定部分而不是整个原理图感兴趣。对节点和线的成组减少了原理图中的凌乱程度,因此极大地减少了确定感兴趣的节点之间的关系所需的时间。
在所描述的实施例中,节点被用来表示除导线(wire)以外的IC设计的所有部件。线被用来表示直接或间接互连电路元件的导线。术语“节点”包括从基本的构成单元(例如I/O管脚、寄存器和/或门)到复杂的逻辑结构(例如DSP和/或微处理器)的范围广泛的电路元件。在此实施例中,节点也被用来指代已成组的节点(实体)、端口和管脚。实体是节点和线的成组集合。
图1示出了对应于IC的一部分的示例原理图。可以通过使用网表查看器来生成原理图并且将其显示在GUI上用于操控。从用户的角度来说,由于网表中的电路元件的数目太大并且连接关系太复杂以至于不易于通过肉眼区分,所以图1中的图看起来几乎完全是黑的。
图2a示出了原理图,图2b示出了根据一个实施例在已经使用交互式成组来简化图2a中的图之后产生的图。图2a中的原理图包括输入管脚101-105(input_pin_1-input_pin_5)、XOR节点111、NOR节点112、AND节点113、NAND节点121、BUFFER节点131、寄存器节点141、OR节点142以及输出管脚151(output_pin_1)和输出管脚152(output_pin_2)。图2b示出了在执行交互式成组之后所述原理图仅包括实体inst_3203、一个输入管脚组221和一个输出管脚组222的简化原理图。图3a至图8b示出了在图2a中的图上执行的为实现图2b中的简化图的逐步成组过程。
图3a示出了原理图,图3b示出了根据一个实施例将XOR节点和NOR节点成组为实体inst_1之后产生的简化图。图3a示出了正在被选择进行成组的XOR节点111和NOR节点112两者。网表查看器中的GUI使用户能够使用键盘、触摸板或图形输入设备(例如鼠标)来选择节点进行成组,以及使用类似于301中描绘的菜单驱动界面呈现操控原理图的可用选项。一旦选中,节点或线的图形表示与那些未被选中的图形表示不同。在该实施例中,使用粗线描绘选中的节点。虽然通过示例示出了这种表示方法,但是使用不同的图标、颜色、图案等的其他表示方法也是可能的,只要保持本文描述的功能。在该实施例中,除了成组操作之外,用户也可以通过301的菜单驱动界面来选择解组或重组操作。图3b示出了将XOR节点111和NOR节点112成组为inst_1201后产生的图。
图4a示出了原理图,图4b示出了根据一个实施例将NAND节点、AND节点、BUFFER节点和OR节点成组为实体inst_2之后产生的简化图。在一个实施例中,可以选择任何数目的节点并且将其成组为实体。在一个实施例中,节点的选择可以是与它们的功能无关。在图4a中,AND节点113、NAND节点121、BUFFER节点131和OR节点142是具有不同功能的节点,这些节点被选择并且被成组为inst_2202,如图4b中所示。
图5a示出了原理图,而图5b示出了根据一个实施例将inst_1节点、inst_2节点和寄存器节点成组为新实体inst_3203之后产生的简化图。根据一个实施例,不仅可以在相同类型的节点上执行交互式成组,也可以在不同类型的节点上执行交互式成组。换句话说,节点可以被选择用于成组为与节点的类型无关的实体。例如,可以将组合逻辑节点(例如AND、OR、NOR、XOR、NAND、XNOR、BUFFER或MUX节点)与非组合逻辑节点(例如寄存器)组合。更一般地,如在上述示例中,在一个实施例中,节点可以被选择以成组为与节点的类型和功能无关的实体。可以将已成组的节点或实体与其他节点或实体组合以再次成组为不同的实体。在图5a中,inst_1节点201、inst_2节点202和寄存器节点141被选择并成组为inst_3节点203。图5b中示出了所产生的图。
图6a示出了具有实体inst_3的原理图,图6b示出了根据一个实施例将inst_3的输入端口成组为输入总线并且将inst_3的输出端口成组为输出总线之后产生的简化图。在该实施例中,除了逻辑元件以外,也可以将成组处理用于I/O元件,例如IC中的端口和管脚。在一个实施例中,对于端口成组,用户只能选择驱动相同节点或正在被相同节点驱动的端口。同样在一个实施例中,对于特定的节点,只有相同方向的端口才可以成组,这意味着输入端口只能与其他输入端口成组,并且输出端口只能与其他输出端口成组。可以选择并且同时成组不同组的端口。图6a示出了正在被选择用于分别成组为不同总线端口的inst_3节点203的所有输入端口171-175和输出端口181-182。图6b示出了产生的图,其中输入端口被成组为总线端口211而输出端口被成组为总线端口212。
在一个实施例中,也为用户提供了成组相同方向的管脚的灵活性。图7a示出了原理图并且图7b示出了根据一个实施例将输入管脚成组后产生的简化图。在图7a中,将输入管脚101、102、103、104和105成组为输入管脚组221,如图7b中所示。
图8a示出了原理图并且图8b示出了根据一个实施例将输出管脚成组后产生的简化图。在图8a中,将输出管脚151和152成组为输出管脚组222,如图8b所示。
图9示出了根据一个实施例的被展开以显示其底层部件的实体。该实施例使用户能够显示成组实体的内容而不解组该实体。一旦成组,每个实体显示为单个节点,其中实现细节对用户是隐藏的。然而,可以将每个成组的实体展开以揭示已置于其内的部件,包括其他已成组的实体。可以通过菜单驱动界面来使展开已成组实体的选项可用,并且用输入设备例如鼠标来选择该选项。也可以使用鼠标悬停(mouse-over)技术来展开每个已成组的实体,即将鼠标指针在成组的实体上移动。只要鼠标指针悬浮在已成组的实体上就显示底层的部件或实体,并且当鼠标指针从已成组的实体移开时,再次隐藏底层的部件或实体。也可以使用其他方式查看底层部件,例如通过双击已成组的实体。在展开的视图901中,实体inst_3203的底层部件被显示为实体inst_1201、实体inst_2202和寄存器节点141。可以将实体inst_1201和实体inst_2202进一步展开以显示其各自的底层部件。如展开的视图902中所示的,可以将实体inst_1201展开以显示其部件,包括XOR节点111和NOR节点112。同样,如展开的视图903中所示的,可以将实体inst_2202展开以显示其部件,包括NAND节点121、AND节点113、BUFFER节点131和OR节点142。
本发明的另一实施例涉及使用拖放(drag-and-drop)操作来修改成组实体的内容。图10a、图10b和图10c示出了根据一个实施例的拖放操作。使用拖放操作技术,可以容易地将节点从实体中移走或将节点加入实体。可以通过移走节点和加入节点来改变实体的组成。图10a示出了具有两个已成组实体(inst_1201和inst_2202)的原理图。图10b示出了自实体inst_2202被拖到实体inst_1201的NAND节点113。图10c示出了节点NAND113被移至实体inst_1201所产生的图。移动之后,实体inst_2202a现在具有三个节点而不是四个,而实体inst_1201a现在具有三个节点而不是两个。对于受影响的实体,将重画节点和布线。典型地通过允许用户在屏幕上选择和移动物体的用户输入设备来执行拖放操作。这种设备的示例包括鼠标、轨迹球(trackball)和键盘。
本发明的另一实施例涉及使用脚本命令来发出在原理图上执行成组、解组和重组的指令。可以在显示屏的命令提示符处经由用户输入设备(例如键盘)来输入这些脚本命令。脚本环境或工具通常为用户提供使用特定脚本语言(例如Tcl)输入命令的接口。下面的表1示出了可以用来操控原理图显示的某些示例命令。使用基于脚本的命令的其中一个优势是指定要成组的多个节点的灵活性或在批处理模式中同时执行一个以上成组操作的灵活性。当用户已经知道选择哪些节点时,它也是有用的。用户可以仅在脚本命令中列出节点名称而不是遍历整个原理图来寻找指定的节点。例如,下述命令将通过-node参数指定的节点成组为通过-grouped_instance参数指定的实体:
group_instance-node<node_name>[-grouped_instance<instance_name>]通过使用通配符或正则表达式,用户可以扩展节点的列表和范围以进行成组。
表1:用于原理图的交互式简化的命令
命令 | 描述 |
group_instance-node<node_name> [-grouped_instance<instance_name>] | 该命令将由-node指定的所有节点成组。这些 节点被成组为名为<instance_name>的实体。 -node指定用于成组的候选节点列表。可以使 用通配符和正则表达式来标识多个节点。 如果没有指定-grouped_instance,则为实体分 配缺省名称。 |
ungroup_instance-instance <instance_name> | 该命令解组由-instance指定的实体。可以使用 通配符和正则表达式来标识多个实例,并且可 以同时解组多个实体。 在成组之后,高亮实体内的所有节点。 |
group_port-instance<instance name>-port <port_name>[-grouped_port <grouped_port_name>] | 该命令成组端口。端口的成组限于同一实体内 的端口的成组。<instance_name>不接受通配符 表达式。 由<port_name>指定的所有端口必须是同一类 型的(或输入端口或输出端口)。 -port选项指定要被成组到总线端口的端口。可 以使用通配符和正则表达式来标识要被成组到 总线端口的端口。 -grouped_port选项允许用户指定总线端口的名 称。 |
ungroup_port-instance<instance_name> -bus_port<bus_port_name> | 该命令将由-port选项指定的所有总线端口解 组。可以使用通配符和正则表达式来指定 <bus_port_name>,但是<instance_name>必须 是具体的。 |
remove_member-instance <instance_name>-node<node_name> | 这个命令将由<node_name>指定的节点从名为 <instance_name>的实体中移走。 可以用通配符或正则表达式来指定 <node_name>,但是<instance_name>必须是具 体的。 将由<node_name>指定的节点从实体 |
<instance_name>中移走并且放在与实体 <instance_name>相同的层级上。 | |
add_member-instance<instance_name> -node<node_name> | 该命令搜索与实例<instance_name>相同层级 的所有节点,以找到满足<node_name>表达式 的节点。 可以用通配符或正则表达式来指定 <node_name>,但是<instance_name>必须是具 体的。 将满足<node_name>标准的所有节点加到实例 <instance_name>。 |
move_member-from_instance <src_instance_name>-to_instance <dest_instance_name>-node <node_name> | 该功能搜索<src_instance_name>的所有成员, 并且识别满足<node_name>通配符或正则表达 式的节点。这些节点将从<src_instance_name> 中移至<dest_instance_name>。 <src_instance_name>和<dest_instance_name> 必须是在同一层级。 <node_name>可以使用通配符或正则表达式, 但是实例必须是具体的。 |
从本文描述的实施例中可以清楚地看到,本发明在增强原理图的可读性方面提供了较大的灵活性。除了提供直观的GUI和用户可以交互式地简化原理图的若干方法之外,本发明的实施例也不将简化标准局限于HDL或网表查看器工具所限定的范围。用户可以选择将网表中的所有节点成组、解组和重组为更易管理的块(chunk),同时隐藏不相关的细节。可以使用本文描述的实施例(包括菜单驱动界面、脚本语言和拖放技术)组合不同类型和不同功能的节点(包括端口和管脚)。通常,当分析或调试IC设计时,用户仅对IC设计的一小部分感兴趣。交互式简化工具使用户能够仅显示IC设计的相关部分,因此缩短了遍历原理图以跟踪特定路径或查找目标节点所需的时间。例如,图11a示出了一个复杂、凌乱的高速串行接口(HSSI)模块,根据一个实施例该模块可通过原理图的交互式简化而被减少到图11b的三模块图。
图12示出了根据一个实施例的成组处理的流程。成组处理500开始于步骤502,之后继续步骤504,在步骤504中创建新实体(entityA)。接着处理继续步骤506,在步骤506中系统遍历每个节点以查看其是否被选中。如在步骤540中看到的,如果已经到达最后一个节点,则该处理结束。如果分析的节点(nodeB)被选中,则该处理继续到步骤508,在步骤508中系统检查并分析nodeB的每个输入端口(input_portD)。接下来,在步骤510中,系统获取驱动input_portD的源节点(sourceC)。在步骤512中,如果sourceC已经被选中在与nodeB相同的组中,则系统返回到步骤506以分析下一个节点。如果sourceC没有被选中在与nodeB相同的组中,则系统继续到步骤514并将sourceC与nodeB断开。在步骤516中,系统检查entityA是否已经创建input_portD用于连接到sourceC。如果没有,则在步骤518中创建新输入端口,因为当nodeB与sourceC断开时输入端口已经被移走。在步骤520中系统将input_portD连接到sourceC。
在分析了每个节点的输入端口之后,接着系统转到对输出端口的分析。在步骤522中通过检查nodeB的所有输出端口(output_portF)开始分析。在步骤524中,系统搜索由output_portF驱动的所有目的节点(destE)。对于每个destE,在步骤526中系统检查其是否被选中在与nodeB相同的组中。如果是,则系统转至步骤524以分析下一个节点。如果destE没有被选中在与nodeB相同的组中,则在步骤528中将destE与nodeB断开。在断开之后,将nodeB连接到destE的输出端口没有了。因此,为了建立与destE的连接,必须为该实体创建新的输出端口。在步骤530中,系统检查entityA是否已经创建output_portF。如果没有,则在步骤532中创建output_portF。如果存在output_portF,则在步骤534中系统将output_portF连接到destE。
下述伪代码描述了根据一个实施例进行成组处理的流程。如果在伪代码和图12的处理流程500之间存在任何不一致,则应该以与下面伪代码中列出的方法一致的方式解释处理流程500及其相关描述。
图13示出了根据一个实施例解组处理的流程。解组处理600开始于步骤602并且继续到步骤604,在步骤604中系统分析被选择进行解组的每个实体(entityA)。如果系统不能找到被选择进行解组的任何实体,则在步骤640处理结束。对于每个实体,系统在步骤606中检查输入端口(input_portB)。对于实体的每个输入端口,系统在步骤608中搜索驱动input_portB的源节点(sourceC)并且在步骤610中搜索由input_portB驱动的所有子节点。在步骤612中,系统分析由input_portB驱动的每个子节点(childD)。在步骤614中将每个子节点与input_portB断开并且随后在步骤616中将该子节点连接到sourceC。
一旦系统已经遍历entityA的所有输入节点,接着系统将在步骤618中检查entityA的输出端口(output_portE)。接下来,在步骤620中,系统搜索驱动output_portE的子节点(childF)。在搜索子节点之后,系统在步骤622中搜索由output_portE驱动的目的节点(destG)。在步骤624中将每个destG与output_portE断开并且在步骤626中将该destG连接回childF。在分析了entityA的所有输出端口之后,系统继续到步骤630,在步骤630中移走entityA。接着系统返回到步骤604解组下一个实体。
下述伪代码描述了根据一个实施例解组处理的流程。如果在伪代码和图13的处理流程600之间存在任何不一致,则应该以与下面伪代码中列出的方法一致的方式解释处理流程600及其相关描述。
图14示出了根据一个实施例的拖放操作的流程。在该实施例中,将至少一个节点从旧实体中移走并加入新实体。该处理开始于步骤702并且继续到步骤704,在步骤704中分析被选择要从实体移走的每个节点(nodeA)。在步骤706中,系统检查nodeA的所有输入端口(input_portB)。对于每个input_portB,系统在步骤708中执行下述子步骤:
a)为旧实体创建映射的输出管脚(mapped_pinC);
b)为新实体创建映射的输入管脚(mapped_pinD);
c)为旧实体创建新输出端口并且将该新输出端口映射到mapped_pinC;
d)为新实体创建新输入端口并且将该新输入端口映射到mapped_pinD;
e)用新创建的输入端口和输出端口连接旧实体和新实体;
f)获取驱动input_portB的输出端口(output_portE);
g)将input_portB与output_portE断开;
h)将output_portE连接到mapped_pinC;以及
i)将input_portB连接到mapped_pinD。
在步骤708之后,接着系统在步骤710中确定output_portE是否是mapped_pinD的输出端口。如果不是,则处理返回到步骤706以分析nodeA的下一个输入端口。如果是,则系统在步骤712中确定output_portE是否具有任何扇出(fan-out)。如果output_portE不具有任何扇出,则在步骤714中将output_portE从旧实体中移走。如果output_portE具有扇出,则系统返回到步骤706。
在分析所有输入端口之后,系统在步骤716中分析nodeA的输出端口(output_portF)。对于每个output_portF,系统在步骤718中执行下述子步骤:
a)为旧实体创建映射的输入管脚(mapped_pinG);
b)为新实体创建映射的输出管脚(mapped_pinH);
c)为旧实体创建新输入端口并且将该新输入端口映射到mapped_pinG;
d)为新实体创建新输出端口并且将该新输出端口映射到mapped_pinH;
e)用新创建的输入端口和输出端口连接旧实体和新实体;以及
f)获取由output_portF驱动的输入端口。
在步骤720中,系统继续分析由output_portF驱动的每个输入端口(input_portJ)。在步骤722中,系统对每个input_portJ执行下述子步骤:
a)将input_portJ与output_portF断开;
b)将input_portJ连接到mapped_pinG;以及
c)将output_portF连接到mapped_pinH。
在重连每个选中的nodeA的所有连接之后,接着系统在步骤730中将nodeA从旧实体中移走并且将nodeA加入到新实体中。系统对每个选中的节点重复步骤706至步骤730直到已经遍历所有节点,最后在步骤740处理结束。
下述伪代码描述了根据一个实施例的拖放操作的流程。如果在伪代码和图14的处理流程700之间存在任何不一致,则应该以与下面伪代码中列出的方法一致的方式解释处理流程700及其相关描述。
形成本发明的实施例的部分的、本文描述的任一操作都是有用的机器操作。本发明的实施例也涉及用于执行这些操作的设备或装置。装置可以是为所需目的而专门构建,或者可以是由存储在计算机中的计算机程序选择性地激活或配置的通用计算机。特别地,各种通用机器可以与根据本文的教导所撰写的计算机程序一起来使用,或更为方便的是构建更专用的装置来执行所需的操作。
本发明也可以体现为计算机可读介质上的计算机可读代码。计算机可读介质是可以是存储随后可由计算机系统读取的数据的任何数据存储设备。计算机可读介质的示例包括硬盘驱动器、网络附加存储(NAS)、只读存储器(ROM)、随机访问存取存储器(RAM)、只读式光盘(CD-ROM)、可写光盘(CD-R)、可重写光盘(CD-RW)、数字多功能光盘(DVD)、闪存或其他非易失性数据存储设备、磁带和其他光学和非光学数据存储设备。也可以将计算机可读介质分布在耦合网络的计算机系统上,使得以分布方式存储和/或执行计算机可读代码。
图15示出了根据一个实施例的计算机系统。计算机系统1000典型地包括监视器1100、计算机1200、键盘1300、图形输入设备1400和网络接口1500。图形输入设备1400包括计算机鼠标、轨迹球、触摸板(trackpad)、图形输入板(graphicstablet)、触摸屏和/或允许用户创建或选择出现在监视器1100上的图形、物体、图表和/或文本的其他有线或无线输入设备。网络接口1500的实施例典型地提供与电子通信网络的有线或无线通信,所述电子通信网络例如局域网、广域网(例如互联网)和/或虚拟网络(例如虚拟专用网络(VPN))。
计算机1200典型地包括多个部件,例如一个或多个通用处理器1600和例如RAM1700、磁盘驱动器1800的存储设备,以及将以上部件互连的系统总线1900。RAM1700和磁盘驱动器1800是用于存储数据、音频/视频文件、计算机程序、Java程序解释器或编译器、虚拟机和本文描述的本发明实施例的真实介质的示例。计算机1200的其他实施例可以包括用于配置、操作、测试和与可编程设备通信的专用输入、输出和通信子系统。其他类型的有形介质包括软盘、移动硬盘、光存储介质(例如只读式数字多功能光盘(DVD-ROM)、CD-ROM和条形码)、非易失性存储设备(例如闪存、ROM和备有电池的易失性存储器)和连到网络的存储设备。
虽然针对所说明的实施例已经特别地描述了本发明,但是应理解,可以基于本公开进行各种改变、修改和改编,并且意在使这些改变、修改和改编在本发明的范围内。虽然结合当前被认为是最实用和最优选的实施例已经描述了本发明,但是应明白,本发明不限于所公开的实施例,相反,而是意在覆盖包括在所附权利要求的范围内的各种修改和等效布置。
Claims (25)
1.一种简化集成电路IC设计的原理图的方法,所述方法包括:
生成所述IC设计的原理图;
将所述原理图显示在图形用户界面GUI上,所述原理图具有第一多个节点和互连所述第一多个节点的第一多条线,其中所述第一多个节点中的一个节点包括所述IC设计的功能元件;以及
使用户能够从所述GUI上的第一多个节点和第一多条线中进行选择,并且能够将选中的节点和线成组到一个实体中,其中节点能够被选择并成组到所述实体中而与所述节点的类型无关,其中所述选中的节点包括组合逻辑节点和非组合逻辑节点,而且,其中所述实体代替所述选中的节点和线显示在所述原理图上,
其中使用户能够进行选择和成组的步骤包括:
对于所述第一多个节点中的每个节点,评定所述节点是否是选中的节点;
确定所述选中的节点的至少一个输入端口。
2.根据权利要求1所述的方法,还包括在IC设计过程中的综合阶段后简化所述原理图。
3.根据权利要求1所述的方法,还包括在保持所述IC设计的底层逻辑的同时修改所述原理图。
4.根据权利要求1所述的方法,其中所述原理图还包括至少一个实体,其中所述至少一个实体是第二多个节点和互连所述第二多个节点的第二多条线的成组。
5.根据权利要求1所述的方法,其中所述使用户能够进行选择和成组的步骤进一步包括:
对于所述选中的节点的所述至少一个输入端口中的每个输入端口,确定驱动所述输入端口的源节点;
确定所述源节点是否与所述选中的节点被指定在同一实体中;以及
如果所述源节点没有被指定在所述同一实体中,则将所述源节点与所述实体断开。
6.根据权利要求5所述的方法,其中将所述源节点与所述实体断开的步骤包括:
如果没有为所述实体创建输入端口,则创建由所述源节点驱动的输入端口;以及
将所述源节点连接到所述输入端口。
7.根据权利要求5所述的方法,还包括:
为所述选中的节点确定至少一个输出端口;
对于所述选中的节点的每个输出端口,确定由所述输出端口驱动的目的节点;
确定所述目的节点是否与所述选中的节点被指定在同一实体中;
如果所述目的节点与所述选中的节点没有被指定在所述同一实体中,则将所述目的节点与所述选中的节点断开;以及
将所述选中的节点作为所述实体的成员插入。
8.根据权利要求7所述的方法,其中将所述目的节点与所述实体断开的步骤包括:
如果没有为所述实体创建输出端口,则创建由所述选中的节点驱动的输出端口;以及
将所述目的节点连接到所述输出端口。
9.根据权利要求1所述的方法,还包括使所述用户能够选择所述GUI上的至少一个实体,并且将所述至少一个实体解组为第三多个节点和第三多条线。
10.根据权利要求9所述的方法,还包括使所述用户能够将所述第三多个节点和所述第三多条线重组为之前的实体。
11.根据权利要求9所述的方法,还包括:
为每个实体确定至少一个输入端口;
对于所述实体的每个输入端口,确定驱动所述输入端口的源节点;
确定由所述输入端口驱动的至少一个子节点;
对于由所述输入端口驱动的每个子节点,将所述子节点与所述输入端口断开;以及
将所述子节点连接到所述源节点。
12.根据权利要求11所述的方法,还包括:
为每个实体确定至少一个输出端口;
对于所述实体的每个输出端口,确定驱动所述输出端口的子节点;
对于所述实体的每个输出端口,确定由所述输出端口驱动的至少一个目的节点;
将所述目的节点与所述输出端口断开;
将所述子节点连接到所述目的节点;以及
移走所述实体。
13.根据权利要求1所述的方法,还包括使所述用户能够选择实体并且显示已置于所述实体中的第四多个节点和第四多条线。
14.根据权利要求1所述的方法,还包括:
使所述用户能够将至少一个节点从源实体移动至目的实体;以及
使所述用户能够使用拖放技术用于所述移动,其中所述用户将所述至少一个节点从所述源实体中拖出,并且将所述至少一个节点放入所述目的实体。
15.根据权利要求14所述的方法,还包括:
确定要从所述源实体中移走的至少一个节点;
对于要被移走的所述至少一个节点中的每个节点,确定所述节点的至少一个输入端口;
对于要被移走的所述至少一个节点中的每个节点,确定所述节点的至少一个输出端口;
从所述源实体中移走所述节点;以及
将所述节点加到所述目的实体。
16.根据权利要求15所述的方法,其中确定所述节点的至少一个输入端口的步骤包括:
对于所述节点的所述至少一个输入端口的每个输入端口,执行一系列步骤,所述步骤包括:
为旧实体创建映射的输出管脚;
为新实体创建映射的输入管脚;
为所述旧实体创建新输出端口,其中所述新输出端口被映射到所述旧实体的映射的输出管脚;
为所述新实体创建新输入端口,其中所述新输入端口被映射到所述新实体的映射的输入管脚;
经由所述新输出端口和所述新输入端口连接所述旧实体和所述新实体;
确定驱动所述节点的所述输入端口的输出端口;
将所述实体的所述输入端口与所述输出端口断开;
将所述输出端口连接到所述旧实体的所述映射的输出管脚;
将所述节点的所述输入端口连接到所述新实体的所述映射的输入管脚;以及
如果所述输出端口是所述映射的输入管脚的所述输出端口并且所述输出端口不具有扇出,则从所述旧实体中移走所述输出端口。
17.根据权利要求15所述的方法,其中确定所述节点的至少一个输出端口的步骤包括:
对于所述节点的所述至少一个输出端口的每个输出端口,执行一系列步骤,所述步骤包括:
为旧实体创建映射的输入管脚;
为新实体创建映射的输出管脚;
为所述旧实体创建新输入端口,其中所述新输入端口被映射到所述旧实体的所述映射的输入管脚;
为所述新实体创建新输出端口,其中所述新输出端口被映射到所述新实体的所述映射的输出管脚;
经由所述新输入端口和所述新输出端口连接所述新实体和所述旧实体;
确定由所述实体的所述输出端口驱动的至少一个输入端口;以及
对于所述至少一个输入端口的每个输入端口,执行一系列步骤,所述步骤包括:
将所述输入端口与所述节点的所述输出端口断开;
将所述输入端口连接到所述旧实体的所述映射的输入管脚;以及
将所述输出端口连接到所述新实体的所述映射的输出管脚。
18.一种用于显示和简化集成电路IC设计的原理图的电子设备,所述电子设备包括:
用于在用户界面上以图形方式将所述原理图表示为具有第一多个电路元件的装置,其中所述第一多个电路元件的一个电路元件包括所述IC的功能元件、节点、端口、管脚或互连的电路路径;
用于接收用户输入的装置,其中所述用户输入包括关于选择和组织所述第一多个电路元件的电路元件的指令;
用于响应于所述用户输入将多个选中的电路元件成组为实体的装置,其中所述实体包括任何类型和功能的电路元件的合集,其中所述实体代替所述多个选中的电路元件显示在所述原理图上;以及
用于响应于所述用户输入将所述原理图上至少一个选中的实体解组为第二多个电路元件的装置;
其中,对于所述第一多个电路元件中的每个电路元件,所述用于成组的装置评定所述电路元件是否是选中的电路元件;并且
所述用于成组的装置确定所述选中的电路元件的至少一个输入端口。
19.根据权利要求18所述的电子设备,其中所述用户输入包括下述中的至少一个:
以脚本语言编码并且在用户界面的命令提示符处输入的用户输入;以及
利用图形用户界面GUI输入的用户输入。
20.根据权利要求18所述的电子设备,其中所述用于解组的装置包括将多个实体和多条路径重组回所述实体的装置。
21.根据权利要求18所述的电子设备,还包括用于提供拖放工具的装置,所述拖放工具用于将电路元件从源实体转移到目的实体,其中所述用户将至少一个电路元件从所述源实体转移到所述目的实体。
22.根据权利要求18所述的电子设备,其中所述电子设备被用于电子设计自动化。
23.一种生成并且显示集成电路IC设计的原理图的电子设备,所述电子设备包括:
存储器;
显示屏,其中所述显示屏显示所述IC设计的所述原理图;以及
处理器,其用于:
在图形用户界面GUI上生成所述IC设计的所述原理图;
从用户接收与简化所述原理图有关的输入;以及
基于来自所述用户的所述输入,通过执行以下步骤中的至少一个来简化所述原理图:
将所述GUI上的第一多个电路元件成组为一个实体,其中,所述第一多个电路元件能够被选择和成组到所述实体中而与所述电路元件的类型无关,而且,其中所述实体代替所述第一多个电路元件显示在所述原理图上;以及
解组所述GUI上的至少一个实体为第二多个电路元件;
其中所述成组包括:
对于所述第一多个电路元件中的每个电路元件,评定所述电路元件是否是选中的电路元件;以及
确定所述选中的电路元件的至少一个输入端口。
24.根据权利要求23所述的电子设备,还包括输入介质,所述输入介质允许所述用户选择第三多个电路元件及重组所述第三多个电路元件。
25.根据权利要求23所述的电子设备,还包括输入介质,所述输入介质允许所述用户执行拖放操作,其中所述用户将至少一个电路元件从具有第四多个电路元件的一个组拖到具有第五多个电路元件的另一个组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/412,045 US8898618B2 (en) | 2009-03-26 | 2009-03-26 | Interactive simplification of schematic diagram of integrated circuit design |
US12/412,045 | 2009-03-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101847169A CN101847169A (zh) | 2010-09-29 |
CN101847169B true CN101847169B (zh) | 2015-11-25 |
Family
ID=42771788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010145108.1A Active CN101847169B (zh) | 2009-03-26 | 2010-03-26 | 用于简化集成电路设计的原理图的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8898618B2 (zh) |
CN (1) | CN101847169B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484589B2 (en) | 2011-10-28 | 2013-07-09 | Apple Inc. | Logical repartitioning in design compiler |
US9026962B2 (en) | 2012-05-30 | 2015-05-05 | Gumstix, Inc. | Integrated electronic design automation system |
FR2995108B1 (fr) * | 2012-09-05 | 2015-08-14 | Thales Sa | Procede de traitement de donnees, dispositif et programme d'ordinateur associes |
US9244810B2 (en) * | 2013-05-23 | 2016-01-26 | Nvidia Corporation | Debugger graphical user interface system, method, and computer program product |
US8924913B1 (en) * | 2013-06-20 | 2014-12-30 | Altera Corporation | Schematic display of connectivity in an integrated circuit design |
JP6111906B2 (ja) * | 2013-07-05 | 2017-04-12 | 富士通株式会社 | トポロジ表示プログラム及び情報処理装置 |
KR102251991B1 (ko) * | 2015-05-14 | 2021-05-17 | 한국전자통신연구원 | 결함 주입 및 결함 감내 분석을 위한 방법 및 장치 |
US10402175B2 (en) | 2015-06-01 | 2019-09-03 | Assurant Design Automation LLC | Parsing source code into a linear array |
US11610038B2 (en) | 2015-06-01 | 2023-03-21 | Assurant Design Automation LLC | Risk evaluation |
US10997334B2 (en) | 2015-06-01 | 2021-05-04 | Assurant Design Automation LLC | Implementing a logic design |
US10997335B2 (en) * | 2015-06-01 | 2021-05-04 | Assurant Design Automation LLC | Exceptional logic element management |
US10346573B1 (en) * | 2015-09-30 | 2019-07-09 | Cadence Design Systems, Inc. | Method and system for performing incremental post layout simulation with layout edits |
US10114918B2 (en) * | 2016-01-27 | 2018-10-30 | Arm Limited | Physical placement control for an integrated circuit based on state bounds file |
US10339246B2 (en) * | 2016-05-26 | 2019-07-02 | Synopsys, Inc. | Schematic overlay for design and verification |
US10354037B1 (en) * | 2016-06-30 | 2019-07-16 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing an electronic design by manipulating a hierarchical structure of the electronic design |
US10558775B2 (en) * | 2017-12-20 | 2020-02-11 | International Business Machines Corporation | Memory element graph-based placement in integrated circuit design |
CN108829472A (zh) * | 2018-05-10 | 2018-11-16 | 北京华大九天软件有限公司 | 一种利用鼠标左键双击操作进入下层单元的方法 |
US10796044B2 (en) * | 2018-09-28 | 2020-10-06 | Mentor Graphics Corporation | Interface connectivity for printed circuit board schematic |
CN111402424A (zh) * | 2019-01-02 | 2020-07-10 | 珠海格力电器股份有限公司 | 芯片结构的增强现实显示方法、装置和可读存储介质 |
CN112364596B (zh) * | 2020-11-12 | 2021-09-24 | 深圳佑驾创新科技有限公司 | 电源框图的绘制方法、装置、计算机设备和存储介质 |
CN113255260B (zh) * | 2021-07-07 | 2021-11-09 | 北京芯愿景软件技术股份有限公司 | 简化电路图生成的方法、装置、设备及存储介质 |
CN115455876B (zh) * | 2022-09-21 | 2023-09-22 | 芯华章科技(北京)有限公司 | 用于调试逻辑系统设计的方法及电子设备 |
CN116128448B (zh) * | 2023-01-09 | 2023-10-17 | 苏州异格技术有限公司 | Fpga工程项目的设计数据处理方法、装置、电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5883807A (en) * | 1996-10-18 | 1999-03-16 | Fanjoy; Logan M. | Schematic synthesizer |
US6301687B1 (en) * | 1997-05-16 | 2001-10-09 | Fujitsu Limited | Method for verification of combinational circuits using a filtering oriented approach |
CN1719447A (zh) * | 2004-07-07 | 2006-01-11 | 华为技术有限公司 | 一种印制电路板中集成设计元件的版图设计方法和装置 |
CN101063987A (zh) * | 2006-04-26 | 2007-10-31 | 英赛特半导体有限公司 | 网络列表组织工具 |
US7418690B1 (en) * | 2005-04-29 | 2008-08-26 | Altera Corporation | Local searching techniques for technology mapping |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5222030A (en) * | 1990-04-06 | 1993-06-22 | Lsi Logic Corporation | Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from high-level semantic specifications and descriptions thereof |
US5574655A (en) * | 1991-10-30 | 1996-11-12 | Xilinx, Inc. | Method of allocating logic using general function components |
US5937190A (en) * | 1994-04-12 | 1999-08-10 | Synopsys, Inc. | Architecture and methods for a hardware description language source level analysis and debugging system |
US5903469A (en) * | 1994-11-08 | 1999-05-11 | Synopsys, Inc. | Method of extracting layout parasitics for nets of an integrated circuit using a connectivity-based approach |
US5633803A (en) * | 1995-09-11 | 1997-05-27 | Vlsi Technology, Inc. | Process for the processing of specification data of logic functions of an application-specific integrated circuit |
US6182247B1 (en) * | 1996-10-28 | 2001-01-30 | Altera Corporation | Embedded logic analyzer for a programmable logic device |
US6115034A (en) * | 1997-01-31 | 2000-09-05 | Canon Kabushiki Kaisha | Step managing apparatus and method |
US6697773B1 (en) * | 1998-05-19 | 2004-02-24 | Altera Corporation | Using assignment decision diagrams with control nodes for sequential review during behavioral simulation |
US6272671B1 (en) * | 1998-09-11 | 2001-08-07 | Lsi Logic Corporation | Extractor and schematic viewer for a design representation, and associated method |
US6295627B1 (en) * | 1998-12-04 | 2001-09-25 | Cypress Semiconductor Corporation | Method and apparatus for the automated design of memory devices |
US6401230B1 (en) * | 1998-12-04 | 2002-06-04 | Altera Corporation | Method of generating customized megafunctions |
US6574787B1 (en) * | 1999-08-16 | 2003-06-03 | Sequence Design, Inc. | Method and apparatus for logic synthesis (word oriented netlist) |
US6564194B1 (en) * | 1999-09-10 | 2003-05-13 | John R. Koza | Method and apparatus for automatic synthesis controllers |
US6499130B1 (en) * | 2000-02-17 | 2002-12-24 | Avant! Corporation | Methods, apparatus and computer program products that perform layout versus schematic comparison of integrated circuits using advanced symmetry resolution techniques |
US6988253B1 (en) * | 2000-02-17 | 2006-01-17 | Synopsys, Inc. | Methods, apparatus and computer program products that perform layout versus schematic comparison of integrated circuits using advanced pin coloring operations |
US6851094B1 (en) * | 2000-02-28 | 2005-02-01 | Cadence Design Systems, Inc. | Automated method and system for selecting and procuring electronic components used in circuit and chip designs |
US7100133B1 (en) * | 2000-06-23 | 2006-08-29 | Koninklijke Philips Electronics N.V | Computer system and method to dynamically generate system on a chip description files and verification information |
US6829753B2 (en) * | 2000-06-27 | 2004-12-07 | Fluidigm Corporation | Microfluidic design automation method and system |
US6763506B1 (en) * | 2000-07-11 | 2004-07-13 | Altera Corporation | Method of optimizing the design of electronic systems having multiple timing constraints |
US6877140B1 (en) * | 2002-07-24 | 2005-04-05 | Xilinx, Inc. | Method and system for generating a schematic representing bus structures |
FR2846117B1 (fr) * | 2002-10-21 | 2008-08-22 | Renault Sas | Procede et dispositif pour synthetiser une architecture electrique |
US7120883B1 (en) * | 2003-05-27 | 2006-10-10 | Altera Corporation | Register retiming technique |
US7337100B1 (en) * | 2003-06-12 | 2008-02-26 | Altera Corporation | Physical resynthesis of a logic design |
US7162703B1 (en) * | 2003-06-19 | 2007-01-09 | Altera Corporation | Electrical design rule checking expert traverser system |
US6983435B2 (en) * | 2003-06-19 | 2006-01-03 | International Business Machines Corporation | Integrated design verification and design simplification system |
US6969903B2 (en) * | 2004-01-19 | 2005-11-29 | International Business Machines Corporation | High tolerance TCR balanced high current resistor for RF CMOS and RF SiGe BiCMOS applications and cadenced based hierarchical parameterized cell design kit with tunable TCR and ESD resistor ballasting feature |
US20050268269A1 (en) * | 2004-06-01 | 2005-12-01 | Tera Systems, Inc. | Methods and systems for cross-probing in integrated circuit design |
WO2005119531A2 (en) * | 2004-06-01 | 2005-12-15 | Tera Systems, Inc. | Rule-based design consultant and method for integrated circuit design |
US7290232B1 (en) * | 2004-12-01 | 2007-10-30 | Altera Corporation | Optimizing long-path and short-path timing and accounting for manufacturing and operating condition variability |
US7240302B1 (en) * | 2004-12-23 | 2007-07-03 | Altera Corporation | Method and apparatus for relocating elements in a floorplan editor |
US7562328B1 (en) * | 2005-01-14 | 2009-07-14 | Altera Corporation | Navigation tool for connectors |
WO2006076614A1 (en) * | 2005-01-14 | 2006-07-20 | Cabot Corporation | A process for manufacturing application specific printable circuits (aspc's) and other custom electronic devices |
US7523426B2 (en) * | 2005-03-29 | 2009-04-21 | Lsi Corporation | Intelligent timing analysis and constraint generation GUI |
US7418683B1 (en) * | 2005-09-21 | 2008-08-26 | Cadence Design Systems, Inc | Constraint assistant for circuit design |
US7478346B2 (en) * | 2006-01-26 | 2009-01-13 | Springsoft Usa, Inc. | Debugging system for gate level IC designs |
US7484199B2 (en) * | 2006-05-16 | 2009-01-27 | International Business Machines Corporation | Buffer insertion to reduce wirelength in VLSI circuits |
US8065640B1 (en) * | 2006-06-02 | 2011-11-22 | Cadence Design Systems, Inc. | Systems and methods for reduced test case generation |
US7668682B2 (en) * | 2007-10-25 | 2010-02-23 | International Business Machines Corporation | Method and circuit for detecting and compensating for a degradation of a semiconductor device |
US7823092B1 (en) * | 2007-11-23 | 2010-10-26 | Altera Corporation | Method and apparatus for implementing a parameterizable filter block with an electronic design automation tool |
US7895549B1 (en) * | 2007-11-23 | 2011-02-22 | Altera Corporation | Method and apparatus for implementing a processor interface block with an electronic design automation tool |
US7904870B2 (en) * | 2008-04-30 | 2011-03-08 | International Business Machines Corporation | Method and apparatus for integrated circuit design model performance evaluation using basic block vector clustering and fly-by vector clustering |
US8495546B1 (en) * | 2008-05-28 | 2013-07-23 | Altera Corporation | Method for simplifying RTL schematic by grouping nodes into a cloud |
US8407645B1 (en) * | 2008-08-01 | 2013-03-26 | Altera Corporation | Graphical block-based design exploration tool |
US7941774B2 (en) * | 2008-08-04 | 2011-05-10 | Texas Instruments Incorporated | Partial timing modeling for gate level simulation |
US20100107130A1 (en) * | 2008-10-23 | 2010-04-29 | International Business Machines Corporation | 1xn block builder for 1xn vlsi design |
US8418093B2 (en) * | 2009-05-15 | 2013-04-09 | International Business Machines Corporation | Method and system for design simplification through implication-based analysis |
-
2009
- 2009-03-26 US US12/412,045 patent/US8898618B2/en active Active
-
2010
- 2010-03-26 CN CN201010145108.1A patent/CN101847169B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5883807A (en) * | 1996-10-18 | 1999-03-16 | Fanjoy; Logan M. | Schematic synthesizer |
US6301687B1 (en) * | 1997-05-16 | 2001-10-09 | Fujitsu Limited | Method for verification of combinational circuits using a filtering oriented approach |
CN1719447A (zh) * | 2004-07-07 | 2006-01-11 | 华为技术有限公司 | 一种印制电路板中集成设计元件的版图设计方法和装置 |
US7418690B1 (en) * | 2005-04-29 | 2008-08-26 | Altera Corporation | Local searching techniques for technology mapping |
CN101063987A (zh) * | 2006-04-26 | 2007-10-31 | 英赛特半导体有限公司 | 网络列表组织工具 |
Also Published As
Publication number | Publication date |
---|---|
CN101847169A (zh) | 2010-09-29 |
US20100251201A1 (en) | 2010-09-30 |
US8898618B2 (en) | 2014-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101847169B (zh) | 用于简化集成电路设计的原理图的方法和设备 | |
US8584068B2 (en) | Timing violation debugging inside place and route tool | |
US6516456B1 (en) | Method and apparatus for selectively viewing nets within a database editor tool | |
US20020178184A1 (en) | Software system for biological storytelling | |
CN110245270A (zh) | 基于图模型的数据血缘关系存储方法、系统、介质和设备 | |
US6757874B1 (en) | Facilitating verification in abutted-pin hierarchical physical design | |
KR100459731B1 (ko) | 반도체 집적회로의 시뮬레이션을 위한 인터커넥션 영향을포함한 선택적 연결정보를 생성하는 장치 및 그 방법 | |
CN100435154C (zh) | 支持配置实体的选择性表示的配置说明语言的方法和系统 | |
US20060271505A1 (en) | Relation navigational context diagram | |
US7802221B1 (en) | Design tool with graphical interconnect matrix | |
US20050268269A1 (en) | Methods and systems for cross-probing in integrated circuit design | |
US8407645B1 (en) | Graphical block-based design exploration tool | |
CN101317179A (zh) | 并入soc分层设计的定时约束 | |
US9501462B2 (en) | Form object having form representation and grid representation of form | |
JP4495865B2 (ja) | 業者間アプリケーションサービスプロバイダ | |
CN111666100A (zh) | 软件框架生成方法、装置、电子设备及存储介质 | |
US8504953B2 (en) | Schematic generation visualization aid for netlists comprising analog circuits | |
Biermann et al. | Independence analysis of firing and rule-based net transformations in reconfigurable object nets | |
Luu | Architecture-aware packing and cad infrastructure for field-programmable gate arrays | |
CN104133931B (zh) | 用于检测组合等效电路设计中的相应路径的方法和系统 | |
Guo et al. | An integrated system for developing regular array designs | |
US10146898B1 (en) | Method and apparatus for designing a system using weighted-cost interconnect synthesis | |
WO2020122004A1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP2005115498A (ja) | ソフトウェア開発前処理方法、ソフトウェア制御方法、ソフトウェア開発方法並びにソフトウェア開発装置 | |
Javahery et al. | Pattern-based UI design: adding rigor with user and context variables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |