CN113380286A - 从寄存器传输级设计产生可合成连线表的方法 - Google Patents
从寄存器传输级设计产生可合成连线表的方法 Download PDFInfo
- Publication number
- CN113380286A CN113380286A CN202110196679.6A CN202110196679A CN113380286A CN 113380286 A CN113380286 A CN 113380286A CN 202110196679 A CN202110196679 A CN 202110196679A CN 113380286 A CN113380286 A CN 113380286A
- Authority
- CN
- China
- Prior art keywords
- semiconductor device
- design
- synthesizable
- netlist
- register
- 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
Links
- 238000013461 design Methods 0.000 title claims abstract description 100
- 238000012546 transfer Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 title claims abstract description 22
- 239000004065 semiconductor Substances 0.000 claims abstract description 76
- 238000005516 engineering process Methods 0.000 claims abstract description 27
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 230000006399 behavior Effects 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 10
- 230000015572 biosynthetic process Effects 0.000 description 10
- 238000003786 synthesis reaction Methods 0.000 description 10
- 238000010801 machine learning Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000003542 behavioural effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/18—Manufacturability analysis or optimisation for manufacturability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
阐述了从寄存器传输级设计产生可合成连线表以辅助半导体装置设计的方法。这些连线表提供对应于半导体装置的一部分的寄存器传输级设计信息。配置追踪器产生与寄存器传输级设计相关联的行为信息。寄存器编译器基于与所述半导体装置相关的一种或多种技术及功率、性能及面积信息来编译一组半导体装置。识别由寄存器编译器产生的满足预先定义的功率、性能及面积条件的半导体装置。产生用于对齐所述半导体装置的输入/输出端口的结构信息。基于用户定义的参数生成一组一个或多个可合成半导体装置配置,使得可合成半导体装置配置中的一者可被选择以产生具有结构可合成输入/输出边界兼容半导体装置模块的设计连线表。
Description
技术领域
本发明实施例涉及半导体装置设计,且更具体来说,涉及用于从寄存器传输级(register transfer level,RTL)(例如,行为寄存器传输级)设计产生可合成(例如,可合成性能-功率-面积(performance-power-area,PPA)前置配置文件感知(up-frontprofile-aware))连线表以辅助半导体装置(例如,应用专用集成电路(applicationspecific integrated circuit,ASIC)系统单芯片(system on chip,SoC)集成芯片)设计的系统及方法。
背景技术
通常来说,半导体装置设计包括几个步骤。可使用寄存器传输级(RTL)来定义与半导体装置的数字部分相关联的逻辑。RTL设计可使用几种工具中的一种或多种(例如,硬件描述语言(hardware description language,HDL))来实施。RTL设计可被转换成可合成连线表—对可用来制作能够实行由RTL设计定义的功能的半导体装置的硬件电路的详细描述。
发明内容
本发明实施例提供一种从寄存器传输级设计产生可合成连线表以辅助半导体装置设计的方法,包括:提供对应于所述半导体装置的至少一部分的寄存器传输级设计信息;产生与对应于所述半导体装置的寄存器传输级设计的至少一部分相关联的行为信息;基于与所述半导体装置相关的一种或多种技术以及功率、性能及面积信息来编译一组半导体装置;识别由寄存器编译器产生的满足预先定义的功率、性能及面积条件的半导体装置;产生用于对齐所述半导体装置的输入/输出端口的结构信息;以及基于用户定义的参数生成一组一个或多个可合成半导体装置配置,使得所述可合成半导体装置配置中的一者可被选择以产生具有结构可合成输入/输出边界兼容半导体装置模块的设计连线表。
附图说明
当结合附图阅读时,会从以下详细描述中最好地理解本公开的各个方面。
图1是根据本公开各种实施例的用于跨各种技术大小(例如,5nm、7nm、10nm、12nm、16nm、28nm等)从随机存取存储器(random access memory,RAM)配置及寄存器文件中分析及提取数据的示例性系统的方块图。
图2是根据本公开各种实施例的用于跨各种技术大小(例如,5nm、7nm、10nm、12nm、16nm、28nm等)从RAM配置及寄存器文件中分析及提取数据的另一示例性系统的方块图。
图3是根据本公开各种实施例的用于跨各种技术大小(例如,5nm、7nm、10nm、12nm、16nm、28nm等)从RAM配置及寄存器文件中分析及提取数据的另一示例性系统的方块图。
图4是示出根据本公开各种实施例产生合成连线表的示例性方块图。
图5是示出根据本公开各种实施例产生合成中央处理器(central processingunit,CPU)连线表的示例性方块图。
图6是示出根据本公开各种实施例的PPA分析的示例性图形。
图7是示出根据本公开各种实施例产生合成机器学习(machine learning,ML)连线表的示例性方块图。
图8是示出根据本公开各种实施例的用于优化在集成电路上实施的电路合成的方法的示例性流程图。
图9是示出用于实施在本文中描述的各个方面的样品计算装置架构的示例性方块图。
具体实施方式
以下公开提供许多不同的实施例或实例,用于实施所提供主题的不同特征。为简化本公开,下面描述组件及布置的具体实例。当然,这些仅仅是实例,而不旨在为限制性的。此外,本公开可在各种实例中重复参考编号和/或字母。此种重复是出于简洁及清楚的目的,且其本身并不指示所论述的各种实施例和/或配置之间的关系。
虽然RTL设计的某些部分可包括足够的合成细节,但其他部分可能不包括所述细节。在某些情况下,RTL设计可能映射到几个不同的可合成硬件实施,而在其他情况下,RTL设计可能不包括足够的合成信息。在存储器(例如,RAM宏)包装器设计的情况下,无法从RTL设计进行合成可能尤其为真实的。因此,常常必须利用工程努力(engineering effort)以增量及迭代过程(incremental and iterative process)将RTL设计(例如,从生态系统合作伙伴、供应商、客户或开源)手动转换为可合成连线表。
在某些情况下,增量及迭代过程可能为耗时的。此外,由于所述过程是手动完成的,因此结果可能未针对性能、功率及面积(PPA)(包括针对例如机器学习及人工智能等存储器访问密集型应用)进行优化。
半导体装置(例如,半导体应用专用集成电路(ASIC)系统单芯片(SoC)集成芯片)设计包括几个步骤。可使用寄存器传输级(RTL)设计技术来定义与半导体装置的数字部分相关联的逻辑。RTL设计可使用几种工具中的一种或多种(例如,硬件描述语言(HDL))来实施。在一些实施例中,RTL设计可被称为IP核心或IP设计。RTL设计可被转换成可合成连线表—对可用来制作能够实行由RTL设计定义的功能的半导体装置的硬件电路的详细描述。虽然RTL设计的某些部分可包括足够的合成细节,但其他部分可能不包括所述细节。在某些情况下,RTL设计可能映射到几个不同的可合成硬件实施,而在其他情况下,RTL设计可能不包括足够的合成信息。在存储器(例如,RAM宏)包装器设计的情况下,无法从RTL设计进行合成可能尤其为真实的。在RTL设计中,存储器可在逻辑上进行定义,但用于访问存储器的物理协议可能没有被充分定义。具体协议可能因存储器的类型而异。为保持相对于物理存储器类型的灵活性,可使用包装器(例如,具有灵活输入/输出的包装器)。更一般来说,在存储器及半导体装置(例如,半导体ASIC SoC集成芯片)的上下文中,包装器定义存储器的逻辑端口(例如,用于逻辑访问)与物理存储器端口(例如,功率控制和/或测试端口)之间的接口。由于包装器与物理存储器本身是分开的,因此其允许在芯片设计过程中将存储器类型(例如,物理特性)定义为完整接口。然而,即使包装器具有灵活性,也常常必须以增量及迭代过程将RTL手动转换成可合成连线表。此项任务通常由一个或多个个人实行,并且可能为耗时的。
图1是根据本公开各种实施例的用于跨各种技术大小(例如,5nm、7nm、10nm、12nm、16nm、28nm等)从RAM配置及寄存器文件中分析及提取数据的示例性系统100的方块图。系统100可以是接收定义各种电路的逻辑行为的RAM行为模型的寄存器传输级(RTL)设计的数据处理计算机系统。RTL是一种设计抽象,其依据硬件寄存器之间的数字信号流以及对这些信号实行的逻辑操作来为同步数字电路建模。在一些实施例中,RTL设计可从单个来源(例如,单个设计实体)获得,或者其可从多个来源(例如,合作伙伴设计者)获得。在从多个来源获得RTL设计的情况下,来自不同来源的RTL设计的格式可能不同。首先,包括与RAM宏模型的行为相关的信息的RTL设计由自动RTL RAM宏配置追踪器自动处理,以自动产生RAM宏列表(例如,各种RAM宏装置的行为信息和/或大小信息)。系统100使用如在图2到图3中更详细描述的多个模块、以及追踪器110来为新电路设计产生优化的设计连线表。追踪器110包括一组计算机程序。所述计算机程序可用来扫描RTL设计。可从扫描中提取对应的存储器大小,例如字线和/或位线大小。追踪器110利用提取的存储器大小信息产生输出列表。可将所述存储器大小信息提供给寄存器编译器,用于产生优化的设计连线表。连线表是对电子电路的连通性的描述。连线表是定义各种电组件与所述组件之间的节点连接的列表。新电路设计可以是基于输入到系统100中的RTL设计的优化设计。系统100输出的连线表还包括优化的功率、性能及面积(PPA)特征。使用PPA分析来优化设计,因为电路设计的功率、性能及面积中的每一者都是设计的不可或缺的方面。
图2是根据本公开各种实施例的用于跨各种技术大小(例如,5nm、7nm、10nm、12nm、16nm、28nm等)从RAM配置及寄存器文件中分析及提取数据的另一示例性系统200的方块图。系统200包括转换模块210、平面图映射模块220、模拟模块230及分析模块240。转换模块210接收寄存器传输级代码(RTL),如图1所示。寄存器传输级代码是在硬件描述语言中使用的软件代码。可使用寄存器传输级代码来描述物理电路,所述寄存器传输级代码描述硬件寄存器与由物理电路的组件对数字信号实行的逻辑操作(例如,与(AND)、与非(NAND)、或(OR)、或非(NOR))之间的数字信号流。转换模块210访问所述电路逻辑行为的寄存器传输级代码描述。然后,转换模型将寄存器传输级代码转换成一组在结构上定义的电路设计(例如,与门、与非电路、或门、或非电路),用于多种类型的组件(例如,CPU、GPU、ML-NPU)及特征大小技术(例如,5nm、7nm、10nm、12nm、16nm、28nm等)。平面图映射模块220访问所述一组在结构上定义的电路设计,并将所述一组在结构上定义的电路设计转换成一组平面图。平面图定义电路设计中的电组件及其在特定面积(例如,地面)中的物理放置。模拟模块230访问所述一组平面图,并生成可针对每个平面图模拟的电路。分析模块240访问物理模拟电路(physically simulated circuit),并在所述物理模拟电路的一系列操作条件上扫过,以产生优化的设计连线表,所述优化的设计连线表具有一组对物理模拟电路的功率、性能及面积特性的分析。分析模块240还同时并行(例如,在同一时间)在多个物理模拟电路的一系列操作条件(例如,各种输入电压、各种周围环境,例如高/低温、高/低湿度等)上扫过。
图3是根据本公开各种实施例的用于跨各种技术大小(例如,5nm、7nm、10nm、12nm、16nm、28nm等)从RAM配置及寄存器文件中分析及提取数据的另一示例性系统300的方块图。类似于图2的系统200,系统300可包括转换模块210、平面图映射模块220、模拟模块230及分析模块240。另外,系统可包括分类模块310、显示模块320、电路设计模块330、合成模块340及连线表生成模块350中的一者或多者。
分类模块310访问分析,并通过定义电路的功耗、性能(即,电路工作的频率)、及电路占用的面积的功率、性能及面积特性来产生所述一组物理模拟电路的分类列表。这些特征可基于功率、性能及面积值进行分类。显示模块320访问物理模拟电路的分类列表,并在图形用户接口上显示物理模拟电路的分类列表。电路设计模块330访问所述一组在结构上定义的电路设计,并将所述在结构上定义的电路设计转换成一组文件列表(filelist),用于功率、性能及面积特性的多个配置文件配置(profiled configuration)的合成。文件列表定义电路的组件及组件之间的互连点。合成模块340访问所述一组文件列表,并使用设计编译器将所述一组文件列表合成为一组逻辑门配置。电路的合成包括将寄存器传输级代码转变成通用布尔模型(Boolean model)。所述布尔模型可在逻辑级进行优化,以将多个逻辑操作组合成更简单的操作。举例来说,组件可被重新排列、组合和/或重新组合成不同的组件,以致力于减少操作时间及电路内总组件的数量。此外,优化可包括组件的顺序映射,其中围绕顺序元件(sequential cell)的逻辑可被吸收在元件内,以努力节省面积。设计编译器还可实行各种优化操作,例如移除没有输出端口连接的逻辑、移除多余组件(例如,两个顺序反相器)、和/或传播常数以减少电路内的总逻辑组件。连线表生成模块350访问所述一组逻辑门配置,并将所述一组逻辑门配置转换成一组连线表以供模拟模块230使用。逻辑门配置含有定义组件互连的逻辑示意图。这些逻辑门配置可被转变成配置内节点、配置内组件及其互连的文本表示。此文本表示为连线表。
图4是示出根据本公开各种实施例产生合成连线表的示例性方块图400。文件列表(例如,描述电路逻辑行为的RTL设计—定义电路的逻辑行为的软件代码)可与任何数量的技术(例如,中央处理器(CPU)(例如,CPU-IP1 402)、图形处理单元(graphical processingunit,GPU)(例如,GPU-IP1 404)、机器学习网络处理器(machine learning networkprocessor,ML-NPU)(例如,ML-NPU-IP1 406)等)相关。每组文件列表可包括与不同模块设计相关联的一个或多个文件列表,如在图6到图7中更详细描述。存储器大小提取器410(例如,合成模块340)处理给定的一组连线表,以产生对应于每一组的逻辑门配置,所述逻辑门配置定义被评估的给定存储器元件的大小。举例来说,逻辑门配置422(例如,配置(config.)CPU)对应于CPU-IP1文件列表402。存储器大小提取器410还包括追踪器412。追踪器412产生与对应于半导体装置的RTL设计的至少一部分相关联的行为信息。举例来说,此种行为信息可包括装置大小调整(例如,字线的数量及位线的数量)。类似地,逻辑门配置424(例如,配置(config.)GPU)对应于GPU-IP1文件列表404。逻辑门配置426(例如,配置(config.)ML-NPU)对应于ML-NPU-IP1文件列表406。逻辑门配置如先前详细描述般使用例如寄存器编译器(例如,单端口(single-port,SP)静态随机存取存储器(static randomaccess memory,SRAM)431、2端口(2P)SRAM 432、双端口(dual-port,DP)SRAM 433、单端口(single-port,1P)寄存器文件(register file,RF)437、双端口(dual-port,2P)RF 434及任何其他类型的寄存器编译器436)来编译。这些经编译的配置然后被包装器440转变成对应于导入的文件列表(例如,文件列表402、文件列表404、文件列表406)的连线表。包装器是被定义为包封被包装的代码、使得被包装的代码的代码复杂性对另一接口软件组件不可见的软件。相反,包装器本身包含更简单的代码,其生成与所述另一软件组件的接口,以便于两个软件组件之间的交互。举例来说,当两个软件组件具有彼此不兼容的不同类型的软件代码时,可使用包装器。举例来说,连线表CPU-IP1 452对应于文件列表CPU-IP1 402。连线表GPU-IP1 454对应于文件列表GPU-IP1 404。连线表MP-NPU-IP1 456对应于文件列表ML-NPU-IP1 406。这些连线表被用来使用组件的自动放置和/或信号的路由来产生优化的电路设计(例如,步骤460)。优化的连线表被传输回编译器并存储,以便于所述连线表可在将来的电路布局中使用。
图5是示出根据本公开各种实施例产生合成CPU连线表的示例性方块图500。在此实例中,一组文件列表对应于N个模块(例如,文件列表501、文件列表502、文件列表503、文件列表504、文件列表505等)。每个文件列表包括与所述特定模块相关联的具体行为逻辑。使用寄存器编译器或触发器编译器520将所述一组文件列表一起编译成基于技术大小(例如,5nm、7nm、16nm等)的分组。编译是计算机程序将书面计算机代码从一种程序语言转变成另一种语言的过程。每个编译包括所有物理存储器配置以及与导入的文件列表501、502、503、504、505相关联的PPA配置。换句话说,所有跨各种技术大小(例如,5nm、7nm、16nm等)具有一个字线及一个位线的模块(例如,文件列表501的模块-1)一起编译。类似地,所有跨各种技术大小(例如,5nm、7nm、16nm等)具有两个字线及两个位线的模块(例如,文件列表502的模块-2)一起编译。此对于跨所有各种技术大小(例如5nm、7nm、16nm等)的所有模块同样适用。PPA-剖析器针对每个技术大小(例如5nm、7nm、16nm等)将存储的编译(例如,编译511、512、513、514)评估为逻辑门配置。图6中更详细地描述了PPA分析。寄存器编译器520设置可存储在寄存器触发器存储515中。编译511、512、513、514以及寄存器触发器存储515可被包装及编译以产生具有经包装的PPA配置文件(profile)的对应连线表(例如,CPU连线表521、522、523、524、525),其定义各种模块的功率、性能及面积特性。包装器是被定义为包封被包装的代码、使得被包装的代码的代码复杂性对另一接口软件组件不可见的软件。相反,包装器本身包含更简单的代码,其生成与所述另一软件组件的接口,以便于两个软件组件之间的交互。举例来说,当两个软件组件具有彼此不兼容的不同类型的软件代码时,可使用包装器。在图5所示的实施例的情形中,PPA配置文件定义与不同模块大小(例如,一个字线/位线、两个字线/位线等)有关的特定功率、性能及面积要求。在一些实施例中,项目用户定义的配置器可为要优化的电路设置特定的大小调整定义(例如,用户定义530)。换句话说,用户可通过用户输入来设置电路的具体尺寸。
图6是示出PPA分析的示例性图形600。通过使用PPA剖析器评估各种文件列表,以同时提高性能、保持低功耗并最小化装置面积。这些计算是通过三角测量与功率(例如,sp、Ip)、面积(例如,udh)及性能(例如,hs)相关联的常数来实行的。这些常数定义电子装置消耗的功率、电子装置组件占据的面积以及操作电子装置所需的时钟频率(例如,性能)。三角测量是测量每个常数(例如,图形600上示出的点)之间的距离的过程。最终目标是使功率常数sp、Ip及面积常数udh处于其最低可能值,同时不牺牲电路性能hs。所有这三个指标(例如,功率、面积、性能)都是相互依赖的,使得修改这些值中的一个值会影响另外两个值。
图7是示出根据本公开各种实施例产生合成ML连线表的示例性方块图700。在此实例中,一组文件列表对应于N个模块(例如,文件列表701、文件列表702、文件列表703、文件列表704、文件列表705等)。每个文件列表包括与所述特定模块相关联的具体行为逻辑。文件列表701描述具有一个字线及一个位线的第一模块(例如,模块-1)。文件列表702描述具有两个字线及两个位线的第二模块(例如,模块-2)。文件列表703描述具有三个字线及三个位线的第三模块(例如,模块-3)。文件列表704描述具有至少四个字线及至少四个位线的小型RAM。文件列表705描述具有任意数量(例如,N个)字线及任意数量(例如,N个)位线的第N模块。如图5中详细描述的,文件列表701、702、703、704、705被处理,并且产生具有经包装的PPA配置文件的对应连线表(例如,ML连线表721、722、723、724、725)。
图8是示出从RTL设计产生可合成连线表以辅助半导体装置设计的方法的示例性流程图800。虽然为便于理解,在此参照先前描述的结构描述了图8,但应理解,所述方法也适用于许多其他结构。提供对应于半导体装置的至少一部分的RTL设计信息(例如,图1的RTL设计)(例如,步骤810)。产生与对应于半导体装置的RTL设计的至少一部分相关联的行为信息(例如,步骤820)。基于与半导体装置相关的一种或多种技术(例如,CPU-IP1402、GPU-IP1 404、ML-NPU-IP1 406)以及PPA信息来编译一组半导体装置(例如,步骤830)。识别由寄存器编译器产生的满足预先定义的PPA条件的半导体装置(例如,步骤840)。产生用于对齐半导体装置的输入/输出端口的定义组件布局及互连的结构信息(例如,步骤850)。基于用户定义的参数生成一组一个或多个可合成半导体装置配置(例如,CPU连线表521、522、523、524、525、ML连线表721、722、723、724、725),使得可合成半导体装置设计中的一者可被选择以产生具有结构可合成输入/输出边界兼容半导体装置模块的设计连线表(例如,步骤860)。如前所述,电路的合成包括将寄存器传输级代码转变成通用布尔模型。所述布尔模型可在逻辑级进行优化,以将多个逻辑操作组合成更简单的操作。举例来说,组件可被重新排列、组合和/或重新组合成不同的组件,以致力于减少操作时间及电路内总组件的数量。此外,优化可包括组件的顺序映射,其中围绕顺序元件的逻辑可被吸收在元件内,以努力节省面积。设计编译器还可实行各种优化操作,例如移除没有输出端口连接的逻辑、移除多余组件(例如,两个顺序反相器)、和/或传播常数以减少电路内的总逻辑组件。
图9是示出用于实施在本文中描述的各个方面的样品计算装置架构的示例性方块图900。总线904可充当互连硬件的其他所示组件的信息高速公路。标记为中央处理器(CPU)(例如,给定计算机或多台计算机上的一个或多个计算机处理器/数据处理器)的处理系统908可实行执行程序所需的计算及逻辑操作。例如只读存储器(read only memory,ROM)912及随机存取存储器(RAM)916等非暂时性处理器可读存储介质可与处理系统908通信,并且可包括用于此处指定的操作的一个或多个编程指令。视情况,程序指令可存储在例如磁盘、光盘、可记录存储器装置、闪存或其他物理存储介质等非暂时性计算机可读存储介质上。
在一个实例中,磁盘控制器948可将一个或多个可选磁盘驱动器接合到系统总线904。这些磁盘驱动器可以是外部或内部光盘只读存储器(compact disc read-onlymemory,CD-ROM)、可录式光盘(compact disc-recordable,CD-R)、可复写式光盘(rewritable compact disc,CD-RW)或数字化视频光盘(digital video disk,DVD)、或固态驱动器(例如,952)、或外部或内部硬盘驱动器956。如先前所指示,这些各种磁盘驱动器952、硬盘驱动器956及磁盘控制器是可选装置。系统总线904还可包括至少一个通信端口920,以允许与物理连接到计算系统或者通过有线或无线网络从外部可用的外部装置进行通信。在一些情况下,通信端口920包括或以其他方式包含网络接口。
为提供与用户的交互,本文中描述的主题可在计算装置上实施,所述计算装置具有用于向用户显示从总线904获得的信息的显示装置940(例如,阴极射线管(cathode raytube,CRT)或液晶显示器(liquid crystal display,LCD)监视器)及输入装置932(例如,键盘936和/或定点装置(例如,鼠标或轨迹球))和/或触摸屏,用户可通过所述触摸屏向计算机提供输入。其他类型的输入装置932也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、通过麦克风的听觉反馈或触觉反馈);并且可以任何形式接收来自用户的输入,包括声音、语音或触觉输入。输入装置932及键盘936可通过输入装置接口928耦合到总线904并经由总线904传送信息。例如专用服务器等其他计算装置可省略显示器940及显示接口914、输入装置932、键盘936及输入装置接口928中的一者或多者。
另外,本文中描述的方法及系统可通过包括可由装置处理子系统执行的程序指令的程序代码在许多不同类型的处理装置上实施。软件程序指令可包括源代码、目标代码、机器代码或可操作以使处理系统实行本文中描述的方法及操作的任何其他存储数据,并且可以任何合适的语言(举例来说,例如C、C++、JAVA、Perl、Python、Tcls或任何其他合适的编程语言)提供。然而,也可使用其他实施方式,例如被配置为进行本文中描述的方法及系统的固件或甚至被适当设计的硬件。
系统及方法的数据(例如,关联、映射、数据输入、数据输出、中间数据结果、最终数据结果等)可被存储及实施在一个或多个不同类型的计算机实施的数据存储中,例如不同类型的存储装置及编程构造(例如,RAM、ROM、闪存、平面文件、数据库、编程数据结构、编程变量、假设条件(IF-THEN)(或类似类型)语句构造等)。应注意,数据结构描述用于组织及存储数据库、程序、存储器或其他计算机可读介质中的数据以供计算机程序使用的格式。
本文中描述的计算机组件、软件模块、功能、数据存储及数据结构可彼此直接或间接连接,以允许其操作所需的数据流动。还应注意,模块或处理器包括但不限于实行软件操作的代码单元,并且可被实施为例如代码的子例程单元、或者实施为代码的软件功能单元、或者实施为对象(如在面向对象的范例中)、或者实施为小应用程序(applet)、或者以计算机脚本语言实施、或者实施为另一种类型的计算机代码。依据目前的情况,软件组件和/或功能可位于单个计算机上,或者分布在多个计算机上。
使用本文中所述的各种过程可提供许多优点。举例来说,使用所述主题可提供许多优点。举例来说,使用所述主题可缩短ASIC研发时间表,由于电路是通过设计自动优化的,因此几乎不需要重新设计工作(re-design effort)。本文中描述的模拟还便于装置验证,而没有与生产装置及手动测试装置相关联的时间延迟。
在一个实施例中,提供对应于所述半导体装置的至少一部分的寄存器传输级设计信息。产生与对应于所述半导体装置的寄存器传输级设计的至少一部分相关联的行为信息。编译一组基于与所述半导体装置相关的一种或多种技术以及功率、性能及面积(PPA)信息的半导体装置。识别由寄存器编译器产生的满足预先定义的功率、性能及面积条件的半导体装置。产生用于对齐所述半导体装置的输入/输出端口的结构信息。生成基于用户定义的参数的一组一个或多个可合成半导体装置配置,使得可合成半导体装置配置中的一者可被选择以产生具有结构可合成输入/输出边界兼容半导体装置模块的设计连线表。
在相关实施例中,所述的方法还包括选择所述可合成半导体装置配置中的一者用于合成。
在相关实施例中,所述寄存器传输级设计是从多个来源获得的。
在相关实施例中,所述半导体装置是至少一个存储器装置,并且自动寄存器传输级配置追踪器还产生所述存储器装置的大小信息。
在相关实施例中,所述存储器装置是从包括以下中的至少一者的群组中选择的随机存取存储器:单端口静态随机存取存储器、2端口静态随机存取存储器、双端口静态随机存取存储器、单端口寄存器文件和双端口寄存器文件。
在相关实施例中,编译所述一组半导体装置的步骤还包括基于关于所述存储器装置的大小的信息进行编译。
在相关实施例中,所述一种或多种技术包括与3um、1.5um、1.2um、1.0um、0.8um、0.6um、0.5um、0.35um、0.25um、0.18um、0.13um、90nm、65nm、40nm、28nm、22nm、20nm、16nm、12nm、10nm、7nm、6nm、5nm、3nm制作中的一者或多者的任意组合对应的制作技术。
在相关实施例中,所述半导体装置与中央处理器、图形处理单元、数字信号处理单元和神经处理单元中的至少一者的至少一部分相关。
在相关实施例中,编译的步骤包括使用随机存取存储器高速编译器、随机存取存储器高密度编译器和随机存取存储器超高密度编译器中的至少一者。
在相关实施例中,编译的步骤包括使用一个或多个信息数据库,所述一个或多个信息数据库包括物理存储器配置和性能、功率及面积信息中的至少一者的数据库。
在另一实施例中,一种用于从寄存器传输级(RTL)设计产生可合成连线表以辅助半导体装置设计的系统包括配置追踪器、寄存器编译器及技术选项配置。所述配置追踪器产生与对应于所述半导体装置的寄存器传输级设计的至少一部分相关联的大小信息。寄存器编译器基于与所述半导体装置相关的一种或多种技术以及功率、性能及面积(PPA)信息来编译一组半导体装置。技术选项配置器基于用户定义的参数生成一组一个或多个可合成半导体装置配置,使得所述可合成半导体装置配置中的一者可被选择以基于所述大小信息及所编译的所述一组半导体装置来产生设计连线表。
在相关实施例中,所述寄存器传输级设计是从多个来源获得的。
在相关实施例中,所述半导体装置是至少一个存储器装置,并且所述配置追踪器还产生所述存储器装置的行为信息。
在相关实施例中,所述存储器装置是从包括以下中的至少一者的群组中选择的随机存取存储器:单端口静态随机存取存储器、2端口静态随机存取存储器、双端口静态随机存取存储器、单端口寄存器文件和双端口寄存器文件。
在相关实施例中,所述寄存器编译器进一步编译所述一组半导体装置还包括基于关于所述存储器装置的大小的信息进行编译。
在相关实施例中,所述一种或多种技术包括与3um、1.5um、1.2um、1.0um、0.8um、0.6um、0.5um、0.35um、0.25um、0.18um、0.13um、90nm、65nm、40nm、28nm、22nm、20nm、16nm、12nm、10nm、7nm、6nm、5nm、3nm制作中的一者或多者的任意组合对应的制作技术。
在相关实施例中,所述半导体装置与中央处理器、图形处理单元、数字信号处理单元和神经处理单元中的至少一者的至少一部分相关。
在相关实施例中,所述寄存器编译器包括随机存取存储器高速编译器、随机存取存储器高密度编译器和随机存取存储器超高密度编译器中的至少一者。
在相关实施例中,所述寄存器编译器包括一个或多个信息数据库,所述一个或多个信息数据库包括物理存储器配置和性能、功率及面积信息中的至少一者的数据库。
在又一实施例中,一种用于从寄存器传输级(RTL)设计产生可合成连线表以辅助半导体装置设计的系统包括自动寄存器传输级配置追踪器、存储器寄存器编译器、PPA感知剖析器、存储器包装器及技术选项配置器。所述自动寄存器传输级配置追踪器产生与寄存器传输级设计的至少一部分相关联的行为信息,其中所述寄存器传输级设计对应于与所述半导体装置相关联的一个或多个存储器装置。存储器寄存器编译器基于与所述存储器装置相关的一种或多种技术以及功率、性能及面积(PPA)信息来编译一组存储器装置。PPA感知剖析器识别由所述存储器寄存器编译器产生的满足预先定义的功率、性能及面积条件的存储器装置。存储器包装器产生用于对齐所述存储器装置的输入/输出端口的结构信息。技术选项配置器基于用户定义的参数生成一组一个或多个可合成存储器装置配置,使得可合成存储器装置配置中的一者可被选择以产生具有结构可合成输入/输出边界兼容存储器装置模块的设计连线表。
以上概述了若干实施例的特征,以使所属领域中的技术人员可更好地理解本公开的各个方面。所属领域中的技术人员应理解,其可容易地使用本公开作为设计或修改其他工艺及结构的基础来施行与本文中所介绍的实施例相同的目的和/或实现与本文中所介绍的实施例相同的优点。所属领域中的技术人员还应认识到,这些等效构造并不背离本公开的精神及范围,而且他们可在不背离本公开的精神及范围的条件下对其作出各种改变、代替及变更。
Claims (1)
1.一种从寄存器传输级设计产生可合成连线表以辅助半导体装置设计的方法,包括:
提供对应于半导体装置的至少一部分的寄存器传输级设计信息;
产生与对应于所述半导体装置的寄存器传输级设计的至少一部分相关联的行为信息;
基于与所述半导体装置相关的一种或多种技术以及功率、性能及面积信息来编译一组半导体装置;
识别由寄存器编译器产生的满足预先定义的功率、性能及面积条件的半导体装置;
产生用于对齐所述半导体装置的输入/输出端口的结构信息;以及
基于用户定义的参数生成一组一个或多个可合成半导体装置配置,使得所述可合成半导体装置配置中的一者可被选择以产生具有结构可合成输入/输出边界兼容半导体装置模块的设计连线表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/925,500 | 2020-07-10 | ||
US16/925,500 US20220012392A1 (en) | 2020-07-10 | 2020-07-10 | Systems and Methods for Generating Synthesizable Netlists From Register Transfer Level Designs |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113380286A true CN113380286A (zh) | 2021-09-10 |
Family
ID=77042695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110196679.6A Pending CN113380286A (zh) | 2020-07-10 | 2021-02-22 | 从寄存器传输级设计产生可合成连线表的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220012392A1 (zh) |
EP (1) | EP3937057A1 (zh) |
JP (1) | JP2022016409A (zh) |
CN (1) | CN113380286A (zh) |
TW (1) | TW202203069A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11347920B2 (en) * | 2020-10-21 | 2022-05-31 | Taiwan Semiconductor Manufacturing Company, Ltd. | Circuit synthesis optimization for implements on integrated circuit |
US11620426B2 (en) * | 2021-05-27 | 2023-04-04 | Taiwan Semiconductor Manufacturing Company, Ltd. | Automated system and method for circuit design |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5210701A (en) * | 1989-05-15 | 1993-05-11 | Cascade Design Automation Corporation | Apparatus and method for designing integrated circuit modules |
JPH09270197A (ja) * | 1996-01-30 | 1997-10-14 | Mitsubishi Electric Corp | 半導体記憶装置及びレイアウト/回路情報生成装置 |
US6135647A (en) * | 1997-10-23 | 2000-10-24 | Lsi Logic Corporation | System and method for representing a system level RTL design using HDL independent objects and translation to synthesizable RTL code |
US6292427B1 (en) * | 2000-10-12 | 2001-09-18 | Virage Logic Corp. | Hierarchical sense amp and write driver circuitry for compilable memory |
US8589851B2 (en) * | 2009-12-15 | 2013-11-19 | Memoir Systems, Inc. | Intelligent memory system compiler |
US8185862B2 (en) * | 2010-07-13 | 2012-05-22 | Algotochip Corporation | Architectural level power-aware optimization and risk mitigation |
US8589854B2 (en) * | 2010-07-13 | 2013-11-19 | Algotochip Corp. | Application driven power gating |
US8607019B2 (en) * | 2011-02-15 | 2013-12-10 | Shine C. Chung | Circuit and method of a memory compiler based on subtractive approach |
US9852250B2 (en) * | 2015-02-20 | 2017-12-26 | Esilicon Corporation | Memory optimization in VLSI design using generic memory models |
US9454636B1 (en) * | 2015-04-02 | 2016-09-27 | Esilicon Corporation | Integrated circuit design optimization |
US9811627B2 (en) * | 2015-12-08 | 2017-11-07 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method of component partitions on system on chip and device thereof |
US10437946B1 (en) * | 2016-09-01 | 2019-10-08 | Xilinx, Inc. | Using implemented core sources for simulation |
US10795751B2 (en) * | 2017-03-03 | 2020-10-06 | Mentor Graphics Corporation | Cell-aware diagnostic pattern generation for logic diagnosis |
-
2020
- 2020-07-10 US US16/925,500 patent/US20220012392A1/en active Pending
-
2021
- 2021-02-22 CN CN202110196679.6A patent/CN113380286A/zh active Pending
- 2021-03-16 TW TW110109274A patent/TW202203069A/zh unknown
- 2021-07-09 JP JP2021113971A patent/JP2022016409A/ja active Pending
- 2021-07-09 EP EP21184797.5A patent/EP3937057A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JP2022016409A (ja) | 2022-01-21 |
US20220012392A1 (en) | 2022-01-13 |
TW202203069A (zh) | 2022-01-16 |
EP3937057A1 (en) | 2022-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6378123B1 (en) | Method of handling macro components in circuit design synthesis | |
US8122398B2 (en) | Conversion of circuit description to an abstract model of the circuit | |
US8799837B2 (en) | Optimizing a netlist circuit representation by leveraging binary decision diagrams to perform rewriting | |
US11132486B1 (en) | Systems and methods for multi-bit memory with embedded logic | |
EP3937057A1 (en) | Systems and methods for generating synthesizable netlists from register transfer level designs | |
US20100251196A1 (en) | Method and System for Designing a Structural Level Description of an Electronic Circuit | |
US20100107130A1 (en) | 1xn block builder for 1xn vlsi design | |
US20200401750A1 (en) | Verifying glitches in reset path using formal verification and simulation | |
US20240135078A1 (en) | Circuit Synthesis Optimization for Implements on Integrated Circuit | |
US20040025136A1 (en) | Method for designing a custom ASIC library | |
CN113051867A (zh) | 进行集成电路的自动化设计的方法 | |
US8281269B2 (en) | Method of semiconductor integrated circuit device and program | |
US10437946B1 (en) | Using implemented core sources for simulation | |
US6848084B1 (en) | Method and apparatus for verification of memories at multiple abstraction levels | |
CN115204076A (zh) | 集成电路的逻辑优化方法、装置、电子设备及可读介质 | |
TWI839084B (zh) | 電腦實施方法、電腦實施系統以及非暫時性電腦可讀媒體 | |
Kahng | Design technology productivity in the DSM era (invited talk) | |
US10796051B1 (en) | Adaptive model interface for a plurality of EDA programs | |
KR20230109649A (ko) | 폴리-비트 셀들 | |
JP2007323206A (ja) | 動作合成装置、同方法、シミュレーション装置、同方法及び設計装置 | |
US7689953B1 (en) | Method and apparatus for determining cell-based timing elements from a transistor-level design | |
US20230016865A1 (en) | Diagnosis of inconsistent constraints in a power intent for an integrated circuit design | |
Nalam et al. | A Technology-Agnostic Simulation Environment (TASE) for iterative custom IC design across processes | |
Lin et al. | Opportunities and Challenges for Circuit Board Level Hardware Description Languages | |
Lienig et al. | Methodologies for Physical Design: Models, Styles, Tasks, and Flows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210910 |
|
WD01 | Invention patent application deemed withdrawn after publication |