CN117252146A - 用于混淆电路设计的系统和方法 - Google Patents

用于混淆电路设计的系统和方法 Download PDF

Info

Publication number
CN117252146A
CN117252146A CN202310855456.5A CN202310855456A CN117252146A CN 117252146 A CN117252146 A CN 117252146A CN 202310855456 A CN202310855456 A CN 202310855456A CN 117252146 A CN117252146 A CN 117252146A
Authority
CN
China
Prior art keywords
design
tool
circuit
designs
user
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.)
Pending
Application number
CN202310855456.5A
Other languages
English (en)
Inventor
B·伊里索
J·M·休斯
L·兰扎
M·K·卡塞姆
M·S·威沙特
R·斯里瓦斯塔瓦
R·贝尔
R·T·爱德华兹
S·艾德
G·P·肖雷特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Efabless Corp
Original Assignee
Efabless Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Efabless Corp filed Critical Efabless Corp
Publication of CN117252146A publication Critical patent/CN117252146A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/57Protection from inspection, reverse engineering or tampering
    • H01L23/573Protection from inspection, reverse engineering or tampering using passive means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/18Manufacturability analysis or optimisation for manufacturability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Power Engineering (AREA)
  • Architecture (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

描述了用于混淆电路设计的系统和方法。所述方法之一包括从用户计算设备接收所述电路设计。所述电路设计包括多个电路组件。所述方法还包括通过将与所述电路设计相关联的布局特征变换为通用布局特征表示来混淆所述电路组件中的每一个电路组件。所述通用布局特征表示不包括所述布局特征的缩放表示。所述方法还包括生成所述混淆设计的可视表示。所述混淆设计中的每一个混淆设计都具有输入端口和输出端口。所述方法还包括使得能够放置所述混淆设计并且在所述混淆设计的所述输入端口和所述输出端口之间布线。所述方法包括生成具有主输入端口、主输出端口、所述混淆设计以及所述混淆设计之间的所述布线的混淆集成电路设计。

Description

用于混淆电路设计的系统和方法
本申请是申请号为201780053773.8、申请日为2017年6月29日、发明名称为“用于混淆电路设计的系统和方法”的发明专利申请的分案申请。
技术领域
给出的实施例涉及用于工程电路设计和开发的系统和方法,以及使设计者能够访问用于集成电路设计的设计工具的云系统,用于核实设计的方法,用于将设计发布到在线设计工程系统的方法,用于混淆电路设计的系统和方法,以及用于生成集成电路制造模型以与制造实体接口的方法。某些实施例使设计者能够生成原型集成电路并验证用于集成电路的规范,以及然后使得原型集成电路和规范可在专用集成电路(ASIC)、片上系统(SOC)中使用和/或在其它电子系统、电路、产品或设备中使用。
背景技术
集成电路(IC)包括内置于半导体基板上的电连接网络中的电子组件。IC设计通常被划分为数字和模拟IC设计的类别。数字IC设计用于生产数字电气电路组件,诸如微处理器、现场可编程门阵列(FPGA)和存储器设备。数字设计有时侧重于逻辑正确性、最大化电路密度,以及将电路放置成使得高效地路由时钟和定时信号。模拟IC设计表示物理条件(诸如压力或温度),或电子电路系统中的其它连续功能,并且具有许多专业化,包括功率IC设计、传感器接口IC设计和射频(RF)IC设计。在某些情况下,IC可以被设计为包括模拟组件和数字组件二者。设计依赖于被调整以实现具体功能、设备或应用的工程规范。
但是,难以生成IC的设计并且难以制造IC的原型。在此背景下,出现了本公开中描述的实施例。
发明内容
集成电路设计通常由具有电气电路和电路功能知识的设计工程师进行。但是,为了设计集成电路,设计者可能无法访问专用软件工具和制造设施。一旦用于集成电路(IC)的设计完成并由使用各种软件工具的计算机建模验证,设计者就应当通过在半导体晶片上制造IC的原型来验证设计。软件工具生成应当被发送到制造工厂的制造意识的电子模型。如上所述,设计者无法访问在半导体晶片上制造多层IC的制造设施。众所周知,半导体晶片的制造是使用专用工具执行的,以执行诸如离子注入操作、光刻操作、蚀刻操作、沉积操作、清洁操作之类的操作,以及更多操作。此外,设计者无法访问由制造设施设计和/或使用的电路库。电路库包括针对布局、连接和其它规则的规范,以便制造设施可以制造由设计者创建的IC,诸如通过使用来自电路库的单元格布局。一旦制造出IC设计,就对IC设计进行测试以验证其功能。
如可以认识到的,设计者无法访问设计和验证IC的过程,无法访问复杂的软件工具,无法访问制造设施的库,也无法获得完成可以在系统或设备中使用的IC设计的金融资本。能够访问这些资源的设计者受雇于那些在维护最新设计工具方面投入巨资并拥有或者内部制造设施或者与一个或多个制造设施建立关系的公司。虽然个人设计者能够提出独特且有用的IC设计,但他们一般无法生成IC设计和/或生成原型以便在公司外部验证他们的IC设计。
本公开的实施例提供了用于开发IC设计、在制造之前核实IC设计的功能、生成由设计产生的IC的原型、以原型的形式测试IC以及对照规范验证功能的装置、方法和计算机程序。在一个实施例中,设计IC、核实IC的设计、测试IC的原型以及生成经验证的规范的过程利用在线设计工程系统。在线设计工程系统被实现为基于云的基础设施,它为设计者提供对设计软件工具的访问、对制造设施的设计库的访问,以及促进来自一个或多个制造设施的IC原型的核实和生成的基础设施。在一个实施例中,在线设计工程系统的云基础设施使设计能够与设计者或者请求新设计或类似于已由工程设计者设计的设计类型的请求者(诸如客户)的群体共享。在其它实施例中,在线设计工程系统使客户或其他设计者能够向在线设计工程系统发布针对具体设计(诸如具有具体功能要求的设计)的请求。
对创建这种设计感兴趣的请求者将产生规范,该规范定义电路设计将如何运作。在某些情况下,多于一个请求者将提交规范。在一个实施例中,在线设计工程系统筛选规范,以确定完整性和/或其它度量。一旦选择了规范,设计者就会继续创建电路设计,诸如创建电路系统连接并互连单元格。设计的这个阶段包括产生示意图,然后进行物理布局描述。由在线设计工程系统提供的软件工具除了使得能够产生示意图以及布局和设计核实之外,还使得能够与用于产生原型的制造设施接口。在一个实施例中,在线设计工程系统为设计者提供对制造设施的电路库的访问。作为示例,电路库包括在布局设计中使用并且包括自定义布局特征的单元格。单元格中的自定义布局特征被制造设施视为机密。
但是,由于在线设计工程系统为许多个人设计者提供访问,因此在线设计工程系统经由混淆层提供访问。混淆层被配置为单元格的“黑盒子”布局几何形状和/或设计规则,但仍提供对单元格的访问,其包括定义的输入和输出。在一个实施例中,混淆层由在线设计工程系统管理,使得许多设计者能够获得对与电路库相关联的单元格的功能块的访问,但是不共享制造设施的机密信息。
以类似的方式,设计者使用单元格和其它互连以及其它集成电路(诸如胶合逻辑)来创建其专有电路设计。设计者互连单元格、进行具体连接和/或布线的方式对设计者来说被视为机密。在一个实施例中,提供了设计者级混淆层,使得与群体共享和/或希望在其IC中实现专有电路设计的实体使用的电路设计没有提供这种细节。
在实施例中,设计者为电路设计提供他或她认为满足用于IC(诸如由在线设计工程系统的实体或其他成员(诸如请求者)请求的IC)的功能要求的规范。在某些情况下,多个设计者产生他们自己的电路设计和相关联的规范。在实施例中,在线设计工程系统针对完整性、符合规范性和可制造性来筛选设计。
在一个实施例中,电路设计连接到由在线设计工程系统提供的集成电路设计(诸如胶合逻辑设计),以生成集成电路芯片设计。此外,另一个电路设计连接到集成电路设计(诸如胶合逻辑设计),以生成另一个集成电路设计。电路设计的设计者能够使用在线设计工程系统来生成被发送到制造设施以生成原型的制造意识的电子模型。两种集成电路设计都在诸如晶片之类的梭子(shuttle)上制造,以生成集成电路芯片的原型。原型耦合到由在线设计工程系统提供的印刷电路板,并且印刷电路板耦合到具有用于测试原型的软件的计算机。软件由在线设计工程系统提供。设计者能够使用在线设计工程系统来测试原型。
在实施例中,为半导体知识产权块(IP)和IC提供促进众包平台的在线设计工程系统。提供在线设计工程系统以解决市场准入,以及抑制硬件产品开发中的创新的开发成本和协作障碍。
使用在线设计工程系统,群体成员创建IP和IC并将IP和IC出售给世界各地的潜在请求者(诸如系统开发者和设备开发者)。使用在线设计工程系统,请求者请求群体设计芯片或在有趣的项目上进行协作。在实施例中,在线设计工程系统允许群体的成员(诸如设计者)在没有前期成本的情况下进行设计。在线设计工程系统管理与代工厂过程技术(foundry process technology)的接口,以便群体成员经济有效地将想法转换成原型,而没有显著的管理开销。在线设计工程系统基于群体成员的贡献提供加权收益分享过程。
在线设计工程系统的若干特征包括:
·提供基于云的系统供成员访问。例如,客户经由其对应的web账户
(例如,用户账户等)访问在线设计工程系统,并发布他们期望的项目以具有IC设计指导或执行。此外,设计者将IP的电路设计或IC的集成电路芯片设计发布到在线设计工程系统中,供客户许可。在实施例中,客户和设计者设置他们自己的支付条款,例如,支付金额、前期支付、
版税金额、版税百分比等。
·提供设计环境。例如,注册的群体成员免费访问设计工具,诸如没有成本而成为注册的群体成员。在实施例中,经由在线设计工程系统向设计者提供电子设计自动化(EDA)工具。此外,在一个实施例中,在线设计工程系统提供将设计工具集成到逻辑流程中的附加能力。
·提供代工厂接口。在线设计工程系统为设计者提供对代工厂过程技术和单元格库的访问。在线设计工程系统提供生成被发送到制造设施以生成原型的制造意识的电子模型的能力。这消除了针对设计者生成IP或IC的设计以及从设计中制造原型的主要障碍。
·提供评级、徽章和审查。例如,在线设计工程系统促进对IP或IC的设计或者设计的原型进行审查和评级。在实施例中,徽章被授予特定的能力领域。
·提供面向群体的设计过程。例如,在线设计工程系统促进IC或IP开发过程,而不考虑具体应用,诸如定义、示意图捕获、模拟、布局、放置和布线,以及表征。照此,开发过程被划分为各个不同的步骤,并在每个阶段利用不同的参与者自动化。在实施例中,举行竞赛以解决沿着开发过程的每个阶段。在线设计工程系统通过向开发过程中的每个步骤提交潜在的解决方案来充分利用竞赛的设计者的群体。
·提供多个获胜者。例如,为了获得多个条目,在开发过程的各个阶段中的每个阶段选择多个获胜者,诸如设计者,向每个获胜者支付各种金额。在实施例中,所有条目(诸如设计,赢或输)都被放置在在线设计工程系统中以便后续的需求。
·提供数据表驱动的群体设计。例如,开发过程从创建特定于一类产品或应用的在线数据表开始。数据表是贯穿设计生成、设计核实、原型验证和签核(sign-off)过程的一种主要通信形式。数据表从设计完成并用于销售目的后产生的描述性文档转换成设计控制文档。
·提供迭代群体设计。例如,开发过程是固有的迭代过程,其减少与以下相关联的时间和成本:(i)开发过程中给定阶段内的意外或未预见到的结果,诸如来自芯片开发内的核心/单元格集成和设计/过程交互的产量或执行结果;(ii)阶段之间的未预见到的交互和权衡,诸如系统内的软件和硬件组件之间的相对利益或问题;以及(iii)将产品从设计移动到制造时未预见到的问题。在线设计工程系统被架构为充分利用群体来以比与制造集成电路的常规过程相关联的成本更低的成本加快实现意外或未预见到的结果、未预见到的交互和权衡,以及未预见到的问题。
·提供多线程群体设计。例如,硬件和IC研究和开发是实验性的,并且常常使用反复试验来获得最佳结果,特别是对于IoT和其它新兴硬件。设计工程促进生成在研究和开发过程中的不同时间以开发过程开始时未预见到的方式调用的替代路径。在线设计工程系统克服了内部开发团队的资源限制以及使第三方外包开发者有资格的耗时性质,减少成本超支的可能性,减少上市时间问题的发生,并减少提供次优解决方案的机会。在实施例中,在线设计工程系统被架构为允许动态多线程,以向研究和开发过程引入多个潜在的解决方案,而即使有也没多少附加成本或上市时间。
·提供群体核实和验证。例如,在线设计工程系统提供设计的投产前核实,以及IP或IC的投产后验证。为了说明,在线设计工程系统通过提供用于对设计运行仿真的仿真工具来提供核实和验证的广度和准确度。此外,群体设计者和设计工程实体通过独立地复制结果来扩展核实的广度和准确度。为了进一步说明,由设计者应用仿真工具来生成仿真的结果,并且由另一个设计者或设计工程实体应用相同或不同的仿真工具来生成另一个仿真的结果。两个仿真的结果都可以作为对方的检查或在另一方之上的核实。在一个实施例中,由设计工程实体或独立的群体成员(诸如用户)使用与设计者使用的仿真工具不同的仿真工具。例如,由设计工程实体或独立的群体成员应用的仿真工具不仅包括设计者使用的仿真工具,此外还包括附加的仿真工具。作为验证的示例,设计工程实体为群体提供用于电路设计的群体验证的、集成电路测试芯片和相关软件。核实和验证的结果对群体是透明的,以核实和验证结果。
·提供市场感知质量。例如,当设计工程实体重新核实核实或验证的结果时以及当任何群体成员重新核实仿真设计者的结果(例如,由另一个设计者执行等)或者验证芯片的参数时,核实或验证的结果的感知质量得到改善。在实施例中,在线设计工程系统的使用计数器工具对设计的使用进行计数,诸如在集成电路内实现设计的次数、设计被设计者积极评论的次数,和/或对设计运行仿真的设计通过仿真的次数,并对使用生成审查和评级,并在在线设计工程系统中报告审查和评级,从而进一步提高市场置信度和感知。例如,感知随着所报告的使用和重新仿真次数而呈指数增长。
·提供先试后买技术。在线设计工程系统的成本效益通过由在线设计工程系统的众包平台提供的先试后买技术得到改善。设计者使用设计工具和一个或多个IP库,而无需向在线设计工程系统前期支付或少量前期支付,并以附加的负担得起的的费用在一个或多个设计的原型中部署。这允许多个开发路径,并且因此通过原型以比通过常规方法可能的更低的成本允许客户和设计者的更高成功概率。
·提供代工技术混淆。在实施例中,设计者访问用于生成电路设计的代工厂过程,例如代工厂实体的IP库等。代工厂实体通常通过NDA与设计者在对等基础上工作,以保护其底层技术。这在模拟设计中特别敏感,其中设计师与底层过程技术在亲密的水平上进行交互。在线设计工程系统在设计流程中插入混淆功能,以混淆关键的底层代工厂过程技术,例如,从GDS层的库获得的图形数据库系统(GDS)层等。在一个实施例中,在线设计工程系统提供仿真和其它设计步骤的方法,其中过程数据在受保护的位置维护并由工具访问,而设计者无法看到。例如,在运行仿真时,在线设计工程系统不允许访问在布局设计中的中间节点处输出的数据或被输出到布局设计的GDS层的数据。GDS层是设计工程实体专有的。在线设计工程系统的这一特征消除了对代工保密协定
(NDA)的需求。
·提供设计者技术混淆:众包营销和设计销售的特征是客户与设计在亲密的水平上工作,但设计的关键技术和设计特征不会暴露。这是在请求者和设计者之间没有具体NDA的情况下完成的。除了被混淆的信息是设计之外,这里的方法类似于上面的代工厂技术混淆。例如,未经设计者许可,另一设计者或请求者无法访问由该设计者生成的电路设计示意图。
·提供协作交互式规范。例如,客户在用于集成电路的数据表中发布期望的规范,并且群体与数据表交互以定义可交付的规范。不管客户对IC或IP设计的了解如何,这个方法充分利用群体的能力和规模来为客户实现最佳结果。
在一个实施例中,描述了一种用于提供在线设计工程系统以制造电路的原型的方法。该方法包括由管理服务器提供对用于访问数据表的设计工程系统(DES)访问应用的访问。该方法包括由管理服务器经由数据表接收电路的设计的规范。该方法包括由管理服务器向由群体的用户操作的多个用户计算设备提供对数据表的访问。该方法还包括经由用户的多个用户账户提供对电路设计工具的访问,以便促进多个电路设计的生成。该方法包括由管理服务器经由多个用户账户接收电路的电路设计。该方法还包括由自动认证服务器(certification server)分析电路设计以确定电路设计是否通过自动电路设计测试的操作。该方法包括由管理服务器选择其两个电路设计通过自动电路设计测试的其中两个用户的两个用户账户。该方法包括由管理服务器向这两个用户账户提供对布局设计工具的访问以生成电路的两个布局设计的操作。该方法包括由管理服务器经由群体的这两个用户账户接收两个布局设计。该方法还包括由自动认证服务器分析这两个布局设计以确定这两个布局设计是否通过自动布局设计测试的操作。该方法包括由管理服务器选择电路的两个布局设计中的、通过自动布局设计测试的两个用户账户中的一个。该方法包括在选择其布局设计通过自动布局设计测试的用户账户时由管理服务器生成包括电路的布局设计的文件(诸如图形数据库系统II(GDSII)文件)。该方法包括由管理服务器将文件发送到集成电路制造设施,以基于布局设计制造电路的原型。
在实施例中,该方法还包括在经由对应的附加用户账户向群体的附加用户提供对电路设计的访问之前混淆电路设计的部分。该方法包括在经由对应的附加用户账户向附加用户提供对布局设计的访问之前混淆布局设计的部分。
在实施例中,描述了一种用于混淆电路设计的方法。该方法包括经由计算机网络和用户账户从用户计算设备接收电路设计。电路设计包括多个电路组件和电路组件之间的连接。该方法还包括通过将与电路设计相关联的布局特征变换为通用布局特征表示来混淆每个电路组件。通用布局特征表示不包括布局特征的缩放表示。执行混淆操作,使得每个电路组件被表示为具有电路组件的电气特性的混淆设计,并且不包括对电路组件的布局特征的访问。该方法还包括生成混淆设计的可视表示。每个混淆设计都具有输入端口和输出端口。该方法还包括使得能够放置混淆设计并且在混淆设计的输入端口和输出端口之间布线。该方法包括生成具有主输入端口、主输出端口、混淆设计以及混淆设计之间的布线的混淆集成电路设计。混淆集成电路设计是可访问的,以仿真电路设计而不暴露电路设计,使得在电路组件被混淆的同时执行电路设计的仿真。
在一个实施例中,描述了一种用于混淆电路设计的系统。该系统包括经由计算机网络以及用户账户从用户计算设备接收电路设计的电路设计工具。电路设计包括多个电路组件和电路组件之间的连接。该系统还包括耦合到电路设计工具的混淆器工具。混淆器工具通过将电路设计中存在的布局特征变换为通用布局特征表示来混淆每个电路组件。通用布局特征表示不包括布局特征的缩放表示。混淆器工具执行混淆,以将每个电路组件表示为混淆设计,该混淆设计具有电路组件的电气特性并且不包括对电路组件的布局特征的访问。混淆器工具生成混淆设计的可视表示。每个混淆设计都具有输入端口和输出端口。该系统包括耦合到电路设计工具和混淆器工具的布局设计工具。布局设计工具使得能够放置混淆设计并且在混淆设计的输入端口和输出端口之间布线。混淆器工具生成具有主输入端口、主输出端口、混淆设计以及混淆设计之间的布线的混淆集成电路设计。混淆集成电路设计是可访问的,以仿真电路设计而不暴露电路设计,使得在电路组件被混淆的同时执行电路设计的仿真。
在实施例中,描述了一种用于混淆电路设计的系统。该系统包括经由计算机网络和用户账户从用户计算设备接收电路设计的电路设计工具。电路设计包括多个电路组件和电路组件之间的连接。该电路组件之一的类型不同于该电路组件的其他电路组件。每个电路组件都具有输入和输出。该系统还包括耦合到电路设计工具的混淆器工具。混淆器工具该类型的混淆电路组件,以为每个组件生成混淆设计。该系统还包括耦合到混淆器工具的布局设计工具。布局设计工具经由用户账户和计算机网络从用户计算设备接收用于访问布局设计工具的请求。当接收到访问布局设计工具的请求时,混淆器工具经由用户账户和计算机网络将每个电路组件的混淆设计发送到用户计算设备。
由在线设计工程系统提供的某些优点包括:
·通过降低制造原型的成本,实现诸如半导体芯片之类的硬件的创
新。例如,在传统的半导体公司中,制造原型的成本是固定成本,例如人员成本、雇员工资等。在在线设计工程系统中,人员成本是他们的机会成本,这是低的。例如,设计者没有工资。相反,每个设计者都可以通过两种方式中的一种得到补偿,诸如在完成设计工作时获得奖励,或者在他们的设计通过在线设计工程被购买时生成的收入的百分比。在线设计工程系统允许各种设计者展示他们在生成电路设计方面的技能,以便为设计者提供无成本或最低成本的创新。
·降低集成电路芯片的开发成本。
·群体的创造力远远大于任何一个组织或人的创造力。通过经由用户账户等分配给群体成员的连接性,群体的创造力呈指数增长。
·经由用户和请求者之间的在线设计工程系统进行大规模协作。
·解决人才访问限制的问题。硬件开发是已知且有限的平台集合(诸如具有已知或可预测的市场规模和需求的个人计算机(PC)、电话和路由器)的快速发展的过程。这种硬件开发的重点一直是高容量标准IC产品。但是,物联网(IoT)的发展是不同的。IoT产品被大规模定制,具有不可知的潜力。IoT产品的半导体设计采用支持大规模定制的、具有显著的反复试错的在线设计工程系统。传统的半导体模型不利于此,因为访问专属设计人才受限。由在线设计工程系统提供的众包开发模型解决了人才访问限制的问题。
应当认识到的是,给出的实施例可以以多种方式实现,例如,过程、装置、系统、硬件或计算机可读介质上的方法。下面描述几个实施例。从以下结合附图的详细描述中,其它方面将变得显而易见。
附图说明
通过参考以下结合附图的描述,可以理解实施例。
图1A是用于图示推送操作的在线设计工程系统的实施例的图。
图1B-1是用于图示拉动操作的在线设计工程系统的实施例的图。
图1B-2是用于图示基于各种规范创建不同电气电路的设计的系统的实施例的图。
图1C-1是图示用于由请求者核实设计和接受设计的过程的图。
图1C-2是用于生成设计并向请求者提供对设计的访问的方法的实施例的流程图。
图1D是图示知识产权(IP)电路、集成电路(IC)或物联网(IoT)电路的原型的制造的图。
图1E是用于图示设计的生成和核实的在线设计工程系统的实施例的图。
图1F是图示设计的原型的制造的在线设计工程系统的实施例的图。
图2是用于图示经由计算机网络与多个用户计算设备和请求者计算设备的通信的在线设计工程系统的实施例的图。
图3是在线设计工程系统的各种工具的实施例的图。
图4A是在线设计工程系统的实施例的图,以图示设计的混淆和晶片上多个集成电路芯片的穿梭。
图4B-1是设计的示意图和设计的布局的实施例的图,以图示示意图和布局的混淆。
图4B-2是在线设计工程系统的实施例的图,以图示晶片上的不同集成电路芯片的穿梭以及原型的测试。
图5A是在线设计工程系统的实施例的图,以图示用于生成设计的竞赛。
图5B是设计挑战的实施例的图,当请求者经由请求者账户发布对设计的请求时,该设计挑战被发布在多个用户账户内。
图6是用于图示通过其生成电气电路的设计的串行过程的系统的实施例的图。
图7是在线设计工程系统的实施例的图,以图示其中生成多个设计的多个原型的并行过程。
图8是图示集成电路的原型的制造和测试的实施例的图。
图9A是由在线设计工程系统运行以生成布局设计的在线设计工程过程的实施例的图。
图9B是用于图示在线设计工程系统在制造集成电路芯片中的使用的设计工程过程的实施例的框图。
图9C是用于图示在线设计工程系统在制造集成电路芯片中的使用的设计工程过程的实施例的框图。
图10是电气电路的组件的规范的实施例的图。
图11是在线设计工程系统的实施例的图,该系统经由用户账户提供对多个用户的访问,以便生成设计并从设计制造集成电路。
图12是图示客户和群体之间的相互作用以制造集成电路芯片的原型的系统的实施例的图。
图13A是使用在线设计工程系统运行的设计工程方法的实施例的图。
图13B是图13A的设计工程方法的继续的实施例的图。
图13C是图13B的设计工程方法的继续的实施例的图。
图14A是图示使用在线设计工程系统运行的设计工程方法的流程的图。
图14B是设计工程过程的流程的实施例的图,以图示用户之一与用户计算设备的显示设备上的显示的交互并且图示在线设计工程系统。
图15是图示设计的创建的图。
图16是设计工程方法的实施例的图,以图示验证协议和验证协议。
图17是用于图示群体与请求者和制造实体的置信度之间的关系以及图示规范参数覆盖范围的图。
图18A-1是图示设计工程方法的实施例以图示数据表的图。
图18A-2是图示图18A-1的设计工程方法的另一个部分的实施例的图。
图18A-3是图示图18A-1的设计工程方法的又一个部分的实施例的图。
图18A-4是图示图18A-1的设计工程方法的又一个部分的实施例的图。
图18A-5是图示图18A-1的设计工程方法的另一个部分的实施例的图。
图18B-1是图示图18A-5的设计工程方法的继续的实施例的图。
图18B-2是图示图18B-1的设计工程方法的另一个部分的实施例的图。
图18B-3是图示图18B-1的设计工程方法的又一个部分的实施例的图。
图18B-4是图示图18B-1的设计工程方法的又一个部分的实施例的图。
图18C-1是图示图18B-4的设计工程方法的继续的实施例的图。
图18C-2是图示图18C-1的设计工程方法的另一个部分的实施例的图。
图18C-3是图示图18C-1的设计工程方法的又一个部分的实施例的图。
图18C-4是图示图18C-1的设计工程方法的又一个部分的实施例的图。
图18C-5是图示图18C-1的设计工程方法的又一个部分的实施例的图。
图18C-6是图示图18C-1的设计工程方法的又一个部分的实施例的图。
图19A是图示工作空间应用的功能和在可搜索存储装置内的各种文件(诸如测试平台网表文件和规范文件)的存储的系统的图。
图19B是图19A的系统的实施例的图,以图示与可搜索存储装置中的示意图相关联的电路网表文件的存储。
图19C是图19A的系统的实施例的图,以图示对示意图的设计执行的仿真测试。
图19D是图19A的系统的实施例的图,以图示在设计数据库中的仿真测试的结果的存储。
图20A是数据表的一部分的实施例的图。
图20B是图20A的数据表的继续。
图20C是图20B的数据表的继续。
图20D是图20C的数据表的继续。
图20E是数据表的一部分的实施例的图。
图20F是图20E的数据表的继续。
图20G是图20F的数据表的继续。
图20H是图20G的数据表的继续。
图20I是数据表的一部分的实施例的图。
图20J是图20I的数据表的继续。
图20K是图20J的数据表的继续。
图20L是图20K的数据表的继续。
图21是图示使用在线设计工程系统设计的各种集成电路芯片的图。
图22是用于运行本文描述的设计工程方法的计算设备的实施例。
图23是用于运行本文描述的设计工程方法的服务器的实施例的图。
图24是图示制造实体与群体之间不存在保密协定(NDA)的系统的实施例的图。
图25是图示用户使用集成电路芯片的布局设计与另一个集成电路芯片的另一个布局设计以产生另一个集成电路芯片设计的系统的实施例的图。
图26A是图示从示意图生成混淆设计的实施例的图。
图26B是工作空间显示的实施例的图,以图示混淆设计的手动放置并且图示混淆设计之间的布线的手动生成。
图27是图示混淆器工具应用于由制造实体控制的过程设计套件(PDK)的系统的实施例的图。
图28是图示在线设计工程系统的先试后买选项的系统的实施例的图。
图29是由混淆器工具混淆的集成电路芯片设计的实施例的图。
图30是用于将布局设计的图形数据库系统(GDS)层映射到平面的系统的实施例的图。
图31是图示从两个或更多个GDS层生成派生类型的系统的实施例的图。
图32是由混淆器工具应用以混淆布局设计的一个或多个布局特征的混淆器规则的列表的实施例的图。
图33是集成电路芯片设计的实施例的图,该设计由混淆器工具混淆以生成派生类型。
图34是图示多种派生类型的集成电路芯片设计的实施例的图。
图35是图示从未经混淆处理的集成电路芯片设计生成的混淆集成电路芯片设计的实施例的图。
图36A是逆变器的未经混淆的布局设计的实施例。
图36B是图36A的布局设计的俯视图的实施例的图。
具体实施方式
以下实施例描述用于工程电路设计和开发的系统和方法。显而易见的是,可以在没有这些具体细节中的某些或全部的情况下实践给出的实施例。在其它情况下,没有详细描述众所周知的处理操作,以免不必要地模糊给出的实施例。
在线设计工程系统将电路和系统设计者与其它电路和系统设计者、客户或用户端和制造实体连接起来。在线设计工程系统允许各种电路设计者共享各种设计,以获得零或市场相当的许可费或版税。设计者在经由在线设计工程系统接收到生成一个或多个设计的请求后或者无需接收该请求,将设计提交给在线设计工程系统。在生成设计的示意图时,设计者应用由在线设计工程系统提供的设计工具。此外,在生成设计的物理布局时,设计者访问耦合到在线设计工程系统的知识产权(IP)库。使用由在线设计工程系统提供的一个或多个仿真软件来核实设计。在一个实施例中,设计工程实体通过使用一个或多个仿真软件和/或不同的仿真软件来执行设计的独立核实。
在实施例中,在线设计工程系统将一个或多个设计水平混淆层应用于电路设计的示意图,以隐藏电路设计的组件之间的连接和/或电路设计的组件和/或整个电路设计。设计水平混淆层被应用,以保护设计者的知识产权免于经由在线设计工程系统被公开获得。
在一个实施例中,将一个或多个混淆层应用于电路设计的物理布局,以隐藏物理布局的单元格之间的连接和/或隐藏物理布局的IP层。混淆层由在线设计工程系统应用,以保护提供IP库的制造实体(诸如代工厂)的知识产权,设计者从该IP库访问单元格并保护设计者的知识产权。在实施例中,制造实体由设计工程实体控制,诸如在设计工程实体的管理下或由设计工程实体支配(govern)。例如,制造实体的所有雇员是设计工程实体的雇员。在一个实施例中,制造实体独立于设计工程实体的控制。例如,制造实体是与设计工程实体分开的组织,并且制造实体和设计工程实体的雇员都不是相同的。
在实施例中,集成电路芯片设计由在线设计工程系统提供。集成电路芯片设计包括与由设计者生成的一个或多个设计兼容的胶合逻辑设计或另一种集成电路设计。一个或多个设计由设计者耦合到胶合逻辑设计或其它集成电路设计,以创建集成电路芯片设计的派生物,并且派生物在梭子上制造以生成集成电路芯片的原型。使用诸如原型测试器和测试报告生成器工具之类的验证软件来核实派生物。此外,在实施例中,使用印刷电路板和计算机测试原型。计算机用于运行原型测试器和测试报告生成器工具的测试软件。在实施例中,在线设计工程系统独立于由设计者执行的验证来验证原型。独立核实增加了用户对集成电路芯片设计及其派生物的置信度。
图1A是用于图示推送操作的系统100的实施例的图。系统100包括计算设备N、计算机网络110和在线设计工程系统102(DES),其中N是大于零的整数。
如本文所使用的,计算设备的示例包括智能电话、平板电脑、计算机、台式计算机、膝上型计算机、智能电视等。计算机网络110的示例包括诸如内联网之类的局域网(LAN),以及诸如互联网之类的广域网(WAN),或者LAN和WAN的组合。为了说明,诸如通过互联网协议(IP)的传输控制协议(TCP)或通过IP的通用数据报协议(UDP)之类的通信协议由本文描述的计算设备应用,以经由计算机网络110进行通信。为了进一步说明,诸如TCP/IP或UDP/IP分组之类的分组由发送计算设备生成,并且分组被接收计算设备解包,以提取分组内的数据。
在线设计工程系统102的示例包括一个或多个服务器,或者一个或多个服务器和耦合到一个或多个服务器的一个或多个可搜索存储设备的组合。在实施例中,在线设计工程系统102使用云计算(例如,硬件虚拟化、面向服务的体系架构等)来实现。例如,在线设计工程系统102是计算资源(例如网络、服务器、存储设备、计算机软件应用和服务等)的共享池。为了说明,在线设计工程系统102包括数据中心或数据中心的一部分,数据中心被用于处理从计算设备接收的信息并将处理后的信息发送回到计算设备。数据中心是云计算系统的一部分,并且包括运行下面描述的一个或多个工具的一个或多个服务器,以允许向计算设备访问本文所述的在线设计工程过程的功能。照此,服务器在本文中有时被称为云计算节点,其可经由计算机网络110由计算设备访问,以执行一个或多个工具。在一个实施例中,服务器和耦合到服务器并由服务器访问的可搜索存储装置的组合在本文中有时被称为云计算节点。
在实施例中,节点是虚拟机,它是计算机系统的仿真。在虚拟机中,管理程序是共享和管理硬件资源(诸如处理器和存储器设备)以运行本文描述为由在线设计工程系统102执行的功能的计算机软件或硬件或其组合。作为示例,虚拟机包括操作系统、在操作系统之上运行的一个或多个应用计算机程序,以及由一个或多个应用计算机程序经由操作系统和管理程序访问以便执行由在线设计工程系统102执行的本文描述的功能的一个或多个硬件资源(诸如中央处理单元(CPU)、图形处理单元(GPU)、视频编码器、音频编码器、网络通信设备、存储器设备、内部通信设备、网络通信设备等)。
在实施例中,在线设计工程系统102由一个或多个设计工程实体控制。例如,设计工程实体租用数据中心内的空间以提供在本文被描述为由在线设计工程系统102执行的服务(例如,功能等)。服务经由计算机网络110提供给连接到计算机网络110的一个或多个计算设备。
在一个实施例中,在线设计工程系统102包括执行本文描述为由在线设计工程系统102执行的服务的一个或多个服务器。在实施例中,在线设计工程系统102包括一个或多个服务器的一个或多个处理器,其执行本文描述为由在线设计工程系统102执行的服务。如本文所使用的,处理器指的是特定于应用的集成电路(ASIC)、或可编程逻辑设备(PLD)、或微处理器、或控制器,或CPU。
用户N(例如,设计者等)使用计算设备N来访问用户账户N,以生成片上系统(SoC)的电气电路的电路设计。例如,用户访问由设计工程实体控制的网站,并经由网站提供用户登录信息(诸如电子邮件地址或密码或其组合),以访问由在线设计工程系统102分配给用户的用户账户。网站被访问,以访问该网站的多个网页。每个网页被用于显示对应的账户并提供对本文描述的各种工具的访问。在线设计工程系统102的认证器(authenticator)工具确定用户登录信息是否是真实的,诸如匹配存储在在线设计工程系统102的登录数据库中的数据。在确定用户登录信息是真实的时,认证器工具允许用户N访问用户账户N。另一方面,在确定用户登录信息不真实时,认证器工具不允许用户N访问用户账户N。在访问用户账户N时,用户N通过访问由在线设计工程系统102运行的电路设计工具(诸如NgspiceTM,或CiderTM或XspiceTM)来创建电路设计。设计工具不在由用户N操作的计算设备N上运行。
由用户N创建的电路设计从计算设备N的网络接口控制器(诸如网络接口卡(NIC))经由计算机网络110发送到在线设计工程系统102,而独立于在线设计工程系统102是否接收到针对电路设计的请求。例如,请求者不经由请求者计算设备和在线设计工程系统102的请求者账户向在线设计工程系统102的用户账户发出针对电路设计的请求,并且电路设计被推送,诸如在没有接收到请求的情况下经由计算机网络110从计算设备N向在线设计工程系统102发送。作为另一个示例,在用户N经由用户账户N指示将电路设计上传到在线设计工程系统102时,网络接口控制器对电路设计应用通信协议(例如,TCP/IP或UDP/IP等),以生成一个或多个分组,并经由计算机网络110将一个或多个分组发送到在线设计工程系统102,以便将电路设计存储在设计数据库中。
在线设计工程系统102经由计算机网络110从计算设备N接收电路设计并处理电路设计,以将电路设计放置在在线设计工程系统102的可搜索存储装置中。例如,在线设计工程系统102应用通信协议以对包括电路设计的一个或多个分组进行拆包,以从一个或多个分组中获得电路设计,并将电路设计存储在可搜索存储装置中。由在线设计工程系统102执行的本文描述的任何拆包由在线设计工程系统102的NIC执行。应当注意的是,电路设计被发布到可搜索存储装置以便其它计算设备在混淆(例如,隐藏、加密等)电路设计之后访问,使得电路设计经由用户账户不可见,这将在下面描述。当经由不允许用户N查看电路设计的用户账户访问时,电路设计不可见。在实施例中,创建和控制在线设计工程系统102的设计工程实体是在线设计工程系统102的运营商(例如,管理者)。例如,当由在线设计工程系统102接收到时,电路设计被发布在网页上以便其它计算设备(例如,计算设备1到N-1等)访问。网页由运营商控制。
在实施例中,用户1至N都不是如本文所述的制造实体的雇员,或者请求者或者设计工程实体。例如,用户1至N被实体(诸如制造实体,或者请求者或者设计工程实体)以投注或工资雇佣,以为该实体全职或兼职工作。
图1B-1是图示拉动操作的系统150的实施例的图。系统150包括计算设备N、请求者计算设备1、计算机网络110以及在线设计工程系统102。在线设计工程系统102包括管理服务器152和自动化认证(AC)服务器112,两者都在下面进一步描述。请求者计算设备的示例包括由请求者(诸如开发包括一个或多个电路设计的集成电路的一个或多个实体)控制的计算设备。为了说明,请求者是开发用于执行图形操作以在计算机游戏或其它计算机软件应用中生成图形的处理器的实体。作为另一个说明,请求者是制作IoT设备的实体。作为又一个说明,请求者是制作用于应用无线通信协议(诸如Wi-Fi和蓝牙)的集成电路的实体。请求者的其它示例包括请求者实体的雇员,或用户。
请求者访问由设计工程实体控制的网站,如下所述,并提供请求者登录信息(诸如电子邮件地址或密码或其组合)以访问由在线设计工程系统102分配给请求者的请求者账户。在线设计工程系统102的认证器工具确定请求者登录信息是否是真实的,诸如匹配存储在在线设计工程系统102的登录数据库中的数据。在确定请求者时登录信息是真实的时,允许请求者访问请求者账户。另一方面,在确定请求者登录信息不是真实的时,请求者不能访问请求者账户。
请求者1使用请求者计算设备1经由计算机网络110经由请求者账户1向在线设计工程系统102发布对SoC的设计的请求。例如,请求者计算设备1经由请求者计算设备1的输入设备经由请求者账户1从请求者1接收输入,以将对SoC的设计的请求发布到在线设计工程系统102的网页上。输入设备的示例包括鼠标、或键盘、或小键盘或者具有一个或多个图形显示按钮的触摸屏显示器。在实施例中,发布请求的请求者1是控制请求者计算设备1的请求者实体的雇员和/或被请求者实体雇用的承包者。请求者计算设备1通过经由计算机网络110向在线设计工程系统102提供对设计的请求来发起拉动操作。作为另一个示例,请求者计算设备1的网络接口控制器将通信协议应用于对设计的请求,以生成一个或多个分组并经由计算机网络110将一个或多个分组发送到在线设计工程系统102。如本文所使用的,SoC是集成计算机或其它电子系统(诸如物联网(IoT))的组件的集成电路。例如,SoC是包括数字或模拟或混合信号功能的集成电路。为了说明,SOC集成了微控制器和图形处理单元。作为另一个说明,SOC集成了具有锁相环的振荡器或者将电压调节器与电源管理电路集成在一起。
在接收到一个或多个分组时,在线设计工程系统102应用通信协议来对一个或多个分组进行拆包,并将对设计的请求发布到由控制在线设计工程系统102的设计工程实体控制的网页上。响应于该请求,在线设计工程系统102确定由用户N创建的电气电路的设计是否满足在请求内指示的参数。以下提供参数的示例。在确定电气电路的设计满足参数时,在线设计工程系统102将由用户N创建的设计经由计算机网络110提供给请求者计算设备1。
图1B-2是系统111的实施例的图,以图示基于各种规范S1至Sn的、不同电气电路的设计D1至Dn的创建,其中n是大于零的整数。系统111包括在线设计工程系统102和请求者计算设备1。请求者计算设备1经由图1A的计算机网络110耦合到在线设计工程系统102。
请求者1访问网站,以经由请求者计算设备1进一步访问请求者账户1。请求者1还经由请求者计算设备1的输入设备提供指示,以提供包括对SoC的设计的参数的规范S1。例如,在线设计工程系统102的数据表构建器工具经由计算机网络110从请求者计算设备1接收规范S1。为了说明,数据表构建器工具应用通信协议对具有规范S1的分组进行拆包(诸如解析),以从分组中提取规范S1。生成分组并从请求者计算设备1的网络接口控制器发送分组。在接收到指示时,管理服务器152从模板数据库访问(诸如读取)数据表,并经由计算机网络110向请求者计算设备1发送数据表。作为示例,数据表是包括用于设计的参数的入口的多个字段的模板(诸如web表单)。模板数据库耦合到管理服务器152并且是在线设计工程系统102的一部分。数据表显示在请求者计算设备1的显示设备上。显示设备的示例包括触摸屏显示器、液晶显示器、等离子体显示器和发光二极管显示器。请求者1使用请求者计算设备1的输入设备用规范S1填充数据表。管理服务器152经由计算机网络110接收规范S1并将规范S1存储在规范数据库104中的规范文件SF1内。例如,数据表构建器工具经由计算机网络110从请求者计算设备1接收在数据表内的规范S1,在规范数据库104内创建规范文件SF1,并将规范S1写入规范文件SF1。规范数据库104存储在耦合到管理服务器152的可搜索存储装置162内。类似地,规范数据库104存储多个规范文件SF2至SFn。规范文件SF2存储规范S2,以及类似地,规范文件SFn存储规范Sn。规范S2经由计算机网络110从同一个请求者1或从另一个请求者接收。可搜索存储装置的示例包括一个或多个存储器设备,诸如只读存储器(ROM)或随机存取存储器(RAM)或其组合。为了说明,可搜索存储装置是闪存或独立盘冗余阵列(RAID)。存储在存储器设备内的数据由在线设计工程系统102的读取控制器读取,并且数据经由在线设计工程系统102的写入控制器写入存储器设备。
管理服务器152(诸如数据表构建器工具)经由用户账户1通知用户1并经由对应的用户账户2-N通知其他用户2-N接收到规范S1。例如,每个用户账户2-N被发布有指示接收到规范S1的信息以及请求者1的身份(诸如姓名或请求者登录信息)。用户1-N经由由用户1-N操作的对应计算设备1-N的输入设备选择帖子。在经由用户账户1从用户1接收到对帖子的选择时,管理服务器152(诸如数据表构建器工具)从规范数据库104访问规范S1并经由用户账户1向用户1提供规范S1。为了说明,数据表构建器工具从规范文件SF1读取数据表的规范S1,应用通信协议将具有规范S1的数据表打包以生成分组,并经由计算机网络110和用户账户1向用户计算设备1发送分组,以便在用户计算设备1的显示设备上显示。类似地,在经由用户账户2从用户2接收到对帖子的选择时,管理服务器152(诸如数据表构建器工具)经由用户账户2向用户2提供规范S1。
用户1使用用户计算设备1登录用户账户1,以进一步访问设计工具158的电路设计工具164。电路设计工具164被计算设备远程访问,以促进基于规范S1生成设计D1。例如,管理服务器152运行电路设计工具164,以在由用户1操作的计算设备1上创建诸如图像之类的用户接口。当由管理服务器152运行电路设计工具162时,显示用户接口。电路设计工具162的用户接口包括电路设计生成图形(诸如表示逻辑门的图形、表示晶体管的图形、表示逻辑门之间的连接的图形,以及表示晶体管之间的逻辑的图形),以生成设计D1。例如,在经由用户账户1和计算机网络110接收到对一个或多个访问按钮的选择时,管理服务器152运行电路设计工具164,以经由计算机网络110在用户计算设备1上生成电路设计工具164的显示。由用户1经由用户计算设备1的输入设备选择一个或多个访问按钮。用户1通过使用用户计算设备1的输入设备生成电路设计的示意图,以访问电路设计工具162。管理服务器152不允许经由计算机网络110将电路设计工具164下载到由用户1操作的计算设备1。例如,当电路设计工具164经由用户账户1被访问时,在用户计算设备1上没有用于下载电路设计工具164的下载按钮的显示。照此,电路设计工具164在云计算节点上运行。
设计D1(诸如电路示意图)由管理服务器152存储在设计文件DF1内。例如,电路设计工具164在可搜索存储装置162内创建设计文件DF1,并将设计D1存储(诸如写入)到可搜索存储装置162内、被指定为存储设计文件DF1的存储器地址。应当注意的是,在一个实施例中,生成设计D1独立于是否经由请求者账户1和计算机网络110从请求者计算设备1接收到生成设计D1的请求。设计文件由管理服务器152(诸如由设计工具158的电路设计工具164或布局设计工具166)生成。设计文件DF1存储在设计数据库160内,设计数据库160存储在可搜索存储装置162内。例如,用户1操作用户计算设备1,以选择保存设计D1的选项。在经由用户账户1和计算机网络110接收到选择要保存的选项的指示时,管理服务器152将设计D1存储在设计文件DF1内并将设计文件DF1存储在设计数据库160中。类似地,其它设计D2-Dn存储在对应的设计文件DF2-DFn内,设计文件DF2-DFn存储在设计数据库160中。设计DF2-DFn由用户1在运行电路设计工具164时或者由用户2-N中的另一个在运行电路设计工具164时创建。
此外,用户1使用用户计算设备1登录用户账户1,以进一步访问布局设计工具166。访问布局设计工具166,以基于规范S1生成布局设计。例如,管理服务器152运行布局设计工具164,以在由用户1操作的计算设备1上创建用户接口。布局设计工具的示例是被运行以生成多个平面(诸如IP层)的计算机程序,其中每个平面包括瓦片(tiles)(诸如矩形)。瓦片是表示电气电路的一部分的单元格,诸如n型阱或p型阱或者电气电路的两个组件之间的通孔或互连。作为说明,MagicTM是布局设计工具166的示例。当由管理服务器152运行布局设计工具166时,显示用户接口。例如,在经由用户账户1和计算机网络110接收到对一个或多个访问按钮的选择时,管理服务器152运行布局设计工具166,以经由计算机网络110在用户计算设备1上生成布局设计工具166的显示。布局设计工具166为了布局设计的生成而被运行。由用户1经由用户计算设备1的输入设备进行一个或多个访问按钮的选择。用户1通过使用用户计算设备1的输入设备访问布局设计工具166来生成布局设计。管理服务器152不允许经由计算机网络110将布局设计工具166下载到由用户1操作的计算设备1。例如,当经由用户账户1访问布局设计工具166时,在用户计算设备1上没有用于下载布局设计工具166的下载按钮的显示。照此,布局设计工具166在云计算节点上运行。
布局设计由管理服务器152存储在布局设计文件内。布局设计文件存储在设计数据库160内。例如,在经由计算机网络110接收到在运行布局设计工具166时显示的保存按钮的选择时,布局设计工具166在可搜索存储装置162内创建布局设计文件,并将布局设计存储(诸如写入)到可搜索存储装置162内、被指定为存储布局设计文件的存储器地址。应当注意的是,在一个实施例中,生成布局设计独立于与是否经由请求者账户1和计算机网络110从请求者计算设备1接收到生成布局设计的请求。保存按钮显示在用户计算设备1的显示设备上。类似地,其它布局设计存储在对应的布局设计文件内,布局设计文件存储在设计数据库160中。其它布局设计由用户1在运行布局设计工具166时或者由在用户2-N中的另一个在运行布局设计工具166时创建。在一个实施例中,经由用户账户1至N提供访问的布局设计工具166存储在由制造实体控制和管理的布局设计工具数据库内。
经由计算机网络110和请求者账户1将设计文件DF1提供给请求者计算设备1,以便审查设计D1的特性。电路设计的特性的示例包括电路设计的组件(诸如晶体管或逻辑门)、组件之间的连接以及组件的操作。类似地,布局设计文件由计算机网络110和请求者账户1提供,以便审查布局设计的特性。布局设计的特性的示例包括瓦片的放置和瓦片之间的连接、平面堆叠的次序以及平面相对堆叠的相对朝向。
在一个实施例中,设计文件DF1包括布局设计而不是电路设计。在实施例中,电路设计工具164在本文中被称为示意性设计工具。
图1C-1是图示用于由请求者核实设计和接受设计的过程的图,请求者有时在本文中被称为客户。在过程操作1中,客户访问请求者账户1,以创建规范并将规范填入数据表中。数据表由数据表构建器工具(诸如由图1B-2的管理服务器152运行的计算机程序)创建。管理服务器152将具有规范的数据表发布到由在线设计工程系统102托管的网页上。在过程操作2中,群体中的用户1-N中的一个或多个访问对应的用户账户1-N,以搜索项目。例如,用户1向在线设计工程系统提供对于设计SoC(诸如模数转换器或数模转换器或振荡器)的项目的搜索请求。作为另一个示例,在访问对应的用户账户1-N时,用户1-N中的一个或多个访问网页以查看规范。在过程操作3中,用户1-N中的一个或多个基于规范生成一个或多个设计(诸如电路设计或布局设计),并将设计提交给在线设计工程系统102。例如,用户1生成电路设计D1以满足规范S1的参数,并且用户2生成电路设计D2以满足规范S1的参数。以这种方式,由用户1和2提供用于实现规范S1的参数的多种解决方案。
在过程操作4中,在线设计工程系统102核实经由对应的用户账户1-N从用户1-N中的一个或多个接收的设计。例如,在经由对应的用户账户1-N接收到一个或多个设计时,由管理服务器152运行在线核实工具(诸如电路设计核实工具或布局设计核实工具),以测试一个或多个设计。管理服务器152不需要经由对应的用户账户1-N从一个或多个用户1-N接收用于核实一个或多个设计的指示。但是,在一个实施例中,接收用于核实一个或多个设计的指示,以运行在线核实工具。
在过程操作5中,由客户经由请求者账户1接受由一个或多个用户1-N经由对应的用户账户1-N创建并由在线设计工程系统102核实的一个或多个设计。在经由请求者账户1接收到来自客户的接受的指示时,管理服务器152确定奖励(诸如货币奖励或提供工作位置或提供合同机会),用户1-N中的创建了一个或多个设计的一个或多个用户。
图1C-2是用于生成设计并向请求者1提供对设计的访问的在线设计工程方法113的实施例的流程图。在方法113的操作115中,管理服务器152经由请求者账户1从请求者1接收用于生产电气电路的设计的规范。管理服务器152经由请求者计算设备1的网络接口控制器、计算机网络110和在线设计工程系统102的网络接口控制器接收规范。
在方法113的操作117中,管理服务器152经由对应的用户账户1-N提供对用户1-N的访问,以便查看在操作115中接收的规范。例如,在用户1-N经由对应的计算设备1-N登录到对应的用户账户1-N之后,用户账户1-N在对应计算设备1-N的显示设备上提供包括规范的数据表的视图。用户1-N中的一个或多个经由对应的用户账户1-N访问设计工具158,以基于在操作115中接收的规范的参数生成电气电路的一个或多个设计(诸如电路设计或布局设计)。
此外,在方法113的操作119中,管理服务器152经由请求者账户1向请求者1提供对电气电路的一个或多个设计的访问。请求者1查看电气电路的一个或多个设计,以审查该一个或多个设计的特性,以进一步确定是接受还是拒绝该一个或多个设计。
图1D是图示IP电路170、集成电路(IC)172或IoT电路174的原型的制造的图。在实施例中,多个IP电路彼此耦合以产生集成电路,并且多个集成电路彼此耦合以产生IoT电路。IP电路的示例是寄存器或触发器或逻辑门。集成电路的示例是模数转换器、数模转换器、编码器、读取控制器或写入控制器,或处理器,或存储器设备。IoT的示例是经由互联网将各种互联网连接的物体(诸如汽车或建筑物或温度传感器或致动器)彼此耦合的网络电路,以使得互联网连接的物体能够经由互联网彼此交换数据。
由用户1通过基于规范访问图1B-2的设计工具158来创建SoC的设计。此外,图1B-1的自动认证服务器112对设计执行测试,以确定设计是否满足规范的参数。此外,SoC的设计存储在图1B-2的可搜索存储装置162中。存储在可搜索存储装置162中的设计由请求者1经由请求者账户1或经由一个或多个用户1-N经由对应的用户账户1-N是搜索的。例如,设计通过其名称(诸如由创建设计的用户或者由请求者在提交用于生成设计的数据表期间分配的一系列字母数字字符)来标识。设计的名称的说明包括模数转换器或与门或或门或N型晶体管或编码器或解码器。另一个用户或请求者基于设计的名称搜索设计。为了说明,管理服务器152生成设计搜索字段,该字段显示在由用户1操作的计算设备1上或显示在请求者计算设备1上。用户1使用用户计算设备1或请求者1使用请求者计算设备1在设计搜索字段内输入设计的名称(诸如电气电路的名称)。管理服务器152搜索图1B-2的设计数据库104,以确定是否存在从用户计算设备1或请求者计算设备1接收的设计的名称与存储在设计数据库104中的设计的名称之间的匹配。在确定存在匹配时,管理服务器152从设计数据库104访问(诸如读取)设计(诸如设计D1),并经由计算机网络110将设计D1经由用户账户1提供给由用户1操作的用户计算设备1或者经由请求者账户1提供给请求者计算设备1以便请求者1审查。
此外,从接收来自请求者1的规范的时间到基于设计生成电气电路的原型的时间,不需要来自制造设施的保密协定。例如,在设计被用户2-N中未创建设计的一个或多个用户访问之前,由管理服务器152对设计的各部分进行混淆,例如通过下面描述的混淆器工具。为了说明,当由用户计算设备N经由计算机网络110从制造计算设备访问布局设计时,混淆器工具在布局设计被存储在可搜索存储装置162中之前混淆布局设计的一个或多个图形数据库系统(GDS)层。
此外,管理服务器152基于设计被用户2-N中的一个或多个经由对应的用户账户2-N使用的的次数来生成设计的评级。例如,管理服务器152经由计算设备2-N上的用户账户2-N跟踪设计被显示的次数。设计的评级随着设计被显示的次数的增加而增加。类似地,设计的评级随着设计被显示的次数的降低而降低。作为另一个示例,管理服务器152经由计算设备2-N上的用户账户2-N计算设计被出价的次数。设计的评级随着设计被出价的次数的增加而增加。类似地,设计的评级随着设计被出价的次数的降低而降低。管理服务器152生成出价字段,该字段经由计算机网络110和用户账户N显示在用户计算设备N上。用户N使用用户计算设备N的输入设备在出价字段内提供出价(诸如美元金额)。出价经由用户账户N和计算机网络110从用户计算设备N发送到管理服务器152。作为又一个示例,管理服务器152计算经由用户账户2-N显示的设计经由计算设备2-N的对应输入设备被选择的次数。设计的评级随着设计被选择的次数的增加而增加。类似地,设计的评级随着设计被选择的次数的降低而降低。
作为另一个示例,管理服务器152生成设计的评级,并且评级是基于从用户2-N中的一个或多个经由对应的用户账户2-N接收到关于设计的评论(诸如肯定的评论或否定的评论)的次数。为了说明,由管理服务器152经由计算机网络110提供其中要放置帖子(诸如评论)的字段,以在由用户2操作的计算设备2上显示。用户2使用计算设备2的输入设备来选择字段并在字段内发布评论。评论是肯定的评论(诸如赞扬设计的功能或设计的优点的评论)或否定的评论(诸如指示设计的缺点或降级设计的评论)。在确定关于经由用户账户2-N发布的设计的肯定评论的数量超过关于经由用户账户2-N发布的设计的否定评论的数量时,管理服务器152增加设计的评级。例如,随着关于设计的肯定评论的数量与否定评论的数量相比增加,管理服务器152增加设计的评级。作为另一个示例,随着关于设计的肯定评论与否定评论的数量相比降低,管理服务器152降低设计的评级。
在实施例中,经由用户账户2-N显示设计的次数、设计被出价的次数、经由用户账户显示的设计2-N被选择的次数、对设计进行的评论的次数中的两个或更多个的组合被管理服务器152用来确定设计的评级、设计已通过的测试的数量、以及设计被集成在一个或多个集成电路芯片中的次数。例如,基于设计被出价的次数而生成的评级和基于对设计进行评论的次数而生成的评级的加权组合被管理服务器152用来生成设计的评级。作为另一个示例,基于设计已通过仿真测试的次数而生成的评级和基于对设计进行评论的次数而生成的评级的加权组合被管理服务器152用来生成设计的评级。
设计的评级经由由管理服务器152生成并经由用户账户1-N在对应的计算设备1-N上显示的评级搜索字段是可搜索的。例如,当用户2在用户计算设备2的显示设备上显示的评级搜索字段内输入设计的名称,并经由用户计算设备2的输入设备选择在显示设备上显示的提交选项(诸如提交按钮)时,管理服务器152经由计算机网络110从计算设备2接收设计的名称。提交选项的选择是提交对分配给设计的评级的搜索请求的示例。管理服务器152从设计的名称中标识存储在图1B-2的可搜索存储装置162的评级数据库内的设计的评级,并经由计算机网络110和用户账户2向计算设备2提供评级。
在一个实施例中,规范经由由管理服务器152生成并经由用户账户1-N在对应的计算设备1-N上显示的规范搜索字段是可搜索的。例如,用户2在用户计算设备2的显示设备上显示的规范搜索字段内输入设计的名称,并选择在显示设备上显示的提交选项(诸如提交按钮)。在选择提交选项后,管理服务器152经由计算机网络110从计算设备2接收设计的名称。管理服务器152还从设计的名称中标识规范数据库104内用于生成电气电路的设计的规范,并经由计算机网络110和用户账户2向计算设备2提供规范。
图1E是系统121的实施例的图。系统121包括请求者计算设备1、在线设计工程系统102以及制造计算设备1和2。在一个实施例中,制造计算设备和请求者计算设备是相同的。在这个实施例中,请求者是制造实体。
在线设计工程系统包括服务器系统123,其包括图1B-1的管理服务器152和自动认证服务器112。请求者1使用请求者计算设备1来访问具有网址(诸如www.abcd.com)的网站。在访问网站时,请求者1登录到请求者账户1,以从用于在数据表内提供规范的可搜索存储装置162的模板数据库访问数据表。
用户1还经由用户计算设备1访问网站。在访问网站时,用户1登录到用户账户1。在用户账户1内发布指示由管理服务器152接收到针对设计的规范的通知。在一个实施例中,用户1在规范搜索字段内输入设计的名称,以搜索由管理服务器152接收的规范并从规范数据库104中访问规范。例如,数据表构建器工具经由计算机网络110向用户账户1提供对用户计算设备1的规范的访问。为了说明,管理服务器152运行数据表构建器工具,以在用户计算设备1的显示设备上经由计算机网络110生成具有规范的数据表的显示。类似地,作为另一个示例,管理服务器152运行数据表构建器工具,以经由计算机网络110在用户计算设备2至N的显示设备上生成具有规范的数据表的显示,以向用户计算设备2至N提供对规范的访问。
在接收到规范时,用户1访问工作空间应用180,以进一步访问电路设计工具164,以基于规范的参数生成电路设计(诸如示意图)。例如,工作空间应用180由管理服务器152运行,以经由计算机网络110提供对用户计算机设备1上的电路设计工具164的访问。作为另一个示例,工作空间应用180由管理服务器152运行,以在用户计算设备1的显示设备上生成用户接口。用户1操作用户计算设备1的输入设备,以选择表示在用户接口上显示的电路设计工具164的电路设计工具选项(诸如电路设计工具图标或电路设计工具按钮)。在经由计算机网络110接收到对电路设计工具选项的选择后,管理服务器152经由计算机网络110和用户账户1向用户计算设备1提供对电路设计工具164的访问。此外,电路设计核实工具188是由自动认证服务器112运行以测试电路设计的计算机程序,以确定电路设计是否通过或未通过测试。在一个实施例中,在从请求者计算设备1接收到规范时,由管理服务器152生成用于测试电路设计的测试台。相同的测试台由自动认证服务器112用来测试电路设计。
混淆器工具182是由管理服务器152运行以在从可搜索存储装置162访问电路设计时混淆电路设计的一个或多个部分的计算机程序,以经由网站在请求者计算设备1上或在用户计算设备2-N上提供电路设计以便显示。例如,用户2访问网站以登录到用户账户2。在登录到用户账户2时,用户2使用用户计算设备2经由设计搜索字段通过在设计搜索字段内提供电路设计的名称来请求电路设计。管理服务器152的混淆器工具182从可搜索存储装置162中访问电路设计,并混淆电路设计的一个或多个部分以生成混淆电路设计,并经由计算机网络110和用户账户2向计算设备2发送混淆电路设计。在一个实施例中,除了发送混淆电路设计之外,管理服务器152还将包括用于生成设计的规范的数据表经由计算机网络110和用户账户2发送到用户计算设备2。
用户1还经由工作空间应用180访问布局设计工具166,以基于电路设计生成布局设计。例如,工作空间应用180由管理服务器152运行,以在用户计算设备1的显示设备上生成用户接口。用户1操作用户计算设备1的输入设备,以选择表示在用户接口上显示的布局设计工具166的布局设计工具选项(诸如布局设计工具图标或布局设计工具按钮)。在经由计算机网络110接收到布局设计工具选项的选择后,管理服务器152经由计算机网络110和用户账户1向用户计算设备1提供对布局设计工具166的访问。此外,布局设计核实工具190是由自动认证服务器112运行以测试布局设计的计算机程序,以确定布局设计是否通过或未通过测试。在确定电路设计通过测试并且布局设计通过测试后,管理服务器152将电路设计、布局设计和规范发送到制造计算设备1,该制造计算设备1由用于SoC原型的制造的制造设施控制。
图1F是系统125的实施例的图,以图示使用在线设计工程系统102创建和核实的设计的原型的制造。系统125包括服务器系统123、可搜索存储装置162和制造计算设备1,该制造计算设备1经由计算机网络110与服务器系统123耦合。
服务器系统123包括混淆器工具182、工作空间应用180、设计仿真报告生成器工具184和设计评级生成器工具192。设计仿真报告生成器工具184和设计评级生成器工具192中的每一个是由服务器系统123运行的计算机程序。
在经由请求者账户1从请求者1接收到规范时,管理服务器152基于规范发布用于生成电气电路的设计的竞赛。用户1使用用户计算设备1经由计算机网络110和用户账户1访问工作空间应用180,以进一步访问电路设计工具164。电路设计工具164由用户1访问,以根据规范生成电路设计的示意图1830。示意图1830的示例包括彼此耦合(诸如串联或并联)的多个组件(诸如晶体管、逻辑门、电阻器、电感器或电容器),以及电气电路的组件之间的连接。服务器系统123的自动认证服务器112运行本地测试台工具165,以生成本地测试台(诸如耦合到示意图1830的输入引脚的一个或多个电源以及耦合到示意图1830的输出引脚的一个或多个负载)。负载的示例包括电阻器或电容器或电感器。在一个实施例中,本地测试台由自动认证服务器112或由管理服务器152在由管理服务器152接收到基于其生成示意图1830的规范时生成。当用户1经由用户账户1选择由用户计算设备1的显示设备上的工作空间应用180显示的一个或多个按钮以对示意图1830应用本地测试台工具165时,由自动认证服务器112运行本地电路设计测试。当运行本地电路设计测试时,由自动认证服务器112生成本地电路设计测试的结果,以确定示意图1830是否通过或未通过本地电路设计测试。在实施例中,本地测试台工具165存储在用户计算设备1的存储器设备内并由用户计算设备1的处理器运行,而不是存储在可搜索存储装置162中并由自动认证服务器162运行。
示意图1830及本地测试台工具165的应用结果存储在可搜索存储装置162中。此外,在实施例中,示意图1830存储在用户1经由工作空间应用180和用户账户1可访问的目录中。目录存储在由用户1操作的计算设备1上。
此外,自动认证服务器112运行电路设计核实工具188,以对示意图1830执行测试以确定示意图1830是否通过或未通过测试。通过运行电路设计核实工具188而应用的测试的结果存储在可搜索存储装置162中。例如,数据表由自动认证服务器112更新,以包括通过运行电路设计核实工具188而应用的示意图1830的测试的结果。在确定示意图1830通过由电路设计核实工具188运行的测试后,由自动认证服务器112指示示意图1830将由设计工程实体认证。设计工程实体的认证是示意图1830的官方表征的结果。官方表征的示例是在设计工程实体的控制下运行电路设计核实工具188。电路设计核实工具188在设计工程实体的控制下执行。例如,设计工程实体的雇员使用计算设备2来运行电路设计核实工具188。自动认证服务器112不允许经由计算机网络110将电路设计核实工具188下载到由用户1操作的用户计算设备1。照此,电路设计核实工具188在云计算节点上运行。
在一个实施例中,除了运行本地电路设计测试和电路设计核实工具188之外,管理服务器152还向用户账户2-N中的一个或多个提供对示意图1830的访问,以便执行群体电路设计核实测试。在用户2-N中的一个或多个访问示意图1830之前,混淆器工具182混淆示意图1830的一个或多个部分。照此,不需要用户2-N中的一个或多个与创建示意图1830的用户1之间的保密协议。
为了执行群体电路设计核实测试,用户2-N中的一个或多个访问电路设计核实工具188或本地测试台工具165或经由对应的用户账户2-N存储在对应的计算设备2-N中的本地电路核实工具,以测试示意图1830。本地电路核实工具由对应的计算设备2-N的处理器运行。由群体的用户2-N应用群体电路设计核实测试的结果存储在可搜索存储装置162中。
基于由用户1经由用户账户1使用本地测试台工具165的结果、由自动认证服务器112应用电路设计核实工具188,和/或由用户2-N中的一个或多个使用本地电路核实工具,用户1(诸如人A)和/或其他用户(诸如人B和人C)被管理服务器112确定为用于生成电气电路的电路设计的竞赛的获胜者。例如,管理服务器152确定由用户1创建的示意图1830以及由其他用户创建的满足规范的其它示意图通过了使用本地测试台工具165应用的本地电路设计测试、通过运行电路设计核实工具188来应用的测试和/或通过了通过在从用户1-N接收的基于规范的多个示意图中运行本地电路核实工具而应用的测试。
在实施例中,由用户1经由用户账户1应用本地测试台工具165、由自动认证服务器112应用电路设计核实工具188和/或应用由用户2-N中的一个或多个使用的本地电路核实工具的结果存储在数据表中。具有结果的数据表从管理服务器152经由计算机网络110发送到请求者计算设备1,以便经由请求者账户1进行访问。
在一个实施例中,电路设计核实工具188与本地测试台工具165和/或本地电路核实工具相同。例如,用户1、用户2-N和设计工程实体应用相同的工具来核实示意图1830。
用户1还使用计算设备1经由计算机网络110和用户账户1访问工作空间应用180,以进一步从在线设计工程系统102访问布局设计工具166。布局设计工具166由用户1经由用户计算设备1和用户账户1来访问,以生成基于示意图1830和规范的布局设计127。服务器系统123的自动认证服务器112运行本地布局核实工具167,诸如用于测量平面内每个单元格的物理尺寸、每个平面的物理维度、平面相对于彼此的朝向以及平面相对于彼此的布置次序的核实工具。当用户1选择由工作空间应用180显示的一个或多个按钮以在布局设计127上应用本地布局核实工具167时,自动认证服务器112运行本地布局核实工具167。当本地布局核实工具167被运行时,运行的结果由自动认证服务器112生成,以确定布局设计127是否通过或未通过本地布局设计测试。在实施例中,本地布局核实工具167存储在用户计算设备1的存储器设备内并且由用户计算设备1的处理器运行,而不是存储在可搜索存储装置162中并由自动认证服务器162运行。
布局设计127和应用本地布局设计测试的结果存储在可搜索存储装置162中。此外,在实施例中,布局设计127存储在用户1经由工作空间应用180和用户账户1可访问的目录中。在其中存储布局设计180的目录存储在由用户1操作的计算设备1上。
此外,自动认证服务器112运行布局设计核实工具190,以对布局设计127执行测试,以确定布局设计127是否通过或未通过测试。通过运行布局设计核实工具190而应用的测试的结果存储在可搜索存储装置162中。例如,数据表由自动认证服务器112更新,以包括布局设计127的测试的结果。在确定布局设计127通过由布局设计核实工具190运行的测试时,布局设计127由自动认证服务器112指示将由设计工程实体认证。设计工程实体的认证是示意图1830的官方表征的结果。官方表征的示例是在设计工程实体的控制下运行布局设计核实工具190。布局设计核实工具190在设计工程实体的控制下运行。例如,设计工程实体的雇员使用计算设备2来运行布局设计核实工具190。自动认证服务器112不允许经由计算机网络110将布局设计核实工具190下载到由用户1操作的计算设备1。照此,布局设计核实工具190在云计算节点上运行。
在一个实施例中,除了运行本地布局设计测试和布局设计核实工具190之外,管理服务器152还向用户账户2-N中的一个或多个提供对布局设计127的访问,以便执行群体布局设计核实测试。在用户2-N中的一个或多个访问布局设计127之前,混淆器工具182对布局设计127的一个或多个部分进行混淆,诸如隐藏或覆盖。照此,在用户2-N中的一个或多个与创建布局设计127的用户1之间不需要保密协议。
为了执行群体布局设计核实测试,用户2-N中的一个或多个访问布局设计核实工具190或本地布局核实工具167或经由对应的用户账户2-N存储在对应的计算设备2-N中的本地布局核实工具,以测试布局设计127。本地布局核实工具167由对应的计算设备2-N的处理器运行。由群体的用户2-N应用群体布局设计核实测试的结果存储在可搜索存储装置162中。
基于由用户1经由用户账户1使用本地布局核实工具167、由自动认证服务器112应用布局设计核实工具190,和/或由用户2-N中的一个或多个使用的本地布局核实工具的结果,人A、人B和人C中的人A和人B被管理服务器112确定为用于生成电气电路的布局设计的竞赛的获胜者。例如,管理服务器152确定由人A创建的布局设计127和由人B创建的满足规范的其它布局设计通过了本地布局设计测试、通过运行布局设计核实工具190来应用的测试和/或通过了通过在从人A、人B和人C接收并基于规范生成的多个布局设计中运行本地布局核实工具而应用的测试。
在实施例中,由用户1经由用户账户1应用本地布局设计测试、由自动认证服务器112应用布局设计核实工具190和/或应用由用户2-N中的一个或多个使用的本地布局核实工具的结果存储在数据表中。具有结果的数据表从管理服务器152经由计算机网络110发送到请求者计算设备1,以便经由请求者账户1进行访问。
管理服务器152从可搜索存储装置162访问具有布局设计127的图形数据库系统II(GDSII)文件,访问具有示意图1830的设计文件,并且从可搜索存储装置162访问具有用于生成布局设计127的规范的规范文件,并且经由计算机网络110将GDSII文件、设计文件和规范文件提供给制造计算设备1。应当注意的是,GDSII是用于电气电路的布局的数据交换的数据库文件格式。GDSII是二进制文件格式,其以分层形式表示关于布局设计127的平面几何形状、文本标签和其它信息。制造设施从GDSII文件的布局设计127制造电气电路的原型。
在一个实施例中,本地测试台工具165、电路设计核实工具188、布局设计核实工具190和/或本地布局核实工具167是设计仿真报告生成器工具184的部分或部件。
图2是用于图示经由计算机网络110与由用户1-N操作的多个用户计算设备1-N及由对应的请求者1和2操作的请求者计算设备1和2进行通信的在线设计工程系统102的系统200的实施例的图。系统200包括计算设备N和附加的计算设备1、2至N-1。例如,计算设备1至N-1中的每一个由不同的设计者操作。为了说明,计算设备1由用户1操作,计算设备2由用户2操作,等等,直到计算设备N由用户N操作。在实施例中,每个用户1至N是电路设计的设计者。例如,用户1设计与用户2不同的电路设计。计算设备1至N连接到计算机网络110。例如,计算设备1至N中的每一个包括用于将打包的数据通信到计算机网络110的网络接口控制器。
系统200还包括在线设计工程系统102,其包括各种数据库,例如,其中存储图1B-2的电路设计工具164的电路设计工具数据库206、其中存储图1B-2的布局设计工具166的布局设计工具数据库208、原型开发系统数据库210、设计数据库160、规范数据库104、评论数据库204和公-私指示符数据库220。每个数据库存储在可搜索存储装置162的一个或多个存储器设备内。例如,电路设计工具数据库206存储在一个或多个存储器设备中,并且规范数据库104存储在一个或多个存储器设备中。
电路设计工具数据库206存储用于生成电路设计示意图的规则和工具。例如,电路设计工具数据库206存储用于生成电路设计的图形表示(例如,示意图等)的计算机程序。作为另一个示例,电路设计工具数据库206存储用于生成被运行以生成示意图的代码的计算机程序。电路设计的每个组件都遵循一个或多个设计规则。例如,与门具有输出和两个输入。作为另一个示例,如果任一输入为高(例如,位1等),那么或门的输出为高。电路设计工具数据库206包括用于电路设计的其它组件(例如,晶体管、二极管、多路复用器、触发器、电容器、电感器、电阻器等)的其它规则。
布局设计工具数据库208存储关于如何形成和布置SoC的布局设计的各种IP层的规则。例如,布局设计工具数据库208包括每个平面的组件的身份、连接组件的方式、以及将平面彼此连接的方式。作为另一个示例,布局设计工具数据库208存储布局设计的各种IP层(诸如基板层和栅极层)将如何相对于彼此布置。作为又一个示例,布局设计工具数据库208存储要应用于基板的掺杂类型(诸如n型或p型)、布局设计的两个相邻或非相邻层之间的通孔的数量、布局设计的IP层上形成的电路组件之间的迹线的数量、布局设计的引脚输出的数量、以及布局设计的引脚输入的数量。在实施例中,布局设计工具数据库208由一个或多个制造实体生成并经由计算机网络110发送,以便存储在在线设计工程系统102内。在一个实施例中,布局设计工具数据库208由制造实体控制,并经由在线设计工程系统102可访问。布局设计工具数据库208没有被存储在在线设计工程系统102内,而被存储在受制造实体控制(诸如由制造实体租赁或拥有)的云计算节点内。当用户获得对在线设计工程系统102的访问时,由管理服务器152允许用户访问布局设计工具数据库208。
原型开发系统数据库210存储用于测试电气电路的原型的计算机程序。例如,其中实现布局设计的集成电路的原型经由电缆(诸如串行传送电缆、并行传送电缆或通用串行总线(USB)电缆)连接到计算机(诸如用户计算机或制造实体计算机)。当原型连接到计算机时,经由账户(诸如用户账户1或制造实体账户1)和计算机网络110从计算机向在线设计工程系统102的原型测试器和测试报告生成器工具发送对原型运行验证测试的请求。例如,用户1经由用户计算设备1的输入设备选择在用户账户1内显示的按钮,以生成并发送用于运行验证测试的请求。在接收到请求后,管理服务器152向计算机提供对原型测试器和测试报告生成器工具的访问。原型测试器和测试报告生成器工具由自动认证服务器112运行,以向原型提供输入值,以便由原型处理输入值。在由原型测试器和测试报告生成器工具进行的测试期间,原型在印刷电路板(PCB)上实现。PCB耦合到计算机以便测试原型。原型测试器和测试报告生成器工具经由电缆和计算机网络110从集成电路接收处理的结果,并确定结果是否与预定值匹配。在确定结果与预定值匹配时,原型测试器和测试报告生成器工具确定原型通过验证测试。另一方面,在确定结果与预定值不匹配时,原型测试器和测试报告生成器工具确定原型未通过验证测试。验证测试的结果(诸如原型通过验证测试、原型未通过验证测试、以及在验证测试期间生成的输出电压值)由数据表构建工具集成在包括规范的数据表内,其中用于原型的设计是基于该规范生成的。例如,数据表与通过或未通过以及在将输入值提供给原型时输出的值(诸如电压值或电流值)集成。数据表构建器工具经由计算机网络110将包括原型的测试结果的数据表经由请求者账户1发送到请求者计算设备1。应当注意的是,原型测试器和测试报告生成器工具没有被下载到计算机。此外,原型测试器和测试报告生成器工具由管理服务器152运行。
制造实体使用制造计算设备来访问制造实体账户,以访问在线设计工程系统102。例如,制造实体访问网站并经由网站提供制造实体登录信息(诸如电子邮件地址或密码或其组合),以访问由在线设计工程系统102分配给制造实体的制造实体账户。
设计数据库160存储由用户1至N创建的各种电气电路的电路设计。例如,管理服务器152经由计算机网络110从计算设备1至N接收电路设计示意图并在设计数据库160内存储电路设计示意图。作为另一个示例,管理服务器152经由计算机网络110从计算设备1至N接收各种电气电路的布局设计并在设计数据库160内存储布局设计。
规范数据库104存储各种电气电路的规范。例如,规范数据库104包括描述对一个或多个SoC的各种电气电路的各种电气参数(诸如输入电压的量、输入电流的量、输出电流的量、输出电压的量、操作的频率或不使用时钟信号)以及对各种物理参数(诸如引脚输入的数量、引脚输出的数量、以及使用或不使用时钟信号引脚)的限制的文本数据和/或图形数据。作为另一个示例,规范数据库104包括标识电气电路(诸如缓冲器、反相器、逻辑门、半加器、全加器、处理器、模数转换器或数模转换器)的类型(诸如名称或标识符)的文本数据和/或图形数据。
评论数据库204存储由用户1至N经由对应的用户账户1至N关于各种设计做出的评论或帖子。例如,用户1登录到用户账户1,以经由计算机网络110从账户服务器212访问用户账户1,并将评论发布到用户账户1。用户1使用用户计算设备1来经由用户账户1向管理服务器152提供授权,以允许其他用户2至N中的一个或多个经由对应的用户账户2至N访问评论。其他用户2至N中的一个或多个访问其对应的用户账户2至N,以查看评论。
在实施例中,用户或请求者或制造实体向在线设计工程系统102提供登录信息(例如,姓名、密码、生物信息等),以访问他/她/它的账户。请求者的示例是作为请求者实体的雇员或由请求者实体雇用的承包者的用户。在接收到登录信息时,在线设计工程系统102的认证器工具将登录信息与预先存储的登录信息进行比较,以确定登录信息是否与预先存储的登录信息匹配。在确定登录信息与预先存储的信息匹配时,通过验证器工具向用户或请求者或制造实体提供对他/她/它的账户的访问。否则,在登录信息和预先存储的信息不匹配的情况下,不向用户或请求者或制造实体提供对他/她的账户的访问。用户或请求者或制造实体登录他/她/它的账户,以访问在线设计工程系统102的一个或多个数据库,诸如电路设计工具数据库206、布局设计工具数据库208、原型开发系统数据库210、设计数据库160、规范数据库104和评论数据库204。在没有被认证的情况下,在线设计工程系统102的认证器工具不提供对任何数据库的访问。由认证器工具分配给对应用户1至N的用户账户1至N、由认证器工具分配给制造实体1和2的制造实体账户1和2以及对应请求者1和2的请求者账户1和2存储在耦合到管理服务器152的账户服务器212内。
系统200包括经由计算机网络110连接到在线设计工程系统102的请求者计算设备1和2。此外,系统200包括经由计算机网络110连接到在线设计工程系统102的制造计算设备1和2。一个或多个制造计算设备1和2由对应的制造实体1和2控制。作为示例,制造实体1和2是制造电气电路的原型的公司。
图3是在线设计工程系统102的各种工具的实施例的图。应当注意的是,在实施例中,在线设计工程系统102提供规范驱动的设计过程、web驱动的数据表(诸如在线数据表)、群体驱动的交互式规范构建器、电路设计的基于群体的核实、群体的知识的汇集、通过群体输入的持续改进(诸如对电路设计的评论)、独立于设计者的核实、可选的物理核实流程、用于验证电路设计的测试芯片运行、由设计工程实体对测试芯片的电气表征、来自群体的反馈、设计者技能的评级、电路设计的评级、电路设计的使用次数的计数、电路设计具体形式、通过使用仿真软件对数据表上的所有规范参数的仿真、由设计工程实体对数据表上的所有规范参数的核实、电路设计与胶合逻辑设计或由设计工程实体提供的另一种集成电路设计的耦合、用于生成被发送到制造实体1和2的制造意识电子模型的工具、在梭子上制造、使用测试印刷电路板和由设计工程实体提供的软件测试集成电路芯片设计、和/或由群体基于经验提供的报告或结果等。报告和结果提供了基于被检查的附加规范参数的收益分享的潜力。
在线设计工程系统102包括访问管理器工具303、版税生成器工具304、混淆器工具182、奖励生成器工具316、数据表构建器工具318、规范完整性检查器工具302、规范合规性检查器工具320、设计搜索器工具322、派生物生成器工具324、原型测试器和测试报告生成器工具306、梭子管理器工具404、使用计数器工具312、设计仿真报告生成器工具184、设计竞赛生成器工具310、设计者评级生成器工具326、设计评级生成器工具192、设计项目搜索器工具328、公-私指示符工具329、项目发布器(poster)工具330、认证器工具332以及设计服务管理器工具402。在一个实施例中,如本文所使用的工具是诸如ASIC或PLD之类的硬件,或由处理器运行的诸如计算机程序之类的软件,或者硬件和软件的组合。例如,工具是由服务器的一个或多个处理器运行的计算机软件程序。作为另一个示例,工具是ASIC或PLD。作为示例,访问管理器工具303、版税生成器工具304、混淆器工具182、奖励生成器工具316、数据表构建器工具318、规范完整性检查器工具302、规范合规性检查器工具320、设计搜索器工具322、派生物生成器工具324、梭子管理器工具404、使用计数器工具312、设计竞赛生成器工具310、设计者评级生成器工具326、设计评级生成器工具192、设计项目搜索器工具328、项目发布器工具330、认证器工具332、设计服务管理器工具402及公-私指示符工具329是管理服务器152的一部分或由管理服务器152执行。此外,作为示例,原型测试器和测试报告生成器工具306和设计仿真报告生成器工具184是自动认证服务器112的一部分或由自动认证服务器112运行。在实施例中,在线设计工程系统102的任何工具都经由通信介质(诸如用于串行传送数据的导体、用于以并行方式传送数据的多个导体,或通用串行总线)耦合到在线设计工程系统102的任何其它工具。
访问管理器工具303确定是否向计算设备(例如,用户计算设备或请求者计算设备或制造计算设备)提供对其它工具和工作空间应用180的访问。其它工具的示例包括在线设计工程系统102的版税生成器工具304、混淆器工具182、奖励生成器工具316、数据表构建器工具318、规范完整性检查器工具302、规范合规性检查器工具320、设计搜索器工具322、派生物生成器工具324、梭子管理器工具404、使用计数器工具312、设计竞赛生成器工具310、设计者评级生成器工具326、设计评级生成器工具192、设计项目搜索器工具328、项目发布器工具330、设计服务管理器工具402、公-私指示符工具329、原型测试器和测试报告生成器工具306,以及设计仿真报告生成器工具184。例如,访问管理器工具303确定经由计算机网络110从计算设备接收的登录信息是否由认证器工具332认证。为了说明,访问管理器工具303向认证器工具332发送请求,以确定登录信息是否有效。在从认证器工具332接收到登录信息有效的答复时,访问管理器工具303向计算设备提供对在线设计工程系统102的其它工具和工作空间应用180的访问。另一方面,在从认证器工具332接收到登录信息无效的答复时,访问管理器工具303拒绝计算设备对在线设计工程系统102的其它工具和工作空间应用180的访问。在一个实施例中,访问管理器工具303经由计算机网络110提供对其它工具和工作空间应用180的在线访问,但是不允许从在线设计工程系统102经由计算机网络110将其它工具和工作空间应用180中的一个或多个下载到计算设备。
版税生成器工具304为由用户1至N创建并且通过本地电路设计测试、由电路设计核实工具188运行的测试、群体电路设计核实测试、本地布局设计测试、由布局设计核实工具190运行的测试以及群体布局设计验证测试中的一个或多个的设计生成版税(诸如,就百分比或货币量而言)。例如,当设计者将电路设计的示意图发布到他/她的用户账户并且示意图通过本地电路设计测试、由电路设计核实工具188运行的测试、群体电路设计核实测试中的一个或多个时,版税生成器工具304生成版税金额或版税百分比。作为另一个示例,当设计者将布局设计发布到他/她的用户账户并且布局设计通过本地布局设计测试、由布局设计核实工具190执行的测试以及群体布局设计核实测试中的一个或多个时,版税生成器工具304生成版税金额或版税百分比。作为又一个示例,版税生成器工具304基于设计的使用次数来生成设计的版税金额或版税百分比。版税生成器工具304从使用计数器工具312访问对于多个设计的使用次数。在确定设计中的第一个设计的使用次数大于设计中的第二个设计的使用次数时,版税生成器工具304为访问第一个设计生成比访问第二个设计更高的版税金额。在一个实施例中,当为其计算版税百分比或版税金额的设计被请求者计算设备1经由请求者账户1访问时,经由请求者计算设备1和请求者账户1从版税生成器工具304向请求者1提供版税金额或版税百分比。例如,请求者1使用请求者计算设备1来访问请求者账户1,以进一步请求对设计的访问,诸如经由设计搜索字段。在接收到对访问的请求时,版税生成器工具190以用于访问设计的版税金额或版税百分比来提供对设计的访问。
在实施例中,版税生成器工具304经由计算机网络110连接到信用和借记服务器系统。例如,当请求者1经由请求者账户1向在线设计工程系统102发送对电路设计的请求并且设计者经由在线设计工程系统102向请求者提供电路设计时,版税生成器工具304向信用和借记服务器系统提供诸如版税金额或版税百分比之类的版税,并且信用和借记服务器系统从请求者的存款账户中扣除版税,并将该金额记入设计者的存款账户。存款账户由信用和借记服务器系统维护。
混淆器工具182隐藏设计的至少一部分,从而避免请求者与设计者之间的保密协议(NDA)的需要。例如,混淆器工具182将示意图或布局设计用隐藏示意图的一个或多个部分或布局设计的一个或多个部分的不透明部分(诸如不透明块、不透明形状)覆盖,以创建黑盒子。为了说明,示意图的引脚输入和引脚输出没有被不透明部分覆盖。为了进一步说明,未覆盖或隐藏电源引脚、接地引脚、数据输入引脚和数据输出引脚,以创建黑盒子。在一个实施例中,示意图的一个或多个引脚输入和/或一个或多个引脚输出被不透明部分覆盖或隐藏。作为另一个示例,混淆器工具182隐藏布局设计的各种IP层并隐藏IP层的各种瓦片,以创建黑盒子。在这个示例中,布局设计的引脚输入和引脚输出未被不透明部分覆盖。在一个实施例中,布局设计的一个或多个引脚输入和/或一个或多个引脚输出被不透明部分覆盖。
混淆器工具182耦合到认证器工具332,以便向具有许可的用户或请求者显示设计并且在向不具有许可的用户或请求者显示设计之前混淆设计的一个或多个部分。例如,当诸如用户账户1或请求者账户1之类的账户具有来自认证器工具332的在计算设备上显示设计的许可时,混淆器工具182不用不透明部分覆盖设计,以在计算设备上显示设计。除了经由计算机网络110向计算设备(诸如用户计算设备或请求者计算设备)提供对设计的访问之外,管理服务器152还经由计算机网络110向计算设备发送包括用于生成设计的规范的数据表。经由账户(诸如用户账户或请求者账户)提供对设计的访问。当设计者经由他/她的账户指示设计是公开的时,认证器工具332确定另一个用户或请求者的账户具有查看该设计的许可。另一方面,当认证器工具332确定除设计者之外的另一个用户或者请求者的账户不具有在计算设备上显示设计的许可时,混淆器工具182用不透明部分覆盖设计,以生成混淆设计。除了经由计算机网络110向计算设备(诸如用户计算设备或请求者计算设备)提供对混淆设计的访问之外,管理服务器152还经由计算机网络110向计算设备发送包括用于生成设计的规范的数据表。经由账户(诸如用户账户或请求者账户)提供对混淆设计的访问。当用户或请求者经由他/她的账户指示设计是私有的时,认证器工具332确定账户不具有查看设计的许可。
在一个实施例中,混淆器工具182访问可搜索存储装置162的公-私指示符数据库220,以确定账户(诸如请求者账户或用户账户)与设计是公共还是私有的指示之间的关联。公-私指示符数据库220存储各种账户与是否允许账户在不混淆的情况下访问设计的指示之间的关联(诸如一对一映射或对应关系或者唯一关系或链接)的列表。例如,列表中的第一条目指示用户1经由用户账户1已经指示电气电路的设计1对用户账户2是私有的。用户1经由用户账户1创建设计1。此外,列表中的第二条目指示用户1经由用户账户1已经指示设计1对请求者账户2是私有的。此外,列表中的第三条目指示用户1经由用户账户1已经指示设计2对用户账户2是公开的。混淆器工具182响应于从用户计算设备2接收到用于经由用户账户2和计算机网络110访问设计1的指示而访问第一条目,并且混淆设计1的一个或多个部分以生成混淆设计。例如,当设计搜索器工具322经由计算机网络110和用户账户1从用户计算设备1接收用于访问存储在设计数据库160内的设计的请求时,设计搜索器工具322向混淆器工具182发送该请求的信号。在接收到指示接收用于访问设计的请求的信号时,混淆器工具182访问诸如第一条目之类的条目,以确定设计被指定为私有还是公开。
在该实施例中,混淆设计由混淆器工具182经由计算机网络110发送到由用户2操作的用户计算设备2,以经由用户账户2显示在用户计算设备2上。例如,混淆器工具182通过应用通信协议对混淆设计进行打包以生成分组,并且经由计算机网络110和用户账户2将分组发送到用户计算设备2。除了经由计算机网络110将混淆设计发送给用户计算设备2之外,管理服务器152还经由计算机网络110将包括用于生成设计1的规范的数据表发送到用户计算设备2。当请求者1经由请求者账户1指示访问设计1时,混淆器工具182访问第二条目,并且混淆设计1的一个或多个部分以生成混淆设计,并且经由计算机网络110将混淆设计发送到请求者计算设备1以便在请求者计算设备1上显示。除了经由计算机网络110将设计1发送到用户计算设备1之外,管理服务器152还经由计算机网络110向请求者计算设备1发送包括用于生成设计1的规范的数据表。当用户2经由用户账户2指示访问设计2时,混淆器工具182进一步访问第三条目,并且进行去混淆(诸如移除不透明部分),或者,不混淆设计2的一个或多个部分并且经由计算机网络110将设计2发送到由用户2操作的计算设备2以便显示。除了经由计算机网络110将设计2发送到用户计算设备2之外,管理服务器152还经由计算机网络110向用户计算设备2发送包括用于生成设计2的规范的数据表。
奖励生成器工具316向竞赛中设计的获胜者(例如,设计者等)生成奖励(诸如货币金额或版税)。在实施例中,奖励生成器工具316经由计算机网络110连接到信用和借记服务器系统。例如,当请求者1操作请求者计算设备1以经由请求者账户1向在线设计工程系统102发送对电路设计的请求并且在用户1-N当中用户1赢得竞赛时,奖励生成器工具316将奖励提供给信用和借记服务器系统,并且信用和借记服务器系统从请求者1的存款账户借记奖励的金额,并将该金额记入用户1的存款账户。
竞赛由设计竞赛生成器工具310生成并且在在线设计工程系统102内发布以便通过计算设备1至N访问。例如,在通过请求者账户1从请求者1接收到包括用于电气电路的规范的数据表时,设计竞赛生成器工具310经由计算机网络110向请求者账户1发送关于请求者1是否希望生成用于电气电路的设计的竞赛的请求。在经由请求者计算设备1和请求者账户1接收到用于生成竞赛的指示时,竞赛生成器工具310将竞赛的指示连同包括规范的数据表一起发布到用户账户1至N。例如,竞赛生成器工具310经由计算机网络110和用户账户1至N向用户计算设备1至N提供要为其生成设计的数据表以及用于生成设计的竞赛的指示。此外,竞赛生成器工具310经由计算机网络110和用户账户1至N向用户计算设备1至N提供竞赛条目选项(诸如竞赛条目按钮)。在用户计算机设备1至N的显示设备上查看竞赛的显示时,用户1至N中的一个或多个使用相应的用户计算设备1并经由对应的用户账户1至N选择竞赛条目选项。在经由对应的用户账户1至N和计算机网络110接收到竞赛条目选项的选择时,竞赛生成器工具310将选择存储在可搜索存储装置152中并将选择与被访问以提供选择的用户账户1至N相关联。
数据表构建器工具318生成包括用于接收电气电路的规范的字段的数据表。例如,在从请求者账户1接收到用于访问数据表的指示符时,数据表构建器工具318访问可搜索存储装置162的模板数据库,以将数据表提供给请求者账户1。例如,数据表构建器工具318从模板数据库读取数据表并应用通信协议以从数据表生成分组,并经由计算机网络110和请求者账户1将分组发送到请求者计算设备1。在实施例中,数据表包括设计的仿真的结果,或结合该设计的原型的测试结果。在一个实施例中,数据表是web驱动的数据表,其经由由设计工程实体管理的网站访问。
规范完整性检查器工具302确定经由请求者账户1和计算机网络110从请求者1接收的数据表内的规范是否完整。例如,对于一种类型的设计,例如缓冲器的设计、加法器的设计、乘法器的设计等,规范完整性检查器工具302检查是否生成设计的规范的所有参数都在数据表中被接收到。在确定未接收到所有参数时,规范完整性检查器工具302生成通知。规范完整性检查器工具302经由计算机网络110和请求者账户1将指示请求者1规范是不完整的通知发送到请求者计算设备1。请求者1使用请求者计算设备1来提供数据表的规范内的剩余参数,并经由计算机网络110和请求者账户1将数据表发送到规范完整性检查工具302。
规范合规性检查器工具320确定从请求者接收的规范是否符合规范合规性规则,该规范合规性规则存储在可搜索存储装置162的规范合规性数据库中。规范合规性规则的示例包括在规范中提供的参数是否在预定范围内、在规范中提供的两个相邻设计组件之间的距离是否在预设极限内、设计的引脚输入的数量、设计的引脚输出的数量、以及在规范中提供的两个相邻平面之间的距离是否在预定极限内。应当注意的是,在某些实施例中,引脚输入和输入引脚在本文中可互换使用。此外,引脚输出和输出引脚在本文中可互换使用。
设计搜索器工具322在图2的设计数据库160内搜索设计。例如,请求者计算设备1经由请求者账户1和设计搜索字段发送或者用户计算设备2经由用户账户2和设计搜索字段经由计算机网络向在线设计搜索器工具322发送搜索设计的请求。该请求包括设计的名称,诸如编码器或多路复用器或放大器或电压调节器。基于该请求,设计搜索器工具322在设计数据库160内搜索其名称与请求内的设计名称匹配的设计。当设计数据库160内的设计的名称与请求内的设计匹配时,设计搜索器工具322向混淆器工具182发送请求。混淆器工具182访问公-私指示符数据库220,以确定请求者账户1或用户账户2是否具有来自生成设计的用户1的访问该设计的许可。在确定请求者账户1或用户账户2不具有该许可时,混淆器工具182混淆设计的一个或多个部分以生成混淆设计并经由计算机网络110将混淆设计发送到用户计算设备2或请求者计算设备1以便混淆设计的显示。另一方面,在确定请求者账户1或用户账户2具有该许可时,混淆器工具182对设计进行去混淆或者不混淆,并经由计算机网络110将设计发送到用户计算设备2或请求者计算设备1,以便经由用户账户2或请求者账户1显示设计。
请求者1经由请求者账户1发送用于生成第一集成电路芯片设计的派生物的请求。在接收到该请求时,派生物生成器工具324生成第一集成电路芯片设计的派生物。例如,派生物生成器工具324将集成电路设计(诸如胶合逻辑设计)与第一电路设计耦合以创建第一集成电路芯片设计,并将集成电路设计与作为第一电路设计的派生物的第二电路设计耦合以第二集成电路芯片设计。集成电路设计存储在可搜索存储装置162中,并由派生物生成器工具324从可搜索存储装置162访问(诸如读取)。在一个实施例中,派生物生成器工具324推荐电路设计的派生物并经由计算机网络110和请求者账户1向请求者计算设备1发送推荐。
在实施例中,派生物包括第一电路设计的一个或多个组件的改变,以生成具有改变的组件的第二电路设计,其中改变的组件执行与由一个或多个组件执行的功能相同的功能。例如,第一电路设计的多个逻辑门由第二电路设计中较低数量的门代替。例如,第一电路设计的多个晶体管由第二电路设计中较低数量的晶体管代替。在一个实施例中,派生物允许提高集成电路的效率、特征或者降低成本或空间。
原型测试器和测试报告生成器工具306生成包括测试电气电路的原型的结果的测试报告。在实施例中,原型测试器和测试报告生成器工具306包括关于如何将原型连接到计算设备以便测试原型的指令。
使用计数器工具312保持设计的使用次数的记录。例如,在集成电路芯片的原型中使用设计的次数和/或由用户1至N中的一个或多个使用电路设计的次数由使用计数器工具312确定。为了说明,从由制造实体操作的制造计算设备提供其中要实现设计的集成电路的数量。制造实体使用制造计算设备访问下面描述的制造实体账户1,以经由计算机网络110向使用计数器工具312提供集成电路的数量。作为另一个示例,使用计数器工具312计数设计已通过的测试的数量。为了说明,使用计数器工具312请求数据表构建器工具318提供基于规范生成的电路设计通过仿真测试、基于规范生成的布局设计通过仿真测试以及基于规范生成的原型通过测试的总次数。数据表构建器工具318生成该总数并将该总数发送到使用计数器工具312。该使用次数由在线设计工程系统102用于一个或多个目的,例如,计算版税、计算向设计的设计者提供的货币金额、计算设计的设计评级或设计者的设计评级等。
设计仿真报告生成器工具184生成包括电路设计的示意图的仿真结果和/或布局设计的仿真结果的设计仿真报告。例如,设计仿真报告生成器工具184生成设计仿真报告,该报告指示由用户1经由用户账户1执行的本地电路设计测试的结果、通过自动认证服务器112对电路设计核实工具188的应用、和/或由群体的用户2-N中的一个或多个使用的本地电路核实工具的应用。作为另一个示例,设计仿真报告生成器工具184生成设计仿真报告,该报告指示由用户1经由用户账户1执行的本地布局设计测试的结果、通过自动认证服务器112对布局设计核实工具190的应用、和/或由群体的用户2-N中的一个或多个使用的本地布局核实工具的应用。
设计竞赛生成器工具310经由请求者账户1和计算机网络110从请求者1接收对电路设计竞赛的请求,并且基于该请求发布用于生成电路设计的竞赛。例如,设计竞赛生成器工具310从请求者接收用于电路设计的规范,并且发布规范和竞赛的条款(例如,电路设计将要提交给在线设计工程系统102的竞赛的时间限制、赢得竞赛的奖励等)。控制计算设备1至N的设计者经由计算机网络110从设计竞赛生成器工具310接收规范和竞赛条款,并通过根据规范生成设计来竞赛。所生成的设计由设计者经由计算设备1至N和计算机网络110提交给在线设计工程系统102。在线设计工程系统102基于规范和竞赛条款评估电路设计以确定竞赛的一个或多个获胜者。结果(诸如一个或多个获胜者的名字以及用户账户1至N中的一个或多个)由在线设计工程系统102在用户账户1至N中的一个或多个内发布,以便由对应用户1至N中的一个或多个经由计算机网络110访问。此外,竞赛的结果经由计算机网络110提供给请求者计算设备1,从而请求者实体1可以经由计算机网络110、在线设计工程系统102和/或信用和借记服务器系统向一个或多个获胜者提供奖赏(诸如奖励)。例如,经由在线设计工程系统102向一个或多个获胜者奖赏多个积分,和/或经由信用和借记服务器系统将现金金额奖赏给一个或多个获胜者,等等。
设计者评级生成器工具326生成电路设计的设计者的评级。例如,基于电路设计在一个或多个集成电路中使用的次数,和/或电路设计经由用户账户1至N中尚未用于创建电路设计的一个或多个用户账户被访问的次数,和/或电路设计被请求者计算设备访问的次数,和/或由其他用户1至N中的一个或多个向评论数据库发布的关于设计者的评论等等,创建电路设计的设计者以1至10的标度被评级。
设计评级生成器工具192基于设计的使用次数来生成设计的评级,并将评级发布到被在线设计工程系统102控制(例如,租赁、拥有等)的一个或多个服务器,以便通过计算设备1至N、请求者计算设备和/或由一个或多个制造实体控制的一个或多个服务器进行访问。在实施例中,基于设计在一个或多个集成电路中被使用的次数和/或对设计进行评论的次数和/或设计通过一个和多个测试的次数和/或设计经由用户账户1至N中尚未用于创建电路设计的一个或多个用户账户被访问的次数和/或设计被请求者计算设备访问的次数来对设计进行评级。为了说明,当第一设计与第二设计相比通过更多数量的测试时,与第二设计相比,第一设计被设计评级生成器工具192分配更高的评级。
设计项目搜索器工具328搜索由请求者计算设备1经由计算机网络110发布到在线设计工程系统102上的设计项目。例如,用户2使用计算设备2来提供用于生成电路设计的项目的搜索查询。搜索查询包括要设计的集成电路的名称,诸如模数转换器、数模转换器、加法器或多路复用器。作为示例,集成电路的名称标识集成电路的功能。搜索查询经由计算机网络110发送到在线设计工程系统102。设计项目搜索器工具328,基于集成电路的名称从连接到在线设计工程系统102的规范数据库160搜索项目(诸如规范)。从项目数据库(诸如规范数据库104)检索项目,并经由计算机网络110将其提供给计算设备2。例如,经由计算机网络110向计算设备2提供包括用于生成电路设计的规范的数据表。项目数据库存储在可搜索存储装置162中。例如,项目数据库包括用于生成设计的规范。此外,在这个示例中,项目数据库包括针对每个规范是否基于规范生成一个或多个设计的指示。当基于规范生成一个或多个设计并且设计通过本文描述的仿真测试时,和/或制造具有一个或多个设计的一个或多个集成电路芯片并且一个或多个集成电路芯片通过一个或多个本文描述的验证测试时,项目由管理服务器152在项目数据库内标记为完整。否则,项目由管理服务器152在项目数据库内标记为不完整。一旦项目被标记为完整,用户2就可以基于数据表内的规范开始生成设计。
应当注意的是,在实施例中,由在线设计工程系统102的任何工具生成的任何输出(例如,版税金额、混淆电路设计、对设计的奖赏、数据表、数据表是否完整的结果、规范是否合规的结果、设计的示意图、设计的布局、测试基于设计生成的原型的测试报告、对设计运行仿真的仿真结果、竞赛的结果、设计者的评级、设计的评级、设计项目等)经由计算机网络110提供给请求者计算设备或具有接收输出的许可的计算设备1至N之一。
在一个实施例中,在线设计工程系统102的本文描述的任何工具都耦合到可搜索存储装置162。例如,设计工具158经由通信介质(诸如串行传送通信介质、并行传送通信介质或通用串行总线通信介质,或其组合)耦合到可搜索存储装置162。作为另一个示例,本文描述的任何工具经由计算机网络110耦合到可搜索存储装置162。
图4A是图示设计的混淆的系统400的实施例的图。请求者1经由请求者计算设备1和计算机网络110向管理服务器152请求基于规范S1的设计。例如,请求者1请求管理服务器152基于规范S1提供电路设计。管理服务器152将请求发布到用户账户1至N。用户1经由用户账户1接受用于生成电路设计的请求,并生成示意图1830。用户1使用计算设备1从电路设计工具数据库206(图2)访问电路设计工具164,以生成电路设计的示意图1830。运行电路设计工具164,以生成表示电路设计组件(诸如晶体管、逻辑门,以及逻辑门之间的晶体管连接之间的连接)的图形。电路设计工具164的其它示例包括被访问以绘制电路设计的示意图1830的计算机软件程序。通过经由计算设备1的输入设备提供一个或多个输入,由用户1绘制示意图1830。经由用户账户1和计算机网络110从用户计算设备1向管理服务器152提供示意图1830。
在生成电路设计的示意图1830后,用户1经由计算设备1和计算机网络110从布局设计工具数据库208访问布局设计工具166,布局设计工具166包括用于基于电路设计的示意图1830生成布局设计127的IP块的表示。例如,在线设计工程系统102经由计算机网络110从计算设备1接收电路设计的示意图1830以及从计算设备1接收要从示意图生成布局的指示(例如,由用户1经由连接到计算设备1的输入设备做出的选择等)。在接收到指示时,在线设计工程系统102允许用户1经由计算设备1从布局设计工具数据库208访问布局设计工具166,以基于示意图1830生成布局设计127。
在一个实施例中,一个或多个制造实体(诸如制造实体1和2)经由网站访问对应的一个或多个制造实体账户,以接收对代工厂接口工具406的访问。一个或多个制造实体操作对应的一个或多个制造计算设备,以经由代工厂接口工具406将布局设计工具数据库208上传到可搜索存储装置162。代工厂接口工具406的示例包括诸如处理器之类的硬件和计算机程序的组合,其中计算机程序允许制造计算设备和在线设计工程系统102之间的通信,以经由计算机网络110将布局设计工具数据库208从制造计算设备发送到管理服务器152,以便将布局设计工具数据库208存储在可搜索存储装置中162。
由管理服务器152将示意图1830存储在电路设计文件中,并且由管理服务器152将布局设计127存储在布局设计文件中。电路设计文件和布局设计文件由管理服务器152存储在设计数据库160中。在将电路设计文件和布局设计文件存储在设计数据库160中之后,在线设计工程系统102的设计服务管理器工具402从设计数据库160访问(诸如读取)电路设计文件和布局设计文件,并经由请求者1的请求者账户1和计算机网络110向请求者计算设备1提供电路设计文件和布局设计文件。例如,设计服务管理器工具402应用通信协议对电路设计文件和布局设计文件进行打包以生成分组,并经由计算机网络110将分组发送给请求者计算设备1。
在实施例中,当用户2-N之一请求电路设计文件和布局设计文件并且用户1未经由用户账户1提供访问电路设计和布局设计文件的许可时,混淆器工具182混淆电路设计的示意图1830的一个或多个部分以生成混淆电路设计。例如,示意图1830的一个或多个组件和/或两个相邻组件之间的一个或多个连接被不透明块或不透明部分覆盖。此外,混淆器工具182混淆布局设计127以生成混淆布局设计。在实施例中,布局设计127被混淆,因为布局设计127的IP层(诸如,瓦片)的布置和/或IP块和/或IP层之间的连接被混淆以便不经由用户账户2-N中的一个或多个在对应计算设备2-N的显示设备上显示。例如,一个或多个覆盖层由混淆器工具182生成并放置在IP层之上和/或放置在IP层的布置之上和/或IP层之间的连接之上。在呈现给用户2至N之前,示意图1830和布局设计127被混淆。在其中其他用户2至N中的一个或多个具有来自在线设计工程系统102的查看示意图1830和布局设计127的许可的实施例中,在经由用户账户2至N之一在用户计算设备2至N之一的显示设备上呈现示意图1830和布局设计127之前,示意图1830和布局设计127不被混淆器工具182混淆或被混淆器工具182去混淆。
在实施例中,电路设计文件和布局设计文件由设计服务管理器工具402访问,以提供给在线设计工程系统102的梭子管理器工具404。梭子管理器工具404确定是否经由计算机网络110从用户账户1至N中的一个或多个接收到预定数量的设计(诸如布局设计或电路设计和对应的布局设计),以便在梭子(例如,晶片等)上实现设计。该实现由一个或多个制造实体执行。在确定从用户账户1至N中的一个或多个接收到预定数量的设计时,梭子管理器工具404经由代工厂接口工具406和计算机网络110向一个或多个代工厂实体的制造计算设备1和2发送请求,以便在梭子上实现预定数量的设计以基于设计制造SoC的原型。例如,梭子管理器工具404经由代工厂接口工具406和制造实体账户1将请求发送到由第一代工厂实体操作的制造计算设备1。作为另一个示例,梭子管理器工具404经由代工厂接口工具406和制造实体账户2将请求发送到由第二代工厂实体操作的制造计算设备2。
在一个实施例中,当经由对应的请求者账户从请求者接收到用于制造原型的指示时,梭子管理器工具404发送对原型的请求。例如,梭子管理器工具404访问数据表,以确定数据表是否包括经由请求者账户1来自请求者1的请求,以便基于数据表中描述的设计的参数来生成原型。作为另一个示例,梭子管理器工具404访问请求者账户1,以确定原型生成选项(诸如原型生成按钮)是否被请求者1经由请求者账户1选择。请求者1使用请求者计算设备1访问请求者账户1,以进一步选择原型生成选项。原型生成选项的选择的接收向梭子管理器工具404指示请求者1希望生成集成电路芯片的原型。
制造实体1使用制造计算设备1来访问制造实体账户1,以接收基于设计制造SoC原型的请求。例如,制造实体1使用制造计算设备1访问由设计工程实体控制的网站,并提供登录信息(诸如电子邮件地址或密码或其组合),以访问由在线设计工程系统102分配给制造实体的制造实体账户1。在线设计工程系统102的认证器工具332确定经由计算机网络110从制造计算设备1接收的登录信息是否是真实的,诸如匹配存储在在线设计工程系统102的登录数据库中的数据。在确定从制造计算设备1接收的登录信息是真实的时,由认证器工具332允许被分配登录信息的制造实体1访问制造实体账户1。另一方面,在确定从制造计算设备1接收的登录信息不是真实的时,制造实体1不被认证器工具332允许访问制造实体账户1。
图4B-1是图示示意图1830和布局设计127的混淆的图。用户1经由计算设备1、用户账户1和计算机网络110从电路设计工具数据库206访问电路设计工具164,以生成子电路设计A(SCA)、子电路设计B(SCB)和子电路设计C(SCC)。子电路设计是电气电路的一个或多个组件。子电路设计A、B和C经由多个连接(例如,导线、链路等)彼此连接,以生成设计A的示意图1830。例如,子电路设计A的输出连接到子电路设计B的第一实例的输入,并且子电路设计B的第一实例的输出连接到子电路设计C的第一实例的输入。此外,子电路设计C的第二实例的输出连接到子电路设计B的第二实例的输入,并且子电路设计B的第二实例的输出连接到子电路设计B的第一实例的输入。实例是组件。例如,相同子电路设计的两个实例是相同的两个组件,诸如两个N型晶体管、两个或逻辑门或两个与逻辑门。
在实施例中,通过应用混淆连接层c(例如,不透明块、不透明形状等),由混淆器工具182对子电路设计C的第二实例的输出与子电路设计B的第二实例的输入之间的连接进行混淆。此外,通过应用混淆连接层a,由混淆器工具182对子电路设计A的输出与子电路设计B的第一实例的输入之间的连接进行混淆。此外,通过应用混淆连接层b,由混淆器工具182对子电路设计B的第一实例的输出与子电路设计C的第一实例的输入之间的连接进行混淆。
应当注意的是,在一个实施例中,根据存储在电路设计工具数据库206中的设计规则,当连接对于电路设计领域的普通技术人员是已知的时,子电路设计B的第二实例的输出与子电路设计B的第一实例的输入之间的连接不会被混淆器工具182通过应用混淆连接层来混淆。在一个实施例中,通过应用混淆连接层,混淆器工具182对子电路设计B的第二实例的输出与子电路设计B的第一实例的输入之间的连接进行混淆。
在实施例中,代替或除了将混淆连接层放置在设计A的连接上,覆盖除设计A的一个或多个引脚输入和/或一个或多个引脚输出之外的整个设计A的混淆层(诸如不透明部分或不透明块)由在线设计工程系统102的混淆器工具182生成并放置在设计A上。混淆层的放置覆盖(诸如隐藏或使得不可见或者使其成为黑盒子)子电路设计A、B和C以及子电路设计A、B和C之间的连接。当两个相邻子电路之间的连接或者示意图1830的子电路或者除设计A的一个或多个引脚输入和/或一个或多个引脚输出之外的示意图1830被混淆时,混淆部分由混淆器工具182生成。
用户1经由用户账户1和用户计算设备1从在线设计工程系统102的布局设计工具数据库208访问布局设计工具166,以基于示意图1830生成设计A的布局设计127(诸如物理布局等)。例如,设计A的物理布局包括以图4B-1中所示的方式被布置和连接(例如,放置和布线等)的单元格C1、C2、C3、C4、C5、C6、C7、C8和C9。例如,放置和布线等。除物理布局的一个或多个引脚输入和/或一个或多个引脚输出之外,单元格的布置和连接由在线设计工程系统102的混淆器工具182用混淆布局(诸如不透明层或不透明部分或不透明形状)覆盖,以隐藏布置和连接使得不具有经由用户账户1来自用户1的用于显示单元格的布置和连接的许可的用户账户2至N中的一个或多个用户账户和/或请求者1的请求者账户1看不到。在实施例中,单元格C1、C2、C3、C4、C5、C6、C7、C8和C9中的每一个被混淆器工具182用混淆层覆盖和/或任何两个相邻单元格之间的连接被混淆器工具182用混淆层覆盖,而不是覆盖所有单元格的整个布置和连接的混淆层。当或者两个相邻单元格之间的连接或布局设计127的单元格或者除设计A的一个或多个引脚输入和/或一个或多个引脚输出之外的整个布局设计127被混淆时,由混淆器工具182生成混淆部分b。
在一个实施例中,当对混淆连接或混淆部分运行诸如仿真测试或核实测试之类的测试时,在混淆连接或混淆部分处输出的任何值也被混淆器工具182混淆。混淆部分的示例包括在块的引脚输入和引脚输出之间的混淆的中间节点(诸如组件或单元格)。混淆的中间节点是设计的组件(诸如栅极或晶体管或单元格)的输出。值输出被混淆并存储在数据表中。核实测试由本地测试台工具165或者由电路设计核实工具188或者由群体或者由本地布局核实工具167或者由图1F的布局设计核实工具190运行。例如,当账户不能访问设计的所有部分但是可以访问混淆设计时,混淆器工具182在经由账户访问数据表之前混淆数据表的具有值的一个或多个部分。
图4B-2是系统450的实施例的图,以图示晶片(诸如半导体基板)上的不同集成电路芯片。在线设计工程系统102的派生物生成器工具324经由计算机网络110和用户账户1向计算设备1提供选项,以将设计A集成在集成电路芯片设计1中。在经由连接到计算设备1的输入设备从用户账户1接收到对选项的选择时,派生物生成器工具324将设计A连接到集成电路设计1的集成电路设计452,集成电路设计452包括一个或多个预定设计。例如,集成电路设计452包括耦合到设计A的一个或多个单元格的一个或多个单元格,并且还包括集成电路芯片设计1的引脚输入和引脚输出。作为另一个示例,集成电路设计452的每个平面上的一个或多个单元格耦合到设计A的对应平面上的一个或多个单元格。例如,集成电路设计452具有平面1和2并且平面1在平面2下方。类似地,设计A具有平面1和2并且平面1在平面2下方。集成电路设计452的平面1的一个或多个单元格耦合到设计A的平面1的一个或多个单元格。此外,集成电路设计452的平面2的一个或多个单元格耦合到设计A的平面2的一个或多个单元格。
在实施例中,在线设计工程系统102的派生物生成器工具324生成设计A的派生物(例如,设计B等)。例如,与设计A相比,在设计B中存在由在线设计工程系统102替换的不同类型的门,但设计B的其余结构与设计A的其余结构相同。作为另一个示例,在设计A的单元格之间存在连接的预定数量的改变,以生成设计B。这种改变是由在线设计工程系统102进行的。作为又一个示例,用设计A的另一个单元格替换一个单元格以生成设计B。替换是由在线派生物生成器工具324进行的。在实施例中,在经由连接到用户计算设备1的输入设备、用户账户1和计算机网络110从用户1接收到选择时,生成派生物。在一个实施例中,设计B由用户1或用户2至N中的另一个用户通过将布局设计工具166应用于设计A而生成。
此外,在经由连接到用户计算设备1的输入设备、用户账户1和计算机网络110接收到来自用户1的、指示设计B将连接到集成电路设计452的选择时,派生物生成器工具324将设计B连接到集成电路设计452,以生成集成电路芯片设计2。
由管理服务器152从用户账户1向梭子管理器工具404提供集成电路芯片设计1和2,以便在晶片上保留用于制造原型的点,例如集成电路芯片设计1和2的集成电路芯片1(ICC1)和集成电路芯片2(ICC2)等。类似地,在实施例中,生成作为集成电路芯片3(ICC3)的原型。梭子管理器工具404经由计算机网络110从用户计算设备1接收要发送到制造实体1以便制造原型的请求。该请求经由名称或字母数字字符标识在其中存储集成电路芯片设计1和2的设计文件。梭子管理器工具404基于设计文件的标识从设计数据库160访问设计文件,并经由制造实体账户1和2将设计文件和对制造实体1和2的请求发送到对应的制造计算设备1和2。例如,梭子管理器工具404经由计算机网络110从用户计算设备1接收要发送到制造实体1以便制造原型的请求。梭子经由制造实体账户1将请求与其中存储了集成电路芯片设计1和2的设计文件发送到制造计算设备1。类似地,梭子管理器工具404经由制造实体账户2将请求与其中集成电路芯片设计1和2被存储到另一个代工厂实体2的设计文件发送到制造计算设备2。代工厂实体1经由制造实体账户1接受用于在晶片上制造原型ICC1、ICC2和ICC3的请求并经由制造实体账户1和计算机网络110将该接受发送到用户账户1。在一个实施例中,用于基于集成电路芯片设计2生成原型的请求由梭子管理器工具404经由用户账户2和计算机网络110从用户计算设备2接收,而不是经由用户账户1和计算机网络110从用户计算设备1接收。
通过使用处理工具(例如,等离子体室等),由制造实体1对晶片进行处理(例如,蚀刻、清洁、沉积、光掩模、溅射、掺杂等),以在晶片上制造和连接电路组件,以生成集成电路芯片ICC1、ICC2和ICC3。通过切割,由代工厂实体1从晶片上移除集成电路芯片ICC1、ICC2和ICC3。
在实施例中,集成电路芯片ICC1由制造实体1通过经由一个或多个连接(例如,串行连接、并行连接、USB连接、一根或多根导线、电缆等)将集成电路芯片ICC1连接到印刷电路板并将印刷电路板连接到制造计算设备1来测试。在一个实施例中,集成电路芯片ICC1被提供(诸如邮寄)给用户1,并且用户1使用用户计算设备1来访问原型测试器和测试报告生成器工具306(图3),以测试集成电路芯片ICC1。例如,原型测试器和测试报告生成器工具306是由管理服务器152的处理器运行的计算机程序,以向集成电路芯片1提供一个或多个输入值并从集成电路芯片接收一个或多个输出值。基于一个或多个输出值和预定的用于通过测试的标准,原型测试器和测试报告生成器工具306确定集成电路芯片1是否通过或未通过测试。应当注意的是,原型测试器和测试报告生成器工具306不被下载到用户计算设备1。例如,管理服务器152从用户账户1接收对下载原型测试器和测试报告生成器工具306的请求,并基于与用户账户1相关联的许可确定用户账户1是否具有下载原型测试器和测试报告生成器工具306的许可。在确定用户账户1不具有下载许可时,管理服务器152不允许经由计算机网络110从在线设计工程系统102下载到用户计算设备1。类似地,测试集成电路芯片ICC2和ICC3。
在一个实施例中,代替集成电路设计452,在创建设计A或设计B之前预先存储在可搜索存储装置162中的任何其它集成电路设计被用于耦合到设计A或设计B。其它集成电路设计由用户或由设计工程实体创建,或者经由计算机网络110从另一个实体获得。
图5A是图示用于生成设计的竞赛的系统500的实施例的图。系统500包括请求者计算设备1、用户计算设备1、用户计算设备N和在线设计工程系统102。请求者1使用请求者计算设备1经由请求者账户1和计算机网络110向在线设计工程系统102发送对设计的请求。在接收到对设计的请求时,在线设计工程系统102的设计竞赛生成器工具310(图3)生成针对设计的竞赛并经由计算机网络110在用户账户1至N内发布竞赛。例如,竞赛被发布在网站上,该网站由控制在线设计工程系统102的设计工程实体控制(例如,租借、拥有等),并且经由用户账户1至N,网站上的竞赛的发布是可访问的。
用户1至N访问用户账户1至N,以查看在对应用户计算设备1至N上显示的竞赛的发布。用户1至N经由对应的用户账户1至N在竞赛中进行登记,并通过应用电路设计工具164和/或布局设计工具164来生成设计。用户1使用计算设备1经由用户账户1和计算机网络110将设计1发送到在线设计的管理服务器152。此外,用户N使用计算设备N经由计算机网络110将设计N发送到在线设计工程系统102的管理服务器152。在线设计工程系统102的设计评级生成器工具192(图3)基于预定的规则生成电路设计1和N的评级(例如,排名等)。例如,当设计1与设计N相比被使用的次数更多时,设计1的排名高于设计N。评级从在线设计工程系统102的设计评级生成器工具192经由计算机网络110和请求者账户1发送到请求者计算设备1。在实施例中,设计1和N的评级被发布在经由网站可访问的用户账户1至N中的一个或多个内。请求者1经由请求者计算设备1基于评级来确定是选择电路设计1还是N。例如,如果设计1的评级大于设计N的评级,那么请求者1经由请求者计算设备1和请求者账户1选择设计1。选择设计1的指示从请求者计算设备1经由请求者账户1和计算机网络110发送到奖励生成器工具316。
在经由计算机网络110从请求者计算设备1接收到选择设计1的指示后,在线设计工程系统102的奖励生成器工具316(图3)生成对设计1的奖励并经由计算机网络110将奖励发送给赢得竞赛的用户1的用户账户1。例如,在线设计工程系统102与信用和借记系统通信,以经由计算机网络110将预定的货币金额记入用户1的存款账户。应当注意的是,在实施例中,用户1至N的存款账户经由计算机网络110连接到信用和借记系统。
在一个实施例中,通过奖励生成器工具316接收奖励的金额并将其存储在可搜索存储装置162内。例如,请求者1操作请求者计算设备1,以经由计算机网络110向奖励生成器工具316提供奖励的美元金额,并且奖励生成器工具316将该美元金额存储在可搜索存储装置162内,以便稍后将奖励提供给用户账户1。
图5B是设计挑战的实施例的图,当请求者1在请求者账户1内发布对设计的请求时,该设计挑战被发布在用户账户1至N内。请求者1登录到请求者账户1,以向管理服务器152指示制造嵌入式超低功率电压参考的原型的设计挑战。例如,请求者1操作请求者计算设备1,以经由请求者账户1和计算机网络110提交数据表内用于生成设计挑战的规范的参数。设计挑战是用于基于规范生成设计的挑战。此外,请求者1还在数据表内指示用于交付原型的截止日期。管理服务器152的设计竞赛生成器工具310接收以数据表的形式实施的设计挑战,并将设计挑战发布到用户账户1至N。例如,设计竞赛生成器工具310在用户账户1至N内发布数据表以及将向前三名获胜者提供现金奖赏的帖子。此外,设计竞赛生成器工具310在用户账户1至N内发布接受设计挑战的所有参与者(诸如用户1至N)将保留他们经由对应用户账户1创建的设计的知识产权所有权。作为示例,数据表构建器工具303从用户计算设备1接收由计算机网络110和用户账户1对设计挑战的接受。
图6是图示通过其生成电气电路的设计的串行过程的系统600的实施例的图。请求者1向代工厂实体提交用于生成集成电路的第一设计(诸如设计1)的请求。请求者1向代工实体提交请求的成本是$z1。此外,集成电路的设计将完全符合请求者提供的规范的成功概率是β1%。一旦集成电路被交付,请求者1就请求另一个集成电路的第二设计(诸如设计2)。类似地,基于第三设计和第四设计(诸如设计3和设计4)的集成电路的请求和完成是串行过程。
图7是图示其中由在线设计工程系统102生成电气电路的多个设计的并行过程的系统700的实施例的图。例如,在与执行串行过程花费相同或更少的时间量内,生成用于制造电气电路的原型的第一至第四设计。请求者1经由请求者账户1向在线设计工程系统102提交用于生成集成电路的设计的请求。在线设计工程系统102将用于生成设计的请求发布到用户账户1至N,并且请求经由网站在用户账户1至N内是可访问的。用户1至N应用电路设计工具164和布局设计工具166,以生成集成电路的第一至第四设计。第一至第四设计由用户1到4经由对应的用户账户1至4以并行方式生成,其中与图6的串行过程相比,花费了更少量的时间。在线设计工程系统102的设计仿真报告生成器工具184(图3)确定第一和第二设计符合由请求者1经由请求者账户1提供的设计的规范。请求者1经由请求者账户1选择符合要求的第一和第二设计中的一个或多个。在线设计工程系统102向信用和借记服务器系统发送分别向生成第一和第二设计的用户1和2的存款账户记入$x1和$x2的请求。用于向在线设计工程系统102提交对设计的请求的请求者1的成本是$z2,其低于$z1。此外,集成电路的设计将完成并且符合请求者提供的规范的成功概率是β2%,其大于β1%。
图8是图示集成电路的原型的制造和测试的实施例的图。用户1经由用户计算设备1和用户账户1访问布局设计工具数据库208,以便访问来自多个单元格C1至C4的单元格C2和C4。单元格C2和C4由用户1经由用户计算设备1的输入设备放置,以创建布局设计127。布局设计工具数据库208存储关于布局设计127的不同单元格之间的键合导线的规则。当用户1经由用户计算设备1和用户账户1在布局设计127的不同单元格之间键合导线时,关于键合的规则由布局设计工具166应用。关于键合的规则的示例包括键合焊盘在布局设计127上的布置、布局设计127的长度与宽度的最小比率、以及每根导线的长度。此外,布局设计工具数据库208存储关于具有布局设计127的集成电路的包装的规则。关于包装的规则的示例包括集成电路的包装的维度、包装的材料、从包装延伸的多个引脚、以及包装的两个相邻引脚之间的距离。
图1F的布局设计核实工具190运行模块化测试流程,以测试布局设计127的每个单元格。此外,图1F的电路设计核实工具188、布局设计核实工具190和图3的原型测试器和测试报告生成器工具306中的每一个包括可重用的测试模块。可重用的测试模块对于设计的相同组件是可重用的。例如,当设计1包括或门并且设计2也包括或门时,运行电路设计核实工具188的相同测试模块,以测试这两个或门。如本文所使用的,模块是工具的一部分。此外,由设计工程实体向用户1至N提供常见的测试夹具(诸如将集成电路的原型连接到计算设备以便测试原型的电缆和用于测试原型的模拟器)。例如,用户1经由用户账户1请求用于测试集成电路的原型的公共测试夹具。在接收到请求时,管理服务器152从用户账户1标识用户1的地址信息(诸如住所地址或工作地址)。管理服务器152经由邮件服务向用户1的住所或工作地址发送公共测试夹具以便测试集成电路的原型。
本文描述的在线设计工程系统102为芯片(诸如集成电路的原型)提供容易的设计环境。此外,在线设计工程系统102提供了一种快速且经济地验证硅上的电路设计的方法。例如,在两个阶段中,提供具有高度可预测性和与硅相关的设计,并且由在线设计工程系统102控制的实验室(诸如代工厂)服务物理验证过程,其中原型测试器和测试报告生成器工具306测试集成电路的原型。此外,由在线设计工程系统102提供诸如调节器和数据转换器之类的组件的经过充分核实的库,例如设计数据库160(图2)等。例如,集成电路芯片设计存储在设计数据库160中,并且随后由用户1至N之一经由分配给该用户的用户账户1至N之一或者由请求者1经由请求者账户1等从设计中访问数据库160访问。任何微小的胶合或额外电路(例如,电路设计或布局设计)都被封装在新的块中并遵循认证和鉴定过程,诸如由设计仿真报告生成器工具184管理的过程。
此外,由在线设计工程系统120提供了可扩展的后端处理,其包括预先设计和预先限定的包装和键合图、敏捷标记和组装过程、以及处理部分数的高度变化和功能差异。此外,其中每个组件或单元格(诸如块)使用仿真程序(诸如图1F的电路设计核实工具188或图1F的布局设计核实工具190)来测试的统一的标准化测试方法和流程是可扩展的,使得使用相同组件的每个集成电路芯片设计使用相同的仿真程序而没有针对测试的限制。在实施例中,电气和电子工程师协会(IEEE)的模拟测试和诊断标准由在线设计工程系统102经由计算机网络110从由IEEE管理的IEEE数据库访问,并且由电路设计核实工具188、布局设计核实工具190以及图3的原型测试器和测试报告生成器工具306应用,以测试设计和设计的原型。例如,IEEE标准由设计仿真报告生成器工具184(图3)和/或原型测试器和测试报告生成器工具306(图3)等集成和应用。
图9A是由在线设计工程系统102运行以生成布局设计127的在线设计工程过程900的实施例的图。请求者1经由请求者计算设备1访问由设计工程实体控制的网站,以访问请求者账户1。在访问请求者账户1时,请求者1使用请求者计算设备1的输入设备来提交对电气电路的设计的请求。例如,请求者1提交包括用于生成电气电路的设计的参数的规范。管理服务器152经由计算机网络110接收请求,并在用户账户1至N内发布请求和规范以便参与群体。
用户1至N使用对应的(诸如相应的)用户计算设备1至N来访问网站,以进一步访问对应的用户账户1至N来查看对设计和规范的请求。在查看请求者和规范时,用户1至N使用对应的用户计算设备1至N来经由对应的(诸如相应的)用户账户1至N从电路设计工具数据库206访问电路设计工具164,以基于规范创建N个电路设计。此外,用户1至N使用对应的用户计算设备1至N经由对应的用户账户1至N从可搜索存储装置162访问本地测试台工具165,以测试N个电路设计,以生成针对N个电路设计的N个仿真报告或用测试的结果更新数据表。数据表构建器工具318用测试的结果更新数据表。在一个实施例中,用户1至N使用对应的用户计算设备1至N来经由对应的用户账户1至N向自动认证服务器112指示运行电路设计核实工具188。当电路设计核实工具188被运行时,自动认证服务器112为N个电路设计生成N个仿真报告,或者数据表构建器工具318用测试的结果更新数据表。
此外,用户1至N使用对应的用户计算设备1至N经由对应的用户账户1至N从布局设计工具数据库208访问布局设计工具166,以基于N个电路设计创建N个布局设计。此外,用户1至N使用对应的用户计算设备1至N经由对应的用户账户1至N从可搜索存储装置162访问本地布局核实工具167,以测试N个布局设计,以生成针对N个布局设计的N个签核(signoff)报告或用测试的结果更新数据表。数据表构建器工具318用测试的结果更新数据表。在一个实施例中,用户1至N使用对应的用户计算设备1至N来经由对应的用户账户1至N向自动认证服务器112指示运行布局设计核实工具190。当布局设计核实工具190被运行时,自动认证服务器112针对N个布局设计生成N个签核报告,或者数据表构建器工具318用测试的结果更新数据表。
在一个实施例中,代替或除了生成包括测试电路设计的结果的仿真报告之外,结果还被集成在包括规范的数据表内。此外,代替或除了生成包括测试布局设计的结果的签核报告之外,结果还被集成在包括规范的数据表中。
图9B是用于图示在线设计工程系统102在制造集成电路芯片中的使用的设计工程过程920的实施例的框图。如图9B中所示,在设计工程过程920的阶段1,请求者1使用请求者计算设备1并访问请求者账户1,以生成对多个集成电路芯片设计的多个请求。请求者1使用请求者计算设备1的输入设备来提供用于生成多个集成电路设计的参数。请求和参数从请求者计算设备1经由计算机网络110发送到在线设计工程系统102的管理服务器152。在接收到请求和参数时,管理服务器152将请求和参数发布到用户账户1至N,以参与群体来基于参数生成规范S1到S3。用户1至N经由相应的计算设备1至N访问相应的用户账户1至N,以生成规范。例如,用户1至N添加附加参数以生成规范S1至S3。
在线设计工程系统102的规范完整性检查器工具302确定规范S1至S3是否完整。例如,规范完整性检查器工具302确定具有规范S1到S3的数据表内的所有字段是否具有参数的值。此外,在接收到请求和规范时,在线设计工程系统102的规范合规性检查工具320确定规范S1至S3是否符合规范合规性规则,诸如参数的值是否在对应的预定范围内。
规范S1至S3经由计算机网络110和请求者账户1从规范合规性检查工具320提供给请求者计算设备1,以便选择规范S1至S3中的一个或多个。在经由请求者账户1从请求者计算设备1接收到选择规范S1和S2时,在设计工程过程920的阶段2,管理服务器152通过经由用户账户1至N向用户计算设备1至N提供对规范S1和S2的访问来参与群体。请求者1经由请求者计算设备1和请求者账户1向管理服务器152指示拒绝规范S3。管理服务器152向由用户1至N之一访问以生成规范S3的用户账户1至N之一指示拒绝规范S3。
用户1基于规范S1和S2生成电路设计,有时在本文中称为前端设计。此外,对电路设计进行测试以生成仿真报告。例如,设计仿真报告生成器工具184(图3)对基于规范S1和S2生成的电路设计运行一个或多个仿真。设计仿真报告生成器工具184确定基于规范S1生成的电路设计通过一个或多个仿真,并且基于规范S2生成的电路设计未通过一个或多个仿真。在实施例中,这个确定是前端过程的完成,其发生在设计工程过程920的阶段3。管理服务器152向由用户1至N访问以基于规范S2生成电路设计的用户账户1指示一个或多个仿真的失败。
仿真报告包括电路设计是否通过或未通过测试。仿真报告从图3的设计仿真报告生成器工具184经由计算机网络110和请求者账户1发送到请求者计算设备1。请求者1经由请求者账户1查看在请求者计算设备1的显示设备上显示的仿真报告,以为基于规范S1生成的电路设计选择仿真报告之一。
对基于规范S1生成的电路设计的仿真报告的选择从请求者计算设备1经由请求者账户1和计算机网络110发送到管理服务器152。管理服务器152向用户账户1指示该选择。用户1查看发布到用户账户1的选择,并且为基于规范S1生成的电路设计生成布局设计,本文有时称为后端设计。此外,在对布局设计运行测试,以生成签核报告。例如,设计仿真报告生成器工具184(图3)对基于规范S1生成的布局运行一个或多个仿真。设计仿真报告生成器工具184确定基于规范S1生成的布局设计通过一个或多个仿真。这个确定是前端过程的完成,其发生在设计工程过程920的阶段4。签核报告指示为电路设计示意图SCH1和SCH2生成的布局设计通过一个或多个测试。
签核报告从图3的设计仿真报告生成器工具184经由计算机网络110和请求者账户1被发送到请求者计算设备1。请求者1经由请求者账户1查看显示在请求者计算设备1的显示设备上的签核报告。请求者1使用请求者计算设备1经由请求者账户1指示要基于为根据电路设计示意图SCH1和SCH2生成的布局设计的签核报告而生成原型。
在经由计算机网络110从请求者计算设备1接收到要生成原型的指示时,在线设计工程系统102的梭子管理器工具302(图3)经由计算机网络110和制造实体账户1向制造计算设备1提供包括用于规范S1的布局设计的文件、包括用于规范S1的电路设计的文件、以及包括规范S1的文件。制造实体1根据用于规范S1的布局设计制造集成电路芯片的原型,并经由邮寄服务将原型发送到设计工程实体。在从代工厂厂接收到原型时,在设计工程实体的控制下运行原型测试器和测试报告生成器工具306(图3),以测试原型来验证原型或使原型失效。验证或失效在设计工程过程920的阶段5进行。在确定原型有效时,原型由设计工程实体经由邮寄服务发送到制造实体1,以便基于原型制造集成电路芯片。这发生在设计工程过程920的阶段6。
在一个实施例中,在线设计工程系统102的派生物生成器工具324(图3)将布局设计与集成电路设计452集成,以生成集成电路芯片设计。在实施例中,设计仿真报告生成器工具184对集成电路芯片设计运行仿真,以确定集成电路设计是否通过或未通过仿真。在确定集成电路芯片设计通过仿真时,在实施例中,在设计工程过程900的阶段4处完成后端过程。在线设计工程系统102的梭子管理器工具302(图3)经由计算机网络110和制造实体账户1向制造计算设备1提供包括用于规范S1的集成电路芯片设计的文件、包括用于规范S1的布局设计的文件、包括用于规范S1的电路设计的文件、以及包括规范S1的文件。制造实体1根据集成电路芯片设计制造集成电路芯片的原型,并经由邮寄服务将原型发送到设计工程实体。在从代工厂厂接收到原型时,原型测试器和测试报告生成器工具306(图3)由设计工程实体运行,以测试原型来验证原型或使原型失效。验证或失效在设计工程过程920的阶段5进行。在确定原型有效时,原型由设计工程实体经由邮寄服务发送到制造实体1,以便基于原型制造集成电路芯片。这发生在设计工程过程920的阶段6处。
应当注意的是,在实施例中,在设计工程过程920的阶段2结束时,分配给请求者1的存款账户由信用和借记服务器系统根据创建设计和从其中一个设计的原型制造集成电路芯片的总成本(例如,100%等)的预定百分比(例如,10%等)借记。该预定百分比由版税生成器工具304生成。存款账户被借记,以便由信用和借记服务器系统将预定百分比记入用户1至N中生成规范S1至S3的一个或多个用户的存款账户。此外,在设计工程过程920的阶段3结束时,信用和借记服务器系统根据总成本的另一个预定百分比(例如,20%等)借记请求者1的存款账户。该另一个预定百分比由版税生成器工具304生成。存款账户被借记,以便由信用和借记服务器系统将该另一个预定百分比记入用户1至N中、生成满足规范S1和S2并通过一个或多个仿真测试的电路设计的一个或多个用户的存款账户。此外,在设计工程过程920的阶段4结束时,信用和借记服务器系统根据总成本的另一个预定百分比(例如,30%等)借记请求者1的存款账户。该另一个预定百分比由版税发生器工具304生成。存款账户被借记,以便由信用和借记服务器系统将该另一个预定百分比记入生成满足规范S1并通过一个或多个仿真测试的布局设计的用户1至N的存款账户。在设计工程过程900的阶段5结束时,信用和借记服务器系统根据总成本的另一个预定百分比(例如,30%等)借记请求者1的存款账户。存款账户被借记,以便由信用和借记服务器系统将该另一个预定百分比记入生成满足规范S1并且基于其生成的原型被一个或多个测试验证的布局设计的用户1的存款账户。
图9C是用于图示在线设计工程系统102在制造集成电路芯片中的使用的设计工程过程930的实施例的框图。如图9C中所示,在设计工程过程930的阶段1,请求者1使用请求者计算设备1并访问请求者账户1,以生成对多个集成电路芯片设计的多个请求。请求者1使用请求者计算设备1的输入设备来提供用于生成多个集成电路设计的参数。请求和参数从请求者计算设备1经由计算机网络110发送到在线设计工程系统102的管理服务器152。在接收到请求和参数时,管理服务器152将请求和参数发布到用户账户1至N,以参与群体来基于参数生成规范S1至S3。用户1至N经由相应的计算设备1至N访问相应的用户账户1至N以生成规范。例如,用户1至N添加附加参数以生成规范S1到S3。
在线设计工程系统102的规范完整性检查器工具302确定规范S1至S3是否完整。例如,规范完整性检查器工具302确定规范S1至S3内的所有字段是否具有参数的值。此外,在接收到请求和规范时,在线设计工程系统102的规范合规性检查工具320确定规范S1至S3是否符合规范合规性规则,诸如参数的值是否在对应的预定范围内。
规范S1至S3经由计算机网络110和请求者账户1从规范合规性检查工具320提供给请求者计算设备1,以便选择规范S1至S3中的一个或多个。在经由请求者账户1从请求者计算设备1接收到选择规范S1时,在设计工程过程930的阶段2,管理服务器152通过经由用户账户1至N向用户计算设备1至N提供对规范S1的访问来参与群体。请求者1经由请求者计算设备1和请求者账户1向管理服务器152指示拒绝规范S2和S3。管理服务器152向用户账户1至N中创建规范S2和S3的的一个或多个用户指示拒绝规范S2和S3。
用户1经由用户账户1基于规范S1生成电路设计示意图SCH1。此外,用户2经由用户账户2基于规范S1生成电路设计示意图SCH2。此外,用户3经由用户账户3基于规范S1生成电路设计示意图SCH3。此外,对电路设计示意图SCH1至SCH3运行测试,以生成仿真报告。例如,设计仿真报告生成器工具184(图3)对基于规范S1生成的电路设计示意图SCH1至SCH3运行一个或多个仿真。设计仿真报告生成器工具184确定电路设计示意图SCH1和SCH2通过一个或多个仿真,而电路设计示意图SCH3未通过一个或多个仿真。这个确定是在设计工程过程930的阶段3发生的前端过程的完成。管理服务器152向由用户3访问以创建电路设计示意图SCH3的用户账户3指示拒绝电路设计示意图SCH3。
仿真报告包括电路设计示意图SCH1至SCH3是否通过或未通过测试。仿真报告从图3的设计仿真报告生成器工具184经由计算机网络110和请求者账户1发送到请求者计算设备1。请求者1经由请求者账户1查看在请求者计算设备1的显示设备上显示的仿真报告,以选择用于电路设计示意图SCH1和SCH2的仿真报告。
对电路设计示意图SCH1和SCH2的仿真报告的选择从请求者计算设备1经由请求者账户1和计算机网络110发送到管理服务器152。管理服务器152向用户账户1和2指示该选择。用户1查看发布到用户账户1的电路设计示意图SCH1的选择,并从电路设计示意图SCH1生成布局设计。类似地,用户1查看发布到用户账户2的电路设计示意图SCH2的选择,并从电路设计示意图SCH2生成布局设计。此外,对布局设计运行测试,以生成多个签核报告。例如,设计仿真报告生成器工具184(图3)对从电路设计示意图SCH1和SCH2生成的布局设计运行一个或多个仿真。设计仿真报告生成器工具184确定为电路设计示意图SCH1和SCH2生成的布局设计二者都通过了一个或多个仿真。这个确定是在设计工程过程930的阶段4发生的前端过程的完成。签核报告指示为电路设计示意图SCH1和SCH2生成的布局设计通过了一个或多个测试。
签核报告从图3的设计仿真报告生成器工具184经由计算机网络110和请求者账户1发送到请求者计算设备1。请求者1经由请求者账户1查看显示在请求者计算设备1的显示设备上的签核报告。请求者1使用请求者计算设备1经由请求者账户1指示将基于签核报告来为从电路设计示意图SCH1和SCH2生成的布局设计生成原型。
在经由计算机网络110从请求者计算设备1接收到要生成原型的指示后,在线设计工程系统102的梭子管理器工具302(图3)经由计算机网络110和制造实体账户1向到制造计算设备1提供包括用于电路设计示意图SCH1的布局设计的文件、包括电路设计示意图SCH1的文件,以及包括规范S1的文件。此外,在线设计工程系统102的梭子管理器工具302经由计算机网络110和制造实体账户1向制造计算设备1提供包括用于电路设计示意图SCH2的布局设计的文件、包括电路设计示意图SCH2的文件,以及包括规范S1的文件。在设计工程过程930的阶段5,制造实体1根据从电路设计示意图SCH1生成的布局设计制造集成电路芯片的原型,并经由邮寄服务将原型发送到设计工程实体。此外,在设计工程过程930的阶段5,制造实体1根据从电路设计示意图SCH2生成的布局设计制造集成电路芯片的原型,并经由邮寄服务将原型发送到设计工程实体。在从制造实体1接收到电路设计示意图SCH1和SCH2的原型后,原型测试器和测试报告生成器工具306(图3)由设计工程实体运行,以测试原型来验证原型或使原型失效。验证或失效是在设计工程过程930的阶段6执行的。在确定从电路设计示意图SCH1生成的原型有效后,在设计工程过程930的阶段7,由设计工程实体经由邮寄服务将原型发送到制造实体1,以便基于原型制造集成电路芯片。另一方面,在确定从电路设计示意图SCH2生成的原型无效时,原型不由设计工程实体经由邮寄服务发送到制造实体1。管理服务器152向由用户2访问以创建从其制造该原型的布局设计的用户账户2指示从电路设计示意图SCH2生成的原型的无效。
在一个实施例中,在确定从电路设计示意图SCH2生成的原型无效时,原型测试器和测试报告生成器工具306经由计算机网络110向用户账户2指示无效。用户2改变从电路设计示意图SCH2生成的布局设计,以生成改变的布局设计。改变的布局设计以与测试从电路设计示意图SCH2生成的布局设计相同的方式进行测试。此外,在通过测试之后,管理服务器152确定将改变的布局设计存储在设计数据库160中以便通过用户账户1至N访问。在实施例中,基于用户2是否已将改变的布局设计指示为私有或公开,在将改变的布局设计显示在用户账户1和用户账户3至N内之前,以上述方式对改变的布局设计进行混淆。
应当注意的是,在实施例中,在设计工程过程930的阶段3结束时,分配给请求者1的存款账户由信用和借记服务器系统根据创建设计和从其中一个设计的原型制造集成电路芯片的总成本(例如,100%等)的预定百分比(例如,30%等)借记。存款账户被借记,以便由信用和借记服务器系统将该预定百分比记入生成电路设计示意图SCH1至SCH3的用户1、2和3的存款账户。此外,在设计工程过程930的阶段6结束时,信用和借记服务器系统根据总成本的另一个预定百分比(例如,30%等)借记请求者1的存款账户。存款账户被借记,以便由信用和借记服务器系统将该另一个预定百分比记入基于其原型通过验证的电路设计示意图SCH1生成布局设计的用户1的存款账户。此外,在设计工程过程930的阶段7结束时,信用和借记服务器系统根据总成本数的另一个预定百分比(例如,10%等)借记请求者1的存款账户。存款账户被借记,以便由信用和借记服务器系统将该另一个预定百分比记入生成从在设计工程过程930的阶段7为其制造了集成电路芯片的电路设计示意图SCH1生成的布局设计的用户1的存款账户。
图10是电气电路的组件的规范1002的实施例的图。规范1002的参数的示例包括作为电气电路的输入提供的操作电压的最小值和最大值、输入静止电流的最大值、从电气电路输出的电流的最小值、以及从电气电路输出的短路电流的量。
图11是系统1100的实施例的图,以图示在线设计工程系统102经由用户账户1至N提供对用户1至N的访问,以便生成设计并从该设计制造集成电路。由请求者1经由请求者计算设备1和计算机网络110向在线设计工程系统102提供对集成电路芯片的原型的请求。在接收到请求时,在线设计工程系统102提供各种优点,诸如搜索具有各种设计的可搜索存储装置162;在批量生产集成电路芯片之前,对集成电路芯片的设计或原型进行试验(诸如测试);通过将一种设计而不是另一种设计与集成电路设计452耦合来生成集成电路芯片设计的派生物;在生成集成电路芯片的原型的每个阶段期间,经由用户账户1至N和在线设计工程系统102由对应的用户1至N提供给请求者1的直接设计者支持;以及可扩展和专注的研究和开发。在实验室(fab)中制造集成电路芯片的原型,这由本文描述的一个或多个制造实体控制。当原型测试器和测试报告生成器工具306(图3)对原型运行测试时,在线设计工程系统102提供对原型的审查。
图12是系统1200的实施例的图,以图示请求者1(有时在本文中称为客户)与群体之间的相互作用,以制造集成电路芯片的原型。客户的示例包括初创公司、产品公司和中小型企业(SMB)等。群体的示例包括电路设计的设计者、集成电路芯片的开发者、设计的测试员、集成电路芯片的原型的测试员、请求集成电路芯片的设计和/或原型的客户、代工实体、以及设计和/或集成电路芯片的营销商。客户经由在线设计工程系统102向群体提交对集成电路芯片的原型的请求。群体经由在线设计工程系统102用集成电路芯片的原型响应该请求,以便通过客户审查。
图13A是由在线设计工程系统102运行的设计工程方法1300的实施例的图。请求者1(诸如集成电路提供者或集成电路开发者或IoT开发者或SoC开发者)使用请求者计算设备1经由请求者账户1向在线设计工程系统102发送用于生成设计的规范。例如,请求者1使用请求者计算设备1经由网站访问请求者账户1,以在请求者账户1上发布用于生成集成电路芯片设计和规范的请求。规范包括设计的特征(诸如参数)、生成集成电路芯片设计的成本,以及用于生成集成电路芯片设计的时间表。
在接收到请求和规范时,管理服务器152在设计数据库160中搜索形成集成电路芯片设计的一部分(诸如组件设计)的设计。此外,管理服务器152搜索不是请求者或用户的第三方的数据库,以确定该数据库包括形成集成电路芯片设计的另一个部分(诸如组件设计)的设计。管理服务器152确定要生成集成电路芯片设计的附加部分(诸如附加组件设计)。除了用于生成集成电路芯片设计的附加部分的请求之外,管理服务器152还将请求和规范发布到用户账户1至N。用户1至N使用对应的计算设备1至N来访问对应的(诸如相应的)用户账户1至N。由用户1通过应用在线设计工程系统102生成的设计通过本文描述为由在线设计工程系统102运行的仿真测试,并且该设计是集成电路芯片设计的附加部分。
管理服务器152确定请求者2是否已经经由请求者账户2提供了由附加部分满足的规范的参数。一旦确定,管理服务器152经由计算机网络110和请求者账户2向请求者2通知该附加部分的可用性。
图13B是图13A的设计工程方法1300的继续的实施例的图。如图13B中所示,在经由请求者账户1从请求者1接收到对集成电路芯片设计的请求时,设计竞赛发生器工具310发布用于生成集成电路芯片设计的附加部分的竞赛。例如,竞赛由设计竞赛生成器工具310在经由网站访问的网页上发布。在访问用户账户1至N中的任一个后,访问该网页。随着竞赛的发布,集成电路芯片设计的规范和对集成电路芯片设计的请求由设计竞赛生成器工具310发布在网页上。竞赛的结果和竞赛的获胜者(例如,用户1等)由设计竞赛生成器工具310在网页上发布。一旦集成电路芯片设计的附加部分已经赢得了竞赛,诸如通过了本文描述的一个或多个仿真测试,附加部分或整个集成电路芯片设计就被存储在可搜索存储装置162内。针对附加部分或整个集成电路芯片设计,诸如用户2至N之类的成员经由对应的用户账户2至N提交出价,或者请求者2经由请求者账户2提交出价。出价被发送到由用户1访问的用户账户1,以生成附加部分。用户1使用用户计算设备1来访问用户账户1,以接受其中一个出价。接受其中一个出价的指示经由用户账户1和计算设备110从用户计算设备1经由对应的用户账户2至N发送到用户计算设备2至N之一或经由请求者账户2发送到请求者计算设备2。信用和借记服务器系统从请求者2或用户2至N之一的存款账户借记被接受的出价的金额,并将该金额记入用户1的存款账户。
图13C是图示在线设计工程系统102的功能的设计工程方法1300的继续的实施例的图。设计项目搜索器工具330(图3)允许用户1至N经由对应的用户账户1至N从连接到管理服务器152的在线设计工程系统102的项目数据库搜索任何项目(诸如不完整的项目),以便生成集成电路的设计。项目由请求者1和2经由对应的请求者账户1和2发布到网站。例如,项目包括用于设计的规范或用于生成设计的参数。由设计项目搜索器工具300根据由用户1至N之一经由对应的用户账户1至N提供的集成电路的名称访问规范,以搜索项目。例如,用户1使用用户计算设备1访问网站,以进一步访问用户账户1。用户1在通过管理服务器152在用户计算设备1的显示设备上显示的项目搜索字段内输入集成电路的名称,并选择在项目搜索字段之外显示的提交选项(诸如提交按钮)。在接收到集成电路的名称时,设计项目搜索器工具330确定接收到的名称是否与用于要生成设计的规范内的名称(诸如集成电路的名称)匹配。响应于确定接收到的名称与规范内的名称匹配,设计项目搜索器工具330访问项目并经由计算机网络110将项目与规范发送到用户计算设备1以便通过用户1经由用户帐户1访问规范。在实施例中,除了用于集成电路设计的规范之外,请求者1使用请求者账户1来将生成设计的设计者的技能和/或专业知识发布到网站。
当集成电路芯片设计的附加部分通过本文描述的一个或多个仿真测试(诸如由本地测试台工具165和/或电路设计核实工具188和/或本地布局核实工具167和/或布局设计核实工具190进行的测试)时,管理服务器152认证附加部分并将附加部分存储在设计数据库160中。此外,另一方面,当集成电路芯片设计的附加部分未通过本文描述的一个或多个仿真测试时,管理服务器152将附加部分提供给用户账户1并指示附加部分未通过一个或多个仿真测试。
此外,在实施例中,当附加部分通过由请求者1经由请求者账户1设置的、用于制造具有附加部分的集成电路芯片的成本阈值时,管理服务器152将附加部分存储在设计数据库160中。例如,当管理服务器152确定制造具有附加部分的集成芯片的成本小于或等于预定成本时,附加部分通过成本阈值。另一方面,当附加部分未通过由请求者1经由请求者账户1设置的成本阈值时,管理服务器152将附加部分提供给用户账户1并指示附加部分不满足成本阈值。例如,当管理服务器152确定制造具有附加部分的集成芯片的成本大于预定成本时,附加部分未通过成本阈值。
在这个实施例中,附加部分的每个组件与预定成本相关联,其存储在可搜索存储装置162中。管理服务器访问预定成本并总计附加部分的组件的成本,以确定附加部分的总成本,以进一步确定附加部分是否满足成本阈值。例如,如果总和超过成本阈值,那么管理服务器152确定超过并且不满足成本阈值。另一方面,如果总和不超过成本阈值,那么管理服务器152确定不超过并且满足成本阈值。
图14A是图示使用在线设计工程系统102运行的设计工程方法1400的流程的图。希望获得集成电路芯片的原型的客户(诸如请求者1)经由请求者账户1和计算机网络110向在线设计工程系统102发送来自请求者计算设备1的、对集成电路芯片的原型的设计的请求。例如,客户向管理服务器152提交规范以便上传并发布到可搜索存储装置162。设计搜索器工具322在产品存储器(诸如设计数据库160)内搜索,以基于规范确定满足规范的参数的设计是否存储在设计数据库160中。在确定设计满足参数时,设计搜索器工具322经由计算机网络110和请求者账户1向客户提供设计的指示。当发送指示时,在确定设计被该设计的设计者(诸如用户1)指定为私有时,混淆器工具182混淆设计的一个或多个部分。对基于该设计的集成电路芯片的原型的订单从请求者计算设备1经由请求者账户1发送到制造实体账户1,以便制造原型。制造实体1操作制造计算设备1,以访问制造实体账户1来接收订单。
另一方面,在确定存储在设计数据库160内的设计中没有一个与规范的参数匹配时,设计搜索器工具322经由制造实体账户1和计算机网络110向由制造实体1控制的制造计算设备1发送对设计和规范的请求。制造计算设备1由制造实体1操作,以搜索制造实体1可访问但设计工程实体不能访问的IP库。此外,制造计算设备1由制造实体1操作,以经由制造实体账户1访问设计数据库160。在访问设计数据库160时,制造实体1操作制造计算设备1,以在设计数据库160搜索设计,以确定设计是否存储在设计数据库160中。在确定设计存储在IP库中或设计数据库160中时,制造计算设备1经由计算机网络110和制造实体账户1向管理服务器152提供设计的指示。管理服务器152经由计算机网络110和请求者账户1将设计的指示转发到请求者1。在接收到指示时,从请求者计算设备1经由请求者账户1向制造实体账户1发送对基于该设计的集成电路芯片的原型的订单,以便制造原型。另一方面,在从制造计算设备1经由制造实体账户1和计算机网络110接收到集成电路芯片的设计未存储在IP库中和设计数据库160中的确定时,在线设计工程系统102的项目发布器工具330发布用于生成集成电路芯片的设计的项目。
在一个实施例中,在确定存储在设计数据库160内的设计都不匹配规范的参数时,管理服务器152经由群体的用户账户1至N向用户计算设备1至N发送请求,以便确定用户1至N中的任何一个是否具有基于规范的设计的知识。用户1至N操作对应的用户计算设备1至N,以经由对应的用户账户1至N和计算机网络110向管理服务器152响应关于设计的知识的请求。管理服务器152经由计算机网络110和请求者账户1向请求者计算设备1发送用户1至N的响应。
此外,在从制造计算设备1经由制造实体账户1和计算网络110接收到设计不可行(诸如要对设计进行更多工作)、或者设计超过成本阈值、或者设计未通过一个或多个仿真测试或其组合的确定时,在线设计工程系统102的项目发布器工具330(图3)发布使设计可行的项目。该项目发布在网站上,并由用户1至N经由用户计算设备1至N以及用户账户1至N和计算机网络110访问。
在一个实施例中,希望了解集成电路芯片的更多信息的客户将关于集成电路芯片的设计的问题(problem)或疑问(question)或关于集成电路芯片的设计者的疑问发布到在线设计工程系统102,使得用户1至N中的一个或多个经由用户账户1至N中对应的一个或多个提供对问题的解决方案或对疑问的答案。例如,请求者1使用请求者计算设备1经由计算机网络110和请求者账户1在网站上发布问题。用户1至N使用用户计算设备1至N经由用户账户1至N和计算机网络110来访问问题。用户1至N使用用户计算设备1至N经由用户账户1至N和计算机网络110向请求者计算设备1提供对问题的反馈或评论。关于设计者的疑问的示例是询问用于生成集成电路芯片的设计的设计者的技能集。
在实施例中,管理服务器152搜索本文描述的各种数据库中的一个或多个(诸如设计数据库160、规范数据库104、评论数据库204),以提供对问题或疑问的响应。管理服务器152经由计算机网络110和请求者账户1将响应发送到请求者计算设备1。
图14B是设计工程过程1410的流程的实施例的图,以图示用户1与用户计算设备1的显示设备上的显示1420(诸如图像或用户接口)的交互。显示1420在由用户1操作的用户计算设备1上生成,并示出经由用户账户1访问的细节。例如,细节包括用户1的名字;用户1是其雇员或所有者或承包商的组织内的头衔(title);用户1的用于生成设计或用于使用设计工具的集合的技能和能力;以及用户1在设计中有专业知识的组件的类型。此外,在这个示例中,用户账户1包括由用户1完成或者由用户1经由用户账户1接受的项目、关于用户1的附加信息、用户1已发布到用户账户1和/或经由用户账户1审查的教程。
用户1通过由在线设计工程系统102的认证器工具332分配登录信息(例如,用户标识、用户密码等)来向在线设计工程系统102注册。分配给用户账户1的登录信息对于用户账户1是唯一的,因为登录信息不能被用于访问用户账户2至N中的另一个或请求者账户1和2或制造实体账户1和2。用户1登录到用户账户1以查找项目。例如,用户1使用计算设备1登录到用户账户1并经由计算机网络110向在线设计工程系统102的项目搜索器工具330提供指示连同项目搜索标准(诸如集成电路的名称)。项目搜索标准针对用于生成电路设计的项目。集成电路的名称的示例包括加法器、半加器、触发器、解码器和编码器。在接收到指示时,项目搜索器工具330在项目数据库中搜索与项目搜索标准匹配的一个或多个项目(诸如不完整的项目)。项目搜索器工具330经由计算机网络110和用户账户1将项目(诸如具有与在项目搜索标准内接收的名称匹配的名称的规范)发送到用户计算设备1。
用户1通过使用用户计算设备1登录到用户账户1并且经由请求者计算设备1和请求者账户1回答由请求者1在网站上发布的疑问。在用户账户1内,仿真测试(诸如对由用户1创建的设计进行的测试)的结果由管理服务器152发布。
此外,用户1通过操作用户计算设备1登录到用户账户1,并通过使用本文描述的设计工具158创建设计、测试设计、并将设计存储在设计数据库160中。在通过一个或多个仿真测试之后,设计由自动认证服务器112认证。
在线设计工程系统102将信息存储在在线设计工程系统102的实现数据库内。实现数据库存储在可搜索存储装置162中,其存储关于一个或多个集成电路芯片设计的成功实现以及集成电路芯片设计的第一成功实现的信息。例如,管理服务器152确定实现经由在线设计工程系统102生成的设计的集成电路芯片的数量,并将该数量存储在实现数据库内。集成电路芯片的数量是多个设计的实现。作为另一个示例,管理服务器152确定设计第一次在集成电路芯片内被实现的日期,并标识创建该设计的用户的用户账户,并将日期和用户账户标识符(诸如数字或一系列字母数字字符)存储在实现数据库内。
图15是图示设计(诸如数字电路的设计和模拟电路的设计)的创建的图。作为存储在电路设计工具数据库206中的语言的寄存器传送级(RTL)是由一个或多个用户1至N经由对应的(诸如相应的)一个或多个用户账户1至N、计算机网络110以及对应的一个或多个用户计算设备1至N访问的电路设计工具162的示例,以依据寄存器之间的数据流和对数据执行的逻辑操作来对电路进行建模。例如,RTL语言被用于基于规范生成电路设计。RTL描述通常通过逻辑合成工具被转换成电路设计的门级描述,其是存储在电路设计工具数据库206中的电路设计工具162的示例。例如,用户1使用用户计算设备1经由计算机网络110访问用户账户1,并向管理服务器152指示要运行逻辑合成工具。在接收到指示时,管理服务器152运行逻辑合成工具以生成门级描述。门级描述由用户1经由用户账户1通过使用用户计算设备1来访问。除了门级描述之外,布局设计工具166经由用户账户1由用户计算设备1访问,以生成集成电路芯片的子芯片(诸如组件)的布局设计。
类似地,在模拟电路设计中,使用设计工具158生成系统模型。从系统模型,通过使用电路设计工具164生成模拟电路的电路设计的示意图。从顶级示意图,通过使用布局设计工具166生成模拟电路的顶级布局设计。
图16是设计工程方法1600的实施例的图。在设计工程方法1600中,请求者1操作请求者计算设备1,以经由请求者账户1和计算机网络110向管理服务器152提供具有规范的多个参数的数据表1602。此外,一旦由用户1基于数据表1602经由用户账户1生成了电路设计,用户1就使用用户计算设备1从自动认证服务器112访问本地测试台工具165。在一个实施例中,本地测试台工具165存储在用户计算机设备1的存储器设备中,但不经由计算机网络110从自动认证服务器112下载。此外,用户1使用用户计算设备1经由用户账户1向设计工程实体指示测试电路设计。在接收到指示时,自动认证服务器112运行电路设计核实工具188以测试电路设计。在确定电路设计通过测试时,自动认证服务器112发出指示这一点的证书,并经由计算机网络110将证书发送到用户账户1,以便通过用户1经由用户计算设备1访问。此外,指示电路设计通过测试的证书存储在可搜索存储装置162内并且在可搜索存储装置162中与用户账户1相关联(诸如链接或映射)。指示电路设计通过测试的证书与用户帐户1的关联由管理服务器152执行。当请求者1操作请求者计算设备1以访问电路设计时,管理服务器152访问指示电路设计通过测试的证书并经由计算机网络110将证书发送到请求者计算设备1,以便经由请求者账户1显示证书。由设计工程实体进行的测试提供了对电路设计的独立核实。通过用户1和设计工程实体对电路设计进行的双重核实增加了电路设计的覆盖范围和置信度。
类似地,一旦由用户1经由用户账户1从电路设计生成了布局设计,用户1就使用用户计算设备1从自动认证服务器112访问本地布局核实工具167。在一个实施例中,本地布局核实工具167存储在用户计算机设备1的存储器设备中,但不经由计算机网络110从自动认证服务器112下载。此外,用户1使用用户计算设备1经由用户账户1向设计工程实体指示要测试布局设计。在接收到指示时,自动认证服务器112运行布局设计核实工具190以测试布局设计。在确定布局设计通过测试时,自动认证服务器112发布指示这一点的证书并经由计算机网络110将证书发送到用户账户1,以便通过用户1经由用户计算设备1访问。此外,指示布局设计通过测试的证书存储在可搜索存储装置162内并且在可搜索存储装置162中与用户账户1相关联(诸如链接或映射)。指示布局设计通过测试的证书与用户账户1的关联由管理服务器152执行。当请求者1操作请求者计算设备1以访问布局设计时,管理服务器152访问指示布局设计通过测试的证书并经由计算机网络110将证书发送到请求者计算设备1,以便经由请求者账户1显示证书。由设计工程实体进行的测试提供了对布局设计的独立核实。通过用户1和设计工程实体对布局设计进行的双重核实增加了布局设计的覆盖范围和置信度。
此外,一旦从布局设计生成集成电路的原型并且由制造实体1经由邮寄服务将其发送到用户1,用户1就使用用户计算设备1从自动认证服务器112访问本地测试硅工具。自动认证服务器152不允许经由计算机网络110将本地测试硅工具1604下载到由用户1操作的计算设备1。照此,本地测试硅工具1604在云计算节点上运行。在一个实施例中,本地测试硅工具1604存储在用户计算机设备1的存储器设备中,但是不经由计算机网络110从自动认证服务器112下载。
此外,用户1使用用户计算设备1经由用户账户1向设计工程实体指示要测试原型,该原型经由邮寄服务从用户发送到设计工程实体或者经由邮寄服务从制造实体1发送到设计工程实体。在接收到指示时,自动认证服务器112运行原型测试器和测试报告生成器306以测试原型。在确定原型通过测试时,自动认证服务器112发出指示这一点的证书并经由计算机网络110将证书发送到用户账户1,以便通过用户1经由用户计算设备1访问。此外,指示原型通过测试的证书存储在可搜索存储装置162内并且在可搜索存储装置162中与用户账户1相关联(诸如链接或映射)。指示原型通过测试的证书与用户账户1的关联由管理服务器152执行。当请求者1操作请求者计算设备1以访问电路设计或布局设计时,管理服务器152访问指示原型通过测试的证书并经由计算机网络110将证书发送到请求者计算设备1,以便经由请求者账户1显示证书。由设计工程实体进行的测试提供了原型的独立验证。由用户1和设计工程实体进行的双重验证增加了原型的覆盖范围和置信度。
设计工程实体102的使用计数器工具312(图3)对一个或多个集成电路内的设计的实现的数量进行计数。此外,设计评级生成器工具192(图3)生成设计的评级。例如,与第二设计相比,使用计数器工具312确定第一设计具有更多次使用(诸如设计在一个或多个集成电路中被实现的次数),那么第一设计被分配的评级高于第二设计。应当注意的是,随着设计在集成电路(例如,图形处理器、游戏处理器,显示处理器、操作系统处理器等)中的使用次数的增加,群体对设计的置信度增加。
图17是图示设计的规范参数覆盖范围与群体、请求者和制造实体对设计的置信度之间的关系的图。随着设计通过阶段进行,例如电路设计测试、布局设计测试、原型测试、集成电路使用等,数据表1602的规范参数的覆盖范围增加。此外,随着设计的使用次数的增加,群体和请求者以及制造实体对设计的置信度增加并且设计的评级增加。应当注意的是,通过在具有不同应用的集成电路中实现设计和/或通过在具有相同应用的集成电路中实现设计很多次,设计的使用次数增加。不同应用的示例包括移动应用、计算机应用、传感器应用和IoT应用。
图18A-1、18A-2、18A-3、18A-4和18A-5是图示数据表1602的创建的设计工程方法1800的实施例的图。在设计工程方法1800的操作1中,请求者1使用请求者计算设备1来访问请求者账户1,以提交对集成电路的设计的请求。例如,请求者1选择在请求者账户1内显示的选项(诸如图形显示按钮),以经由请求者账户1和计算机网络110向数据表构建器工具318(图3)提交对集成电路的设计的请求。在一个实施例中,制造实体使用制造计算设备1来访问制造实体账户1,以提交对集成电路的设计的请求。该请求经由计算机网络110提交给管理服务器152。
在设计工程方法1800的操作2中,在接收到对集成电路的请求时,数据表构建器工具318从模板数据库访问数据表1602并经由请求者账户1和计算机网络110向请求者计算设备1提供对数据表1602的访问。请求者1在访问网站并登录请求者账户1时访问数据表1602。数据表1602包括多个要输入的字段,诸如集成电路的设计的名称、设计的全局条件以及设计的参数。
在设计工程方法1800的操作3中,请求者1将规范的参数填入数据表1602中并选择在请求者计算设备1的显示设备上显示的提交选项(诸如提交按钮)。对提交选项的选择由数据表构建器工具318经由请求者账户1和计算机网络110接收。例如,请求者1使用请求者计算设备1的输入设备来提供字段内的参数。作为说明,请求者1提供用于测试设计的单一设计方法。作为另一个示例,请求者1提供用于测试设计的各种设计方法。其中一种设计方法包括参数的值的第一集合,诸如设计的输入引脚处的最大和最小输入电压、设计的输出引脚处的最大和最小输出电压、设计的输入引脚处的最大和最小输入电流、设计的输出引脚处的最大和最小输出电流、以及设计的原型的最小和最大工作温度。另一种设计方法包括参数的值的第二集合。第二集合的至少一个值不同于第一集合的的一个或多个对应值。例如,第一集合在输入引脚处具有0伏的最小值,以及在输入引脚处具有10伏的最大值。第二集合在输入引脚处具有2伏的最小值,以及在输入引脚处具有10伏的最大值。作为另一个示例,第一集合在输入引脚处具有0伏的最小值,以及在输入引脚处具有10伏的最大值。第二集合在输入引脚处具有2伏的最小值,以及在输入引脚处具有12伏的最大值。
在一个实施例中,一旦参数的第一集合被请求者1填入数据表1602并且经由请求者账户1和计算机网络110从请求者1接收,数据表构建器工具318就生成参数的第二集合,以生成用于测试设计的另一种不同的设计方法。数据表构建器工具318用第二集合填充数据表1602,并经由计算机网络110和请求者账户1将数据表1602发送到请求者计算设备1。
在接收到用于设计的参数时,在设计工程方法1800的操作4中,数据表构建器工具318生成测试台示意图1806,以运行用于测试集成电路的设计的每种测试方法。例如,数据表构建器工具318生成第一测试台示意图,以运行用于测试集成电路设计的第一测试方法。作为另一个示例,数据表构建器工具318生成第二测试台示意图,以运行用于测试集成电路的设计的第二测试方法。在第二测试方法中,参数的一个或多个值(诸如最小值和最大值)不同于用于测试设计的第一测试方法中该参数的一个或多个值(诸如最小值和最大值)。为了说明,数据表构建器工具318生成具有设计的引脚输入和引脚输出的块。为了进一步说明,块的引脚输入接收数据,并且块的引脚输出基于在引脚输入处接收的数据提供数据作为输出结果。此外,数据表构建器工具318将电源(诸如电压电源或电流电源或信号驱动器)耦合到块的引脚输入以接收电力,并将负载(诸如电阻器和电容器)耦合到块的引脚输出。此外,测试台示意图1806具有对实例化值(诸如电压或电流值)的引用,以便提供给块的引脚输入。例如,当经由账户(诸如用户账户或请求者账户)访问测试台示意图1806以便运行仿真时,管理服务器152从可搜索存储装置162中的存储器位置读取实例化值并将实例化值应用于测试台示意图1806的引脚输入以运行仿真。为了说明,存在从可搜索存储装置162的存储有测试台示意图1806的存储器位置到可搜索存储装置162的存储有实例化值的存储器位置的指针。当可搜索存储装置162的存储有测试台示意图1806的存储器位置被管理服务器152访问时,该指针将管理服务器152指向可搜索存储装置162的存储有实例化值的存储器位置。
测试台示意图1806包括块、引脚输入、引脚输出、电源和负载。此外,测试台示意图1806包括具有电阻R的电阻器和具有电容C的电容器。测试台示意图1806还包括要被执行以运行测试方法的分析,以在块的一个或多个引脚输出处生成电气参数的测量。例如,测试示意图1806具有要提供给引脚输入的电源的值,以及电阻器和电容器的值。此外,测试台示意图1806具有提供电源的值以及电阻器和电容器的值的运行次序。例如,首先将电阻器实例化为电阻R并将电容器实例化为电容C。然后,将电源实例化,以供给电压值V1或电流值I1或供给功率V1*I1。此后,电源供给电压值V2或电流值I2或供给电量V2*I2或供给功率V1*I2或供给功率V2*I1。值V1与值V2不同,值I1与值I2不同。
请求者1使用请求者计算设备1经由请求者账户1访问工作空间应用180。工作空间应用180还向请求者账户1提供从可搜索存储装置162对测试台示意图1806的访问。测试台示意图1806显示在客户工作空间内,客户工作空间是通过运行工作空间应用180在请求者计算设备1的显示设备上生成的用户接口。
在设计工程方法1800的操作5中,包括规范的参数的数据表1602由管理服务器152存储到可搜索存储装置162中。例如,数据表1602存储在规范数据库104内。为了说明,数据表1602被存储为规范数据库104内的规范文件(诸如JavaScript对象表示法(JSON)文件)。填充到数据表1602中的参数是规范S1的示例。
此外,在设计工程方法1800的操作6中,将测试台示意图1806作为示意图文件存储在规范数据库104中,并且示意图文件在其中存储了数据表1602的规范文件中被引用。例如,其中存储了数据表1602的规范文件包括在可搜索存储装置162内、存储包括测试台示意图1806的示意图文件的存储器地址的标识符(诸如指针)。作为另一个示例,数据表构建器工具318将测试台示意图1806存储在示意图文件内并将示意图文件存储在可搜索存储装置162中。此外,数据表构建器工具318生成其中存储有数据表1602的规范文件与其中存储有测试台示意图1806的示意图文件之间的参考(诸如链接、映射或一对一关联)。为了说明,其中存储有数据表1602的规范文件包括指向可搜索存储装置162的存储有示意图文件的存储器地址的指针。作为另一个示例,其中存储有测试台示意图1806的示意图文件包括指向可搜索存储装置162的存储有规范文件的存储器地址的指针。
在设计工程方法1800的操作7中,用户1使用用户计算设备1经由由设计工程实体控制的网站和用户账户1来访问数据表1602。例如,用户1访问网站,以访问在其上发布数据表1602作为对用户1的设计挑战的用户账户1。作为另一个示例,用户1使用用户计算设备1来访问用户账户1并搜索设计的名称。在经由计算机网络110接收到设计的名称时,管理服务器152通过经由计算机网络110向用户计算设备1提供用于显示具有规范的数据表1602的数据来提供对规范文件的访问。规范文件包括对示意图文件的引用。照此,除了访问用于显示具有规范的数据表1602的数据之外,管理服务器152还通过提供用于经由计算机网络110向用户计算设备1显示测试台示意图1806的数据来提供对示意图文件的访问。此外,在提供对数据表1602的访问时,管理服务器152生成接受选项(诸如接受按钮),并经由计算机网络110和用户账户1发送该接受选项,以与由用户账户1访问的数据表1602一起显示。
在设计工程方法1800的操作8中,用户1使用用户计算设备1的输入设备来选择接受选项,以指示接受设计挑战。数据表构建器工具318经由用户账户1和计算机网络110从用户计算设备1接收对接受选项的选择。例如,数据表构建器工具318应用通信协议来对具有接受选项的选择并具有用户账户1的标识(诸如字母数字字符)的分组进行拆包,以确定用户账户1已选择接受选项。在经由用户账户1和计算机网络110接收到对接受选项的选择时,数据表构建器工具318在设计工程方法1800的操作9中将其中存储有测试台示意图1806的示意图文件复制到用户账户1,并将其中存储有数据表1602的规范文件复制到用户账户1。为了说明,当将示意图文件和规范文件复制到用户账户1时,将示意图文件和规范文件复制到可搜索存储装置162内、由管理服务器152指定为具有与用户账户1相关联(诸如与用户账户1相关或经由用户账户1可访问)的信息的存储器地址。在访问用户账户1时,用户计算设备1可经由计算机网络110从可搜索存储装置162访问示意图文件和规范文件。用户1使用用户计算设备1经由网站登录到用户账户1。在访问用户账户1时,用户1经由存储在用户账户1内的规范文件访问数据表1602,并经由存储在用户账户1内的示意图文件访问示意图1806。测试台示意图1806和数据表1602显示在设计者工作空间内,设计者工作空间是通过运行工作空间应用180在用户计算设备1的显示设备上生成的用户接口。
在一个实施例中,代替电阻器和电容器或除电阻器和电容器之外,还使用一个或多个电感器来形成负载。例如,电感器串联耦合到电阻器或电容器或者并联耦合到电容器或电阻器以形成负载。在实施例中,代替具有电阻R的一个电阻器,测试台示意图1806具有多个电阻器,这些电阻器彼此串联或并联耦合以形成负载。此外,代替具有电容C的一个电容器,测试台示意图1806具有多个电容器,这些电容器彼此串联或并联耦合以形成负载。在一个实施例中,在运行如上所述的本地测试台工具165时生成测试台示意图1806。
在实施例中,代替测试台示意图1806,生成网表并将其存储在网表文件中。网表是用于生成测试台示意图1806的组件的列表和组件的连接性的描述。网表作为网表文件存储在规范数据库104中,并且网表文件在其中存储有数据表1602的规范文件中引用。例如,其中存储有数据表1602的规范文件包括在可搜索存储装置162内、存储有包括网表的网表文件的存储器地址的标识符(诸如指针)。作为另一个示例,数据表构建器工具318将网表存储在网表文件内并将网表文件存储在可搜索存储装置162中。
图18B-1是图示图18A-5的设计工程方法1800的继续的实施例的图。此外,图18B-2是图示图18B-1的设计工程方法1800的一部分的实施例的图。图18B-3是图示图18B-1的设计工程方法1800的另一个部分的实施例的图。此外,图18B-4是图示图18B-1的设计工程方法1800的又一个部分的实施例的图。
在设计工程方法1800的操作10中,用户1使用用户计算设备1登录到用户账户1,以从图2的电路设计工具数据库206访问电路设计工具164(图1F),以基于数据表1602进一步生成设计的示意图1830。例如,用户1使用用户计算设备1的输入设备通过访问电路设计工具164(诸如门设计、或电阻器设计、或晶体管设计、或电感器设计、或电容器设计)来创建示意图1830。示意图1830显示在设计者工作空间内。此外,测试台示意图1806和数据表1602由工作空间应用180显示在设计者工作空间内。
在设计工程方法1800的操作11中,用户1操作用户计算设备1,以从自动认证服务器112访问图1F的本地测试台工具165,以测试(诸如仿真和表征)示意图1830。例如,用户1在用户计算设备1的显示设备上选择测试示意图按钮。在经由用户账户1和计算机网络110接收到对测试示意图按钮的选择时,自动认证服务器112运行本地测试台工具165,以测试示意图1830来生成测试的结果。测试的结果不被自动认证服务器112存储到可搜索存储装置162中。
在设计工程方法1800的操作12中,用户1使用用户计算设备1经由用户账户1和计算机网络110将示意图1830上传到可搜索存储装置162。例如,用户1使用用户计算设备1选择在用户计算设备1的显示设备上显示的上传按钮,以经由用户账户1将示意图1830保存到可搜索存储装置162。使用本地测试台工具165运行的测试的结果不经由计算机网络110从用户计算设备1发送到可搜索存储装置162。此外,管理服务器152(诸如电路设计工具164)在接收到对上传按钮的选择时,在可搜索存储装置162内创建设计文件(诸如JSON文件),将示意图1830存储在设计文件内,并将设计文件存储在可搜索存储装置162的设计数据库160内。作为示例,设计文件包括被访问以创建示意图1830的用户账户1的用户登录信息。在一个实施例中,管理服务器152从被访问以创建示意图1830的用户账户1的用户登录信息生成对包括示意图1830的设计文件的引用。例如,从包括用户账户1的用户登录信息的可搜索存储装置162的存储器地址到可搜索存储装置162中存储有包括示意图1830的设计文件的存储器地址的指针由管理服务器152生成。
公-私指示符工具329生成公开选项和私有选项,两者都与示意图1830一起显示在设计者工作空间内。当用户1使用用户计算设备1的输入设备来选择时公开选项并经由用户账户1和计算机网络110将示意图1830提交给管理服务器152时,公-私指示符工具329经由计算机网络110接收对公开选项的选择。公-私指示符工具329向混淆器工具182提供对公开选项的选择。在从公-私指示符工具329接收到对公开选项的选择时,在经由用户账户2至N和计算机网络显示在用户计算机设备2至N的显示设备上之前,混淆器工具182不对示意图1830进行混淆。另一方面,当用户1使用用户计算设备1的输入设备选择私有选项并经由用户账户1和计算机网络110将示意图1830提交给管理服务器152时,公-私指示符工具329经由计算机网络110接收对私有选项的选择。公-私指示符工具329向混淆器工具182提供对私有选项的选择。在从公-私指示符工具329接收到对私有选项的选择时,在经由用户账户2至N和计算机网络110在用户计算机设备2至N的显示设备上显示之前,混淆器工具182对示意图1830进行混淆。
在一个实施例中,公-私指示符工具329经由计算机网络110和用户账户1向用户计算设备1提供账户标识符选项。账户标识符选项使用户1能够经由用户计算设备1和用户账户1选择对其应用公开选项或私有选项的账户(诸如请求者账户或制造实体账户或另一个用户账户)。在经由用户账户1和计算机网络110从用户计算设备1接收到对标识账户的账户标识符选项的选择以及对私有选项或公开选项的选择时,公-私指示符工具329在公-私指示符数据库220内存储账户与公开选项或私有选项的选择之间的映射。
在设计工程方法1800的操作13中,当用户2或请求者2或制造实体1请求访问示意图1830时,混淆器工具182访问公-私指示符数据库220,以确定是否分配给用户2的用户账户2或分配给请求者2的请求者账户2或分配给制造实体1的制造实体账户1被映射到公开选项或私有选项的选择。在标识出分配给用户2的用户账户2或分配给请求者2的请求者账户2或分配给制造实体1的制造实体账户1被映射到公开选项的选择时,混淆器工具182在经由用户账户2和计算机网络110向用户计算设备2提供对示意图1830的访问或者经由请求者账户2和计算机网络110向请求者计算设备2提供对示意图1830的访问或者经由制造实体账户1和计算机网络110向制造计算设备1提供对示意图1830的访问之前,不混淆示意图1830的一个或多个部分。另一方面,在标识出用户账户2或请求者账户2或制造实体账户1被映射到私有选项的选择时,混淆器工具182混淆示意图1830的一个或多个部分以生成混淆示意图设计,并经由用户账户2和计算机网络110向用户计算设备2提供对混淆示意图设计的访问或者经由请求者账户2和计算机网络110向请求者计算设备2提供对混淆示意图设计的访问或者经由制造实体账户1和计算机网络110向制造计算设备1提供对混淆示意图设计的访问。
图18C-1是图示图18B-4的设计工程方法1800的继续的实施例的图。此外,图18C-2是图示图18C-1的设计工程方法1800的一部分的实施例的图。图18C-3是图示图18C-1的设计工程方法1800的另一个部分的实施例的图。此外,图18C-4是图示图18C-1的设计工程方法1800的又一个部分的实施例的图。图18C-5是图示图18C-1的设计工程方法1800的另一个部分的实施例的图。此外,图18C-6是图示图18C-1的设计工程方法1800的又一个部分的实施例的图。
在设计工程方法1800的操作14中,用户1操作用户计算设备1,以经由网站和用户账户1访问数据表1602和测试台示意图1806的块。在一个实施例中,除了数据表1602和块之外,还在网站上显示示意图1830。当块和数据表1602被访问时,管理服务器152经由计算机网络110发送特性选项(诸如特性按钮),以便在用户计算设备1的显示设备上显示。
用户1操作用户计算设备1的输入设备,以选择表征选项。在经由计算机网络110和用户账户1接收到表征选项的选择时,在设计工程方法1800的操作15中,自动认证服务器112从可搜索存储装置中访问其中存储有示意图1830的设计文件和其中存储有数据表1602的规范文件。自动认证服务器112解析设计文件以访问示意图1830并执行示意图1830的正式(official)表征,这是由设计工程实体进行的表征。例如,自动认证服务器112对示意图1830运行图1F的电路设计核实工具188,以确定示意图1830是否通过或未通过仿真测试。为了说明,自动认证服务器112向示意图1830提供诸如实例化值之类的输入以生成预期输出,并将预期输出与预存储在可搜索存储装置162中的期望输出进行比较。在确定预期输出与期望输出匹配时,自动认证服务器112确定示意图1830通过仿真测试。另一方面,在确定预期输出与期望输出不匹配时,自动认证服务器112确定示意图1830未通过仿真测试。作为另一个说明,自动认证服务器112将示意图1830的输入引脚(标记为“In”)与测试台示意图1806的电源耦合,并将负载耦合到示意图1830的输出引脚(标记为“Out”)。自动认证服务器112在输入引脚处提供实例化值以生成预期输出,并将预期输出与期望输出进行比较,以确定测试台示意图1806是否通过仿真测试。
在运行仿真测试时,在设计工程方法1800的操作16中,从可搜索存储装置162访问数据表1602,并且由管理服务器152用仿真测试的结果(诸如通过或失败)更新数据表1602。仿真测试结果的其它示例包括预期输出的值、输入的值及期望输出的值。此外,数据表1602在用仿真测试的结果更新之后由管理服务器在可搜索存储装置162中存储为文件(诸如JSON文件)。
在设计工程方法1800的操作17中,基于仿真测试的结果,管理服务器152确定示意图1830赢得在设计工程方法1800的操作7中提出的设计挑战。例如,在确定示意图1830通过仿真测试时,管理服务器152进一步确定示意图1830赢得设计挑战并且还允许在示意图1830上出价。
在设计工程方法1800的操作18中,其他用户2至N、请求者1、请求者2、制造实体1和/或制造实体2以混淆的方式经由他们各自的账户(诸如用户账户2至N、请求者账户1、请求者账户2、制造实体账户1和制造实体账户2)访问表示示意图1830的块。例如,用户2使用用户计算设备2访问网站和用户账户2,以进一步搜索集成电路的设计。为了说明,用户2提供集成电路的名称(诸如模数转换器或振荡器或锁相回路),以搜索集成电路的设计。名称从用户计算设备2经由计算机网络110发送到管理服务器152。设计搜索器工具322确定数据表1602内的设计名称与从用户计算设备2接收的名称匹配。
在确定数据表1602内的设计名称与从用户计算设备2接收的名称匹配时,设计搜索器工具322向混淆器工具182发送访问示意图1830的请求。混淆器工具182确定在公-私指示符数据库220中将示意图1830指示为私有还是公开。在确定示意图被指示为公开时,混淆器工具182不对示意图1830的一个或多个部分进行混淆并且经由计算机网络110将示意图1830发送到用户计算设备2,以便在用户账户2内显示。另一方面,在确定示意图被指示为私有时,混淆器工具182混淆示意图1830的一个或多个部分以生成块(诸如块1832),并经由计算机网络110将块发送到用户计算设备2,以便在用户账户2内显示。除了发送块或示意图1830之外,管理服务器152还经由计算机网络110将数据表1602发送到用户计算设备2,以便在用户账户2内显示。此外,除了发送块或示意图1830和数据表1602之外,管理服务器152还经由计算机网络110向用户计算设备2发送出价选项(诸如出价按钮),以便在用户账户2内显示。用户2在用户计算设备2的显示设备上审查块或示意图1830和数据表1602,并且决定是否对由块或示意图1830表示的设计和数据表1602内的规范进行出价。在确定对设计进行出价时,用户2使用用户计算设备2的输入设备来选择出价选项。在经由计算机网络110和用户账户2接收到对出价选项的选择时,图3的版税生成器工具304经由计算机网络110向用户计算设备2发送用于输入出价的美元金额的字段。
类似地,其他用户3-N、请求者1、请求者2、制造实体1和制造实体2为由块或示意图1830表示的设计提供出价。版税生成器工具304接收各种出价并确定哪个出价最高。版税生成器工具304经由计算机网络110向用户计算设备2发送对最高出价的接受,以便在用户账户2内显示该接受。
图19A是系统1900的图,以图示工作空间应用180的功能以及各种文件(诸如可搜索存储装置162内的测试台网表文件1902和规范文件SF1)的存储。系统1900包括工作空间应用180、可搜索存储装置162及自动认证服务器112。请求者1访问由管理服务器152运行的工作空间应用180。例如,请求者1访问由设计工程实体控制的网站,以登录到请求者账户1,以进一步访问工作空间应用180。当生成测试台示意图1806时,管理服务器152运行工作空间应用180,以捕获各种部分(诸如块、耦合到块的一个或多个输入引脚的一个或多个电源、以及耦合到块的输出引脚的负载),以生成网表。此外,管理服务器152运行工作空间应用180,以将网表存储在测试台网表文件1902内并将测试台网表文件1902存储在可搜索存储装置162(诸如云存储装置)内。此外,管理服务器152生成包括数据表1602的规范文件SF1,并将规范文件SF1存储在可搜索存储装置162中。
图19B是系统1900的实施例的图,以图示与可搜索存储装置162中的示意图1830相关联的电路网表文件1920的存储。管理服务器152运行工作空间应用180,以捕获示意图1830,以生成电路网表文件1920。例如,电路网表文件存储组件(诸如示意图1830的电阻器、电容器、晶体管、逻辑门)的标识(诸如名称或型号),并存储组件之间的连接。管理服务器152将电路网表文件1920作为设计文件存储在可搜索存储装置162内的图1B-2的设计数据库160中。
图19C是系统1900的实施例的图,以图示示意图1830的设计的仿真。自动认证服务器112从可搜索存储装置162访问测试台网表文件1902、规范文件SF1和电路网表文件1920,并运行自动认证生成器-仿真器(gensim)工具1950以生成一个或多个仿真网表1952,以便对示意图1830执行一个或多个仿真测试。一个或多个仿真网表1952存储在一个或多个仿真文件中。自动认证服务器112运行自动认证启动工具1954。在运行自动认证启动工具1954时,自动认证启动工具1954访问一个或多个仿真文件,以从自动认证gensim工具1950访问一个或多个仿真网表1952,以对示意图1830运行仿真测试。当运行仿真测试时,仿真测试的结果1956由自动认证启动工具1954生成。结果1956由自动认证服务器112存储在数据表1602中。
当设计要由请求者计算设备1和2基于设计的名称(诸如具有该设计的集成电路的名称)经由对应的请求者账户1和2访问时,管理服务器152基于名称标识具有结果1956的数据表1602。管理服务器152经由计算机网络110及请求者账户1和2将具有结果1956的数据表1602发送到请求者计算设备1和2,以便在请求者计算设备1和2上显示数据表1602。请求者1和2使用请求者计算设备1和2基于结果1956对设计进行出价。例如,如果结果1956指示设计通过仿真测试,那么请求者1在请求者计算设备1上显示的出价金额字段中出价比如果结果1956指示设计未通过仿真测试更高的金额。管理服务器152经由对应的请求者账户1和2以及计算机网络110从请求者计算设备1和2接收出价并比较出价,以确定最高的出价。管理服务器152还经由账户(诸如用户账户1)向设计者发送包括最高出价的出价。设计者使用计算设备(诸如用户计算设备1)经由用户账户1选择向管理服务器152指示接受出价之一(诸如最高出价)的选项。管理服务器152经由计算机网络110经由请求者账户1向请求者1发送由设计者接受其中一个出价的指示。
在一个实施例中,自动认证发生器-仿真器(gensim)工具1950与电路设计核实工具188相同。
图19D是系统1900的实施例的图,以图示结果1956在设计数据库160中的存储。自动认证服务器112将结果1956存储在设计数据库160内。
应当注意的是,在一个实施例中,自动认证gensim工具1950和自动认证启动工具1954是图3的设计仿真报告生成器工具184的部分。此外,应当注意的是,在实施例中,自动认证gensim工具1950和自动认证启动工具1954是图1F的电路设计核实工具188的部分。此外,应当注意的是,在实施例中,自动认证gensim工具1950和自动认证启动工具1954是图1F的本地测试台工具165的部分。
图20A是数据表2000的一部分的图。数据表2000是图16的数据表1602的示例。数据表2000包括用于用户1-N以便经由各自的用户账户1-N将设计提交给请求者账户1的设计到期日期。此外,数据表2000包括用于生成设计、测试设计、生成设计的原型和/或测试设的计原型的预算。此外,数据表2000标识设计的所有者(诸如知识产权所有者)。知识产权所有者对设计拥有专利权之类的权利。
此外,数据表2000包括设计的名称,并且标识将生成基于设计的原型和/或基于设计的集成电路的制造实体。在一个实施例中,设计的名称和设计挑战的名称在本文中可互换使用。数据表2000还包括参数2004,诸如设计的引脚的名称、引脚的描述、引脚携带的信号的类型、从引脚的角度看信号的方向、引脚处的最小电压、以及引脚处的最大小电压。引脚的名称的示例包括Vdd、Vss、Vin、Vout和表示接地的GND。信号的方向的示例包括信号被引脚携带的输入方向和输出方向。当信号是输入信号时,信号被引脚接收,而当信号是输出信号时,信号从引脚输出。引脚处的最小电压的示例包括最小限制,该最小限制是在设计的测试和/或基于设计制造的原型的测试期间供给引脚或将从引脚输出的最小电压量。类似地,引脚处的最大电压的示例包括最大限制,该最大限制是要供给引脚或将从引脚输出的最大电压量。数据表2000还包括具有在设计的测试和/或基于设计制造的原型的测试期间作为用于接收信号的引脚输入的某些引脚并且作为用于生成信号的引脚输出的某些引脚的块。
图20B是数据表2000的另一个部分,并且是图20A的数据表2000的继续。数据表2000的规范的参数的另一个示例还包括电阻器的典型值,该电阻器用作耦合到块的输出引脚以测试块的负载。数据表2000的规范的参数的又一个示例还包括电容器的典型值,该电容器用作耦合到块的输出引脚以测试块的负载。数据表2000的规范的参数的附加示例包括基于块的设计生成的原型的操作温度、块的输入引脚处的电压的上升时间、以及块的操作频率。
数据表2000包括用于对块执行不同测试方法(诸如应用不同条件)的相同参数的不同值(诸如最小值和最大值)。例如,测试方法之一包括基于数据表2000中表示的块生成的原型在温度范围内(诸如在-40摄氏度(℃)的最低温度和125℃的最高温度之间或者20℃的最低温度和100℃的最高温度之间)操作而不会损坏。作为另一个示例,测试方法之一包括数据表2000中表示的块的输出引脚在电压范围内操作(诸如能够输出电压),同时满足块的其它引脚处的其它参数保持在规范中定义的限制内。电压范围的示例包括最小10伏和最大50伏之间的电压。
如数据表2000中所示,块或原型的最小操作频率、块或原型的最大操作频率、块或原型的上升时间以及供给块或原型的电压是过程技术变型的某些示例。例如,当原型用于控制蚀刻半导体晶片的蚀刻过程时,原型的第一操作频率和第一操作电压是不同的。原型的操作电压由供给原型的电压控制。与第二操作频率相比,第一操作频率是不同的,并且第一操作电压不同于原型的第二操作电压。当原型用于控制材料沉积在半导体晶片上的沉积过程时,原型具有第二操作频率和第二操作电压。温度范围、电压范围和过程技术变型是用于原型的操作的全局测试参数的示例。此外,温度范围、电压范围和过程技术变型是数据表2000的电气参数的示例。电气参数的其它示例包括要输入到原型或块或者从原型或块输出的功率量、块或原型内使用的组件(诸如晶体管、电阻器、电感器和电容器)的值,以及块或原型的操作频率范围、块或原型的上升时间。
在一个实施例中,块或原型的电气参数是控制块或原型的功能(诸如输出功率或操作频率或输出电压或输出电流或传递函数)而不影响块或原型的尺寸的参数。此外,块或原型的物理参数是影响块或原型的尺寸的参数,并且影响或不影响块或原型的功能。
图20C是数据表2000的又一个部分,并且是图20B的数据表2000的继续。图20C图示了与图20B中所示的参数相同的参数的不同值。例如,图20C列出了应用于块的与图20B中列出的不同的条件(诸如参数的不同值)。为了说明,不同的条件包括具有数据表2000的参数的集成电路(诸如原型)要操作或要抵抗(withstand)的温度范围,以及集成电路要接收的电压范围。在一个实施例中,由管理服务器152针对每个条件生成不同的测试台示意图。
图20D是数据表2000的另一个部分,并且是图20C的数据表2000的继续。基于数据表2000内的规范生成的集成电路芯片的原型的物理参数(诸如面积、或者宽度、或者高度、或者面积的最小值和面积的最大值之间的范围、或者高度的最小值和高度的最大值之间的范围、或者宽度的最小值和宽度的最大值之间的范围)在图20D中提供。原型(诸如集成电路芯片)的面积是原型的宽度和原型的长度的乘积。原型的宽度垂直于原型的长度,并且长度和宽度二者都垂直于原型的高度。
在一个实施例中,数据表2000包括针对数据表2000上的每个电气参数的通过指示符(诸如“P”或“通过”),或未通过指示符(诸如“F”或“未通过”)。针对电气参数的通过或未通过指示符由图1F的电路设计核实工具188生成。例如,电路设计核实工具188将电源耦合到图18C-4的示意图1830的输入引脚,将负载耦合到示意图1830的输出引脚,并且向图18C-4的示意图1830的输入引脚提供电气参数的实例化值,以在示意图1830的输出引脚处生成电气参数的输出值,以测试示意图1830。当输出值在数据表2000中提供的电气参数的值范围之外时,电路设计核实工具188确定示意图1830未通过针对电气参数的测试(诸如仿真)。另一方面,当输出值在数据表2000中提供的电气参数的值范围内时,电路设计核实工具188确定示意图1830通过针对电气参数的测试。电路设计核实工具188在确定针对电气参数通过测试时生成通过指示符。另一方面,电路设计核实工具188在确定针对电气参数测试未通过时生成未通过指示符。电路设计核实工具188将通过和未通过指示符提供给数据表构建器工具318。
数据表构建器工具318用通过和未通过指示符更新数据表2000。例如,在数据表2000的具有第一电气参数的一行中,数据表构建器工具318校准该行中针对第一电气参数的通过指示符或未通过指示符。此外,在数据表2000的具有第二电气参数的一行中,数据表构建器工具318校准该行中针对第二电气参数的通过指示符或未通过指示符。作为另一个示例,数据表构建器工具318将电气参数与针对电气参数的通过和未通过指示符之间的对应关系作为单独的表结合到数据表2000中。为了说明,数据表2000由数据表构建器工具318更新,以包括具有第一行的表,该第一行列出作为电气参数的输出电压和通过或未通过指示符。数据表2000由数据表构建器工具318更新,以在表中包括第二行,该第二行列出作为电气参数的输出电流和通过或未通过指示符。
在实施例中,数据表2000包括针对数据表2000上的每个电气参数的得分。电气参数的得分由电路设计核实工具188生成。例如,电路设计核实工具188将电源耦合到图18C-4的示意图1830的输入引脚,将负载耦合到示意图1830的输出引脚,并且将电气参数的实例化值提供给图18C-4的示意图1830的输入引脚,以在示意图1830的输出引脚处生成电气参数的输出值,以测试示意图1830。当输出值在数据表2000中提供的电气参数的值范围之外预定限制时,电路设计核实工具188生成指示示意图1830未通过电气参数的测试的第一得分。另一方面,当输出值在数据表2000中提供的电气参数的值范围内时,电路设计核实工具188生成指示示意图1830通过电气参数的测试的第二得分。当输出值在数据表2000中提供的电气参数的值的范围之外但是在预定限制内时,电路设计核实工具188生成指示示意图1830具有比为其生成第一得分的另一个示意图更高质量并且指示示意图1830具有比为其生成第二得分的另一个示意图更低质量的第三得分。电路设计核实工具188将得分(诸如第一、第二或第三得分)提供给数据表构建器工具318。
数据表构建器工具318用得分更新数据表2000。例如,在数据表2000的具有第一电气参数的一行中,数据表构建器工具318校准该行中针对第一电气参数的得分。此外,在数据表2000的具有第二电气参数的一行中,数据表构建器工具318校准该行中针对第二电气参数的得分。作为另一个示例,数据表构建器工具318将电气参数与针对电气参数的得分之间的对应关系作为单独的表,结合到数据表2000中。为了说明,数据表2000由数据表构建器工具318更新,以包括具有第一行的表,该第一行列出作为电气参数的输出电压和通过测试第一电气参数所生成的得分。数据表2000由数据表构建器工具318更新,以在表中包括第二行,该第二行列出作为电气参数的输出电流和通过测试第二电气参数所生成的得分。
在一个实施例中,数据表2000包括针对数据表2000上的每个物理参数的通过指示符(诸如“P”或“通过”),或未通过指示符(诸如“F”或“未通过”)。针对物理参数的通过或未通过指示符由图1F的布局设计核实工具190生成。例如,布局设计核实工具190确定经由用户账户N从用户N以及经由计算机网络110从用户计算设备N接收的集成电路的物理参数的值是否在数据表2000中提供的物理参数的值范围内。当接收到的物理参数的值在数据表2000中提供的物理参数的值范围之外时,布局设计核实工具190确定基于示意图1830生成的组件设计未通过针对物理参数的测试。另一方面,当接收到的物理参数的值在数据表2000中提供的物理参数的值范围内时,布局设计核实工具190确定布局设计通过了针对物理参数的测试。布局设计核实工具190在确定针对物理参数通过测试时生成通过指示符。另一方面,布局设计核实工具190在确定针对物理参数测试未通过时生成未通过指示符。布局设计核实工具190将通过和未通过指示符提供给数据表构建器工具318。
数据表构建器工具318用通过和未通过指示符更新数据表2000。例如,在数据表2000的具有第一物理参数的一行中,数据表构建器工具318校准该行中针对第一物理参数的通过指示符或未通过指示符。此外,在数据表2000的具有第二物理参数的一行中,数据表构建器工具318校准该行中针对第二物理参数的通过指示符或未通过指示符。作为另一个示例,数据表构建器工具318将物理参数与针对物理参数的通过和未通过指示符之间的对应关系作为单独的表,结合到数据表2000中。为了说明,数据表2000由数据表构建器工具318更新,以包括具有第一行的表,该第一行列出作为物理参数的晶体管的宽度和通过或未通过指示符。数据表2000由数据表构建器工具318更新,以在表中包括第二行,该第二行列出作为另一个物理参数的晶体管的长度和通过或未通过指示符。
在实施例中,数据表2000包括针对数据表2000上的每个物理参数的得分。物理参数的得分由布局设计核实工具190生成。例如,布局设计核实工具190确定经由用户账户N从用户N和经由计算机网络110从用户计算设备N接收的集成电路的物理参数的值是否在数据表2000中提供的物理参数的值范围之外预先设定的限制。在确定接收到的物理参数的值在物理参数的值范围之外预先设定的限制时,布局设计核实工具190生成指示基于示意图1830生成的布局设计未通过物理参数的测试的第一得分。另一方面,当接收到的物理参数的值在数据表2000中提供的物理参数的值范围内时,布局设计核实工具190生成指示布局设计通过了电气参数的测试的第二得分。当接收到的物理参数的值在数据表2000中提供的物理参数的值的范围之外但是在预先设定的限制内时,布局设计核实工具190生成指示该布局设计具有比为其生成第一得分的另一个布局设计更高质量并且指示该布局设计具有比为其生成第二得分的另一个布局设计更低质量的第三得分。布局设计核实工具190将得分(诸如第一、第二或第三得分)提供给数据表构建器工具318。
数据表构建器工具318用得分更新数据表2000。例如,在数据表2000的具有第一物理参数的一行中,数据表构建器工具318校准该行中针对第一物理参数的得分。此外,在数据表2000的具有第二物理参数的一行中,数据表构建器工具318校准该行中针对第二物理参数的得分。作为另一个示例,数据表构建器工具318将物理参数与物理参数的得分之间的对应关系作为单独的表,结合到数据表2000中。为了说明,数据表2000由数据表构建器工具318更新,以包括具有第一行的表,该第一行列出作为物理参数的晶体管的宽度和针对物理参数的得分。数据表2000由数据表构建器工具318更新,以在表中包括第二行,该第二行列出作为另一个物理参数的晶体管的长度和针对另一个物理参数的得分。
在一个实施例中,布局设计核实工具190基于针对每个参数的通过指示符或未通过指示符为数据表2000的所有参数生成复合通过指示符(诸如“P”或“通过”),或复合未通过指示符(诸如“F”或“未通过”)。例如,布局设计核实工具190确定数据表2000的大部分参数具有通过指示符,以进一步确定要根据数据表2000的参数制造的集成电路的设计具有复合通过指示符。另一方面,布局设计核实工具190确定数据表2000的大部分参数具有未通过指示符,以进一步确定要根据数据表2000的参数制造的集成电路的设计具有复合未通过指示符。作为另一个示例,布局设计核实工具190从分配给数据表2000的参数的权重以及参数的通过或未通过指示符中确定针对数据表2000的复合通过或复合未通过指示符。为了说明,当数据表2000的三个参数中有两个具有未通过指示符并且第三个参数具有通过指示符时,布局设计核实工具190确定第三个参数具有比第一和第二参数的权重更高的权重并且将复合通过指示符分配给数据表2000。布局设计核实工具190将复合通过或复合未通过指示符发送到数据表构建器工具318。数据表构建器工具318将复合通过指示符或复合未通过指示符结合到数据表2000中。例如,数据表构建器工具318在具有数据表2000的网页上、在数据表2000内包括复合通过指示符或复合未通过指示符。
在实施例中,布局设计核实工具190基于每个参数的各个得分为数据表2000的所有参数生成复合得分。生成复合得分,以确定要根据数据表2000的参数制造的集成电路的设计是否通过测试。例如,布局设计核实工具190计算数据表的参数的得分的加权平均值,以生成复合得分。为了说明,布局设计核实工具190对数据表2000的一个参数分配比对数据表2000的另一个参数更大的权重。要分配给参数的权重由管理服务器252存储在可搜索存储装置162中。作为另一个说明,布局设计核实工具190将相同的权重分配给数据表2000的所有参数。在确定加权平均值在预定的平均值范围之外时,布局设计核实工具190确定设计通过了测试。另一方面,在确定加权平均值在预定的平均值范围内时,布局设计核实工具确定设计未通过测试。作为另一个示例,布局设计核实工具190计算数据表2000的参数的得分的加权平均值。加权平均值是复合得分的示例。在确定复合得分大于预定平均值后,布局设计核实工具190确定设计通过了测试。另一方面,在确定复合得分小于预定平均值后,布局设计核实工具确定设计未通过测试。布局设计核实工具190将复合得分发送到数据表构建器工具318。数据表构建器工具318将复合得分结合到数据表2000中。例如,数据表构建器工具318在具有数据表2000的网页上、在数据表2000内包括复合得分。
在一个实施例中,除了复合得分之外,复合未通过指示符的复合通过指示符也由数据表构建器工具318包括在数据表2000内。在实施例中,代替数据表2000的参数的得分的平均值,由布局设计核实工具190计算得分的中值,以生成数据表2000的复合得分。
在实施例中,图3的设计竞赛生成器工具310比较两个不同数据表的复合指示符(诸如复合通过指示符或复合未通过指示符),以确定用于生成集成电路的设计的竞赛的获胜者。例如,设计竞赛生成器工具310比较来自第一数据表(诸如数据表2000)的第一复合指示符与来自第二数据表的第二复合指示符,并确定第一复合指示符是否通过而第二复合指示符是否未通过。在确定第一复合指示符通过而第二复合指示符未通过时,设计竞赛生成器工具310确定被访问以生成集成电路的第一设计的用户账户1是竞赛的获胜者并且被访问以生成集成电路的第二设计的用户账户2不是获胜者。另一方面,在确定第二复合指示符通过而第一复合指示符未通过后,设计竞赛生成器工具310确定被访问以生成集成电路的第二设计的用户账户2是竞赛的获胜者并且被访问以生成集成电路的第一设计的用户账户1不是获胜者。第一设计被布局设计核实工具190分配第一复合指示符,并且第二设计被布局设计核实工具190分配第二复合指示符,并且第一复合指示符和第二复合指示符二者都由设计竞赛生成器工具310从可搜索获得存储器162或从布局设计核实工具190获得。第一和第二数据表二者都具有电气参数的相同的最小和最大限制以及物理参数的相同的最小和最大限制。例如,第一和第二数据表二者都具有基于其用户1和2经由对应的用户账户1和2生成集成电路的设计的参数的最小值和最大值。用户1经由用户账户1和计算机网络110从自数据表构建器工具318访问具有第一复合指示符的第一数据表。此外,用户2经由用户账户2和计算机网络110从数据表构建器工具318访问具有第二复合指示符的第二数据表。
在实施例中,图3的设计竞赛生成器工具310比较两个不同数据表的复合得分,以确定用于生成集成电路的设计的竞赛的获胜者。例如,设计竞赛生成器工具310比较来自第一数据表(诸如数据表2000)的第一复合得分与来自第二数据表的第二复合得分,并确定第一复合得分是否大于第二复合得分。在确定第一复合得分大于第二复合得分时,设计竞赛生成器工具310确定被访问以生成集成电路的第一设计的用户账户1是竞赛的获胜者并且被访问以生成集成电路的第二设计的用户账户2不是获胜者。第一设计被被布局设计核实工具190分配第一复合得分,并且第二设计被布局设计核实工具190分配第二复合得分。如上面所解释的,第一和第二数据表二者都具有电气参数的相同的最小和最大限制以及物理参数的相同的最小和最大限制。
图20E是数据表2010的实施例的图,以图示针对数据表2010的每个参数的通过(P)或未通过(F)评估以及针对数据表2010的所有参数的复合通过/未通过评估。图20F是图20E的数据表2010的继续。图20G是图20F的数据表2010的继续。图20H是图20G的数据表2010的继续。
图20I是数据表2020的实施例的图,以图示分配给数据表2020的每个参数的得分和数据表2020的所有参数的复合得分。图20J是图20I的数据表2020的继续。图20K是图20J的数据表2020的继续。图20L是图20K的数据表2020的继续。
图21是图示使用在线设计工程系统102设计的各种集成电路芯片的图。例如,在线设计工程系统102用于生成设计调节器、电源管理器开关、实现无线协议的芯片、实现有线协议的芯片、滤波器、传感器和驱动电路的设计。
图22是用于运行本文描述的设计工程方法的计算设备2200的实施例。在一个实施例中,计算设备2200是任何计算设备的示例,诸如本文描述的用户计算设备1-N、请求者计算设备1、请求者计算设备2、制造计算设备1或制造计算设备2中的任何一个。计算设备2200可以包括比图22中所示的组件更多或更少的组件。
计算设备2200包括经由总线2240与存储器设备2202通信的处理器2235。处理器2235执行本文描述的由本文描述的计算设备执行的功能。处理器2235还经由总线2240与主存储器设备2203通信。计算设备2200包括网络接口控制器2242、输入设备2236和输入/输出(I/O)接口2234。网络接口控制器的示例包括网络接口卡和网络适配器,其应用通信协议(诸如互联网协议上的传输控制协议(TCP/IP))以与计算机网络110通信。在一个实施例中,代替网络接口控制器,调制解调器用于与计算机网络110通信。网络接口控制器2242包括用于将计算设备2200耦合到计算机网络110的电路系统。
输入设备2236经由输入/输出接口2234与总线2240耦合。输入设备2236的示例包括键盘、小键盘、触摸屏、鼠标和/或用于给计算设备2200通电和引导计算设备2200的一个或多个按钮。在实施例中,输入/输出接口2234将从输入设备2236接收的信号转换成与总线2240兼容的信号。在一个实施例中,输入/输出接口2234将经由总线2240接收的信号转换成发送到输入设备2236的信号。
在实施例中,计算设备2200包括经由音频接口(未示出)耦合到总线2240的扬声器集合(未示出)。音频接口执行各种音频相关的过程,诸如从存储器设备2233访问音频数据以及过滤音频数据。此外,在一个实施例中,计算设备包括用于显示用户接口的显示设备(未示出),诸如例如液晶显示设备、发光二极管显示设备、等离子体显示器或阴极射线管显示器。
存储器设备2233包括随机存取存储器(RAM)、只读存储器(ROM)或其组合。存储器设备2233说明了用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的计算机存储介质的示例。存储器设备2233存储用于控制计算设备2200的低级操作的基本输入/输出系统(“BIOS”)。主存储器设备2233还存储用于控制计算设备2200的操作的操作系统。将认识到的是,在一个实施例中,操作系统包括UNIXTM、LINUXTM或WindowsTM操作系统。
应当注意的是,虽然在计算设备2200内示出了一个处理器2235,但是在一个实施例中,在计算设备2200内包括不同数量的处理器(诸如两个或更多个等),并且不同的数量处理器执行本公开中描述为由计算设备执行的操作。此外,应该注意的是,在一个实施例中,多于两个存储器设备存储存储在存储器设备2233中的数据。
图23是本文描述的服务器2300的实施例的图。服务器2300是管理服务器152或自动认证服务器112或本文描述的任何其它服务器的示例。服务器2300包括CPU 2302、ROM2304、RAM 2306、硬盘驱动器(HD)或存储存储器2308,以及用于耦合输入/输出设备(诸如键盘、监视器、打印机、电子定点设备(例如,鼠标、轨迹球、触控笔等)等)的输入/输出(I/O)接口2310。在一个实施例中,ROM 2304和/或RAM 2306包括本文描述的一个或多个数据库。应当注意的是,在实施例中,服务器2300具有多于一个的CPU、ROM、RAM、HD、I/O或其它硬件组件。
在实施例中,多个设计者创建电路设计并且被在线设计工程系统102视为电路设计的共同所有者。在线设计工程系统102保持用于生成设计的用户账户的记录,并且然后访问该记录以确定被分配用户账户的用户是电路设计的所有者。在多个用户账户用于生成电路设计的实施例中,被分配用户账户的用户被视为电路设计的所有者。
此外,在一个实施例中,在线设计工程系统102提供迭代过程,利用该迭代过程,在比由常规原型开发系统提供的时间更短的时间量内测量电路设计的成功或失败。例如,在线设计工程系统102由用户1至N经由相应的用户账户1-N访问,以创建并向在线设计工程系统102提交设计。在线设计工程系统102内提供的仿真软件被运行,以对电路设计运行仿真。一个或多个制造实体基于设计制造一个或多个原型。使用在线设计工程系统102测试这一个或多个原型,例如,通过使用存储在在线设计工程系统102中的软件在PCB上测试一个或多个原型。照此,不需要用户1至N与制造实体或与请求者具有一对一的关系或个人联系。相反,在线设计工程系统102促进设计的仿真的生成和运行以便制造原型和测试原型。与常规原型开发系统相比,在线设计工程系统102允许更多次的设计和原型的迭代。
图24是系统2400的实施例的图,以图示制造实体(诸如制造实体1和制造实体2)与群体之间不存在保密协议(NDA)。用于生成布局设计的布局特征对于群体的一个或多个用户(诸如用户1至N)是不可见的。布局特征的示例包括n阱、p阱、n型扩散、p型扩散、n型离子注入物、p型离子注入物、p型基板、n型基板、触点、金属、通孔、多晶硅、氧化物切口等。布局设计的布局特征由制造实体创建。制造计算设备(诸如制造计算设备1)经由计算机网络110向混淆器工具182提供对未被混淆的布局特征的访问。布局特征由混淆器工具182访问并且由混淆器工具182混淆。布局特征的混淆保护了制造实体的知识产权,并且在制造实体和用户群体之间不需要NDA。
图25是系统2500的实施例的图,以图示用户使用集成电路芯片的布局设计与另一个集成电路芯片的另一个布局设计或与集成电路设计(诸如胶合逻辑)来创造另一个集成电路芯片设计。用户1操作用户计算设备1以访问由设计工程实体控制的网站。用户1经由网站登录到用户账户1,并选择在经由网站可访问的网页上显示的先试后买选项(诸如先试后买按钮)。用户1进一步操作用户计算设备1以访问工作空间应用180,以访问布局设计工具166。在接收到对先试后买选项的选择时,管理服务器152提供对混淆布局设计2502的访问。例如混淆布局设计2502经由计算机网络110从设计数据库160经由用户账户1和工作空间应用180发送到用户计算设备1,以便在用户计算设备1的显示设备上显示。混淆布局设计2502具有一个或多个输入端口(诸如输入端口2504A),以及一个或多个输出端口(诸如输出端口2504B),并且具有由混淆器工具182生成的混淆布局特征。混淆布局特征是通过混淆从制造计算设备1经由计算网络110访问的布局特征而生成的。混淆布局设计2502被显示为其中布局特征被混淆的不透明的对象(诸如黑盒子、彩色盒子,或任何形状的彩色对象)。混淆布局设计2502从混淆器工具182经由计算机网络110发送到用户计算设备1,以便在用户计算设备1的显示设备上显示。
用户1通过访问布局设计工具166将混淆布局设计2502与由用户1经由用户账户1生成的布局设计耦合。例如,用户1将由用户1生成的布局设计的输入端口与输出端口2504B耦合,并将由用户1生成的布局设计的输出端口与输入端口2504A耦合,以生成集成电路芯片设计。用户1选择在用户计算设备1的显示设备上显示的测试按钮,以运行图1F的本地布局核实工具167或布局设计核实工具190,以仿真集成电路芯片设计。集成电路芯片设计包括由用户1生成的布局设计以及混淆布局设计2502。在创建隐藏在混淆布局设计2502中的布局特征的制造实体与用户1之间不需要NDA,因为用户1无法经由用户账户1访问布局特征。
图26A是图示从示意图2602生成混淆设计(诸如混淆设计2604A和2604B)的实施例的图。每个混淆设计2604A和2604B是通用布局特征表示的示例。例如,混淆设计2604A未示出晶体管T1具有栅极、漏极和源极。类似地,混淆设计2604B未示出晶体管T2具有栅极、漏极和源极。
晶体管T1由混淆器工具182表示为混淆设计2604A。类似地,晶体管T2由混淆器工具182表示为混淆设计2604B。
示意图的组件(诸如晶体管或逻辑门)的混淆设计具有与组件相同的电气特性。例如,混淆设计2604A具有与晶体管T1相同的上升时间或相同的阈值电压或相同的传输特性或相同的输出特性。作为另一个示例,混淆设计2604B具有与晶体管T2相同的上升时间或相同的阈值电压或相同的传输特性或相同的输出特性。电气特性的其它示例包括双极结晶体管的电流增益、或逻辑门的功耗,或逻辑门处理数据的速度。
用户1在用户计算设备1上经由用户账户1访问工作空间应用180。在访问工作空间应用180时,用户1使用用户计算设备1来访问电路设计工具164以在工作空间显示2603上生成示意图2602。工作空间显示2603包括在用户计算设备1的显示设备上显示的示意图2602的图像。示意图2602包括p型金属氧化物半导体场效应晶体管(MOSFET)T1和n型MOSFET T2。晶体管T1的源极耦合到电压源(诸如5V电压源),并且晶体管T2的源极耦合到电压电位(诸如地电压电位)。此外,晶体管T1和T2的栅极彼此耦合作为输入连接,其例如耦合到电源。输入连接在图26A中被标记为“in”。此外,晶体管T1的漏极和晶体管T2的漏极耦合到输出连接。输出连接在图26A中被标记为“out”。晶体管T1的栅极经由连接CN1连接到晶体管T2的栅极,其中连接CN1耦合到输入连接。此外,晶体管T1的漏极经由连接CN2连接到晶体管T2的漏极,其中连接CN2耦合到输出连接。
用户1使用用户计算设备1、工作空间应用180和电路设计工具164来选择晶体管T1的尺寸(诸如晶体管T1的宽度和晶体管T1的长度),并且选择要在示意图2602中使用的晶体管T1的数量。此外,用户1使用用户计算设备1、工作空间应用180和电路设计工具164来选择晶体管T2的尺寸(诸如晶体管T2的宽度和晶体管T2的长度),并且选择要在示意图2602中使用的晶体管T2的数量。
当由用户1经由用户计算设备1的输入设备选择经由用户账户1在工作空间显示2603上显示的选项(诸如保存按钮或发送按钮)时,示意图2602经由计算机网络110被发送到设计工程系统102的电路设计工具164。为了说明,用户计算设备1应用通信协议以从示意图2602生成分组并经由计算机网络110将分组发送到设计工程系统102。在接收到分组时,设计工程系统102将分组拆包,以提取示意图2602。此外,设计工程系统102的管理服务器152生成具有示意图2602的设计文件并将设计文件存储在设计数据库160中。
设计工程系统102的混淆器工具182从设计数据库160访问具有示意图2602的设计文件,并混淆组件(诸如晶体管T1和T2)的布局特征,以生成混淆设计2604A和2604B。例如,混淆器工具182将晶体管T1的布局特征渲染为不透明以生成混淆设计2604A,并将晶体管T2的布局特征渲染为不透明以生成混淆设计2604B。晶体管的布局特征的示例包括晶体管以及连接CN1和CN2。布局特征的其它示例包括晶体管的扩散或基板或阱。
此外,混淆器工具182在混淆设计2604A和2604B中排除布局特征的缩放表示。例如,混淆器工具182将缩放表示隐藏或渲染为不透明。晶体管的宽度和晶体管的长度是晶体管的缩放表示的示例。布局特征的缩放表示的其它示例包括布局特征的尺寸(诸如其深度、或宽度、或长度、或维度,或其组合)。
混淆设计2604A包括输入端口2606A和输出端口2606B。例如,输入端口2606A表示与晶体管T1的栅极的连接,并且输出端口2606B表示与晶体管T1的漏极的连接。类似地,混淆设计2606B包括输入端口2606C和输出端口2606D。作为示例,输入端口2606C表示与晶体管T2的栅极的连接,并且输出端口2606D表示与晶体管T2的漏极的连接。
用户1访问工作空间应用180以进一步访问布局设计工具166,以从示意图2602生成布局设计。当经由用户账户1和计算机网络110访问布局设计工具166时,混淆器工具182不允许用户1经由用户账户1访问晶体管T1和T2的布局特征,并生成混淆设计2606A和2606B。例如,混淆器工具182不允许用户1经由用户账户1访问,以选择或改变晶体管T1和T2的阱之间的间距、阱的尺寸、晶体管T1和T2的基板的尺寸、晶体管T1和T2的触点的尺寸、耦合到晶体管T1和T2的通孔的尺寸、耦合到晶体管T1和T2的金属的尺寸、晶体管T1和T2的氧化物层的尺寸、晶体管T1和T2的扩散的尺寸、晶体管T1和T2的离子注入物的尺寸、晶体管T1和T2的类型、以及晶体管T1和T2的多晶硅的尺寸。如本文所使用的,布局特征的尺寸的示例包括布局特征的宽度或长度或深度或其组合。布局特征是一个或多个制造实体(诸如制造实体1和制造实体2)的知识产权。在没有NDA的情况下,制造实体的知识产权受到保护,而用户账户1仍然被提供对混淆设计2604A和2604B的访问。混淆设计2604A和2604B由混淆器工具182经由计算机网络110和用户账户1发送到用户计算设备1,以便在用户计算设备1的显示设备上显示。
应当注意的是,在实施例中,虽然混淆设计2604A和2604B是从不同类型的晶体管T1和T2生成的,但是混淆设计2604A和2604B都具有相同的表示。例如,混淆设计2604A和2604B的尺寸和形状之间没有差异。作为另一个示例,混淆设计2604A和2604B的端口数量没有差异。
图26B是工作空间显示2610的实施例的图,以图示混淆设计的手动放置以及在混淆设计之间生成手动布线。当用户1操作用户计算设备1以访问工作空间应用180时,生成工作空间显示2610,以进一步访问布局设计工具166以从图26A的示意图2602生成布局设计。在访问布局设计工具166时,用户1经由用户账户1和混淆器工具182从设计数据库160访问混淆设计2604A和2604B,并使用用户计算设备1的输入设备来将混淆设计2604A和2604B放置在位置P1和P2处。例如,混淆设计2604A被放置在位置P1处,并且混淆设计2604B被放置在位置P2处。作为另一个示例,混淆设计2604A被放置在位置P3处,并且混淆设计2604B被放置在位置P4处。
此外,在放置混淆设计2604A和2604B时,用户1使用用户计算设备1的输入设备在混淆设计2606A和2606B之间生成布线(诸如金属连接),以创建作为布局设计的集成电路芯片设计2608。例如,用户1使用用户计算设备1的输入设备访问并在输入端口2606A和2606C之间布线2612,并生成连接到布线2604A的主输入端口2620A。作为另一个示例,用户1使用用户计算设备1的输入设备来访问并在输出端口2606B和2606D之间布线2622,并生成连接到布线2622的主输出端口2620B。用户1使用用户计算设备1的输入设备将主输入端口2620A连接到布线2612并将主输出端口2620B连接到布线2622。作为又一个示例,用户1使用用户计算设备1的输入设备在布局设计的两个布局特征之间生成金属连接。集成电路芯片设计2608包括主输入端口2620A和主输出端口2620B。此外,用户1使用用户计算设备1在集成电路芯片设计2608内生成主端口2620C和2620D。
一旦集成电路芯片设计2608的混淆设计2604A和2604B被放置并且由用户1经由用户计算设备1和用户账户1彼此连接,并且用户1选择在工作空间显示器2610上显示的保存选项或发送选项,管理服务器152就生成集成电路芯片设计2608的外边界2626,并且用户计算设备1经由计算机网络110将集成电路芯片设计2608发送到设计工程系统102。管理服务器152生成具有集成电路芯片设计2608的设计文件,并将设计文件存储在设计数据库160中。
图27是图示混淆器工具182应用于由制造实体1控制的过程设计套件(PDK)的系统2700的实施例的图。在实施例中,制造实体PDK是在半导体工业中使用的文件集,对用于生成集成电路的布局设计的布局设计工具的制造过程进行建模。在一个实施例中,制造实体PDK是由制造实体1控制的布局设计工具的示例。例如,制造实体1具有使用或允许使用制造实体PDK或具有制造实体PDK的知识产权的许可权利。作为另一个示例,制造实体PDK由为其过程定义某种技术变化的制造实体1创建。制造实体PDK包括用于核实布局设计或电路设计的仿真计算机软件(诸如计算机程序)。例如,制造实体PDK包括SPICETM或SPICETM的修改。
管理服务器152经由计算机网络110从制造实体计算设备1获得制造实体PDK的副本。例如,向设计工程实体提供使用和修改制造实体PDK的许可。作为另一个示例,管理服务器152经由计算机网络110和制造实体账户1从制造计算设备1下载制造实体PDK的副本。作为又一个示例,设计工程实体使用耦合到管理服务器152的输入设备,以下载PDK的副本。
设计工程实体(诸如设计工程实体的雇员)使用耦合到管理服务器152的输入设备和管理服务器152来修改制造实体PDK,以生成DES PDK。例如,设计工程实体使用耦合到管理服务器152的输入设备和管理服务器152来修改制造实体PDK,以生成DES PDK。作为另一个示例,制造实体PDK与混淆器工具182集成,以生成DES PDK。作为另一个示例,制造实体PDK被修改为包括对混淆器工具182的调用函数。作为又一示例,SPICETM或其修改被改变以创建核实软件工具或者被替换为另一个核实软件工具(诸如下一代SPICETM(NgspiceTM)。为了说明,SPICETM或其派生产品被设计工程实体修改以创建核实软件工具或者被设计工程实体用另一个核实软件工具代替。
当由用户计算设备N经由计算机网络110访问布局设计工具166(诸如DES PDK)以生成布局设计时,集成在DES PDK内的混淆器工具182混淆(诸如隐藏或使其不透明或覆盖)由用户1经由用户账户1生成的电路设计的组件(诸如晶体管、逻辑门、电阻器、电容器、电感器或另一个电气元件)的布局特征,以生成混淆设计2502。例如,当用户N经由布局设计工具166请求访问晶体管T1或T2时,通过混淆晶体管的一个或多个布局特征从晶体管T1或晶体管T2生成混淆设计2502,并将其从混淆器工具182经由计算机网络110和用户账户N发送到用户计算设备N,以便在用户计算设备N的显示设备上显示混淆设计2502。图26A的每个混淆设计2604A和2604B是混淆设计2502的示例。
用户N使用用户计算设备N经由账户和计算机网络110访问DES PDK的核实软件工具,以测试混淆设计2502。例如,电源2704(诸如电流供应或电压供应)通过DES PDK的核实软件工具耦合到混淆设计2502的输入端口2504A,以在混淆设计2702的输出端口2504B处生成数据。输出端口2504B处的数据的示例包括输出端口2504B处的电流I对时间t的曲线图。
在一个实施例中,用户N使用用户计算设备N经由用户账户N访问DES PDK的核实软件工具,以从设计数据库160访问图26B的集成电路芯片设计2608并测试集成电路芯片设计2608。当用户N操作用户计算设备N以访问工作空间应用180以进一步访问DES PDK的核实软件工具时,DES PDK的核实软件工具被访问。作为示例,在集成电路芯片设计2608的测试期间,电源2704耦合到集成电路芯片设计2608的主输入端口2620A,以在集成电路芯片设计2608的主输出端口2620B处生成数据。主输出端口2620B处的数据的示例包括主输出端口2620B处的电压与主输入端口2620A处的电压的曲线图。应当注意的是,当经由用户账户N和待测试的DES PDK的核实软件工具访问集成电路芯片设计2608时,不显示图26A的基于其生成集成电路芯片设计2608的示意图2602。示意图2602和集成电路芯片设计2608的输出处的电气特性(诸如传输特性或输出特性或电压)相对于输入处的电压或者输出处的电流相对于输入处的电流的关系是相同的。此外,当由用户N经由用户账户N和DES PDK的核实软件工具访问集成电路芯片设计2608以测试集成电路芯片设计2608时,不显示集成电路芯片设计2608的一个或多个布局特征和/或一个或多个特征的一个或多个缩放表示。此外,当由用户N经由用户账户N和DES PDK的核实软件工具访问集成电路芯片设计2608以测试集成电路芯片设计2608时,多个组件(诸如晶体管T1和T2)被混淆器工具182混淆。为了说明,当组件被混淆时,不存在使用了多少组件、组件在集成电路芯片设计2608中的位置、组件的类型、集成电路芯片设计2608中的两个相邻组件之间的间距(诸如垂直距离),以及组件的身份。在图示中,组件的类型(诸如n型或p型)标识组件和/或分配给组件的一系列字母数字字符(诸如序列号)标识组件。
在该实施例中,混淆器工具182混淆一个或多个布局特征和/或一个或多个缩放表示,以经由计算机网络110在用户计算设备N的显示设备上生成集成电路芯片设计2608的显示,以促进集成电路芯片设计2608的测试。例如,混淆器工具182混淆图26B中所示的布线2612和2622,但不混淆集成电路芯片设计2608的主输入端口2620A和2620B。此外,混淆器工具182混淆混淆设计2604A和2604B,但不混淆主端口2620C和2620D。在集成电路芯片设计2608的测试期间,主端口2620C连接到电源,并且主端口2620D连接到另一个电源。此外,主端口2620C连接到图26B所示的混淆设计的端口2604A,并且主端口2620D连接到图26B所示的混淆设计2604B的端口。
图28是图示先试后买选项2802的系统2800的实施例的图。用户或请求者使用计算设备(诸如请求者计算设备1或用户计算设备1)来经由账户(诸如用户账户1或请求者账户1)访问先试后买选项2802。先试后买选项2802由管理服务器152生成,以便在计算设备上显示。此外,用户或请求者经由账户访问工作空间应用180,以进一步访问布局设计工具166。此外,在接收到对先试后买选项2802的选择和访问布局设计工具166的请求时,混淆器工具182经由计算机网络110将混淆设计2502发送到计算设备以便经由账户显示。出于图28的目的,由用户2经由用户账户2创建从其生成混淆设计2502的电路示意图。
用户(诸如用户1)或请求者使用计算设备的输入设备经由一个或多个连接(诸如连接2808)将混淆设计2502与设计2806(诸如布局设计)连接。设计2806的示例包括图4B-2的设计A和设计B。为了说明,设计2806由用户1通过访问布局设计工具166来创建。设计2806的其它示例包括图4B-2的集成电路逻辑452。应当注意的是,混淆设计2502不显示布局特征和相关联的缩放表示,诸如在混淆设计2502内混淆的晶体管是n型还是p型晶体管,或者逻辑门的类型,或者在混淆设计2502内混淆的逻辑门的数量,或者与混淆设计2502内的组件的触点,或者在混淆设计2502内使用的阱的类型,或者阱的深度,或者阱的长度,或者阱的宽度,或者在混淆设计2502内使用的扩散的类型,或者扩散的深度,或者扩散的长度,或者扩散的宽度,或者混淆设计2502内的氧化物层切口的数量,或者混淆设计2502内GDS层的布置,或者混淆设计2502内GDS层相对于彼此的位置,或者布局设计2502内的多晶硅的位置,或者多晶硅的宽度,或者多晶硅的长度,或者混淆设计2502内触点的数量,或者混淆设计2502内将一个组件连接到另一个组件的金属)。逻辑门的类型的示例包括与门、或门、或非门、与非门、缓冲器和非门。一种类型的逻辑门执行与不同类型的逻辑门不同的功能。例如,非门将位1改变为位0,并且缓冲器允许位1在其输入处通过,以在其输出处输出位1。此外,用户或请求者通过经由计算机网络110和账户访问本地布局核实工具167或布局设计核实工具190来核实集成电路芯片设计2810的功能。
在实施例中,用户或请求者不需要付费来尝试混淆设计2502(诸如使用具有设计2806的混淆设计2502)。例如,信用和借记服务器系统不经由计算机网络110借记用户2的金融账户来记入用户1的金融账户,以向用户2支付混淆设计2502的使用(诸如仿真)。
图29是由混淆器工具182混淆的集成电路芯片设计2900的实施例的图。集成电路芯片设计2900包括多个晶体管2904A、2904B、2904C和2904D。此外,集成电路芯片设计2900包括一个或多个内部端口(诸如内部端口2902A、内部端口2902B、内部端口2902C和内部端口2902D)。内部端口2902D的示例是端口2504A(图25),内部端口2902B的示例是端口2504B(图25)。此外,内部端口2902A耦合到电源,并且内部端口2902C耦合到地电位或另一个电源。类似地,剩余晶体管2904B至2904C中的每一个被内部端口包围。
此外,集成电路芯片设计2900具有一个或多个外部端口(诸如外部端口2906A和外部端口2906B)。每个外部端口耦合到另一个集成电路芯片设计的外部端口。此外,集成电路芯片设计2900的每个外部端口耦合到集成电路芯片设计2900的一个或多个内部端口。
用户1访问布局设计工具166以生成集成电路芯片设计2900。晶体管2904A至2904D的布局特征由混淆器工具182进行混淆。例如,混淆器工具182隐藏晶体管2904A至2904D中任何一个的类型。用户1经由用户账户1和计算机网络110访问布局设计工具166,以选择晶体管2904A至2904D的宽度、晶体管2904A至2904D的长度,以及晶体管2904A和2904D的数量。访问布局设计工具166以定位晶体管2904A至2904D,以经由用户计算设备1的输入设备连接集成电路芯片设计2900的内部端口,并连接集成电路芯片设计2900的一个或多个内部端口与集成电路芯片设计2900的一个或多个外部端口。此外,用户1使用用户计算设备1的输入设备来访问布局设计工具166,以连接集成电路芯片设计2900的外部端口与另一个集成电路芯片设计的外部端口。
在一个实施例中,围绕集成电路芯片设计2900的晶体管的一个或多个内部端口耦合到围绕集成电路芯片设计2900的另一个晶体管的一个或多个内部端口。在实施例中,代替每个晶体管2904A至2904C,在集成电路芯片设计2900中使用另一个IP单元格(诸如逻辑门、多个晶体管、多个逻辑门、一个或多个电感器、一个或多个电容器、个或多个电阻器,或其组合)。在一个实施例中,每个内部端口(诸如内部端口2902A至2902D中的的任何一个)具有一个或多个触点,并且触点耦合到不同晶体管的栅极。在实施例中,术语外部端口和主端口在本文中可互换使用。
图30是用于将布局设计的GDS层映射到平面的系统3000的实施例的图。制造实体PDK包括多个GDS层(诸如布局特征),当在拥有制造实体PDK的知识产权的制造实体与用户1之间存在NDA时,用户1可以使用该GDS层来生成布局设计。在缺少NDA的情况下,DES PDK的混淆器工具182将制造实体PDK的一个或多个GDS层映射到DES PDK的平面,以混淆具有GDS层的布局设计。例如,混淆器工具182将布局设计的GDS层1映射到DES PDK的阱平面(诸如与其建立一对一的对应关系,或者分配或创建它们之间的唯一关系)。此外,在这个示例中,混淆器工具182将布局设计的GDS层2映射到阱平面。GDS层1的图示是阱类型1(诸如n型阱),并且GDS层2的图示是阱类型2(诸如p型阱或DN阱或P阱)。类阱型2与阱类型1不同。
作为另一个示例,混淆器工具182将GDS层放置在平面上的布局设计内。为了说明,混淆器工具182将不同类型的布局设计的阱放置在阱平面上。继续该示例,代替经由计算机网络110将GDS层发送到账户以便在计算设备(诸如用户计算设备或请求者计算设备)上显示,混淆器工具182将两个或更多个GDS层组合成一个或多个平面并且经由计算机网络110将平面而不是GDS层发送到计算设备以便经由账户显示。
作为另一个示例,混淆器工具182将布局设计的GDS层3映射到DES PDK的平面1。平面1不同于阱平面,诸如与其不同。此外,在这个示例中,混淆器工具182将布局设计的GDS层4映射到平面1。GDS层3的图示是通过布局设计的层(诸如介电层)连接布局设计的两个布局特征的通孔1,并且GDS层3的图示是连接布局设计的两个布局特征的金属层1。
作为又一个示例,混淆器工具182将布局设计的GDS层5映射到DES PDK的平面2。平面2不同于阱平面,诸如与其不同,并且不同于平面1。此外,在这个示例中,混淆工具182将布局设计的GDS层6映射到平面2。GDS层5的图示是通过布局设计的层(诸如介电层)连接布局设计的两个布局特征的通孔2,并且GDS层6的图示是连接布局设计的两个布局特征的金属层2。在一个实施例中,金属层2在布局设计中位于金属层1上方。
作为另一个示例,混淆器工具182将布局设计的GDS层7映射到DES PDK的有源平面。有源平面不同于阱平面(诸如与其不同),不同于平面1,并且不同于平面2。此外,在这个示例中,混淆器工具182将布局设计的GDS层8映射到有源平面。GDS层7的图示是放在布局设计的布局特征上方以保护布局特征的氧化物切口,并且GDS层8的图示是布局设计的布局特征内的类型1的扩散(诸如n型或p型扩散)。
继续该示例,混淆器工具182将布局设计的GDS层9映射到DES PDK的有源平面。此外,在这个示例中,混淆器工具182将布局设计的GDS层10映射到有源平面。GDS层9的图示是布局设计的布局特征内的类型2的扩散(诸如n型或p型扩散),并且GDS层10的图示是布局设计的触点1。触点1耦合到布局设计的布局特征。类型2的扩散不同于类型1的扩散。为了说明,类型2扩散是p型,而类型1扩散是n型。
继续该示例,混淆器工具182将布局设计的GDS层11映射到DES PDK的有源平面。此外,在这个示例中,混淆器工具182将布局设计的GDS层12映射到有源平面。GDS层11的图示是布局设计的触点2,并且GDS层12的图示是布局设计的多晶硅1。触点2耦合到布局设计的不同布局特征,而不是触点1耦合到的布局特征。作为说明,多晶硅用作栅极电极。
继续该示例,混淆器工具182将布局设计的GDS层13映射到DES PDK的有源平面。此外,在这个示例中,混淆器工具182将布局设计的GDS层14映射到有源平面。GDS层13的图示是布局设计的多晶硅2,并且GDS层14的图示是布局设计的有源设备或无源设备。多晶硅2不同于多晶硅1。为了说明,多晶硅2是用于制造与由多晶硅1制造的栅极电极不同的栅极电极的材料。有源设备的示例包括变容二极管、晶体管、NMOS、PMOS、整流器和逻辑门。无源设备的示例包括电阻器、电容器和电感器。
混淆器工具182将布局设计的GDS层15映射到DES PDK的注入物平面。注入物平面不同于阱平面(诸如与其不同),不同于平面1,不同于平面2,并且不同于有源平面。此外,在这个示例中,混淆器工具182将布局设计的GDS层16映射到注入物平面。GDS层15的图示是离子注入物类型1的布局设计,并且GDS层16的图示是离子注入物类型2的布局设计。离子注入物类型2不同于离子注入物类型1。为了说明,离子注入物类型1是n型注入物,而离子注入物类型2是p型注入物。
当用户N经由用户账户N请求布局设计时,混淆器工具182混淆布局设计的两个或更多个GDS层1至16并经由计算机网络110向用户计算设备N发送阱平面、平面1、平面2和/或注入物平面,以便经由用户账户N显示。例如,混淆器工具182确定用户账户N没有查看GDS层1至16的许可,并且在确定这一点时,混淆器工具182将GDS层1和2映射到阱平面,将GDS层3至6映射到平面1,将GDS层7至14映射到平面2,和/或将GDS层15和16映射到注入物平面,并将阱平面、平面1、平面2和/或注入物平面发送到用户计算设备1,以便在用户计算设备1的显示设备上显示。为了说明,代替经由计算机网络向用户计算设备1发送任何两个GDS层以便经由用户账户1显示,混淆器工具182从GDS层生成平面并经由计算机网络110将平面发送到用户计算设备1以便经由用户账户1显示。
在实施例中,平面上的GDS层不能与不同类型的GDS层重叠。例如,阱类型1不能与阱类型2重叠。作为另一个示例,扩散类型1不能与扩散类型2重叠。作为又一个示例,注入物类型1不能与注入物类型2重叠。
在实施例中,混淆器工具182通过生成从可搜索存储装置162的其中存储GDS层的数据的存储器地址到可搜索存储装置162的其中存储平面的数据的存储器地址的指针来确立制造实体PDK的GDS层与DES PDK的平面之间的映射。在另一个实施例中,混淆器工具182通过生成从可搜索存储装置162的其中存储平面的数据的存储器地址到可搜索存储装置162的其中存储GDS层的数据的存储器地址的指针来确立制造实体PDK的GDS层与DES PDK的平面之间的映射。
图31是图示从两个或更多个GDS层生成派生类型的系统3100的实施例的图。派生类型的示例是布局特征。混淆器工具182组合布局设计的GDS层A和GDS层B以生成派生类型3102,其是派生类型的布局特征。例如,当用户N操作用户计算设备N以访问布局设计工具166以进一步从设计数据库160访问布局设计时,混淆器工具182访问公-私指示符数据库220。以确定用户账户N是否有访问布局设计的许可。在确定用户账户N不具有许可时,混淆器工具182集成布局设计的GDS层A和B以生成派生类型3102以混淆GDS层A和B。混淆器工具182经由计算机网络110向用户计算设备N发送派生类型3102,而不是GDS层A和B,以便经由用户账户N显示。另一方面,在确定用户账户N具有许可时,混淆器工具182不集成布局设计的GDS层A和B以生成派生类型3102,并且经由计算机网络110将GDS层A和B发送到用户计算设备N以便经由用户账户N显示。GDS层A的示例包括GDS层1至16中的任何一个,并且GDS层B的示例包括GDS层1至16中不是GDS层A的任何剩余的层。GDS层A的附加示例包括布局设计的任何布局特征,并且GDS层B的附加示例包括布局设计的任何剩余特征。这些剩余特征中没有一个是GDS层A。生成派生类型3102,以混淆GDS层1至16中的两个或更多个。
作为示例,布局设计的注入物类型(诸如n型或p型注入物)由混淆器工具182与布局设计的有源设备1合并,以生成ndiff派生类型。有源设备1的图示包括上述任何有源设备,诸如晶体管和逻辑门。作为另一个示例,布局设计的注入物类型由混淆器工具182与有源设备1、布局设计的触点1和布局设计的金属1合并,以生成ndiffcont派生类型。触点1的图示是到晶体管的栅极或源极或漏极的金属触点。触点1的另一个图示是到逻辑门的输入或逻辑门的输出的金属触点。触点1的又一个图示是到电阻器或电容器或电感器的端子的金属触点。金属1的图示是布局设计的两个布局特征之间的金属连接。作为又一个示例,布局设计的注入物类型由混淆器工具182与有源设备1、布局设计的一个或多个触点以及布局设计的金属1合并,以生成ndiffcont派生类型。作为另一个示例,布局设计的有源设备1由混淆器工具182与布局设计的注入物类型、布局设计的多晶硅1以及布局设计的氧化物切口合并,以生成nmos派生类型。多晶硅1的图示是晶体管的电极的多晶硅层。氧化物切口的图示是沉积在布局特征上以保护布局特征的氧化物层。作为又一个示例,布局设计的通孔1由混淆器工具182与布局设计的金属1、金属2)组合,以生成via1派生类型。作为说明,金属2连接布局设计的两个布局特征,并且经由金属2连接的布局特征中的至少一个不同于经由金属1连接的布局特征中的至少一个。通孔1的图示是布局设计的两个布局功能之间的通孔。通孔延伸穿过布局设计的层(诸如氧化物层或介电层,或这两层)。作为另一个示例,多晶硅1由混淆器工具182与布局设计的多晶硅2合并,以生成多晶硅帽(polycap)派生类型。作为说明,与多晶硅1相比,多晶硅2是晶体管的不同端子的多晶硅。为了进一步说明,多晶硅2是晶体管的栅极的多晶硅,并且多晶硅1是晶体管的漏极的多晶硅。作为另一个图示,与多晶硅1相比,多晶硅2是不同晶体管的端子的多晶硅。为了进一步说明,多晶硅2是晶体管的栅极的多晶硅,并且多晶硅1是另一个晶体管的栅极的多晶硅。
在一个实施例中,在GDS层被放置在平面上之后,混淆器工具182组合两个或更多个GDS层以生成派生类型。例如,GDS层A和B被映射到平面。在映射之后,混淆器工具182将GDS层A和B组合成位于平面上的派生类型。作为另一个示例,将多于两个GDS层映射到平面。在映射之后,混淆器工具182将多于两个GDS层组合成位于平面上的派生类型。
图32是由混淆器工具182应用以混淆布局设计的一个或多个布局特征的混淆器规则的列表的实施例的图。当用户N操作用户计算设备N以经由用户账户N访问布局设计工具166以生成布局设计时,混淆器工具182应用其中一个或多个混淆器规则,以确定是否允许用户N经由用户计算设备N的输入设备生成或修改布局设计的布局特征。例如,混淆器工具182允许用户N经由用户账户N选择布局设计的两个阱之间的间距,但是不允许用户N经由用户账户N选择阱的宽度并且不允许用户N经由用户账户N绘制阱。作为另一个示例,混淆器工具182防止用户N经由用户账户N选择两个阱之间的间距、阱的宽度和/或绘制阱。作为另一个示例,混淆器工具182允许用户N经由用户账户N绘制布局设计的扩散类型1、选择扩散类型1的宽度、以及选择布局设计的两种扩散类型之间的间距。作为示例,混淆器工具182禁止用户N经由用户账户N绘制布局设计的扩散类型1、选择扩散类型1的宽度、和/或选择布局设计的两种扩散类型1之间的间距。作为另一个示例,混淆器工具182不允许用户N经由用户账户N绘制布局设计的扩散类型2和选择扩散类型2的宽度,并允许用户N经由用户账户N选择布局设计的两种扩散类型之间的间距。作为示例,混淆器工具182防止用户N经由用户账户N绘制布局设计的扩散类型2、选择扩散类型2的宽度、和/或选择布局设计的两种扩散类型2之间的间距。扩散类型2不同于扩散类型1。为了说明,扩散类型1是阱内的n型扩散,而扩散类型2是另一个阱内的p型扩散。
作为另一个示例,混淆器工具182不允许用户N经由用户账户N绘制布局设计的多晶硅、选择多晶硅的宽度、以及选择布局设计的两个多晶硅之间的间距。作为另一个示例,混淆器工具182N防止用户N经由用户账户N绘制布局设计的多晶硅、选择多晶硅的宽度、和/或选择布局设计的两个多晶硅之间的间距。作为示例,混淆器工具182允许用户N经由用户账户N绘制布局设计的金属(诸如两个布局特征之间的金属连接)、选择金属的宽度、以及选择布局设计的两种金属之间的间距。作为另一个示例,混淆器工具182禁止用户N经由用户账户N绘制布局设计的金属、选择金属的宽度、和/或选择布局设计的两种金属之间的间距。
作为示例,混淆器工具182允许用户N经由用户账户N绘制布局设计的通孔(诸如连接两个布局特征的通孔)、选择通孔的宽度、以及选择布局设计的两个通孔之间的间距。作为另一个示例,混淆器工具182防止用户N经由用户账户N绘制布局设计的通孔、选择通孔的宽度、和/或选择布局设计的两个通孔之间的间距。作为示例,混淆器工具182不允许用户N经由用户账户N绘制布局设计的有源设备、选择有源设备的宽度、以及选择布局设计的两个有源设备之间的间距。作为另一个示例,混淆器工具182防止用户N经由用户账户N绘制布局设计的有源设备、选择有源设备的宽度、和/或选择布局设计的两个有源设备之间的间距。
图33是由混淆器工具182通过生成派生类型来混淆的集成电路芯片设计3300的实施例的图。集成电路芯片设计3300包括四个ndiffcont派生类型3302A、3302B、3302C和3302D。此外,集成电路芯片设计3300还包括三个nmos派生类型3304A、3304B和3304C。每个nmos派生类型3304A、3304B和3304C位于两个ndiffcont派生类型之间。集成电路芯片设计3300包括三个ndiff派生类型3306A、3306B和3306C。每个ndiff派生类型3306A、3306B和3306C与两个ndiffcont派生类型相邻。
此外,nmos派生类型3304A在一端耦合到多晶硅3312A(诸如多晶硅1)并且在相对端耦合到多晶硅3312F。类似地,nmos派生类型3304B在一端耦合到多晶硅3312B并且在相对端耦合到多晶硅3312E。此外,nmos派生类型3304C在一端耦合到多晶硅3312C并且在相对端耦合到多晶硅3312D。
多晶硅3312A耦合到集成电路芯片布局设计3300的触点3308A,并且多晶硅3312B耦合到集成电路芯片布局设计3300的触点3308B。此外,多晶硅3312C耦合到集成电路芯片布局设计3300的触点3308C,并且多晶硅3312D耦合到集成电路芯片布局设计3300的触点3308F。此外,多晶硅3312E耦合到集成电路芯片布局设计3300的触点3308E,并且多晶硅3312F耦合到集成电路芯片布局设计3300的触点3308D。
此外,集成电路芯片布局设计3300包括触点3310A和另一个触点3310B。触点3310A和3310B中的每一个是将集成电路芯片设计3300的p型基板内的扩散3313耦合到另一个集成电路芯片设计以测试集成电路芯片设计3300或该另一个集成电路芯片设计的端口的示例。
图34是图示多个派生类型的集成电路芯片设计3400的实施例的图。集成电路芯片设计3400具有派生类型rnp1的布置,其由混淆器工具182通过组合上述两个或更多个GDS层而生成。例如,四个块3402A、3402B、3402C和3402D布置成一行。每个块3402A、3402B、3402C和3402D属于派生类型rnp1。派生类型rnp1的每个块3402A、3402B、3402C和3402D在两端耦合到触点。作为示例,块3402A在块3402A的一端连接到触点3404A,并在块3402A的相对端连接到触点3404B。作为另一个示例,块3402B在块3402B的一端耦合到触点3404C并且在块3402B的相对端耦合到触点3404D。类似地,块3402C在块3402C的一端耦合到触点并且在块3402C的另一个端耦合到另一个触点。此外,块3402D在块3402D的一端耦合到触点并且在块3402D的另一个端耦合到另一个触点。此外,集成电路芯片设计3400包括n型阱3406、到集成电路芯片设计3400的n型基板的多个触点3408A和3408B、以及n型基板内的扩散3410。
在一个实施例中,耦合到块(诸如块3402A、3402B、3402C和3402D)的集成电路芯片设计3400的每个触点是由混淆器工具182生成的、触点的组合。例如,触点3404A是两个或更多个触点的组合。两个或更多个触点中的一个连接到布局设计的GDS层,并且两个或更多个触点中的另一个连接到布局设计的另一个GDS层。例如,两个或更多个触点中的一个连接到布局设计的晶体管的栅极,两个或更多个触点中的另一个连接到布局设计的相同或不同晶体管的漏极。
图35是图示从集成电路芯片设计3504生成的混淆集成电路芯片设计3502的实施例的图。混淆器工具182从图1B-2的设计数据库160访问集成电路芯片设计3504,并且混淆集成电路芯片设计3504的一个或多个布局特征,以生成混淆集成电路芯片设计3502。集成电路芯片设计3504的布局特征包括NMOS晶体管3506、PMOS晶体管3508、合并触点3510、以及电阻器3512。在一个实施例中,合并触点3510在本文中称为具有两个或更多个触点的组合的组合触点。由混淆器工具182组合两个或更多个触点。应当注意的是,在混淆集成电路芯片设计3502中,NMOS晶体管3506、PMOS晶体管3508、合并触点3510和电阻器3512是不可见的,诸如是不透明的或被隐藏。例如,当用户N操作用户计算设备N以经由布局设计工具166从设计数据库160访问集成电路芯片设计3504时,混淆器工具182将NMOS晶体管3506、PMOS晶体管3508、合并触点3510和电阻器3512渲染为不透明,以生成混淆集成电路芯片设计3502。混淆器工具182经由计算机网络110将混淆集成电路芯片设计3502发送到用户计算设备N以便通过用户账户N在用户计算设备N的显示设备上显示。
图36A是逆变器的未混淆布局设计3600的实施例。布局设计3600具有p型基板3602。在p型基板3602内形成n型阱3604。此外,在n型阱3604内添加掺杂剂以形成p型扩散3606A并且还在n型阱3604内的不同位置处添加掺杂剂以形成另一个p型扩散3606B。此外,在n型阱3604内添加掺杂剂以在n阱3604内形成n型扩散3608。
类似地,在p型基板3602内添加掺杂剂以形成n型扩散3610A并且还在p型基板3602内的不同位置处添加掺杂剂以形成另一个n型扩散3610B。此外,在p型基板3602内添加掺杂剂以在p型基板3602内形成p型扩散3612。
此外,在p型基板3602和p型扩散3612的一部分的顶部上形成氧化物层切口OCT1。此外,在p型扩散3612的一部分和n型扩散3610A的一部分的顶部上形成氧化物层切口OCT2。此外,在n型扩散3610A的一部分、p型基板3602的一部分和n型扩散3610B的一部分的顶部上形成氧化物层切口OCT3。在n型扩散3610B的一部分、p型基板3602的一部分、n型阱3604的一部分和p型扩散3606A的一部分的顶部上形成氧化物层切口OCT4。此外,在p型扩散3606A的一部分、n型阱3604的一部分和p型扩散3606B的一部分的顶部上形成氧化物层切口OCT5。此外,在p型扩散3606B的一部分和n型扩散3608的一部分的顶部上形成氧化物层切口OCT6。此外,在n型扩散3608的一部分、n型阱3604的一部分和p型基板3602的一部分的顶部上形成氧化物层切口OCT7。氧化物切口由二氧化硅制成。
金属层部分1在氧化物层切口1和2的顶部上并且在p型扩散3612和n型扩散3610A的顶部上制造,并且与氧化物层切口OCT3相邻。此外,金属层部分2在n型扩散3610B、氧化物层切口4、p型扩散3606A的顶部上制造,并且与氧化物层切口OCT3和OCT 5相邻。金属层部分3在p型扩散3606B、n型扩散3608的顶部上并且在氧化物层切口6和7的顶部上制造,并且与氧化物层切口OCT5相邻。金属层部分1是接地连接,例如,处于地电位。此外,金属层部分2是未混淆布局设计3600的输出(诸如输出端口),并且金属层部分3处于与地电位不同的可能电位VDD。氧化物层切口OCT3围绕表示栅极电极的多晶硅PS1,并且氧化物层切口OCT5围绕表示另一个栅极电极的多晶硅PS2。多晶硅PS1和PS2二者彼此耦合以形成未混淆布局设计3600的输入(诸如输入端口)。
n型扩散3610A、多晶硅PS1和n型扩散3610B一起形成有源设备(诸如NMOS晶体管)。此外,p型扩散3606A、多晶硅PS2和n型扩散3606B形成另一个有源设备(诸如PMOS晶体管)。
在一个实施例中,布局设计的金属层部分在本文中有时被称为布局设计的金属。
图36B是图36A的布局设计3600的俯视图3620的实施例的图。俯视图3620示出了布局设计的多个触点CT1、CT2、CT3、CT4、CT5和CT6。触点CT1连接到p型扩散3612,并且触点CT2连接到n型扩散3610A。此外,触点CT3连接到n型扩散3610B。触点CT4连接到p型扩散3636A。触点CT5连接到p型扩散3606B,并且触点CT6连接到n型扩散3608。
应当注意的是,布局设计3600的每个布局特征具有尺寸,诸如宽度、长度和深度。例如,n型阱3604具有深度d1、宽度w1和长度l1。作为另一个示例,金属层部分1具有深度d2、宽度w2和长度l2。
应当注意的是,关于由诸如管理服务器152之类的服务器运行的功能描述了某些上述实施例。在各种实施例中,本文描述为由一个服务器执行的功能由多个服务器(诸如两个或更多服务器)执行。例如,多个服务器中的一个服务器执行其中某些功能,并且该多个服务器中的另一个服务器执行剩余的功能。
应当注意的是,关于由诸如管理服务器152的处理器之类的处理器运行的功能描述了某些上述实施例。在各种实施例中,本文描述为由服务器的一个处理器执行的功能由该服务器或不同服务器的多个处理器(诸如两个或更多个处理器)执行。例如,多个处理器中的一个处理器执行某些功能,并且该多个处理器中的另一个处理器执行剩余的功能。
在一个方面,本公开中描述的一个或多个实施例被制造为计算机可读存储介质上的计算机可读代码,该计算机可读存储介质是存储设备或存储器设备。计算机可读存储介质保存可由处理器读取的数据。计算机可读存储介质的示例包括网络附连存储(NAS)、存储器设备、ROM、RAM、RAM和ROM的组合、压缩盘(CD)、Blu-rayTM盘、闪存、硬盘和磁带。在一个实施例中,计算机可读存储介质分布在网络耦合的计算机系统上,使得计算机可读代码以分布式方式存储和运行。
在一个实施例中,在上述实施例之一中描述的某些特征与在上述实施例中的另一实施例描述的某些特征组合。
虽然为了理解清楚的目的已经详细描述了本公开中描述的实施例,但是显而易见的是,可以在所附权利要求的范围内实践某些改变和修改。因而,实施例应当被认为是说明性而非限制性的,并且实施例不限于本文给出的细节,而是可以在所附权利要求的范围和等同方式内进行修改。

Claims (56)

1.一种用于管理基于规范生成电路的多个设计的在线设计工程系统,包括:
数据表构建器工具,被配置为从请求者计算设备接收用于产生所述电路的设计的所述规范,其中通过网络经由请求者账户向所述请求者计算设备提供对所述数据表构建器工具的访问,其中所述数据表构建器工具被配置为经由所述网络向多个用户计算设备提供对所述规范的访问;
具有规范数据库的可搜索存储装置,其中所述可搜索存储装置耦合到所述数据表构建器工具,其中所述规范数据库被配置为存储由所述数据表构建器工具接收的所述规范,其中所述可搜索存储装置包括用于存储针对所述规范生成的设计的设计数据库;
多个设计工具,耦合到所述数据表构建器工具,其中所述设计工具被配置为由所述用户计算设备经由网络访问,以促进生成所述电路的设计,其中每个用户计算设备经由对应用户账户被提供对所述设计工具的访问,其中所述设计工具被一个或多个用户访问以生成针对所述规范的设计;
设计服务管理器工具,耦合到所述设计工具并且被配置为经由所述网络向所述请求者计算设备提供对所述设计的访问,以便促进基于所述设计的审查;以及
访问管理器工具,耦合到所述数据表构建器工具和所述设计工具,其中所述访问管理器工具被配置为经由网络向所述用户计算设备提供对所述数据表构建器工具的访问以及对所述设计工具的访问。
2.如权利要求1所述的在线设计工程系统,
其中所述数据表构建器工具被配置为经由所述请求者账户接收对用于定义所述规范的数据表的请求,其中所述数据表是用于填写所述规范的电气和物理参数的模板,
其中所述数据表构建器工具被配置为经由所述网络向所述请求者计算设备提供所述数据表以便在所述请求者账户内显示,其中所述规范的所述电气和物理参数由所述数据表构建器工具接收,以促进生成针对所述规范的设计挑战。
3.如权利要求2所述的在线设计工程系统,其中所述数据表标识所述设计挑战的名称、所述电路的引脚的名称、多个全局测试参数、用于所述引脚中的每一个引脚的电气参数的最小和最大限制的集合、以及所述物理参数的最小和最大限制的集合。
4.如权利要求3所述的在线设计工程系统,其中每个电气参数和每个物理参数与用于测试所述电路的设计的测试方法相关联。
5.如权利要求4所述的在线设计工程系统,其中所述数据表构建器工具被配置为为所述设计之一生成测试台示意图或网表,其中所述测试台示意图或网表包括通过引用对所述设计之一的实例化并且包括用于运行所述测试方法以生成所述电气参数的一个或多个测量的多个电气组件。
6.如权利要求2所述的在线设计工程系统,其中所述数据表包括指示所述设计之一是通过还是未通过测试的复合指示符,其中所述复合指示符是从用于所述电气和物理参数的多个指示符生成的,其中所述多个指示符中的每一个指示符指示所述参数中对应的一个参数是否在预定范围之外,所述在线设计工程系统还包括:
竞赛生成器工具,耦合到所述数据表构建器工具,其中所述竞赛生成器工具被配置为比较用于所述设计之一的复合指示符与来自另一个数据表的复合指示符,以确定竞赛的获胜者。
7.如权利要求2所述的在线设计工程系统,其中所述数据表包括指示所述设计之一是通过还是未通过测试的复合得分,其中所述复合得分是从所述电气和物理参数的多个得分生成的,其中所述多个得分中的每一个得分指示所述参数中对应的一个参数是否在预定范围之外,所述在线设计工程系统还包括:
竞赛生成器工具,耦合到数据表构建器工具,其中所述竞赛生成器工具被配置为比较用于所述设计之一的复合得分与来自另一个数据表的复合得分,以确定竞赛的获胜者。
8.如权利要求1所述的在线设计工程系统,其中所述数据表构建器工具被配置为:
经由所述请求者账户接收对用于定义所述规范的数据表的请求;
经由所述网络提供所述数据表以便在所述请求者账户内显示,其中由所述数据表接收所述规范的电气参数;以及
将包括所述规范的所述数据表作为规范文件存储在所述规范数据库中,以便通过所述用户计算设备经由所述用户账户访问,其中所述规范文件引用其中存储测试台示意图的示意图文件或引用其中存储用于生成所述测试台示意图的网表的网表文件。
9.如权利要求1所述的在线设计工程系统,其中所述数据表构建器工具被配置为:
经由所述请求者账户接收对用于定义所述规范的数据表的请求,其中所述数据表是用于填写所述规范的电气参数和物理的模板;
经由网络提供所述数据表以便在所述请求者账户内显示,其中由所述数据表接收所述规范的电气和物理参数以生成针对所述规范的设计挑战;以及
在提供包括来自所述规范数据库的所述规范的所述数据表以便在所述用户计算设备上显示时,经由所述用户账户之一接收对所述设计挑战的接受。
10.如权利要求1所述的在线设计工程系统,其中所述数据表构建器工具被配置为:
经由所述请求者账户接收对用于定义所述规范的数据表的请求;
经由网络提供所述数据表以便在所述请求者账户内显示,其中在所述数据表内接收所述规范以生成针对所述规范的设计挑战;
在提供包括来自所述规范数据库的所述规范的所述数据表以便在所述用户计算设备上显示时,经由所述用户账户之一接收对所述设计挑战的接受;以及
在接收到对所述挑战的接受时,将包括所述数据表的数据表文件复制到所述用户账户之一。
11.如权利要求1所述的在线设计工程系统,其中所述访问管理器工具被配置为经由所述用户账户之一提供对工作空间应用的访问,以促进基于所述规范生成所述设计之一的电路示意图,所述设计工具是经由所述在线设计工程系统的所述工作空间应用来访问的。
12.如权利要求1所述的在线设计工程系统,
其中所述访问管理器工具被配置为向所述用户账户之一提供对工作空间应用的访问,以基于所述规范生成所述设计之一的电路示意图,
其中所述设计工具之一被配置为将所述电路示意图存储在设计文件中,以及
其中所述访问管理器工具被配置为提供对仿真工具的访问,以允许所述用户计算设备之一测试所述电路示意图,以经由所述用户账户之一生成结果来表征所述电路示意图,其中所述仿真工具由所述在线设计工程系统的自动认证服务器运行。
13.如权利要求10所述的在线设计工程系统,
其中所述设计工具被配置为:
生成包括所述设计之一的设计文件;
经由所述用户账户之一接收将所述设计之一上传到所述设计数据库以便存储的指示,其中使用所述仿真工具执行的所述测试的结果未被存储在所述设计数据库内;以及
耦合到所述访问管理器工具的公-私指示符工具,其中所述公-私指示符工具被配置为经由所述用户账户之一接收来自所述用户计算设备之一的、将所述设计之一指定为私有的指示。
14.如权利要求1所述的在线设计工程系统,还包括:
梭子管理器工具,耦合到所述访问管理器工具,其中所述梭子管理器工具被配置为从所述请求者计算设备接收对所述设计之一的选择,以便基于所述设计之一制造所述电路的原型;以及
奖励生成器工具,耦合到所述访问管理器工具,其中所述奖励生成器工具被配置为奖励经由对应的用户账户以便生成经由所述请求者计算设备被选择的所述设计之一的所述用户之一。
15.如权利要求1所述的在线设计工程系统,还包括耦合到所述访问管理器工具的混淆器工具,其中所述混淆器工具被配置为混淆所述设计之一的组件之间的连接并混淆用于为所述设计之一生成黑盒子的组件,其中所述黑盒子是当从所述用户计算设备之一请求所述设计之一时生成的。
16.如权利要求1所述的在线设计工程系统,其中所述访问管理器工具被配置为经由所述用户账户提供对所述设计工具的访问,其中所述设计工具包括示意图设计工具和布局设计工具,其中当所述用户账户被认证时提供对所述设计工具的所述访问,其中所述设计工具在一个或多个云计算节点上运行,并且经由显示器提供对所述设计工具的访问,以便从所述用户计算设备之一的输入设备接收输入以便生成所述设计之一。
17.如权利要求1所述的在线设计工程系统,
其中所述设计工具被配置为经由所述网络从所述用户账户之一接收另一个电路的设计,而独立于是否由所述请求者计算设备请求所述另一个电路的设计,其中所述另一个电路的设计存储在所述设计数据库;以及
设计服务管理器工具,耦合到所述访问管理器工具,其中所述设计服务管理器工具被配置为经由对应的请求者账户向多个请求者计算设备提供对所述另一个集成电路的设计的访问。
18.一种用于经由在线设计工程系统管理基于规范生成电路的多个设计在线设计工程系统,包括:
数据表构建器工具,被配置为从请求者计算设备接收用于产生所述电路的设计的所述规范,其中通过网络经由请求者账户向所述请求者计算设备提供对所述数据表构建器工具的访问,
其中所述数据表构建器工具被配置为向多个用户计算设备提供对所述规范的访问;
多个设计工具,耦合到所述数据表构建器工具,其中所述设计工具被配置为经由所述网络来访问以便生成所述电路的设计,其中每个用户计算设备经由对应用户账户被提供对所述设计工具的访问;
可搜索存储装置,耦合到所述设计工具,其中所述可搜索存储装置包括设计数据库,所述设计数据库被提供用于存储针对所述规范生成的设计的访问;
混淆器工具,耦合到所述数据表构建器工具,其中所述混淆器工具被配置为经由所述用户账户中的第一用户帐户接收访问所述设计之一的指示,
其中所述混淆器工具被配置为确定所述设计之一被所述用户账户中的第二用户帐户指定为私有还是公开,
其中所述混淆器工具被配置为在确定所述设计之一经由第二用户帐户被指定为私有时混淆所述设计之一的一个或多个部分,其中所述混淆器工具被配置为混淆所述设计之一以生成混淆设计,
其中所述混淆器工具被配置为经由所述第一用户账户向所述用户计算设备中的第一用户计算设备提供对所述混淆设计的访问,
访问管理器工具,耦合到所述数据表构建器工具和所述设计工具,其中所述访问管理器工具被配置为经由网络向所述用户计算设备提供对所述数据表构建器工具的访问、对所述设计工具的访问以及对所述混淆器工具的访问。
19.如权利要求18所述的在线设计工程系统,还包括:
公-私指示符工具,耦合到所述混淆器工具,其中所述公-私指示符工具被配置为经由所述第二用户账户从所述用户计算设备中的第二用户计算设备接收将所述设计之一指定为公开的指示,
其中,在经由所述第一用户账户从所述第一用户计算设备接收到访问所述设计之一的指示后,所述混淆器工具被配置为确定所述设计之一经由所述第二用户账户被指定为公开,
其中所述混淆器工具被配置为在确定所述设计之一经由所述第二用户账户被指定为公开时对所述设计之一的一个或多个部分进行去混淆,以及
其中所述混淆器工具被配置为经由所述网络和所述第一用户账户向所述第一用户计算设备提供对所述设计之一的访问。
20.如权利要求18所述的在线设计工程系统,
其中所述设计工具之一被配置为将所述设计之一存储在设计文件中,
仿真工具,耦合到所述设计工具并且经由所述第二用户账户而被提供给所述用户计算设备中的第二用户计算设备访问,其中所述规范和所述设计文件由所述仿真工具访问,其中所述仿真工具被配置为生成用于测试所述设计之一的仿真文件。
21.如权利要求20所述的在线设计工程系统,
其中所述规范存储在规范文件中,
其中所述仿真工具被配置为从所述可搜索存储装置访问所述规范文件和包括所述设计之一的设计文件,
其中所述仿真工具被配置为表征所述设计之一,以更新包括所述规范的数据表,其中更新所述数据表以包括所述表征的结果。
22.如权利要求18所述的在线设计工程系统,
其中所述混淆器工具被配置为从所述用户账户中的第三用户账户接收访问所述设计之一的指示,
其中所述混淆器工具被配置为响应于接收到访问所述设计之一的指示,确定所述设计之一被指定为私有,
其中所述混淆器工具被配置为响应于确定所述设计之一被指定为私有,经由所述第三用户账户提供对所述混淆设计和数据表的访问。
23.一种用于经由在线设计工程系统管理基于规范生成电路的多个设计的在线设计工程系统,包括:
数据表构建器工具,被配置为从请求者计算设备接收用于产生所述电路的设计的所述规范,其中所述数据表构建器工具经由计算机网络和请求者账户而被提供给所述请求者计算设备访问,其中所述数据表构建器工具经由计算机网络耦合到多个用户计算设备;
多个设计工具,耦合到所述数据表构建器工具,其中所述设计工具被配置为由所述用户计算设备访问,以便生成所述电路的设计,其中每个用户计算设备经由对应的用户帐号被提供对所述设计工具的访问;
可搜索存储装置,耦合到所述设计工具,并且具有用于存储针对所述规范生成的设计的设计数据库;
混淆器工具,耦合到所述设计工具并且被配置为经由用户账户中的第一用户账户接收访问所述设计之一的指示,
其中,所述混淆器工具被配置为确定所述设计之一是由第二用户账户指定为私有还是公共,
其中,所述混淆器工具被配置为在确定所述设计之一经由所述第二用户账户被指定为私有时混淆所述设计之一的一个或多个部分,其中所述混淆器工具被配置为混淆所述设计之一以生成混淆设计,以及
其中,所述混淆器工具被配置为经由所述第一用户账户向所述用户计算设备中的第一用户计算设备提供对所述混淆设计的访问。
24.如权利要求23所述的在线设计工程系统,还包括:
公-私指示符工具,耦合到所述混淆器工具,其中所述公-私指示符工具被配置为经由所述第二用户账户从所述用户计算设备中的第二用户计算设备接收将所述设计之一指定为公开的指示,
其中,在经由所述第一用户账户从所述第一用户计算设备接收到访问所述设计之一的所述指示时,所述混淆器工具被配置为确定所述设计之一经由所述第二用户账户被指定为公开,
其中所述混淆工具被配置为在确定所述设计之一经由所述第二用户账户被指定为公开时对所述设计之一的一个或多个部分进行去混淆,以及
其中所述混淆工具被配置为经由所述网络和所述第一用户账户向所述第一用户计算设备提供对所述设计之一的访问。
25.如权利要求23所述的在线设计工程系统,
其中所述设计工具之一被配置为将所述设计之一存储在设计文件中,
仿真工具,耦合到所述设计工具并且经由所述第二用户账户而被提供给所述用户计算设备中的第二用户计算设备访问,其中所述规范和所述设计文件被发送到所述仿真工具,其中所述仿真工具被配置为生成用于所述设计之一的测试的仿真文件,
其中所述仿真工具被配置为在经由所述第二用户账户接收到指示时运行。
26.如权利要求25所述的在线设计工程系统,
其中所述规范被存储在规范文件中,
其中所述设计工具被配置为将所述规范文件和包括所述设计之一的设计文件发送到所述仿真工具,
其中所述仿真工具被配置为表征所述设计之一以更新包括所述规范的数据表,其中更新所述数据表以包括所述表征的结果。
27.如权利要求23所述的在线设计工程系统,
其中所述混淆器工具被配置为从所述用户账户中的第三用户账户接收访问所述设计之一的指示,
其中所述混淆器工具被配置为响应于接收到访问所述设计之一的所述指示,确定所述设计之一被指定为私有,
其中所述混淆器工具被配置为响应于确定所述设计之一被指定为私有,经由所述第三用户账户提供对所述混淆设计和数据表的访问。
28.一种用于混淆电路设计的方法,包括:
经由计算机网络和用户账户从用户计算设备接收所述电路设计,其中所述电路设计包括多个电路组件以及所述电路组件之间的连接;
通过将与所述电路设计相关联的布局特征变换为通用布局特征表示来混淆所述电路组件中的每一个电路组件,其中所述通用布局特征表示不包括所述布局特征的缩放表示,其中执行所述混淆以使得每个电路组件被表示为混淆设计,所述混淆设计具有所述电路组件的电气特性并且不包括对所述电路组件的布局特征的访问;
生成所述混淆设计的可视表示,其中所述混淆设计中的每一个混淆设计具有输入端口和输出端口;
使得能够放置所述混淆设计并且在所述混淆设计的所述输入端口和所述输出端口之间布线;以及
生成具有主输入端口、主输出端口、所述混淆设计以及所述混淆设计之间的布线的混淆集成电路设计,其中所述混淆集成电路设计是可访问的,以仿真所述电路设计而不暴露所述电路设计,使得在混淆所述电路组件的同时执行所述电路设计的仿真。
29.如权利要求28所述的方法,其中所述混淆集成电路设计是不透明对象,其混淆所述电路组件以及所述混淆设计之间的所述布线,并且不隐藏所述主输入端口和所述主输出端口。
30.如权利要求28述的方法,其中所述通用布局特征表示混淆多个所述布局特征,其中所述缩放表示包括所述布局特征的宽度、长度和深度。
31.如权利要求28所述的方法,其中所述混淆集成电路设计混淆所述布局特征的身份、所述布局特征的所述缩放表示、所述布局特征的放置、所述布局特征之间的布线、以及所述布局特征之间的间距。
32.如权利要求28所述的方法,其中所述电气特性包括所述电路组件的功能,其中所述电路组件之一的功能之一定义根据应用于所述电路组件之一的输入端口的输入数据在所述电路组件之一的输出端口处生成的输出数据。
33.一种用于混淆电路设计的系统,包括:
电路设计工具,被配置为经由计算机网络和用户账户从用户计算设备接收所述电路设计,其中所述电路设计包括多个电路组件以及所述电路组件之间的连接;
混淆器工具,耦合到所述电路设计工具,其中所述混淆器工具被配置为通过将所述电路设计中存在的布局特征变换为通用布局特征表示来混淆所述电路组件中的每一个电路组件,其中所述通用布局特征表示不包括所述布局特征的缩放表示,其中所述混淆器工具被配置为执行所述混淆,以将每个电路组件表示为混淆设计,所述混淆设计具有所述电路组件的电气特性并且不包括对所述电路组件的布局特征的访问,
其中所述混淆器工具被配置为生成所述混淆设计的可视表示,其中所述混淆设计中的每一个混淆设计具有输入端口和输出端口;以及
布局设计工具,耦合到所述电路设计工具和所述混淆器工具,其中所述布局设计工具被配置为使得能够放置所述混淆设计并在所述混淆设计的所述输入端口和所述输出端口之间布线,
其中所述混淆器工具被配置为生成具有主输入端口、主输出端口、所述混淆设计以及所述混淆设计之间的布线的混淆集成电路设计,其中所述混淆集成电路设计是可访问的,以仿真所述电路设计而不暴露所述电路设计,使得在混淆所述电路组件的同时执行所述电路设计的仿真。
34.如权利要求33所述的系统,其中所述混淆集成电路设计是不透明对象,其混淆所述电路组件以及所述混淆设计之间的所述布线,并且不隐藏所述主输入端口和所述主输出端口。
35.如权利要求33所述的系统,其中所述通用布局特征表示混淆多个所述布局特征,其中所述缩放表示包括所述布局特征的宽度、长度和深度。
36.如权利要求33所述的系统,其中所述混淆集成电路设计混淆所述布局特征的身份、所述布局特征的所述缩放表示、所述布局特征的放置、所述布局特征之间的布线、以及所述布局特征之间的间距。
37.如权利要求33所述的系统,其中所述电气特性包括所述电路组件的功能,其中所述电路组件之一的功能之一定义根据应用于所述电路组件之一的输入端口的输入数据在所述电路组件之一的输出端口处生成的输出数据。
38.一种用于混淆电路设计的系统,包括:
电路设计工具,被配置为经由计算机网络和用户账户从用户计算设备接收所述电路设计,其中所述电路设计包括多个电路组件以及所述电路组件之间的连接,其中所述电路组件之一与所述电路组件中剩余的电路组件之一具有不同的类型,其中每个电路组件具有输入和输出;
混淆器工具,耦合到所述电路设计工具,其中所述混淆器工具被配置为混淆所述电路组件的类型,以便为每个组件生成混淆设计;以及
布局设计工具,耦合到所述混淆器工具,其中所述布局设计工具被配置为经由所述用户账户和所述计算机网络从所述用户计算设备接收用于访问所述布局设计工具的请求,
其中所述混淆器工具被配置为在接收到访问所述布局设计工具的请求时经由所述用户账户和所述计算机网络将所述电路组件中每一个电路组件的混淆设计发送到所述用户计算设备。
39.如权利要求38所述的系统,其中所述布局设计工具被配置为允许用户经由所述用户账户放置所述电路组件的混淆设计并在所述混淆设计之间生成布线,以生成集成电路芯片设计。
40.如权利要求39所述的系统,还包括:
工作空间应用工具,耦合到布局设计工具和电路设计工具,其中工作空间应用工具被配置为经由另一个用户账户和所述计算机网络接收访问所述集成电路芯片设计的请求,
其中所述混淆器工具被配置为混淆所述集成电路芯片设计,以生成混淆集成电路设计,其中在所述混淆集成电路设计中对所述布线进行混淆,
其中所述混淆器工具被配置为经由所述计算机网络将所述混淆集成电路设计发送到所述另一个账户以便经由所述工作空间应用显示。
41.如权利要求40所述的系统,其中所述混淆集成电路设计是不透明设计对象,其隐藏所述电路组件的类型、所述电路组件的放置以及所述电路组件之间的布线。
42.如权利要求38所述的系统,还包括:
管理服务器,具有所述电路设计工具和所述布局设计工具,其中所述管理服务器被配置为经由所述计算机网络和制造实体账户从制造计算设备接收具有仿真工具的过程开发套件(PDK),
其中所述管理服务器被配置为促进所述过程开发套件的修改,以将所述混淆器工具集成到所述过程开发套件中,以生成经修改的过程开发套件,其中通过应用所述经修改的过程开发套件生成所述混淆设计,其中所述布局设计工具是经修改的过程开发套件。
43.如权利要求38所述的系统,
其中所述布局设计工具被配置为经由另一个用户账户接收来自另一个用户计算设备的、访问所述电路组件之一的请求,
其中所述混淆器工具被配置为响应于经由所述另一个用户账户接收的所述请求而经由所述计算机网络将所述混淆设计发送到所述另一个用户账户;以及
另一个模拟器工具,被配置为接收测试所述混淆设计的请求,
其中所述另一个模拟器工具被配置为在接收到所述请求时测试所述混淆设计。
44.如权利要求38所述的系统,还包括耦合到所述布局设计工具和所述电路设计工具的工作空间应用工具,其中所述工作空间应用工具被配置为由所述用户计算设备经由所述计算机网络和所述用户账户访问,以选择所述电路组件中每一个电路组件的尺寸和所述电路组件中每一个电路组件的数量,其中所述工作空间应用工具经由计算机网络提供对所述布局设计工具的访问。
45.如权利要求44所述的系统,其中所述尺寸包括所述电路组件中每一个电路组件的宽度和所述电路组件中每一个电路组件的长度。
46.如权利要求45所述的系统,
其中所述混淆器工具被配置为将从所述示意图生成的布局设计的第一图形数据库系统(GDS)层映射到第一平面;
其中所述混淆器工具被配置为将所述布局设计的第二GDS层映射到所述第一平面。
47.如权利要求46所述的系统,
其中所述第一GDS层是第一类型的阱并且所述第二GDS层是不同于所述第一类型的阱的第二类型的阱,或者
其中所述第一GDS层是第一类型的扩散并且所述第二GDS层是不同于所述第一类型的扩散的第二类型的扩散,或者
其中所述第一GDS层是第一金属层并且所述第二GDS层是所述第一金属层上的第二金属层,或者
其中所述第一GDS是氧化物切口、第一触点、第二触点、第一多晶硅、第二多晶硅和有源设备之一,并且所述第二GDS层是所述氧化物切口、所述第一触点、所述第二触点、所述第一多晶硅、所述第二多晶硅和所述有源设备中剩余的其中一个,并且所述第一触点不同于所述第二触点,所述第一多晶硅不同于所述第二多晶硅,或者
其中所述第一GDS层是第一有源设备并且所述第二GDS层是第二有源设备,或者
其中所述第一GDS层是所述类型的离子注入物并且所述第二GDS层是不同类型的离子注入物。
48.如权利要求38所述的系统,其中所述混淆器工具被配置为将第一图形数据库系统(GDS)层与第二GDS层组合,以生成派生类型。
49.如权利要求48所述的系统,
其中所述第一GDS层是一类型的离子注入物,所述第二GDS层是有源设备,并且所述派生类型是一类型的扩散,或者
其中所述第一GDS层是第一多晶硅,并且所述第二GDS层是第二多晶硅。
50.一种包含用于混淆电路设计的程序指令的非瞬态计算机可读介质,其中由计算机系统的一个或多个处理器运行所述程序指令使得所述一个或多个处理器执行以下多个操作:
经由计算机网络和用户账户从用户计算设备接收所述电路设计,其中所述电路设计包括多个电路组件以及所述电路组件之间的连接,其中所述电路组件之一与所述电路组件中剩余电路组件之一具有不同的类型,其中每个电路组件具有输入和输出;
由混淆器工具混淆所述电路组件,以混淆所述电路组件的类型,以便为每个组件生成混淆设计;
通过用户账户和所述计算机网络从所述用户计算设备接收访问布局设计工具的请求;以及
在接收到访问所述布局设计工具的请求时,经由所述用户账户和所述计算机网络将所述电路组件中每一个电路组件的混淆设计发送到所述用户计算设备。
51.如权利要求50所述的非瞬态计算机可读介质,还包括由所述布局设计工具允许所述用户账户放置所述电路组件的混淆设计,并在所述混淆设计之间生成布线,以生成集成电路芯片设计。
52.如权利要求51所述的非瞬态计算机可读介质,还包括:
经由另一个用户账户和所述计算机网络接收访问所述集成电路芯片设计的请求;
由所述混淆器工具混淆所述集成电路芯片设计,以生成混淆集成电路设计;以及
通过所述计算机网络将所述混淆集成电路设计发送到所述另一个账户。
53.如权利要求52所述的非瞬态计算机可读介质,其中所述混淆集成电路设计是不透明设计对象,其覆盖所述电路组件的类型、所述电路组件的放置以及所述电路组件之间的所述布线。
54.一种包含用于混淆电路设计的程序指令的非瞬态计算机可读介质,其中由计算机系统的一个或多个处理器运行所述程序指令使得所述一个或多个处理器执行以下多个操作:
经由计算机网络和用户账户从用户计算设备接收所述电路设计,其中所述电路设计包括多个电路组件以及所述电路组件之间的连接;
通过将与所述电路设计相关联的布局特征变换为通用布局特征表示来混淆所述电路组件中的每一个电路组件,其中所述通用布局特征表示不包括所述布局特征的缩放表示,其中执行所述混淆,使得每个电路组件被表示为混淆设计,所述混淆设计具有所述电路组件的电气特性并且不包括对所述电路组件的布局特征的访问;
生成所述混淆设计的可视表示,其中所述混淆设计中的每一个混淆设计具有输入端口和输出端口;
使得能够放置所述混淆设计并且在所述混淆设计的所述输入端口和所述输出端口之间布线;以及
生成具有主输入端口、主输出端口、所述混淆设计以及所述混淆设计之间的布线的混淆集成电路设计,其中所述混淆集成电路设计是可访问的,以仿真所述电路设计而不暴露所述电路设计,使得在所述电路组件被混淆的同时执行所述电路设计的仿真。
55.如权利要求54所述的非瞬态计算机可读介质,其中所述混淆集成电路设计是不透明对象,其混淆所述电路组件和所述混淆设计之间的所述布线,并且不隐藏所述主输入端口和所述主输出端口。
56.如权利要求54所述的非瞬态计算机可读介质,其中所述通用布局特征表示混淆多个布局特征,其中所述缩放表示包括所述布局特征的宽度、长度和深度。
CN202310855456.5A 2016-07-08 2017-06-29 用于混淆电路设计的系统和方法 Pending CN117252146A (zh)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201662359858P 2016-07-08 2016-07-08
US62/359,858 2016-07-08
US15/633,253 US10437953B2 (en) 2016-07-08 2017-06-26 Systems for engineering integrated circuit design and development
US15/633,412 US10423748B2 (en) 2016-07-08 2017-06-26 Systems and methods for obfuscating a circuit design
US15/633,412 2017-06-26
US15/633,186 US10452802B2 (en) 2016-07-08 2017-06-26 Methods for engineering integrated circuit design and development
US15/633,253 2017-06-26
US15/633,186 2017-06-26
PCT/US2017/040082 WO2018009415A1 (en) 2016-07-08 2017-06-29 Systems and methods for obfuscating a circuit design
CN201780053773.8A CN109643286B (zh) 2016-07-08 2017-06-29 用于混淆电路设计的系统和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780053773.8A Division CN109643286B (zh) 2016-07-08 2017-06-29 用于混淆电路设计的系统和方法

Publications (1)

Publication Number Publication Date
CN117252146A true CN117252146A (zh) 2023-12-19

Family

ID=60910447

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780053773.8A Active CN109643286B (zh) 2016-07-08 2017-06-29 用于混淆电路设计的系统和方法
CN202310855456.5A Pending CN117252146A (zh) 2016-07-08 2017-06-29 用于混淆电路设计的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201780053773.8A Active CN109643286B (zh) 2016-07-08 2017-06-29 用于混淆电路设计的系统和方法

Country Status (4)

Country Link
US (9) US10437953B2 (zh)
CN (2) CN109643286B (zh)
GB (4) GB2567070B (zh)
WO (1) WO2018009415A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10339246B2 (en) * 2016-05-26 2019-07-02 Synopsys, Inc. Schematic overlay for design and verification
US10437953B2 (en) * 2016-07-08 2019-10-08 efabless corporation Systems for engineering integrated circuit design and development
US11270053B2 (en) 2016-07-08 2022-03-08 efabless corporation Systems and methods for assembling and developing an SoC efficiently using templates and designer input data
US10565342B1 (en) * 2018-01-30 2020-02-18 Cadence Design Systems, Inc. Electronic circuit design editor with overlay of layout and schematic design features
US10664643B2 (en) * 2018-02-09 2020-05-26 University Of Louisiana At Lafayette Method for the non-copyable manufacture of integrated circuits
US11003850B2 (en) 2018-06-06 2021-05-11 Prescient Devices, Inc. Method and system for designing distributed dashboards
CN112292664B (zh) * 2018-06-06 2024-05-24 普莱赛恩技术有限公司 用于设计分布式异构计算和控制系统的方法和系统
CN112534436A (zh) 2018-08-02 2021-03-19 斯法夫股份有限公司 作为服务的集成电路
US11188687B2 (en) * 2018-11-09 2021-11-30 The Boeing Company Rule compliance checking and design generation with rule access security
US11164671B2 (en) * 2019-01-22 2021-11-02 International Business Machines Corporation Continuous compliance auditing readiness and attestation in healthcare cloud solutions
US11495347B2 (en) 2019-01-22 2022-11-08 International Business Machines Corporation Blockchain framework for enforcing regulatory compliance in healthcare cloud solutions
US11056448B2 (en) * 2019-02-22 2021-07-06 University Of Florida Research Foundation, Incorporated Covert gates to protect gate-level semiconductors
US20200410153A1 (en) 2019-05-30 2020-12-31 Celera, Inc. Automated circuit generation
US10860776B1 (en) * 2019-06-10 2020-12-08 Xilinx, Inc. Printed circuit board (PCB) modular design
DE102019123555B4 (de) * 2019-09-03 2022-12-01 Infineon Technologies Ag Physisch obfuskierter schaltkreis
WO2021055632A1 (en) * 2019-09-17 2021-03-25 S3 Fuzion, Inc. Interactive system for guiding electronics design and assembly
CN110765721B (zh) * 2019-10-15 2023-04-28 深圳忆联信息系统有限公司 Soc芯片加速验证方法、装置、计算机设备及存储介质
US11593437B1 (en) * 2019-11-22 2023-02-28 Cadence Design Systems, Inc. System, method, and computer program product for implementing intelligent electronic design reuse through data analytics
US11587890B2 (en) * 2020-07-20 2023-02-21 International Business Machines Corporation Tamper-resistant circuit, back-end of the line memory and physical unclonable function for supply chain protection
US11748524B2 (en) 2020-07-20 2023-09-05 International Business Machines Corporation Tamper resistant obfuscation circuit
US11347920B2 (en) 2020-10-21 2022-05-31 Taiwan Semiconductor Manufacturing Company, Ltd. Circuit synthesis optimization for implements on integrated circuit
CN113033127A (zh) * 2020-11-20 2021-06-25 上海爱思尔教育科技有限公司 基于EEBox的企业IC设计方法及开发平台
US11799865B2 (en) 2020-12-18 2023-10-24 Microsoft Technology Licensing, Llc Multi-chamber hosted computing environment for collaborative development between untrusted partners
US20220292620A1 (en) * 2021-03-12 2022-09-15 Keysight Technologies, Inc. FLOATING LICENSE COMPUTING SYSTEM AND METHOD FOR FOUNDRY PROCESS DESIGN KITS (PDKs)
RU2770122C1 (ru) * 2021-04-08 2022-04-14 Дмитрий Владимирович Ягольников Система единого интегрированного информационного пространства проектирования радиотехнических средств
CN113392618B (zh) * 2021-04-23 2022-07-05 武汉大学 一种印刷电路板掩膜线宽补偿量预测方法
US11861277B1 (en) * 2021-09-16 2024-01-02 Cadence Design Systems, Inc. System and method for routing in an electronic design
US11977614B2 (en) 2021-09-20 2024-05-07 International Business Machines Corporation Circuit design watermarking
CN113935272B (zh) * 2021-12-16 2022-03-04 北京云枢创新软件技术有限公司 多级设计连接路径的网络匹配结构显示系统
KR102522755B1 (ko) * 2022-05-31 2023-04-18 박진석 시스템반도체 설계 인터페이스 시스템
KR102558036B1 (ko) * 2022-11-25 2023-07-20 인하대학교 산학협력단 Python을 활용한 RTL 설계 검증 자동화 방법 및 시스템

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR6600839U (pt) * 1986-04-24 1987-12-15 Ppub Promocoes Publicidades Do Painel luminoso guia eletronico
KR880009387A (ko) * 1987-01-30 1988-09-15 더머 제트.엘 진단 모니터링을 위한 스마트센서 시스템
US4907931A (en) * 1988-05-18 1990-03-13 Prometrix Corporation Apparatus for handling semiconductor wafers
US5978476A (en) * 1996-09-17 1999-11-02 Altera Corporation Access restriction to circuit designs
ATE199990T1 (de) * 1997-08-28 2001-04-15 Sony Dadc Austria Ag System zur kopierverwaltung einer optischen platte
US6009251A (en) 1997-09-30 1999-12-28 Synopsys, Inc. Method and system for layout verification of an integrated circuit design with reusable subdesigns
JPH11330189A (ja) * 1998-05-19 1999-11-30 Nikon Corp 搬送装置
US6448631B2 (en) 1998-09-23 2002-09-10 Artisan Components, Inc. Cell architecture with local interconnect and method for making same
US6634008B1 (en) * 1999-06-20 2003-10-14 Fujitsu Limited Methodology server based integrated circuit design
US6594799B1 (en) * 2000-02-28 2003-07-15 Cadence Design Systems, Inc. Method and system for facilitating electronic circuit and chip design using remotely located resources
US20010047251A1 (en) * 2000-03-03 2001-11-29 Kemp William H. CAD system which designs 3-D models
US6647305B1 (en) * 2000-06-19 2003-11-11 David H. Bigelow Product design system and method
US20020107672A1 (en) * 2001-02-05 2002-08-08 Ultratool International Incorporated Apparatus and methods for designing a product using a computer network
US6742165B2 (en) * 2001-03-28 2004-05-25 Mips Technologies, Inc. System, method and computer program product for web-based integrated circuit design
US6999910B2 (en) * 2001-11-20 2006-02-14 Lsi Logic Corporation Method and apparatus for implementing a metamethodology
US7505891B2 (en) * 2003-05-20 2009-03-17 Verisity Design, Inc. Multi-user server system and method
US20070055892A1 (en) * 2003-09-26 2007-03-08 Mentor Graphics Corp. Concealment of information in electronic design automation
US7353468B2 (en) * 2003-09-26 2008-04-01 Ferguson John G Secure exchange of information in electronic design automation
US7222312B2 (en) * 2003-09-26 2007-05-22 Ferguson John G Secure exchange of information in electronic design automation
US8156343B2 (en) * 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US7073160B2 (en) * 2004-01-02 2006-07-04 Taiwan Semiconductor Manufacturing Co., Ltd. System and method for multi-project wafer shuttle service
US7032191B2 (en) * 2004-02-27 2006-04-18 Rapid Bridge Llc Method and architecture for integrated circuit design and manufacture
US7107567B1 (en) 2004-04-06 2006-09-12 Altera Corporation Electronic design protection circuit
TWI270741B (en) * 2004-07-28 2007-01-11 Remarkable Ltd Mask for decreasing the fabrication cost and method for design the same
US8612772B1 (en) * 2004-09-10 2013-12-17 Altera Corporation Security core using soft key
US7734043B1 (en) * 2005-01-25 2010-06-08 Altera Corporation Encryption key obfuscation and storage
US20060218493A1 (en) * 2005-03-28 2006-09-28 Murray Keith A Method, system and device for controlling a display
KR20060125399A (ko) * 2005-06-02 2006-12-06 수 웅 박 인터넷 웹브라우저 기반 캐드 시스템
CA2532699A1 (en) * 2005-12-28 2007-06-28 Ibm Canada Limited - Ibm Canada Limitee Distributed network protection
CN100474316C (zh) * 2006-01-11 2009-04-01 财团法人工业技术研究院 协助自行车零组件设计的系统及其方法
KR100735012B1 (ko) * 2006-01-23 2007-07-03 삼성전자주식회사 제품 파라미터들의 통계적 분포 특성을 평가하는 방법
US20090222927A1 (en) * 2006-04-30 2009-09-03 Pikus Fedor G Concealment of Information in Electronic Design Automation
US20080004737A1 (en) * 2006-06-30 2008-01-03 Bennardo Frank L Computerized engineering design and operating system
US7539953B1 (en) * 2006-12-05 2009-05-26 Xilinx, Inc. Method and apparatus for interfacing instruction processors and logic in an electronic circuit modeling system
US8103987B2 (en) * 2007-03-09 2012-01-24 Mips Technologies, Inc. System and method for managing the design and configuration of an integrated circuit semiconductor design
US7774723B2 (en) * 2007-03-09 2010-08-10 Mips Technologies, Inc. Protecting trade secrets during the design and configuration of an integrated circuit semiconductor design
US20080222581A1 (en) * 2007-03-09 2008-09-11 Mips Technologies, Inc. Remote Interface for Managing the Design and Configuration of an Integrated Circuit Semiconductor Design
US8176409B2 (en) * 2007-07-24 2012-05-08 De Novo Software System and method for electronic publication of scientific data and analysis
CN102017356A (zh) * 2008-02-22 2011-04-13 捷通国际有限公司 具有电池类型检测的电感式电力供应系统
CN101557666B (zh) * 2008-04-10 2014-03-19 立锜科技股份有限公司 Led控制电路与方法以及利用它们的抗虫led灯
US20090285070A1 (en) * 2008-05-16 2009-11-19 Mohd Afendy Bin Mohd Aris Copy-protected optical storage media and method for producing the same
US8171306B2 (en) * 2008-11-05 2012-05-01 Microsoft Corporation Universal secure token for obfuscation and tamper resistance
EP2359520B1 (en) * 2008-11-17 2019-08-14 Intrinsic ID B.V. Distributed puf
US8639585B2 (en) * 2009-05-30 2014-01-28 Nike, Inc. On-line design of consumer products
US8590017B2 (en) * 2011-02-28 2013-11-19 International Business Machines Corporation Partial authentication for access to incremental data
US9006832B2 (en) 2011-03-24 2015-04-14 Invensense, Inc. High-voltage MEMS apparatus and method
US9419444B2 (en) * 2011-10-05 2016-08-16 Blackberry Limited Wireless charging and communication with power source devices and power charge devices in a communication system
US8381161B1 (en) * 2011-11-04 2013-02-19 International Business Machines Corporation Method for providing a secure “gray box” view proprietary IP
US8904279B1 (en) * 2011-12-07 2014-12-02 Amazon Technologies, Inc. Inhibiting automated extraction of data from network pages
DE102012220343A1 (de) * 2011-12-22 2013-06-27 Trimble Navigation Limited Telematische, mikrofluidische Analyse mit einem Handgerät
US9371889B2 (en) * 2012-01-31 2016-06-21 Quantifoil Instruments Gmbh Mechanism for generating an orbital motion or a rotation motion by inversing a drive direction of a drive unit
US9680763B2 (en) * 2012-02-14 2017-06-13 Airwatch, Llc Controlling distribution of resources in a network
US9026962B2 (en) * 2012-05-30 2015-05-05 Gumstix, Inc. Integrated electronic design automation system
US8418096B1 (en) * 2012-05-31 2013-04-09 Xilinx, Inc. Methods for inhibiting reverse engineering of circuit designs
US10079786B2 (en) * 2012-09-03 2018-09-18 Qualcomm Incorporated Methods and apparatus for enhancing device messaging
US9535658B2 (en) * 2012-09-28 2017-01-03 Alcatel Lucent Secure private database querying system with content hiding bloom filters
US8891766B2 (en) * 2012-09-28 2014-11-18 Alcatel Lucent Input consistency verification for two-party secure function evaluation
US9268677B2 (en) * 2012-10-24 2016-02-23 Apple Inc. Dynamic obfuscation of heap memory allocations
AU2013334491B2 (en) * 2012-10-25 2017-10-19 Anita Jadeja Methods and systems for concealing information
US20140201527A1 (en) * 2013-01-17 2014-07-17 Zohar KRIVOROT Systems and methods for secure and private delivery of content
US20140208201A1 (en) * 2013-01-22 2014-07-24 International Business Machines Corporation Image Obfuscation in Web Content
US9875369B2 (en) * 2013-01-23 2018-01-23 Evernote Corporation Automatic protection of partial document content
US9699271B2 (en) * 2013-01-29 2017-07-04 Blackberry Limited Method and apparatus for suspending screen sharing during confidential data entry
US9116712B2 (en) * 2013-02-28 2015-08-25 Microsoft Technology Licensing, Llc Compile based obfuscation
US9026982B2 (en) * 2013-03-04 2015-05-05 Simplify Design Automation, Inc. Wiring board design system and wiring board design method
US8981490B2 (en) 2013-03-14 2015-03-17 Texas Instruments Incorporated Transistor with deep Nwell implanted through the gate
US20140277663A1 (en) * 2013-03-15 2014-09-18 Neil Rohin Gupta System and Method for Creating Custom-Fit Apparel Designs
WO2014200247A1 (en) * 2013-06-11 2014-12-18 Lg Electronics Inc. Wireless power transfer method, wireless power transmitter and wireless charging system
US9112749B2 (en) * 2013-07-25 2015-08-18 Airwatch Llc Functionality management via application modification
JP2016517069A (ja) * 2013-08-09 2016-06-09 トムソン ライセンシングThomson Licensing 行列因数分解に基づいたユーザに寄与する評点に対するプライバシー保護推薦のための方法およびシステム
WO2015023897A1 (en) * 2013-08-14 2015-02-19 Skyera, Inc. Address translation for a non-volatile memory storage device
JP6202962B2 (ja) * 2013-09-20 2017-09-27 株式会社ディスコ 切削装置
US9038004B2 (en) * 2013-10-23 2015-05-19 International Business Machines Corporation Automated integrated circuit design documentation
US9710579B1 (en) * 2013-12-02 2017-07-18 Cadence Design Systems, Inc. Using smart timing models for gate level timing simulation
GB201400992D0 (en) * 2014-01-21 2014-03-05 Metaforic Ltd Method of protecting dynamic cryptographic keys
US10402466B2 (en) * 2014-01-29 2019-09-03 Turbopatent Inc. System and method to construct and deliver streaming innovation channels
US20150317426A1 (en) * 2014-05-05 2015-11-05 Qualcomm Incorporated Data path system on chip design methodology
US9294719B2 (en) * 2014-06-30 2016-03-22 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing in-app live support functionality
EP2983156B1 (fr) * 2014-08-06 2019-07-24 Secure-IC SAS Système et procédé de protection de circuit
US11061991B2 (en) * 2014-09-05 2021-07-13 Airwatch, Llc Secure document sharing
US10311227B2 (en) * 2014-09-30 2019-06-04 Apple Inc. Obfuscation of an address space layout randomization mapping in a data processing system
CN104836191A (zh) * 2014-11-05 2015-08-12 北汽福田汽车股份有限公司 电路熔断器的选取方法
US10860739B2 (en) * 2014-12-12 2020-12-08 Lenovo (Singapore) Pte. Ltd. Encryption of media based on content
US10657286B2 (en) * 2015-01-14 2020-05-19 Hewlett Packard Enterprise Development Lp System, apparatus and method for anonymizing data prior to threat detection analysis
JP2016139273A (ja) * 2015-01-27 2016-08-04 富士通株式会社 連携システム、連携プログラムおよび連携方法
WO2016176321A1 (en) * 2015-04-27 2016-11-03 Zipalog, Inc. System and method for passive verification
IN2015DE01753A (zh) * 2015-06-11 2015-08-28 Pradeep Varma
KR101757407B1 (ko) * 2015-06-11 2017-07-12 라인 가부시키가이샤 바이너리 병합 장치, 방법 및 컴퓨터 프로그램
US10943036B2 (en) * 2016-03-08 2021-03-09 Az, Llc Virtualization, visualization and autonomous design and development of objects
US9582445B1 (en) * 2016-03-29 2017-02-28 Viewpost Ip Holdings, Llc USB drive security systems and methods
US10242139B2 (en) * 2016-03-30 2019-03-26 Synopsys, Inc. Scheme and design markup language for interoperability of electronic design application tool and browser
US20170322696A1 (en) * 2016-05-07 2017-11-09 Perinote LLC Selecting and performing contextual actions via user interface objects
US10255462B2 (en) * 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
US11030348B2 (en) * 2016-06-17 2021-06-08 University Of Florida Research Foundation, Incorporated Circuit edit and obfuscation for trusted chip fabrication
US10437953B2 (en) * 2016-07-08 2019-10-08 efabless corporation Systems for engineering integrated circuit design and development

Also Published As

Publication number Publication date
GB2595984B (en) 2022-10-19
US20220027544A1 (en) 2022-01-27
GB201820415D0 (en) 2019-01-30
GB2600070B (en) 2022-11-16
US20180011958A1 (en) 2018-01-11
GB2606112A (en) 2022-10-26
WO2018009415A1 (en) 2018-01-11
GB202201064D0 (en) 2022-03-16
GB2567070A (en) 2019-04-03
US10671700B2 (en) 2020-06-02
US20180011948A1 (en) 2018-01-11
US20180011959A1 (en) 2018-01-11
CN109643286A (zh) 2019-04-16
GB202210446D0 (en) 2022-08-31
US10423748B2 (en) 2019-09-24
US20190392105A1 (en) 2019-12-26
GB2600070A (en) 2022-04-20
US20200285795A1 (en) 2020-09-10
GB2567070B (en) 2022-03-09
US10437953B2 (en) 2019-10-08
GB202110604D0 (en) 2021-09-08
US11301609B2 (en) 2022-04-12
GB2595984A (en) 2021-12-15
CN109643286B (zh) 2023-12-26
US11182526B2 (en) 2021-11-23
US20220277126A1 (en) 2022-09-01
US11748541B2 (en) 2023-09-05
US10452802B2 (en) 2019-10-22
GB2606112B (en) 2023-02-22
US20200089833A1 (en) 2020-03-19
US20220043956A1 (en) 2022-02-10
US11775722B2 (en) 2023-10-03

Similar Documents

Publication Publication Date Title
CN109643286B (zh) 用于混淆电路设计的系统和方法
US9305134B2 (en) Semiconductor device design method, system and computer program product
US8396696B1 (en) Using multiple processors to simulate electronic circuits
US20070201442A1 (en) Schema-based portal architecture for assessment and integration of silicon IPs
US11270053B2 (en) Systems and methods for assembling and developing an SoC efficiently using templates and designer input data
US20040237054A1 (en) System and method for performing intellectual property merge
US10990735B2 (en) System and method for generating a cluster-based power architecture user interface
US11636388B1 (en) Machine learning-based algorithm to accurately predict detail-route DRVS for efficient design closure at advanced technology nodes
WO2021101669A1 (en) Systems and methods for assembling and developing an soc efficiently using templates and designer input data
US10515170B1 (en) Deep insight for debug using internal equivalence visualization and counter-example for sequential equivalence checking
US11741287B1 (en) Prioritized mask correction
Shimizu et al. Open source hardware and EDA tools for analog/mixed-signal design and prototyping
Wang et al. RETRACTED: Strategy of library information resource construction based on FPGA and embedded system
Bailey et al. Intellectual Property for Electronic Systems: An Essential Introduction
JP2006323749A (ja) 回路設計プラットフォーム
Flynn et al. System Design Frontier
Automation et al. System Design Frontier
Chakrabarty WELCOME to the first issue of the IEEE TRANSACTIONS ON VLSI SYSTEMS (TVLSI)
Hekmatpour et al. An XML-based collaborative framework for ASIC eDesign
Rostoker Strategic alliances in the United States microelectronics industry
France Go IT!(GOIT)
Sinha et al. SIGDA News
Martin et al. Building up a European Exchange Structure for IP blocks adapted and qualified for application in Aerospace industry

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination