CN114764555A - 产生方法 - Google Patents

产生方法 Download PDF

Info

Publication number
CN114764555A
CN114764555A CN202210053291.5A CN202210053291A CN114764555A CN 114764555 A CN114764555 A CN 114764555A CN 202210053291 A CN202210053291 A CN 202210053291A CN 114764555 A CN114764555 A CN 114764555A
Authority
CN
China
Prior art keywords
clock
macro
circuit
design
delay
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
CN202210053291.5A
Other languages
English (en)
Inventor
蔡明杰
王绍宇
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.)
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Original Assignee
Taiwan Semiconductor Manufacturing Co TSMC Ltd
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 Taiwan Semiconductor Manufacturing Co TSMC Ltd filed Critical Taiwan Semiconductor Manufacturing Co TSMC Ltd
Publication of CN114764555A publication Critical patent/CN114764555A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • 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
    • 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/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本发明提出一种产生方法,适用于对于特定应用集成电路设计的每一宏电路产生时钟传送电路。产生方法包括接收以硬件描述语言描述的特定应用集成电路设计;将每一宏电路放置于半导体基板上的指定位置;基于宏时钟延迟模型,对每一宏电路产生定制时钟偏移信息;基于定制时钟偏移信息,对放置于半导体基板的每一宏电路产生时钟传送电路;当时钟传送电路不符合特定应用集成电路设计的时钟要求时,调整时钟传送电路;以及输出特定应用集成电路设计的物理布局而以半导体制造程制造特定应用集成电路设计。

Description

产生方法
技术领域
本发明是有关于一种时钟传送电路或时钟树的产生方法。
背景技术
电子设计自动化(Electronic Design Automation,EDA)工具以及方法通常用于半导体芯片上集成电路的设计以及布局。通常,特定应用集成电路(application-specificintegrated circuit,ASIC)由晶体管形成执行基本逻辑运算(例如,AND、OR、NAND、NOR等)的基本电路。接着可以将这些基本电路组成宏电路,例如多工器、加法器、乘法器、解码器等,进而组成功能区块。在特定应用集成电路的阶层式设计(hierarchical design)中,每个个别的功能都被划分至不同的宏电路,而这些宏电路通常是预先设计好,并放置于电子设计自动化工具的单元库中。当各个功能皆设计完成后,通过将各个功能区块相互连接即可完成整个集成电路的整体设计。
在同步数字系统时,时钟信号作为数据在特定应用集成电路中被驱动的时间基准。时钟信号被发送至功能区块内的每个暂存器或闩锁器,并且在理想情况下应在特定应用集成电路进行操作的期间同时到达每个闩锁器,以符合某些时序要求,进而确保电路动作正常。然而,实际上并非如此。时钟的发送过程存在差异,使得时钟到达每个暂存器或闩锁器的时间不一致,而时钟到达每个暂存器或闩锁器的时间不一致通常称之为“时钟偏移(clock skew)”。
发送时钟的技术试图改善时钟发送网络中各种路径的时钟偏移,而时钟发送网络也称为时钟树(clock tree)。当时钟偏移未被控制在可容忍的水平以下时,则时钟信号会不可控制的在不同时间点到达多个状态单元(如,触发器),从而导致状态单元存储不正确的状态值。通常,时钟树是耦接于单一时钟源以及控制区块闩锁器、宏电路或宏区块之间。当每个宏电路的内部时钟延迟反映在时钟树的设计中时,可利用中间级来连接某些宏电路以及时钟树。
如果时钟偏移低于设计规范中预定的偏移容忍位准以下时,则在整个特定应用集成电路设计中不存在时钟偏移问题。如果时钟偏移不符合偏移容忍规范时,则应进行调整以符合预定的偏移容忍值。然而,当时钟树的一部分被修改时,其余部分也因此而有所变化,因此实际上很难部分地校正时钟电路中的时钟树。然而,修改时钟树会导致时序设计迭代次数增加。此外,时序设计的迭代次数增加可能会延后特定应用集成电路设计的上市时间。
再者,为了设计所需的时钟树,应估计各种宏电路的确切的总时钟偏移。当前通用的做法无法准确地估计宏电路的时钟偏移,导致宏电路不偏移或偏移的经验值可能与宏电路的实际时钟偏移值相差很远。另外,现有的宏电路模型无法提供用于精确时钟偏移计算的信息。宏电路中时钟偏移的不正确估计还会导致特定应用集成电路的功率、性能以及面积(power,performance,and area,PPA)的特性较差,并导致整体的特定应用集成电路的时序违例。由于宏电路的时钟偏移估计不准确而导致的特定应用集成电路时序违例,将导致自动布局布线(Automatic Place and Route)工具浪费资源来修复时序违例。
因此,需要一种改进的时钟偏移系统和方法,以最小的时序设计迭代次数来实现特定应用集成电路芯片的最佳功率、性能以及面积的特性。
在该背景技术部分中公开的信息仅旨在提供以下所述的本发明的各种实施例的前后关系,因此该背景技术部分可包括不一定是现有技术的信息(即,已经为本领域具有通常知识者所知的信息)。因此,目前所列的发明人的工作、在此背景技术段落中所描述的范围以及在申请时可能不符合现有技术条件的说明书中的各方面,均未被明确或隐含地承认为相对于本公开的技术的现有技术。
发明内容
本发明提出一种产生方法,适用于对于一特定应用集成电路设计的每一宏电路产生一时钟传送电路。上述产生方法包括接收以一硬件描述语言描述的上述特定应用集成电路设计;将每一宏电路放置于一半导体基板上的指定位置;基于一宏时钟延迟模型,对每一宏电路产生一定制时钟偏移信息(custom clock skew information);基于上述定制时钟偏移信息,对放置于上述半导体基板的每一宏电路产生上述时钟传送电路;当上述时钟传送电路不符合上述特定应用集成电路设计的时钟要求时,调整上述时钟传送电路;以及输出上述特定应用集成电路设计的一物理布局而以一半导体制造程制造上述特定应用集成电路设计。
本发明提出一种非时变机器可读取媒体用以存储多个指令,当一处理器执行上述指令时,上述处理器一产生方法而对一特定应用集成电路设计的每一宏电路产生一时钟传送电路。上述产生方法包括接收以一硬件描述语言描述的上述特定应用集成电路设计;将每一宏电路放置于一半导体基板上的指定位置;基于一宏时钟延迟模型,对每一宏电路产生一定制时钟偏移信息;基于上述定制时钟偏移信息,对放置于上述半导体基板的每一宏电路产生上述时钟传送电路;当上述时钟传送电路不符合上述特定应用集成电路设计的时钟要求时,调整上述时钟传送电路;以及输出上述特定应用集成电路设计的一物理布局而以一半导体制造程制造上述特定应用集成电路设计。
本发明更提出一种集成电路设计系统,包括一电脑以及一软件应用。上述电脑具有一处理器及一存储器。上述软件应用由上述电脑的处理器所运行,且暂存于上述存储器。上述软件应用包括多个软件功能模块,上述软件功能模块包括一布局布线模块、一偏移决定模块、一时钟传送调整模块以及一布线模块。上述布局布线模块用以接收以一硬件描述语言所指定的一特定应用集成电路设计,且将上述特定应用集成电路设计的每一宏电路放置于一半导体基板上的指定位置;上述偏移决定模块具有耦接至一宏时钟延迟模型的一时钟偏移计算引擎,其中上述偏移决定模块用以基于上述宏时钟延迟模型对每一宏电路产生一定制时钟偏移信息,且用以基于上述定制时钟偏移信息而对位于上述半导体基板的每一宏电路产生一时钟传送电路。当上述时钟传送电路不符合上述特定应用集成电路设计的时序要求时,上述时钟传送调整模块用以调整上述时钟传送电路。上述布线模块用以输出上述特定应用集成电路设计的一物理布局而以一半导体制造程进行制造上述特定应用集成电路设计。
附图说明
根据以下的详细说明并配合所附图式做完整公开。应注意的是,根据本产业的一般作业,图示并未必按照比例绘制。事实上,可能任意的放大或缩小元件的尺寸,以做清楚的说明。
图1是显示根据本发明的一些实施例所述的包括同步特定功能集成电路的时钟树的电路图;
图2是显示根据本发明的一些实施例所述的具有宏时钟偏移的自动布局布线设计流程的流程图;
图3是显示根据本发明的一些实施例所述的宏时钟延迟模型的示意图;
图4是显示根据本发明的一些实施例所述的宏时钟延迟计算模块的示意图;
图5是显示根据本发明的一些实施例所述的基于宏时钟延迟模型而判断宏时钟偏移的判断方法的流程图;以及
图6是显示根据本发明的一些实施例所述的执行判断方法的电子设计自动化工具的示意图。
其中,附图标记说明如下:
100:同步特定应用集成电路
101:宏电路
102:输入端子
103:输入逻辑
104:输出端子
105:输出逻辑
107:输入触发器
109:输入预处理组合逻辑
111:第一时钟分支
113:第二时钟树分支
114:外部时钟信号产生器
115:内部时钟树
117:组合电路
119:宏输入触发器
121:宏输出触发器
123:第三时钟树分支
125:输出触发器
127:输出预处理组合逻辑
201:初始放置
203:产生时钟传送电路或时钟树
205:修正时钟树时序违例
207:布线
209:自动宏偏移策略单元
211:宏内部时钟延迟模型
213:自动时钟偏移计算引擎
215:定制时钟偏移信息
301:唯一标签
303:公共查找表
305:上升查找表
307:下降查找表
401:平均输出设置宽松
403:输入网络转换数据库
405:时钟延迟
407:定制偏移计算引擎
501~511:操作流程
600:电子设计自动化工具
601:处理器
603:第一机器可读存储媒体
605:逻辑门层次网表
607:第二机器可读取媒体
609:宏时钟延迟模型
615:显示装置
617:输入装置
619:第三机器可读取媒体
621:物理布局
具体实施方式
以下的公开内容提供许多不同的实施例或范例以实施本案的不同特征。以下的公开内容叙述各个构件及其排列方式的特定范例,以简化说明。当然,这些特定的范例并非用以限定。例如,若是本公开书叙述了一第一特征形成于一第二特征之上或上方,即表示其可能包含上述第一特征与上述第二特征是直接接触的实施例,亦可能包含了有附加特征形成于上述第一特征与上述第二特征之间,而使上述第一特征与第二特征可能未直接接触的实施例。另外,以下公开书不同范例可能重复使用相同的参考符号及/或标记。这些重复是为了简化与清晰的目的,并非用以限定所讨论的不同实施例及/或结构之间有特定的关系。
如图1所示,同步特定应用集成电路100包括可以从单元库中选择的宏电路101。在一些实施例中,宏电路101可用以执行逻辑或算术功能。单元库还可包括其他功能宏电路,例如桶式移位器(barrel shifter)或随机存取存储器(random access memory,RAM)。在各种不同的实施例中,宏电路101的布局是于单元库中预先决定好的。宏电路101可以包括用以自输入逻辑103接收输入信号的宏输入触发器119。此外,宏电路101还可以包括用以向输出逻辑105发送输出信号的宏输出触发器121。在一些实施例中,宏输入触发器119以及宏输出触发器121可以被实现为D型触发器电路。然而,可实现其他类型的触发器以满足特定应用的设计标准。宏电路101可以还包括用以执行目标功能的组合电路117。此外,宏电路101可以包括耦接至宏输入触发器119以及宏输出触发器121的内部时钟树115。由于宏电路101的内部布局是为固定的,所以在特定应用集成电路设计过程中,受几何结构的电容以及电阻的影响及/或宏电路101中的单元或金属线之间的关系的时钟延迟可能无法调整。
在一些实施例中,输入逻辑103是耦接至宏电路101的输入端子102,并且还包括用以接收输入信号的输入触发器107。在各种不同的实施例中,输入逻辑103可以包括连接于输入触发器107的输出端以及宏电路101的输入端子102之间的输入预处理组合逻辑109。在一些实施例中,输入触发器107可由外部时钟信号产生器114提供时钟,外部时钟信号产生器114连接到具有第一时钟分支111的外部时钟树的根部,第一时钟分支111将时钟信号从外部时钟信号产生器114传送至输入触发器107以及输入逻辑103中的任何其他时钟单元。在一些实施例中,时钟树可包括第二时钟树分支113以及第三时钟树分支123。特别的是,第二时钟树分支113可用以将时钟信号传送至宏电路101。第三时钟树分支123可将时钟信号传送至输出逻辑105。在一些实施例中,时钟树包括一组缓冲器及/或反相器,用以提供用以在时钟树分支的节点处散开时钟信号时所需的功率。此外,可将额外的缓冲器插入时钟树的各个分支中以调整路径延迟,使得时钟信号的边缘同时到达输入逻辑103、宏电路101以及输出逻辑105。尽管为简单起见,图1中所示的时钟树仅具有三个分支,然而时钟树通常具有更多的分支,且可将时钟信号提供至其他电路模块。
在其他实施例中,输出逻辑105可耦接至宏电路101的输出端子104。实际上,输出逻辑105可还包括用以提供输出信号的输出触发器125。在各种不同的实施例中,输出逻辑105可包括连接在宏电路101的输出端子104以及输出触发器125之间的输出预处理组合逻辑127。在一些实施例中,输出触发器125可由外部时钟信号产生器114经由第三时钟树分支123提供时钟。
图2是显示根据一些实施例所述的具有宏观偏移引擎209的自动布局布线设计流程的示意图。如图2所示,设计的自动布局布线基于输入网表(netlist),而从初始放置201开始执行。在一些实施例中,例如,合成工具根据硬件描述语言(HDL)中提出的输入设计规范来产生代表设计的输入网表。在输入网表中指定的宏电路放置于基板上其分配的位置后,自动布局布线流程会为特定应用集成电路设计中的每个宏电路产生时钟传送电路或时钟树203。在一些实施例中,产生时钟树203是基于用于特定应用集成电路设计中的每个宏电路的定制时钟偏移信息215所产生。此外,定制时钟偏移信息215是由自动宏偏移策略(automatic macro skewing strategy,AMSS)单元209确定。下面将会更详细地描述自动宏偏移策略单元209。
在产生时钟树203之后,基于定制时钟偏移信息215而在时钟树时序违例205的操作中调整每个时钟树分支的延迟区块,以补偿且消除每个时钟树分支的时钟偏移。接着,自动布局布线设计流程在布线207的步骤完成后,完成设计的布局、布线以及检查,以完成集成电路的制造。
在一些实施例中,自动宏偏移策略单元209包括宏内部时钟延迟模型(macrointernal clock delay module)211以及自动时钟偏移计算引擎213。在一些实施例中,自动时钟偏移计算引擎213基于宏内部时钟延迟模型211,针对每个宏电路决定定制时钟偏移信息215。在进一步的实施例中,宏内部时钟延迟模型211包括自内部宏时钟树的根部到每个输入/输出触发器(例如,宏输入触发器119或宏输出触发器121)的时钟插入延迟。在替代实施例中,宏内部时钟延迟模型211可包括从内部宏时钟树的根部到一组输入触发器或一组输出触发器的时钟插入延迟。在另一个实施例中,宏内部时钟延迟模型211可包括对所有输入/输出触发器的平均时钟插入延迟。
在一些实施例中,时钟插入延迟模型是基于提取影响内部时钟偏移的寄生电路元件的宏电路。电阻以及电容的萃取(也称为寄生提取)是提取宏电路的电路布局的电性特性,以确定宏电路的内部时钟偏移。在一些实施例中,电阻以及电容萃取工具,如StarRC,可用以提取宏电路的电阻以及电容网络,然后电阻以及电容网络可用以建构宏内部时钟延迟模型211。在各种不同的实施例中,时序分析工具,例如Spice或Primetime,可基于提取的电阻以及电容网络来确定从内部宏时钟树的根部到每个输入触发器以及输出触发器的时钟插入延迟。此外,宏内部时钟延迟模型211可以任何其他时序格式(liberty timingformation)存储。在其他实施例中,宏内部时钟延迟模型211可以以任何其他定时格式保存。在一些实施例中,内部时钟延迟模型211可包括从内部宏时钟树的根部至每个输入触发器/输出触发器的平均时钟延迟。在一些实施例中,自由(Liberty)时序格式可包括从内部宏时钟树的根部至每个输入触发器/输出触发器的一维时钟延迟表。
图3是显示根据本发明的一些实施例所树的自由(Liberty)格式的宏时钟延迟模型211的示意图。因此,自由格式可以存储公共查找表303,其中公共查找表303在宏电路101的时钟端口处指定上升转变延迟(rising transition delay)或下降转变延迟(fallingtransition delay)的转折点。在一些实施例中,上升转变延迟或下降转变延迟是指定宏电路101的时钟端口处的时钟信号自一个逻辑位准改变至另一逻辑位准所需的延迟时间。在一些实施例中,可利用唯一标签301,来标记公共查找表303。
在一些实施例中,宏时钟延迟模型211可包括自内部宏时钟树的根部到每个输入触发器/输出触发器的宏内部时钟延迟,用以上升以及下降输出。因此,可以在上升查找表(rising table)305中指定用以上升输出的宏电路的内部时钟延迟,并且可以在下降查找表(falling table)307中指定用以下降输出的宏电路的内部时钟延迟。在各种不同的实施例中,上升查找表305以及下降查找表307可为每个输入触发器/输出触发器、一组输入触发器/输出触发器指定时钟延迟值指定时钟延迟值,或者为所有输入触发器/输出触发器指定一个单一值,例如平均延迟。
在一些实施例中,公共查找表303中的时钟转变值的索引指定了连结至上升查找表305以及下降查找表307的索引,其中上升查找表305以及下降查找表307指定了内部宏时钟树延迟。举例来说,当时钟转变值是为0.028ns(index(0.028)=2)并且考虑到上升输出时,则内部时钟延迟将为0.241ns(index(0.241)=2)。在一些实施例中,自动时钟偏移计算引擎213基于自由格式所存储的宏内部时钟延迟模型211,决定每个宏电路的定制时钟偏移信息215。
图4是显示根据本发明的一些实施例所示的宏时钟偏移计算模块213的示意图。在一些实施例中,宏时钟偏移计算引擎基于宏时钟延迟模型211确定内部时钟偏移,并为宏电路101的每个输入触发器/输出触发器或一组输入触发器/输出触发器输出定制时钟偏移。在一些实施例中,宏时钟偏移计算模块213接收存储在宏时钟延迟模型211中的信息,该信息用于提取自内部宏时钟树的根部至输入触发器/输出触发器或一组输入触发器/输出触发器的时钟延迟405。在各种不同的实施例中,宏时钟偏移计算模块213还存储于输入网络转换数据库403之中,该输入网络转换数据库403是指定特定应用集成电路设计中每个宏电路的时钟转换延迟。在其他实施例中,时钟延迟405是基于输入网络转换数据库403中所存储的自低到高或自高到低的时钟转换延迟而决定的。在进一步的实施例中,自动布局布线工具可以自特定应用集成电路设计中基于宏电路的物理布局布线,而提供自低到高或自高到低的时钟转换延迟。
在一些实施例中,偏移计算模块213可包括定制偏移计算引擎407。由于对于特定应用集成电路设计中的每个宏电路而言时钟转换延迟、输入负载以及输出负载是不同的,所以定制偏移计算引擎407可用以接收特定应用集成电路设计中每个宏电路的输入网络转换数据库403的时钟转换延迟以及输入触发器/输出触发器的时钟延迟405,并为特定应用集成电路设计中的宏电路的每个输入触发器/输出触发器的时钟提供定制时钟偏移。在一些实施例中,定制偏移计算引擎407基于宏内部时钟延迟模型211以及输入网络转换数据库403的时钟转变延迟中宏电路的每个输入触发器/输出触发器或一组输入触发器/输出触发器,来计算输入触发器/输出触发器的时钟偏移。再者,定制偏移计算引擎407还可确认至输入触发器/输出触发器的时钟偏移是否满足特定应用集成电路设计的时序限制。此外,偏移计算引擎可根据宏电路的物理布局,为输入触发器/输出触发器提供实际的时钟偏移。在一些实施例中,偏移计算模块213可包括指定所有输出触发器的平均总输出设置宽松的平均输出设置宽松(满足或不满足时序限制的余裕)401。在一些实施例中,可以在设计的自动布局布线的放置阶段201期间决定平均宏输出设置宽松。
在一些实施例中,定制偏移计算引擎407将每个宏电路的输入触发器/输出触发器的定制时钟偏移,定为宏电路的输入触发器/输出触发器的时钟延迟405以及宏内部时钟延迟与平均输出设置延迟宽松401的差值的最大值。输入触发器/输出触发器的定制时钟偏移如下:
Figure BDA0003475220720000101
其中OSmacroID是为内部时钟延迟模型211的上升查找表305或下降查找表307中所指定的输入触发器/输出触发器的时钟延迟405,macroSLK是为平均输出设置延迟宽松401。由偏移计算引擎407提供的偏移至少为OSmacroID,即到宏电路的输入触发器/输出触发器的时钟插入延迟。在一些实施例中,定制偏移计算引擎407可应用于特定应用集成电路设计中的每个宏电路,以产生针对输入触发器/输出触发器的一组定制时钟偏移。例如,如果宏电路具有五个输出端口,并且自动布局布线工具提供以下输出设置宽松度:-0.15、0.26、0.28、0.30以及0.15,则输出设置松弛度的算术平均值可以计算为0.168。此外,如果自动布局布线工具提供的宏电路的时钟转换延迟为0.054,则公共查找表303中0.054的索引是为3,该索引可用以从上升查找表305确定到输入触发器/输出触发器的时钟延迟405是为0.261。因此,可以将偏移确定为:
Skew=max(0.261,(0.261-0.168))=0.261
确定到输入触发器/输出触发器的定制时钟偏移的一个优点是,例如提供了更短的设计周期以及最佳的功率、性能以及面积的特性。此外,通过确定至每个宏电路的输入触发器/输出触发器的定制时钟偏移所获得的最佳的功率、性能以及面积的特性还可以提高良率,并使特定应用集成电路设计人员能够将更多功能添加至到特定应用集成电路设计中。
图5是显示根据本发明的一些实施例所述的用以基于宏时钟延迟模型来确定宏时钟偏移的方法的流程图。在操作501中,可以接收用以描述现有特定应用集成电路设计的源逻辑门层次(gate-level)网表。在一些实施例中,逻辑门层次网表可以是通过暂存器传输级(register-transfer level,RTL)编译器合成工具从暂存器传输级(RTL)原始码所合成的文字档案。在另外的实施例中,源逻辑门层次网表可包括代表特定应用集成电路设计的阶层式的(hierarchical)或平坦的逻辑门层次网表。再者,源逻辑门层次网表可包括元件以及元件之间互连的描述。此外,元件源逻辑门层次网表可以简化为组合逻辑门或序列逻辑门,或可以是较低层次的阶层式区块。在一些实施例中,源逻辑门层次网表可以解析为,例如有向图的数据结构,其中图的顶点作为解析的标准单元,而有向边作为解析的标准单元的输入以及输出。
在操作503中,基于以自由格式存储的宏时钟延迟模型211,产生特定应用集成电路设计中每个宏电路的定制时钟偏移信息。根据一些实施例,所存储的宏时钟延迟模型211可基于萃取的电阻值以及电容值。
在操作505中,在将接收到的特定应用集成电路设计的宏电路自动布局布线至半导体基板上所分配的位置后,为每个放置的宏电路产生定制时钟传送电路。在一些实施例中,定制时钟传送电路是基于为特定应用集成电路设计的每个宏电路所产生的定制时钟偏移信息而产生。
在操作507中,在产生时钟传送电路后,检查用以确保特定应用集成电路设计电路正常工作的时序限制。如果特定应用集成电路设计存在时序违例,则可在操作509处修改时钟传送电路,以补偿且因而消除时钟分配树的每个分支的时钟偏移。
在操作511中,产生了所接收的特定应用集成电路设计的物理布局,该物理布局随后可用于使用半导体制造程序来完成以及制造特定应用集成电路设计。该物理布局通常被称为“几何形状(geometry)”,可用于产生集成电路的工具,该工具是为一系列光罩,而每个光罩用以代表特定应用集成电路设计电路的一层。制造商随后可使用该工具来制造集成电路。
在操作513中,可通过半导体制造系统根据特定应用集成电路设计的物理布局,来制造特定应用集成电路设计。特别地,特定应用集成电路设计可被制造在包括多个芯片(die)的半导体晶圆(wafer)上。在一些实施例中,用以根据所接收的物理布局来制造特定应用集成电路设计的半导体制造系统可包括但不限于,计量子系统(metrologysubsystem)、沉积子系统(deposition subsystem)、光刻子系统(lithographysubsystem)、蚀刻子系统(etching subsystem)、涂层子系统(coating subsystem)、缓冲子系统(buffering subsystem)、存储子系统(storage subsystem)、检查子系统(inspectionsubsystem)、加热/冷却子系统(heating/cooling subsystem)等等。
图6是显示根据本发明的一些实施例所述的电子设计自动化工具600,其中电子设计自动化工具600包括用以基于宏时钟延迟模型609来决定宏时钟偏移的系统。图6并非用以显示电子设计自动化工具所有功能的完整详细方框图。例如,电子设计自动化工具600还可包括以下模块的组合:逻辑合成、行为合成、布局布线、静态时序分析、形式验证、硬件描述语言(HDL,如SystemC、Systemverilog/Verilog、VHDL)模拟器以及晶体管层次(transistor-level)电路模拟。这样的模块可以在一或多个处理器(即,至少一个处理器)中实现,该处理器是用以执行存储在耦接至至少一个处理器的一或多个存储模块或存储器中的电脑可执行指令以及相关数据。
如图6所示,电子设计自动化工具600可包括宏时钟偏移计算模块213以及用以在特定应用集成电路设计的逻辑门层次描述以及GDS II布局(晶体管层次)描述(或其他合适的布局描述格式)之间转换的多个模块。在一些实施例中,电子设计自动化工具600可以运行在至少一个处理器601上,该处理器601可以是,例如通用计算机或以专用计算机程序指令、宏内部时钟延迟模型211、存储在永久性的第一机器可读存储媒体603中的平均输出设置宽松401所编程的嵌入式处理器。在某些实施例中,第一机器可读存储媒体603还包括多个设计规则,其中设计规则包括特定半导体制造程序的特定参数。设计规则可以结合半导体制造系统所使用的参数。在一些实施例中,用于基于宏时钟延迟模型609而确定宏时钟偏移的系统包括自动时钟偏移计算引擎213以及定制时钟偏移信息215,用于补偿以及消除如图2或图4所述的时钟树的每个分支的时钟偏移。
包括用于基于宏时钟延迟模型而确定宏时钟偏移的系统的电子设计自动化工具600可包括用于存储特定应用集成电路设计的逻辑门层次网表605的第二机器可读取媒体607以及用于存储在逻辑门层次网表605中描述的特定应用集成电路设计的物理布局621(例如GDS II数据)的第三机器可读取媒体619。在一些实施例中,所有数据,如逻辑门层次网表605、宏内部时钟延迟模型211、平均输出设置宽松401以及物理布局621可以存储在同一个媒体中。在另外的实施例中,电子设计自动化工具600可以连接到显示装置615,该显示装置615用以显示电子设计自动化工具的图形用户界面(graphical user interface,GUI)。在一些实施例中,电子设计自动化工具600也可以连接到用以接收使用者输入的输入装置617。
尽管以上已经描述了本公开的各种实施例,但是应当理解的是,它们仅以示例的方式而不是限制的方式被呈现。同样的,各种图示可以指出示例性的架构或配置以使本领域具有通常知识者能够理解本公开的示例性的特征和功能。然而,这些人员将理解,本公开不限于所显示的示例性的架构或配置,而是可以使用多种替代的架构以及配置来实现。另外,如本领域具有通常知识者将理解的是,一个实施例的一个或多个特征可以与本文描述的另一实施例的一个或多个特征相组合。因此,本公开的广度和范围不应受到任何上述示例性的实施例的限制。
还需理解的是,本文使用诸如“第一”、“第二”等的名称对元件的任何引用,通常不用以限制那些元件的数量或顺序,而是在本文中用作区分两个或更多个元件或元件的实例的方便手段。因此,对第一元件以及第二元件的引用并不意味着只能采用两个元件,或者第一元件必须以某种方式位于第二元件之前。
另外,本领域具有通常知识者将理解,可以使用各种不同科技以及技术中的任何一种来表示信息以及信号。例如,在以上的描述中所引用的,例如数据、指令、命令、信息、信号、位元以及符号,可由电压、电流、电磁波、磁场或粒子、光场或粒子或它们的任何组合所表示。
本领域具有通常知识者将进一步理解,结合本文公开的各方面描述的各种说明性逻辑区块、模块、处理器、装置、电路、方法以及功能中的任何一者,都可以由电子硬件来实现(例如,数字实现(digital implementation)、模拟实现(analog implementation)或上述二者的组合)、固件、结合指令的各种形式的程序码或设计码(为方便起见,在本文中称为“软件”或“软件模块”),或上述方式的任意组合。
为了清楚地说明硬件、固件以及软件的可互换性,以上已经大体上根据其功能描述了各种说明性元件、区块、模块、电路以及步骤。这种功能是以硬件、固件、软件、还是上述方式的组合的方式实现,是取决于特定的应用程序以及对整个系统的设计限制。技术人员可以针对每个特定应用以各种方式来实现所描述的功能,然而决定实现的方式不会造成背离本公开的范围。根据各种实施例,处理器、装置、元件、电路、结构、机器、模块等,可用以执行本文中描述的一个或多个功能。如本文针对特定操作或功能所使用的用语“配置为”,指的是被物理构建、编程、安排及/或格式化的处理器、装置、元件、电路、结构、机器、模块、信号等,以执行指定的操作或功能。
此外,本领域具有通常知识者将理解,本文描述的各种说明性逻辑区块、模块、装置、元件以及电路可以在集成电路中实现或由其执行,其中上述集成电路包括数字信号处理器(digital signal processor,DSP)、特定应用集成电路(ASIC)、现场可编程逻辑门阵列(field programmable gate array,FPGA)或其他可编程逻辑设备或其任意组合。逻辑区块、模块以及电路可还包括天线及/或收发器,以与网络内或设备内的各种元件进行通信。被编程以执行本文中所述的功能的处理器将变为经过特殊编程或专用的处理器,并且可以被实现为计算装置的组合,例如数字信号处理器以及微处理器的组合、多个微处理器、与数字信号处理器的核心结合的一个或多个微处理器、或任何其他合适的配置以执行本文所述的功能。
如果以软件实现,则功能可以作为存储在机器可读取媒体上的一个或多个指令或程序码。因此,本文公开的方法或演算法的步骤可被实现为存储在机器可读取媒体上的软件。机器可读取媒体包括计算机存储媒体以及通信媒体,其中通信媒体包括能够使计算机程序或程序码从一个地方传输到另一地方的任何媒体。存储媒体可以是计算机可以访问的任何可用媒体。作为范例而非限制,此类机器可读取媒体可以包括随机存取存储器(RAM)、只读存储器(ROM)、电性可抹除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)或其他光盘存储媒体、磁盘或其他磁性存储设备,或可以用于存储的任何其他媒体,可存储由计算机访问的指令或数据结构形式的所需程序码。
在本文中,本文所使用的术语“模块”指的是软件、固件、硬件以及用于执行本文所描述的相关功能的这些元件的任何组合。另外,为了讨论的目的,各种模块被描述为离散模块。然而,对于本领域具有通常知识者显而易见的是,可以组合两个或更多个模块以形成执行根据本公开的实施例的相关功能的单个模块。
本发明提出一种产生方法,适用于对于一特定应用集成电路设计的每一宏电路产生一时钟传送电路。上述产生方法包括接收以一硬件描述语言描述的上述特定应用集成电路设计;将每一宏电路放置于一半导体基板上的指定位置;基于一宏时钟延迟模型,对每一宏电路产生一定制时钟偏移信息;基于上述定制时钟偏移信息,对放置于上述半导体基板的每一宏电路产生上述时钟传送电路;当上述时钟传送电路不符合上述特定应用集成电路设计的时钟要求时,调整上述时钟传送电路;以及输出上述特定应用集成电路设计的一物理布局而以一半导体制造程制造上述特定应用集成电路设计。
根据本发明的一些实施例,上述宏时钟延迟模型是为自由格式(libertyformation)的一文字档案,上述文字档案包括多个一维时钟延迟查找表,其中上述一维时钟延迟查找表指定自一内部宏时钟数的根部至每一输入/输出状态单元的一时钟延迟。
根据本发明的一些实施例,上述产生上述定制时钟偏移信息的步骤还包括基于每一宏电路的一时钟端的一时钟信号的多个转移延迟的多个转折点(breakpoints)所决定的一索引,对上述一维时钟延迟查找表进行查找。
根据本发明的一些实施例,决定上述索引的步骤还包括对指定每一宏电路的上述时钟端的上述时钟信号的上述转移延迟的一共同查找表进行查找,并且提取自最接近由一自动布局布线工具所提供的一转移延迟的一转折点的上述索引。
根据本发明的一些实施例,上述对每一宏电路产生上述定制时钟偏移信息的步骤还包括决定自一内部宏时钟树的根部至上述输出状态元件的一时钟延迟的最大值以及上述时钟延迟与上述宏电路的所有输出状态元件的一平均输出设置宽松(setup slack)的差值。
本发明提出一种非时变(non-transitory)机器可读取媒体,用以存储多个指令,当一处理器执行上述指令时,上述处理器一产生方法而对一特定应用集成电路设计的每一宏电路产生一时钟传送电路。上述产生方法包括接收以一硬件描述语言描述的上述特定应用集成电路设计;将每一宏电路放置于一半导体基板上的指定位置;基于一宏时钟延迟模型,对每一宏电路产生一定制时钟偏移信息;基于上述定制时钟偏移信息,对放置于上述半导体基板的每一宏电路产生上述时钟传送电路;当上述时钟传送电路不符合上述特定应用集成电路设计的时钟要求时,调整上述时钟传送电路;以及输出上述特定应用集成电路设计的一物理布局而以一半导体制造程制造上述特定应用集成电路设计。
根据本发明的一些实施例,上述宏时钟延迟模型是为自由格式的一文字档案,上述文字档案包括多个一维时钟延迟查找表,其中上述一维时钟延迟查找表指定自一内部宏时钟数的根部至每一输入/输出状态单元的一时钟延迟。
根据本发明的一些实施例,上述产生上述定制时钟偏移信息的步骤还包括基于每一宏电路的一时钟端的一时钟信号的多个转移延迟的多个转折点所决定的一索引,对上述一维时钟延迟查找表进行查找。
根据本发明的一些实施例,决定上述索引的步骤还包括对指定每一宏电路的上述时钟端的上述时钟信号的上述转移延迟的一共同查找表进行查找,并且提取自最接近由一自动布局布线工具所提供的一转移延迟的一转折点的上述索引。
根据本发明的一些实施例,上述对每一宏电路产生上述定制时钟偏移信息的步骤还包括决定自一内部宏时钟树的根部至上述输出状态元件的一时钟延迟的最大值以及上述时钟延迟与上述宏电路的所有输出状态元件的一平均输出设置宽松的差值。
根据本发明的一些实施例,上述产生方法还包括通过利用电阻以及电容萃取工具提取每一宏电路的寄生电路元件,而产生上述宏时钟延迟模型。
本发明更提出一种集成电路设计系统,包括一电脑以及一软件应用程序。上述电脑具有一处理器及一存储器。上述软件应用由上述电脑的处理器所运行,且暂存于上述存储器。上述软件应用包括多个软件功能模块,上述软件功能模块包括一布局布线模块、一偏移决定模块、一时钟传送调整模块以及一布线模块。上述布局布线模块用以接收以一硬件描述语言所指定的一特定应用集成电路设计设计,且将上述特定应用集成电路设计设计的每一宏电路放置于一半导体基板上的指定位置;上述偏移决定模块具有耦接至一宏时钟延迟模型的一时钟偏移计算引擎,其中上述偏移决定模块用以基于上述宏时钟延迟模型对每一宏电路产生一定制时钟偏移信息,且用以基于上述定制时钟偏移信息而对位于上述半导体基板的每一宏电路产生一时钟传送电路。当上述时钟传送电路不符合上述特定应用集成电路设计的时序要求时,上述时钟传送调整模块用以调整上述时钟传送电路。上述布线模块用以输出上述特定应用集成电路设计的一物理布局而以一半导体制造程进行制造上述特定应用集成电路设计。
根据本发明的一些实施例,上述宏时钟延迟模型是为自由格式的一文字档案,上述文字档案包括多个一维时钟延迟查找表,其中上述一维时钟延迟查找表指定自一内部宏时钟数的根部至每一输入/输出状态单元的一时钟延迟。
根据本发明的一些实施例,上述偏移决定模块更用以基于每一宏电路的一时钟端的一时钟信号的多个转移延迟的多个转折点所决定的一索引,对上述一维时钟延迟查找表进行查找。
根据本发明的一些实施例,上述宏时钟延迟模型还包括一共同查找表以及多个一维时钟延迟查找表,其中上述共同查找表指定每一宏电路的上述时钟端的上述时钟信号的多个转移延迟。
根据本发明的一些实施例,上述时钟偏移计算引擎更用以通过自一内部宏时钟树的根部至一输出状态元件的一时钟延迟的最大值以及上述时钟延迟与上述宏电路的所有输出状态元件的一平均输出设置宽松的差值,而决定上述宏电路的上述输出状态元件的上述时钟偏移信息。
根据本发明的一些实施例,上述偏移决定模块还包括一输入节点转变数据库,其中上述输入节点转变数据库用以指定上述特定应用集成电路设计的每一宏电路的多个转移延迟。
根据本发明的一些实施例,上述布局布线模块更用以基于上述特定应用集成电路设计的每一宏电路的物理布局布线,而提供上述转移延迟。
根据本发明的一些实施例,上述一维时钟延迟查找表是利用电阻以及电容萃取工具提取每一宏电路的多个寄生电路元件而形成。
根据本发明的一些实施例,上述布局布线模块更用以决定上述特定应用集成电路设计的每一宏电路的上述平均输出设置宽松。
前述内文概述了许多实施例的特征,使本技术领域中具有通常知识者可以从各个方面更佳地了解本公开。本技术领域中具有通常知识者应可理解,且可轻易地以本公开为基础来设计或修饰其他制程及结构,并以此达到相同的目的及/或达到与在此介绍的实施例等相同的优点。本技术领域中具有通常知识者也应了解这些相等的结构并未背离本公开的发明精神与范围。在不背离本公开的发明精神与范围的前提下,可对本公开进行各种改变、置换或修改。

Claims (1)

1.一种产生方法,适用于对于一特定应用集成电路设计的每一宏电路产生一时钟传送电路,包括:
接收以一硬件描述语言描述的上述特定应用集成电路设计;
将每一宏电路放置于一半导体基板上的指定位置;
基于一宏时钟延迟模型,对每一宏电路产生一定制时钟偏移信息;
基于上述定制时钟偏移信息,对放置于上述半导体基板的每一宏电路产生上述时钟传送电路;
当上述时钟传送电路不符合上述特定应用集成电路设计的时钟要求时,调整上述时钟传送电路;以及
输出上述特定应用集成电路设计的一物理布局而以一半导体制造程进行制造。
CN202210053291.5A 2021-02-24 2022-01-18 产生方法 Pending CN114764555A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/184,184 2021-02-24
US17/184,184 US11494545B2 (en) 2021-02-24 2021-02-24 Apparatus and method for advanced macro clock skewing

Publications (1)

Publication Number Publication Date
CN114764555A true CN114764555A (zh) 2022-07-19

Family

ID=82364594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210053291.5A Pending CN114764555A (zh) 2021-02-24 2022-01-18 产生方法

Country Status (3)

Country Link
US (1) US11494545B2 (zh)
CN (1) CN114764555A (zh)
TW (1) TW202234283A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI808001B (zh) * 2022-09-21 2023-07-01 中國鋼鐵股份有限公司 條鋼工場製程數據整合系統與方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12086521B2 (en) * 2021-10-07 2024-09-10 Xilinx, Inc. Circuit design simulation and clock event reduction

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8629548B1 (en) * 2012-10-11 2014-01-14 Easic Corporation Clock network fishbone architecture for a structured ASIC manufactured on a 28 NM CMOS process lithographic node
US10776547B1 (en) * 2019-10-14 2020-09-15 Cadence Design Systems, Inc. Infinite-depth path-based analysis of operational timing for circuit design

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI808001B (zh) * 2022-09-21 2023-07-01 中國鋼鐵股份有限公司 條鋼工場製程數據整合系統與方法

Also Published As

Publication number Publication date
US11494545B2 (en) 2022-11-08
TW202234283A (zh) 2022-09-01
US20220269847A1 (en) 2022-08-25
US20230036554A1 (en) 2023-02-02

Similar Documents

Publication Publication Date Title
US11480993B2 (en) Methods for optimizing circuit performance via configurable clock skews
US6845494B2 (en) Method for generating design constraints for modules in a hierarchical integrated circuit design system
US7809971B2 (en) Clock distribution circuit, semiconductor integrated circuit and method of designing clock distribution circuit
US20040230933A1 (en) Tool flow process for physical design of integrated circuits
US20060053395A1 (en) Clock tree synthesis for low power consumption and low clock skew
US20050102643A1 (en) Methodology to optimize hierarchical clock skew by clock delay compensation
US20050268268A1 (en) Methods and systems for structured ASIC electronic design automation
CN114764555A (zh) 产生方法
US20100070941A1 (en) Achieving Clock Timing Closure in Designing an Integrated Circuit
US11783104B2 (en) Apparatus and method for mapping foundational components during design porting from one process technology to another process technology
KR20090077692A (ko) 반도체 장치의 제조 방법, 반도체 장치의 제조 프로그램 및반도체 장치의 제조 시스템
US11003821B1 (en) Deterministic loop breaking in multi-mode multi-corner static timing analysis of integrated circuits
US9064081B1 (en) Generating database for cells routable in pin layer
US20100253409A1 (en) Clock generation system and clock dividing module
US6581200B2 (en) Abstracting netlist to manage routing information
US9449127B1 (en) System for verifying timing constraints of IC design
US10963610B1 (en) Analyzing clock jitter using delay calculation engine
US8595668B1 (en) Circuits and methods for efficient clock and data delay configuration for faster timing closure
US9721051B2 (en) Reducing clock skew in synthesized modules
US12131110B2 (en) Apparatus and method for advanced macro clock skewing
US8336013B2 (en) Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations
Bernard Physical Level Design using Synopsys®
US20230306180A1 (en) Static timing analysis of multi-die three-dimensional integrated circuits
JP3230234B2 (ja) 半導体集積回路の遅延調整方法、遅延調整用回路ブロックおよび記録媒体。
JP2001175699A (ja) 半導体集積回路のクロックツリー設計方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20220719

WD01 Invention patent application deemed withdrawn after publication