加速门层级模拟的方法与设备与流程

文档序号:14836040发布日期:2018-06-30 12:26阅读:135来源:国知局
加速门层级模拟的方法与设备与流程

本发明实施例涉及加速门层级模拟的方法与设备。



背景技术:

集成电路(IC)技术的复杂性归因于半导体处理制造技术的改善而不断增加。涉及单一电路上的许多元件(例如处理器、计时器、中断控制器、总线、存储器及/或嵌入式软件)的完整系统单芯片(SoC)解决方案现可用于多种应用。复杂SoC电路或处理器装置的软件开发、早期硬件架构探索及功能验证为半导体工业所面临的挑战。在其中数百万个或更多个晶体管可用来实施大的且复杂的SoC电路的32nm或更小的处理制造技术(例如,先进技术节点)处,对这些复杂装置进行功能验证的挑战呈指数增长。工业数据表明,全部项目资源的80%以上被分配给这些装置的软件开发及功能验证。

IC设计过程通常以描述待产生的电路的行为或功能性的软件程序开始。此软件程序通常以定义待用有限实施方案细节执行的行为的程序编程语言(例如C、C++、Verilog及VHDL)写入。IC设计过程涉及各自需要一或多个中间步骤的复杂子过程。在这些中间步骤的各步骤中,以不同层级的特异性表示IC设计。

IC设计的较高层级描述的一个设计为寄存器转移层级(RTL)设计。在RTL设计中,变量及数据运算子表示IC组件,例如IC的区段的寄存器及功能框。作为IC设计的更一般高层级描述,RTL设计可容易跨不同IC设计过程技术映射。

IC设计的下一较低层级描述为门层级设计,在门层级设计处,将IC定义为一组互连逻辑门(例如AND门、OR门)及存储器组件(例如触发器)。在以下论述中,在此层级的特异性的IC设计将称为“接线对照表”。接线对照表是在门层级设计中对IC设计进行的比RTL设计中更特定的定义。再者,门层级设计通常为技术及过程特定的。因此,所属领域的一般技术人员可了解,以门层级验证/模拟IC设计花费远比RTL中更多的资源及时间来完成。然而,近来,工业中存在在进入芯片制造的最后阶段之前执行至少一个门层级模拟的增长的趋势,此是因为门层级模拟通常提供更为准确的结果,此有利地增加验证IC设计的功率、性能、定时、面积估计等的可信度。



技术实现要素:

本发明实施例涉及一种用于对电路设计执行模拟的方法,其包括:提供所述电路设计的寄存器转移层级(RTL)描述;通过将所述RTL描述转译成门层级接线对照表而提供多个RTL到门层级映射细节;提供一或多个输入/输出(I/O)变量作为刺激以模拟所述电路设计的所述RTL描述;在指定时间周期的开始时间从所述经模拟RTL描述检索多个内部操作值,其中所述指定时间周期小于完成全尺寸模拟所需的时间周期;将所述经检索内部操作值映射到所述门层级接线对照表的对应门层级节点;在所述指定时间周期的所述开始时间从所述I/O变量检索多个I/O值;及基于所述经映射内部操作值及所述经检索I/O值而在所述指定时间周期内以门层级模拟所述电路设计。

本发明实施例涉及一种系统,其包括:存储器,其存储计算机可执行指令;及一或多个硬件处理器,其耦合到所述存储器且经配置以:提供电路设计的寄存器转移层级(RTL)描述;通过将所述RTL描述转译成门层级接线对照表而提供多个RTL至门层级映射细节;提供一或多个输入/输出(I/O)变量作为刺激以模拟所述电路设计的所述RTL描述;在指定时间周期的开始时间从所述经模拟RTL描述检索多个内部操作值,其中所述指定时间周期小于完成全尺寸模拟所需的时间周期;将所述经检索内部操作值映射到所述门层级接线对照表的对应门层级节点;在所述指定时间周期的所述开始时间从所述I/O变量检索多个I/O值;及基于所述经映射内部操作值及所述经检索I/O值而在所述指定时间周期内以门层级模拟所述电路设计。

本发明实施例涉及一种用于对电路设计执行模拟的方法,其包括:提供所述电路设计的寄存器转移层级(RTL)描述;通过将所述RTL描述转译成门层级接线对照表而提供多个RTL到门层级映射细节;提供一或多个输入/输出(I/O)变量作为刺激以模拟所述电路设计的所述RTL描述;在指定时间周期的开始时间从所述经模拟RTL描述检索多个内部操作值,其中所述指定时间周期小于完成全尺寸模拟所需的时间周期;基于所述RTL到门层级映射细节而将所述经检索内部操作值映射到所述门层级接线对照表的对应门层级节点;在所述指定时间周期的所述开始时间从所述I/O变量检索多个I/O值;基于所述经映射内部操作值及所述经检索I/O值而在所述指定时间周期内以门层级模拟所述电路设计,以基于所述电路设计的所述门层级模拟而产生值改变转储文件,其中所述值改变转储文件包含所述门层级接线对照表的各门层级节点的触变信息;及基于所述值改变转储文件而估计所述电路设计的功率消耗。

附图说明

在结合附图阅读时,从以下详细描述最佳理解本揭露的方面。应注意,各个构件不一定按比例绘制。事实上,为清楚论述,可任意地增大或减小各个构件的尺寸。

图1A及1B绘示根据一些实施例的用来对IC设计执行门层级模拟的方法的流程图。

图2绘示根据一些实施例的由图1的方法提供的IC设计的例示性寄存器转移层级(RTL)描述。

图3A绘示根据一些实施例的由图1的方法提供的IC设计的例示性门层级接线对照表。

图3B绘示根据一些实施例的图3A的门层级接线对照表的多个例示性逻辑电路。

图4绘示根据一些实施例的由图1的方法提供的例示性RTL到门层级(RtG)细节。

图5绘示根据一些实施例的由图1的方法提供的例示性测试台环境(TBE)。

图6A绘示根据一些实施例的于图5的TBE中使用的多个输入/输出(I/O)变量的例示性波形。

图6B绘示根据一些实施例的于图5的TBE中使用的多个例示性内部操作值。

图7绘示根据一些实施例的由图1的方法提供的具有在特定时间检索且映射的内部操作值的例示性门层级接线对照表。

图8绘示根据一些实施例的由图1的方法提供的具有在特定时间检索的I/O变量的例示性TBE。

图9绘示根据一些实施例的用来执行图1的方法的计算机系统的框图。

具体实施方式

以下揭露描述用于实施标的物的不同特征的各种例示性实施例。下文描述组件及配置的特定实例以简化本揭露。当然,这些实例仅为实例且并不意欲为限制性的。例如,将了解,当将元件称为“连接到”或“耦合到”另一元件时,其可直接连接到或耦合到所述另一元件,或可存在一或多个中介元件。

如上文提及,以门层级模拟IC设计通常比RTL中更准确但更为耗时/耗资源的,此是因为在门层级中,习知上需要全尺寸模拟。例如,对现代SoC电路执行全尺寸门层级模拟的时间可花费数天或高达数周来完成(例如,数百万个到数十亿个周期)。在SoC电路的全尺寸操作时期期间,SoC电路通常经历多个阶段(例如,初始化阶段、配置阶段、存储器存取阶段、闲置阶段、中央处理单元(CPU)作业阶段等),其中各阶段消耗各自时间及功率以完成。一般而言,在估计SoC电路的总体性能(例如,功率消耗)时,总体性能是由一或多个阶段(例如(举例而言)CPU作业阶段、存储器存取阶段等)主导。

因此,本揭露提供用来对IC设计执行门层级模拟以准确地估计所述IC设计的一或多个性能特性,同时通过分别利用SoC电路的RTL设计及门层级设计的有利特性而避免需大量时间来完成模拟的方法与系统的各项实施例。不同于如上文论述的需要全尺寸模拟的习知门层级模拟,所揭露的系统及方法容许在任何所要时间周期内对IC设计执行门层级模拟,此极大地减少用于门层级模拟的资源及时间量,同时提供仅可在门层级模拟中提供的准确度。

图1A及1B共同绘示根据一些实施例的用来通过对IC设计执行与习知门层级模拟相比更快速的门层级模拟而估计所述IC设计的功率消耗、最小所需面积及定时(在下文中称为“IC设计的功率、面积及定时性能”)的方法100的例示性流程图。应注意,方法100仅为实例,且其并不意欲限制本揭露。因此,应了解,可在图1A及1B的方法100之前、期间及之后提供额外操作,且本文中可仅简要描述一些其它操作。在一些实施例中,IC设计可包含多种电路设计的任一者,例如(举例而言)系统单芯片(SoC)电路设计、专用集成电路(ASIC)设计、来自半导体智能产权核心/库(IP核心/库)的电路设计等。

根据本揭露的一些实施例,方法100以操作102开始,其中提供电路设计的RTL描述。方法继续到操作104,其中通过合成RTL描述而提供电路的对应门层级接线对照表。方法100继续到操作106,其中透过合成RTL描述而同时提供多个RTL到门层级(RtG)映射细节,如下文进一步详细论述。方法100继续到操作108,其中基于RTL描述而对电路设计执行一或多个测试台模拟。方法100继续到操作110,其中提供基于RTL描述的模拟结果。在一些实施例中,模拟结果是包含电路设计的全部操作阶段的全尺寸模拟结果。方法100继续到操作112,其中指定所要时间周期(例如,包含电路设计的一或多个主导操作阶段)。方法100继续到操作114,其中在指定时间周期的开始时间检索包含RTL描述的多个内部操作值的快照。方法100继续到操作116,其中通过使用RtG映射细节(由操作106提供)将RTL设计的经检索内部操作值映射到门层级接线对照表(由操作104提供)而作为门层级操作值。方法100继续到操作118,其中在指定时间周期的开始时间检索包含测试台模拟的多个输入/输出(I/O)变量的快照。方法100继续到操作120,其中通过使用经检索I/O变量及经映射门层级操作值而在指定时间周期内基于门层级接线对照表对电路设计执行门层级模拟。方法100继续到操作122,其中基于门层级模拟(操作120)的结果而估计电路设计的功率、面积及定时性能。

方法100的操作可与例示性电路设计在各个模拟阶段处的所绘示实施例相关联,如分别在图2、3A、3B、4、5、6A、6B、7、8及9中展示。在一些实施例中,电路设计可包含存储器电路。存储器电路可包含于较大电路中,例如,微处理器、存储器胞元及/或其它集成电路(IC)。再者,应注意,本文中描述的至少一些图含有功能的符号或逻辑表示以有利于更佳理解本揭露的各种概念。

对应于操作102,图2绘示根据一些实施例的存储器电路的RTL描述200。如上文提及,IC的RTL描述包含通过使用变量及数据运算子来表示IC的组件(例如,IC的寄存器及/或功能框)的IC的抽象行为描述。硬件描述语言(HDL)(例如,Verilog及/或VHDL)通常用来产生IC的此高层级表示。如图2中展示,RTL描述200包含用来实施存储器电路的五个描述框202、204、206、208及210。

在RTL描述200中,框202可被描述为“4×4数据阵列”;框204可被描述为“数据缓冲区”;框206可被描述为“具有功能遮罩的输出数据路径”;框208可被描述为“写入项指标”;且框210可被描述为“读取项指标”。应注意,RTL描述200仅为经提供用于绘示目的的实例。因此,为简洁起见,简要描述框202到210的各者的功能性(即,行为),且仅在图2中展示且在下文重现框208及210(即,写入项指标及读取项指标)的RTL描述。

在一些实施例中,4×4数据阵列(框202)包含配置成4×4阵列(即,4列×4行)的十六个数据胞元(202-1、202-2、202-3、202-4、202-5、202-6、202-7、202-8、202-9、202-10、202-11、202-12、202-13、202-14、202-15及202-16),且所述数据胞元的各者经配置以逻辑地存储数据位。数据缓冲区(框204)经配置以循序接收待写入到4×4数据阵列202中的多批次数据位。例如,各批次数据位可包含四个数据位,其中各数据位经配置以写入到4×4数据阵列202的特定列的列上的各自数据胞元。具有功能遮罩的输出数据路径(框206)经配置以从4×4数据阵列202循序接收多批次读取数据位,且进一步对多批次读取数据位的各者提供筛选功能。作为非限制性实例,对于具有功能遮罩的输出数据路径206从4×4数据阵列202接收的每一批次读取数据位(例如,四个读取数据位),具有功能遮罩的输出数据路径206可将第二及第四读取数据位滤除为逻辑0。

写入项指标(框208)经配置以基于时钟信号将在数据缓冲区204处接收的所述批次数据位循序写入到4×4数据阵列202的一个选定列。下文重现写入项指标208的RTL描述:

在写入项指标208的RTL描述中,变量“wr_ptr”可表示待写入的选定列,且此一变量wr_ptr是在以下论述中将“检索”且“映射”的各种上述内部操作值的一者;且变量“WriteEnabler”可表示还将“检索”以供稍后使用的各种上述输入/输出(I/O)变量的一者。

更明确来说,在一些实施例中,上文提供的写入项指标208的RTL描述是定义如何产生地址指标(例如,wr_ptr)及所述地址指标如何基于以计数器为基础的逻辑一次递增1的过程的高层级描述。应注意,写入项指标208的上述RTL描述仅为经提供用于绘示的实例。因此,写入项指标208的上文提供的RTL描述简要描述如下:a)WritePointer Function(wr_ptr)”经配置以引起写入项指标208执行类计数器过程以使各计数递增,将此反映给待写入的4×4数据阵列202的选定列;b)Initial wr_ptr=0”经配置以模仿计数器事件的初始状态,其通常被设定为0;c)When(WriteEnable&NotReset){}”是仅在满足以下条件时执行“{}”内的指令的逻辑操作:i)“WriteEnable”为逻辑1且(ii)写入项指标208未处于复位状态;及d)if(wr_ptr==4){wr_ptr=0;}”经配置以在“wr_ptr”已累积到所要极限(例如,在此实例中为4)时执行if指令,且随后将“wr_ptr”复位为0以再次从0开始计数。

读取项指标(框210)经配置以基于驱动写入项指标208的相同时钟信号循序读取存储于4×4数据阵列202的一个选定列中的数据位,以将经读取数据位提供到具有功能遮罩的输出数据路径206。下文重现读取项指标210的RTL描述:

在读取项指标210的RTL描述中,变量“rd_ptr”可表示待读取的选定列,且此变量rd_ptr是在以下论述中将“检索”且“映射”的各种上述内部操作值的一个内部操作值;变量“ReadEnable”可表示还将“检索”以供稍后使用的各种上述输入/输出(I/O)变量的一个变量。读取项指标210的RTL描述大体上类似于如上文论述的写入读取指标208的RTL描述,因此,为简洁起见,省略对读取项指标210的论述。

对应于操作104,图3A绘示根据一些实施例的基于存储器电路的RTL描述200的合成的例示性门层级接线对照表300。一般而言,将RTL描述转译成门层级接线对照表的过程称为“合成”。如上文提及,用来定义IC的IC的门层级接线对照表包含一组互连逻辑门(例如AND门、OR门)及存储器组件(例如触发器)。一或多个工具可用来执行合成,所述工具例如(举例而言)Design Compiler(加利福尼亚州山景城的新思科技)、Encounter RTL Compiler(加利福尼亚州圣荷西的益华计算机)。

在一些实施例中,基于RTL描述200的“行为”描述,RTL描述200可经合成(例如,经转译)以提供如图3A中展示的门层级接线对照表300。更特定来说,RTL描述200的各描述框202、204、206、208及210可合成为各自存储器阵列302或逻辑电路304、306、308及310,其各自包含晶体管/逻辑门/触发器的组合,如图3B中展示。更明确来说,4×4数据阵列202可合成为存储器阵列302;数据缓冲区204可合成为逻辑电路304;具有功能遮罩的输出数据路径206可合成为逻辑电路306;写入项指标208可合成为逻辑电路308;且读取项指标210可合成为逻辑电路310。

在一些实施例中,存储器阵列302包含存储器位胞元阵列:302-1、302-2、302-3、302-4、302-5、302-6、302-7、302-8、302-9、302-10、302-11、302-12、302-13、302-14、302-15及302-16,其中存储器位胞元302-1到302-16各自对应于4×4数据阵列202的各自数据胞元。作为代表性实例,图3B中展示存储器位胞元302-1的实施例。图3B中的存储器位胞元302-1的所绘示实施例包含6T(六晶体管)存储器位胞元,其中NMOS晶体管M1及M2用作存储器位胞元302-1的存取晶体管,PMOS晶体管M3及NMOS晶体管M4用作第一反向器,PMOS晶体管M5及NMOS晶体管M6用作第二反向器,且第一及第二反向器彼此交叉耦合。仍参考图3B,逻辑电路304/306包含四个大体上类似触发器314(例如,D触发器、SR触发器、T触发器、JK触发器等);且逻辑电路308/310包含逻辑门318(例如,AND门、OR门、NAND门、NOR门等)及触发器320(例如,D触发器、SR触发器、T触发器、JK触发器等)的一或多个组合。又,应了解,图3A及3B的电路仅为经提供用于绘示本揭露的各种概念及特征的目的的代表性实例。

更特定来说,在RTL描述200(图2)中,4×4数据阵列202、数据缓冲区204、具有功能遮罩的输出数据路径206、写入项指标208及读取项指标210经定义以执行关于彼此的各自功能性,如上文提及。因而,门层级接线对照表300可使存储器阵列302及逻辑电路304到310相对于彼此互连,以因此执行各自功能性。

例如,逻辑电路304(RTL描述200中的数据缓冲区204)的各触发器耦合到部署于存储器阵列302的四个各自列中的四个存储器位胞元,且逻辑电路308(RTL描述200中的写入项指标208)耦合到存储器阵列302,以容许根据逻辑电路308所选择的列而将在逻辑电路304的各触发器的输入端处接收的数据位提供到四个存储器位胞元的一个存储器位胞元。再者,逻辑电路306(RTL描述200中的具有功能遮罩的输出数据路径206)的各触发器耦合到部署于存储器阵列302的四个各自列中的四个存储器位胞元,且逻辑电路310(RTL描述200中的读取项指标210)耦合到存储器阵列302,以容许根据逻辑电路310所选择的列而在逻辑电路306的各自触发器的输入端处接收从四个存储器位胞元的一个存储器位胞元读取的数据位。此外,如上文提及,具有功能遮罩的输出数据路径206(图2)经配置以将第二及第四读取数据位滤除为逻辑0。因此,在一些实施例中,逻辑电路306的第二及第四触发器的输入(即,D2及D0)可与“功能0”相关,如图3A中展示。因而,尽管逻辑电路306的第二及第四触发器接收从存储器阵列302的第二及第四行上的存储器位胞元(例如,存储器位胞元302-5到302-8及302-13到302-16)读取的数据位(其可为逻辑1或0),然所述逻辑电路的第二及第四触发器可仍将各自输出(即,Q2及Q0)提供为逻辑0。

对应于操作106,在一些实施例中,在合成门层级接线对照表300之后,可容易得到桥接RLT描述200及门层级接线对照表300的多个RTL到门层级(RtG)映射细节。例如,图4象征性地绘示根据一些实施例,RtG映射细节的各者如何将RTL描述200的变量转译成门层级接线对照表300的各自(门层级)节点。

更明确来说,根据一些实施例,如下论述例示性RtG映射细节。分别象征性地展示为“205”及“207”的数据缓冲区204的多个输入及输出变量分别对应于逻辑电路304的触发器(例如,314)的输入节点“305”及输出节点“307”。存储于4×4数据阵列202的各数据胞元中的数据位(未展示)对应于存储于存储器阵列302的对应存储器位胞元中的数据位(未展示)。作为代表性实例,存储于数据胞元202-1中的数据位对应于存储于存储器位胞元302-1中的数据位。更明确来说,在其中存储器位胞元302-1实施为6T位胞元(图3B)的实例中,存储于存储器位胞元302-1中的数据位可对应于节点“X”,如图3B中展示。

仍参考图4,象征性地展示为“209”的4×4数据阵列202的多个输出变量对应于存储器胞元阵列302的输出节点“309”。由于4×4数据阵列202的输出也耦合到具有功能遮罩的输出数据路径206,故存储器胞元阵列302的这些输出节点309也相当于逻辑电路306的触发器(例如,314)的输入节点。象征性地展示为“211”的具有功能遮罩的输出数据路径206的多个输出变量对应于逻辑电路306的触发器(例如,314)的输出节点311。写入项指标208的变量“wr_ptr”对应于逻辑电路308的输出节点313,而读取项指标210的变量“rd_ptr”对应于逻辑电路310的输出节点315,如图4中展示。

对应于操作108,图5象征性地绘示根据一些实施例,如何模拟RTL描述200以提供例示性测试台500。如本文中使用的术语“测试台”指代经配置以验证电路设计或模型(例如(举例而言)存储器电路的RTL描述200)的正确性或可靠性的虚拟环境。因此,为清楚起见,在下文中将测试台500称为“测试台环境(TBE)500”。

如图5中展示,在一些实施例中,TBE 500包含三个功能框:第一框502,其经配置以提供时钟信号502-1、芯片启用信号502-2及复位信号502-3以驱动RTL描述200的模拟操作;第二框504,其经配置以将写入启用信号504-1提供到写入项指标208以启用一或多个写入操作,将数据阵列信号504-2提供到数据缓冲区204,且将读取启用信号504-3提供到读取项指标210以启用一或多个读取操作;及第三框506,其经配置以通过比较由具有功能遮罩的输出数据路径206提供的输出信号206-1与预定信号506-1而监测所述输出信号206-1,以确定或验证RTL描述200的模拟操作是否“如预期”。

类似于RTL描述200,在一些实施例中,可通过通常以程序编程语言(例如C、C++、Verilog及VHDL)写入以定义各自功能框502、504及506的软件程序来实施TBE 500。因此,分别由功能框502、504及506提供或接收的信号(例如,502-1、502-2、502-3、504-1、504-2、504-3、506-1等)可各自被描述为输入/输出(I/O)变量(在下文中,“I/O变量”)。

在一些实施例中,TBE 500中的一些这些I/O变量可用作用于驱动RTL描述200的“刺激”。换来说,通过将RTL描述200部署于TBE 500中且将I/O变量(例如,502-1、502-2、502-3、504-1、504-2、504-3、506-1等)应用于RTL描述200,可得模拟RTL描述200的操作的测试台结果,此将在下文关于图6A及图6B论述。

如上文提及,TBE 500的功能框506经配置以监测由具有功能遮罩的输出数据路径206提供的输出信号206-1,以确定或验证RTL描述200的模拟操作是否如预期。在一些实施例中,在执行测试台模拟之前,功能框506可经编程(例如,以Verilog写入)以与功能框504对应。更明确来说,功能框504将数据阵列信号504-2提供到RTL描述200。在RTL描述200处理数据阵列信号504-2之后,功能框506经配置以根据数据阵列信号504-2及RTL描述200的操作而接收如预期的输出信号206-1作为预定信号506-1。如果输出信号206-1并非如预期(即,不等于信号506-1),那么在一些实施例中,TBE 500可升起警报旗标。如果输出信号206-1如预期(即,等于信号506-1),那么TBE 500可将RTL描述200辨识为“合格”设计。在一些实施例中,数据阵列信号504-2包含四个子信号504-20、504-21、504-22、504-23(以虚线箭头展示),其各自表示待写入到沿4×4数据阵列202的对应行的资源胞元的数据位,且输出信号206-1包含四个子信号206-10、206-11、206-12及206-13(以虚线箭头展示),其各自表示待从沿4×4数据阵列202的对应行的资源胞元读出且进一步通过具有功能遮罩的输出数据路径206筛选的数据位,此两者将在下文进一步详细论述。

对应于操作110,图6A绘示根据一些实施例的I/O变量502-1、502-2、502-3、504-1、504-2、504-3、506-1的例示性波形,且图6B绘示根据一些实施例的在对RTL描述200执行的全尺寸测试台模拟期间的一些特定时间的RTL描述200的一些例示性内部操作值。如上文提及,术语“全尺寸模拟”指代包含对应电路设计的全部操作阶段的此一模拟。尽管图6A的所绘示实施例包含10个循环(即,从时间“t0”到时间“t9”)以完成对RTL描述200的全尺寸测试台模拟,然应注意,此仅为用于绘示目的的实例。换来说,对RTL描述200的全尺寸测试台模拟可包含任何所要数目个周期。此外,在一些替代实施例中,可存在于操作110(图1)的对RTL描述200的此一测试台模拟中模拟的全部操作阶段的小部分,即,非全尺寸测试台模拟。

再次参考图6A,I/O变量502-1、502-2、502-3、504-1、504-2、504-3、506-1的各波形随时间在逻辑1(在下文中,“高”)与逻辑0(在下文中,“低”)之间振荡。如上文提及,数据阵列信号504-2包含四个子信号504-20、504-21、504-22、504-23,其各自表示待写入到沿4×4数据阵列202(图5)的对应行的资源胞元的数据位。还应注意,输出信号506-1包含四个子信号506-10、506-11、506-12、506-13,其各自表示待与从沿4×4数据阵列202的对应行的资源胞元读取的数据位(例如,206-10、206-11、206-12或206-13)进行比较且进一步通过具有功能遮罩的输出数据路径206(图5)滤除的数据位。

例如,子信号504-20表示应分别循序写入到数据胞元202-13、202-14、202-15及202-16的数据位;子信号504-21表示应分别循序写入到数据胞元202-9、202-10、202-11及202-11的数据位;子信号504-22表示应分别循序写入到数据胞元202-5、202-6、202-7及202-8的数据位;且子信号504-23表示应分别循序写入到数据胞元202-1、202-2、202-3及202-4的数据位。类似地,子信号506-10表示应分别与从数据胞元202-16、202-15、202-14及202-13循序读取的数据位进行比较的数据位;子信号506-11表示应分别与从数据胞元202-12、202-11、202-10及202-9循序读取的数据位进行比较的数据位;子信号506-12表示应分别与从数据胞元202-8、202-7、202-6及202-5循序读取的数据位进行比较的数据位;且子信号506-13表示应分别与从数据胞元202-4、202-3、202-2及202-1循序读取的数据位进行比较的数据位。

在一些实施例中,由TBE 500执行的全尺寸测试台模拟在时间t0开始。在时间t0之前,TBE 500确证芯片启用信号502-2及复位信号502-3为高,以启用RTL描述200的存储器电路的操作。还在时间t0之前,TBE 500将第一批次数据位(504-20到504-23)提供到数据缓冲区204。如图6A中展示,在时间t0之前,数据位504-20到504-23分别从逻辑0转变为逻辑0、1、1、1。在时间t0之后,TBE 500确证写入启用信号504-1为高,以启用写入项指标208使得可将第一批次数据位(504-20到504-23)(逻辑0、1、1、1)分别写入到数据胞元202-16、202-12、202-8及202-4(即,4×4数据阵列202的第一列)。类似地,在写入启用信号504-1处于高的情况下,在时间t1、t2及t3之后,可分别将第二批次、第三批次及第四批次数据位(504-20至504-23)循序写入到4×4数据阵列202的第二列(数据胞元202-15、202-11、202-7及202-3)、第三列(数据胞元202-14、202-10、202-6及202-2)以及第四列(数据胞元202-13、202-9、202-5及202-1)。为清楚起见,图6A中还绘示在时间t3与t4之间存在于4×4数据阵列202处的数据位。

在一些实施例中,在时间t3与t4之间,TBE 500可确定可循序读出存在于4×4数据阵列202处的数据位,使得TBE 500确证读取启用信号504-3为高以启用读取项指标210。因而,可读出写入到4×4数据阵列202的数据位。如上文提及,根据一些实施例,具有功能遮罩的输出数据路径206经配置以将经接收第二及第四位滤除为逻辑0。基于RTL描述200的这些操作,在一些实施例中,在时间t5,TBE 500可预期从具有功能遮罩的输出数据路径206接收的第一批次数据位(即,存储于4×4数据阵列202的第一列处的数据位)为逻辑1010。因此,在时间t5,TBE 500可确定子信号506-13、506-12、506-11及506-10为逻辑1010,如图6A中展示。类似地,TBE 500在时间t6、t7及t8可分别确定子信号506-13、506-12、506-11及506-10为逻辑1000、0010及1010。

参考图6B,展示根据一些实施例的在RTL描述200正经历全尺寸测试台模拟时在时间t5、t6及t7的多个例示性内部操作值(602、604、606、608及610)。为清楚起见,图6B中仅展示全尺寸测试台模拟的部分(即,在时间t5、t6及t7)。在一些实施例中,内部操作值602对应于写入项指标208的变量“wr_ptr”,其指向或选择待写入的数据阵列200的列;内部操作值604表示由数据缓冲区204提供的所述批次数据位;内部操作值606对应于读取项指标210的变量“rd_ptr”,其指向或选择待读取的数据阵列202的列;内部操作值608表示从4×4数据阵列202读取且由具有功能遮罩的输出数据路径206接收的所述批次数据位;且内部操作值610表示由具有功能遮罩的输出数据路径206筛选的所述批次数据位。

仍参考图6B且结合图6A,在时间t5,写入启用信号504-1被确证为低,使得内部操作值602可保持为低(逻辑00)。且由于由TBE 500提供的数据阵列信号504-20到504-23处于低(逻辑0000),内部操作值604还可处于低(逻辑0000)。另一方面,读取启用信号504-3被确证为高,使得内部操作值606可随时间变化。例如,在时间t5,内部操作值606可对应于逻辑01,此引起读取存储于4×4数据阵列202的第二列处的数据位。因此,内部操作值608可对应于逻辑1101(存储于4×4数据阵列202的第二列处的数据位)。透过具有功能遮罩的输出数据路径206的筛选功能,内部操作值610可在稍后时间(例如,时间t6)输出为逻辑1000。因此,应注意,在时间t5,内部值610可反映最初从4×4数据阵列202的第一列读出的经筛选数据位(即,逻辑1110),且在由具有功能遮罩的输出数据路径206筛选之后,内部值610为逻辑1010。类似地,在时间t6,内部操作值602、604、606、608及610可分别为逻辑:00、0000、10(以读取4×4数据阵列202的第三列)、0011(存储于4×4数据阵列202的第三列处的数据位)、1000(最初从4×4数据阵列202的第二列读出的经筛选数据位)。且在时间t7,内部操作值602、604、606、608及610可分别为逻辑:00、0000、11(以读取4×4数据阵列202的第四列)、1011(存储于4×4数据阵列202的第四列处的数据位)、0010(最初从4×4数据阵列202的第三列读出的经筛选数据位)。

如上文提及,IC的总体性能可由一或多个操作阶段主导,且通常期望在这些特定操作阶段的各操作阶段内对门层级接线对照表执行的准确模拟结果提供IC的可靠性能估计。在基于上文描述的RTL描述200设计的存储器电路的当前实例中,用户(例如,存储器电路的制造商、厂商、消费者等)可关注存储器电路在一或多个指定时间(例如,t5到t8)期间的性能。习知门层级(测试台)模拟需要对存储器电路的门层级接线对照表(即,图3A/图4的300)执行全尺寸模拟(即,从时间t0到时间t9)。尽管例示性接线对照表300的门层级节点(例如,305、307、309、311、313、315等)的数目有限,然所属领域的一般技术人员了解,现代SoC电路通常包含高达数百万个这些门层级节点,此使对应门层级模拟极其耗时/耗资源。然而,通过指定所要时间周期(例如,图1A的操作112),本揭露的一些实施例使用上文论述的方法100的操作114、116及118(图1A及1B)以仅在指定时间周期(例如,t5到t8)执行门层级测试台模拟,此可极大地减少用来完成此门层级测试台模拟的时间及/或资源量。下文将在上文图2到6B中论述的存储器电路的内容背景中进一步详细论述操作114到118的各操作。

对应于图1的操作114,在操作112识别指定时间周期(例如,从时间t5到t8)(其小于执行全尺寸模拟所需的时间周期)之后,在指定时间周期的开始时间(例如,时间t5)检索包含RTL描述200的多个内部操作值(包含存储于4×4数据阵列202中的数据位)的快照。图6B中象征性地绘示此快照。总的来说,在时间t5,内部操作值602、604、606、608及610可分别为逻辑:00(停用写入操作)、0000、01(以读取4×4数据阵列202的第二列)、1101(存储于4×4数据阵列202的第二列处的数据位)及1010(从4×4数据阵列202的第一列读出且由具有功能遮罩的输出数据路径206筛选的数据位),且在图6B中展示存储于4×4数据阵列202中的数据位。

随后,对应于操作116,使用RtG映射细节(图4)将经检索内部操作值602、604、606、608、610及4×4数据阵列202中的数据位各自映射到接线对照表300的对应门层级节点。更明确来说,如图7的门层级接线对照表300中展示,经检索内部操作值602(例如,逻辑00)被映射到节点313;经检索内部操作值604(例如,逻辑0000)被映射到节点307;经检索内部操作值606(例如,逻辑01)被映射到节点315;经检索内部操作值608(例如,逻辑1101)被映射到节点309;经检索内部操作值610(例如,逻辑1010)被映射到节点311;且存储于4×4数据阵列202中的数据位各自被映射到存储器阵列302的对应存储器位胞元(例如,302-1)。

随后,对应于操作118,在指定时间周期的开始时间(例如,时间t5)检索TBE 500(对RTL描述200执行)的多个I/O变量(502-1到502-3、504-1到504-3及506-1)。因而,TBE500可经“定制”以模拟从时间t5开始的门层级接线对照表300。更明确来说,在时间t5,如图8中展示,分别将I/O变量502-1、502-2、502-3、504-1、504-2(504-20、504-21、504-22、504-23)、504-3及506-1(506-10、506-11、506-12、506-13)检索为逻辑:1、1、1、0、0000、1及0101。

在一些实施例中,通过将具有经检索内部操作值的门层级接线对照表300(图7)部署到定制测试台环境(图8)中,可实现仅在指定时间周期内对门层级接线对照表300进行门层级测试台模拟。更明确来说,接着将所述经检索I/O变量(现变为I/O值)用作刺激以从时间t5开始对具有经检索内部操作值的门层级接线对照表300(图7)执行门层级测试台模拟(图1的操作120)。换来说,此门层级测试台模拟可在指定时间周期的开始时间(例如,在上文实例中,时间t5)由经检索内部操作值及经检索的I/O值初始化,连续地运行而未在指定时间周期的其它时间(例如,时间t6、t7或t8)检索内部操作值及I/O变量,且通过提供结束指令而在指定时间周期结束时(例如,时间t8)停止。

各种门层级逻辑模拟工具可用来执行此门层级测试台模拟,所述工具例如(举例而言)VCS(加利福尼亚州山景城的新思科技)。因此,可在指定时间周期期间产生包含门层级接线对照表300的各门层级节点的触变信息的一或多个文件(例如,值改变转储(VCD)文件)。通过使用经产生VCD文件,可通过使用各种估计工具(操作122)(例如(举例而言)Power Compiler(加利福尼亚州山景城的新思科技))而准确估计原始存储器电路设计(自其产生门层级接线对照表300)的一或多个性能特性(例如,功率消耗)。

图9是根据一些实施例的计算机系统900的框图。在一些实施例中,通过图9的一或多个计算机系统900来实现关于图1到8描述的工具及/或引擎及/或系统及/或操作的一或多个。系统900包括经由总线904或其它互连通信机构通信耦合的至少一个处理器901、存储器902、网络接口(I/F)906、输入/输出(I/O)装置908及存储器910。

在一些实施例中,存储器902包括耦合到总线904以存储待由处理器901执行的数据及/或指令的随机存取存储器(RAM)及/或其它动态存储装置及/或唯读存储器(ROM)及/或其它静态存储装置。存储器902可进一步包含用户空间912、核心914、核心及/或用户空间的部分,及其的组件。在一些实施例中,存储器902还用于在执行待由处理器901执行的指令期间存储暂时变量或其它中间信息。在各项实施例中,存储器902可装纳于单一集成电路内或包括彼此可操作地耦合的多个离散存储器装置。

在一些实施例中,存储装置910(例如磁盘或光盘)耦合到总线904以存储数据及/或指令。I/O装置908包括输入装置、输出装置及/或组合输入/输出装置以实现与系统900的用户互动。输入装置包括例如键盘、小键盘、鼠标、轨迹球、轨迹垫及/或游标方向键以将信息及命令传递到处理器901。输出装置包括例如显示器、打印机、语音合成器等以将信息传递到用户。

在一些实施例中,通过处理器901来实现关于图1到8描述的工具及/或引擎及/或系统的一或多个操作及/或功能性,所述处理器901经编程以执行这些操作及/或功能性。在一些实施例中,处理器901配置为特定配置硬件(例如,一或多个专用集成电路(ASIC))。根据各项实施例,处理器901可在单一集成电路(IC)内实施或实施为多个通信耦合的IC及/或离散电路。应明白,处理器901可根据各种已知技术实施。在一项实施例中,处理器901包含可配置以例如通过执行存储于相关联存储器中的指令而执行本文中描述的一或多个功能或程序的一或多个电路。在其它实施例中,处理器901可实施为经配置以执行本文中描述的一或多个功能或过程的固件(例如,离散逻辑组件)。例如,根据各项实施例,处理器901可包含一或多个控制器、微处理器、微控制器、专用集成电路(ASIC)、数字信号处理器、可编程逻辑装置、现场可编程门阵列或这些装置或结构的任何组合或其它已知装置及结构,以执行本文中描述的功能。

存储器902、接口906、存储器910、I/O装置908及总线904的一或多个可操作以接收指令、数据、设计约束、设计规则、接线对照表、布局、模型及/或其它参数以供处理器901处理。

在一些实施例中,操作及/或功能性实现为存储于非暂时性计算机可读记录媒体中的程序的功能。在至少一项实施例中,操作及/或功能性实现为存储于存储器902中的程序(例如可执行指令集)的功能。在至少一项实施例中,门层级接线对照表(例如接线对照表300(图3A))存储于非暂时性计算机可读记录媒体中以由如本文中描述的一或多个操作存取。非暂时性计算机可读记录媒体的实例包含但不限于外部/可抽换及/或内部/内建存储器或存储器单元,例如,以下各个的一或多个:光盘,例如DVD;磁盘,例如硬盘;半导体存储器,例如ROM、RAM、记忆卡及类似者。

在实施例中,一种用于对电路设计执行模拟的方法包含:提供所述电路设计的寄存器转移层级(RTL)描述;通过将所述RTL描述转译成门层级接线对照表而提供多个RTL到门层级映射细节;提供一或多个输入/输出(I/O)变量作为刺激以模拟所述电路设计的所述RTL描述;在指定时间周期的开始时间从所述经模拟RTL描述检索多个内部操作值,其中所述指定时间周期小于完成全尺寸模拟所需的时间周期;将所述经检索内部操作值映射到所述门层级接线对照表的对应门层级节点;在所述指定时间周期的所述开始时间从所述I/O变量检索多个I/O值;及基于所述经映射内部操作值及所述经检索I/O值而在所述指定时间周期内以门层级模拟所述电路设计。

在另一实施例中,一种系统包含:存储器,其存储计算机可执行指令;及一或多个硬件处理器,其耦合到所述存储器。所述一或多个硬件处理器经配置以:提供电路设计的寄存器转移层级(RTL)描述;通过将所述RTL描述转译成门层级接线对照表而提供多个RTL到门层级映射细节;提供一或多个输入/输出(I/O)变量作为刺激以模拟所述电路设计的所述RTL描述;在指定时间周期的开始时间从所述经模拟RTL描述检索多个内部操作值,其中所述指定时间周期小于完成全尺寸模拟所需的时间周期;将所述经检索内部操作值映射到所述门层级接线对照表的对应门层级节点;在所述指定时间周期的所述开始时间自所述I/O变量检索多个I/O值;及基于所述经映射内部操作值及所述经检索I/O值而在所述指定时间周期内以门层级模拟所述电路设计。

在另一实施例中,一种用于对电路设计执行模拟的方法包含:提供所述电路设计的寄存器转移层级(RTL)描述;通过将所述RTL描述转译成门层级接线对照表而提供多个RTL到门层级映射细节;提供一或多个输入/输出(I/O)变量作为刺激以模拟所述电路设计的所述RTL描述;在指定时间周期的开始时间从所述经模拟RTL描述检索多个内部操作值,其中所述指定时间周期小于完成全尺寸模拟所需的时间周期;基于所述RTL至门层级映射细节而将所述经检索内部操作值映射到所述门层级接线对照表的对应门层级节点;在所述指定时间周期的所述开始时间从所述I/O变量检索多个I/O值;基于所述经映射内部操作值及所述经检索I/O值而在所述指定时间周期内以门层级模拟所述电路设计,以基于所述电路设计的所述门层级模拟而产生值改变转储文件,其中所述值改变转储文件包含所述门层级接线对照表的各门层级节点的触变信息;及基于所述值改变转储文件而估计所述电路设计的功率消耗。

前文概述若干实施例的特征使得所属领域的一般技术人员可更佳理解本揭露的方面。所属领域的技术人员应明白,其可容易将本揭露用作用于设计或修改其它工艺及结构的基础以实行本文中介绍的实施例的相同目的及/或达成相同优点。所属领域的技术人员还应认知,这些等效构造并不脱离本揭露的精神及范围,且其可在不脱离本揭露的精神及范围的情况下在本文中进行各种改变、置换及更改。

元件符号

100 方法

102 操作

104 操作

106 操作

108 操作

110 操作

112 操作

114 操作

116 操作

118 操作

120 操作

122 操作

200 寄存器转移层级(RTL)描述

202 描述框/4×4数据阵列

202-1至202-16 数据胞元

204 描述框/数据缓冲区

205 输入变量

206 描述框/具有功能遮罩的输出数据路径

206-1 输出信号

206-10 子信号/数据位

206-11 子信号/数据位

206-12 子信号/数据位

206-13 子信号/数据位

207 输出变量

208 描述框/写入项指标

209 输出变量

210 描述框/读取项指标

211 输出变量

300 门层级接线对照表

302 存储器阵列/存储器胞元阵列

302-1到302-16 存储器位胞元

304 逻辑电路

305 输入节点

306 逻辑电路

307 输出节点

308 逻辑电路

309 输出节点

310 逻辑电路

311 输出节点

313 输出节点

314 触发器

315 输出节点

318 逻辑门

320 触发器

500 测试台/测试台环境(TBE)

502 第一框/功能框

502-1 时钟信号/输入/输出(I/O)变量

502-2 芯片启用信号/输入/输出(I/O)变量

502-3 复位信号/输入/输出(I/O)变量

504 第二框/功能框

504-1 写入启用信号/输入/输出(I/O)变量

504-2 数据阵列信号/输入/输出(I/O)变量

504-20 子信号

504-21 子信号

504-22 子信号

504-23 子信号

504-3 读取启用信号/输入/输出(I/O)变量

506 第三框/功能框

506-1 预定信号/输出信号/输入/输出(I/O)变量

506-10 子信号

506-11 子信号

506-12 子信号

506-13 子信号

602 内部操作值

604 内部操作值

606 内部操作值

608 内部操作值

610 内部操作值

900 计算机系统

901 处理器

902 存储器

904 总线

906 网络接口(I/F)

908 输入/输出(I/O)装置

910 存储器/存储装置

912 用户空间

914 核心

M1 NMOS晶体管

M2 NMOS晶体管

M3 PMOS晶体管

M4 NMOS晶体管

M5 PMOS晶体管

M6 NMOS晶体管

X 节点

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1