CN1815480B - 从波形图产生硬件设计语言触发的方法与系统 - Google Patents

从波形图产生硬件设计语言触发的方法与系统 Download PDF

Info

Publication number
CN1815480B
CN1815480B CN2005101341714A CN200510134171A CN1815480B CN 1815480 B CN1815480 B CN 1815480B CN 2005101341714 A CN2005101341714 A CN 2005101341714A CN 200510134171 A CN200510134171 A CN 200510134171A CN 1815480 B CN1815480 B CN 1815480B
Authority
CN
China
Prior art keywords
signal
oscillogram
hardware design
design language
pointer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2005101341714A
Other languages
English (en)
Other versions
CN1815480A (zh
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1815480A publication Critical patent/CN1815480A/zh
Application granted granted Critical
Publication of CN1815480B publication Critical patent/CN1815480B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F30/3312Timing analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明揭露了一种从波形图产生硬件设计语言(HDL)触发的系统与方法。该方法包含:辨别第一讯号与第二讯号之间的时序关联;以及根据时序关联产生HDL触发。时序关联包含部分的第一讯号、部分的第二讯号、以及两者之间的间隔。其另一方法包含:辨别波形图中两输入讯号与一输出讯号之间的组合关联;以及根据该关联而产生HDL触发。本发明还包含逻辑操作以执行以下步骤:接收复数个讯号描述,每一讯号描述形容其中一个讯号;接收用以描述至少两个讯号之间一时序或组合的关联的一讯号关联描述;产生包含上述关联的一表述的波形图;以及根据上述关联产生一硬件设计语言的触发。

Description

从波形图产生硬件设计语言触发的方法与系统
技术领域
本发明关于一种设计数字集成电路的软件工具,特别是有关于从波形图中产生硬件设计语言(Hardware Design Language,HDL)触发(assertion)的系统与方法。
背景技术
数字集成电路设计者运用各种软件工具以设计出一集成电路(IC)。设计工程师们以硬件设计语言为一种缓存器转移语言(Register TransferLanguage,RTL)撰写程序代码。之后集成电路设计者执行一模拟器(simulator),利用HDL程序代码作为输入以测试设计的集成电路。在修复于模拟程序中所找到的程序代码问题后,HDL程序代码作为合成器(synthesizer)的输入。合成器则将HDL程序代码转译为以场式可程序门阵列(Field Programmable Gate Array,FPGA)、特殊应用集成电路(Application-Specific Integrated Circuit,ASIC)或特制硅集成电路形式表示的集成电路实体表述。
于模拟程序期间,验证工程师以HDL程序代码与触发为工具,验证HDL程序代码是否精确地实现了预期的设计。触发是一种设计,用来表示一特定设计特征应该或不应该作用(behave)。举例来说,一逻辑方块的程序代码可能假设于任一时间点两输入讯号中只有一个是有作用的。另一个例子,一逻辑方块可能假设一输入永远不会大于一特定最大值。再另一例子,一逻辑方块可能假设一请求讯号在直到一确认(Acknowledge)讯号宣告致能(asserted)之前,均保持在等待致能状态。上述设计者作的各种假设均可以用触发来表述。
触发可以任何语言来撰写。对于一些HDL语言,如VHDL与System Verilog,本身即提供支持以撰写触发,如Vera、Jeda、e与PropertySpecification Language(PSL)等,即用特别开发来表示触发。
利用现存的系统与方法,验证、设计工程师必须由波形图推断时序关联(timing relationship),并且撰写触发以表示这些时序关联。这是一项耗时且亦发生错误的程序,因为这个程序是手动而不是自动的。此外,验证、设计工程师更可能需要学习数种不同的触发语言(如:System Verilog,Vera,e,PSL等等),因为不同的开发工具支持不同的语言。因此,设计一较佳产生触发的方法是必须的。
发明内容
本发明揭露了一种从波形图产生硬件设计语言(HDL)触发的系统与方法。该方法包含:辨别第一讯号与第二讯号之间的时序关联;以及根据时序关联产生HDL触发。时序关联包含部分的第一讯号、部分的第二讯号、以及两者之间的间隔。其另一方法包含:辨别波形图中两输入讯号与一输出讯号之间的组合关联;以及根据关联而产生HDL触发。本发明还包含逻辑操作以执行以下步骤:接收复数个讯号描述,每一讯号描述形容其中一个讯号;接收用以描述至少两个讯号之间一时序或组合的关联的一讯号关联描述;产生包含上述关联之一表述的波形图;以及根据上述关联产生一硬件设计语言的触发。
附图说明
本发明的许多观点可以参考以下的附图而更加清楚的了解。相关附图并未依比例绘制,其作用仅在清楚表现本发明有关原理。
图1显示于波形图中使用时序关联符号来定义时序关联。
图2显示于波形图中使用时序关联符号的另一例子。
图3显示于波形图中使用时序关联符号的再一例子。
图4显示透过图式分析产生的一波形图与触发。
图5是本发明使用波形产生触发的方法的一使用者介面范例的示意图。
图6说明定义讯号、产生这些讯号的波形的过程。
图7说明了定义讯号之间的时序关联,并于产生的波形上表示这些关联的过程。
图8说明定义一额外的时序关联。
图9说明从波形与时序关联产生一触发。
图10说明定义输入讯号、产生这些输入讯号的波形的过程。
图11说明了定义输出讯号、产生这些输出讯号的波形的过程。
图12说明定义讯号之间一逻辑或组合关联的过程。
图13中说明定义一额外的组合关联的过程。
图14说明从波形与组合关联产生一触发。
图15说明说明本方法另一实施例,其允许一时序组合与组合关联被定义。
图16为本方法使用波形产生触发的流程图。
图17为可用来实现本发明使用波形产生触发的方法之一实施例的一般用途计算机系统的方块图。
图中符号说明:
101时脉
102讯号req
103讯号gnt
104、105、106转折点
107、108时序关联指针
109、110、111触发
201时序关联指针
202触发
301、302、303转折点
304时序关联指针
305触发
401时脉
402讯号req
403讯号gnt
404、405、406转折点
407、408触发
501按钮组
502“时脉”按钮
503时脉讯号描述对话框
504波形
601“讯号”按钮
602讯号描述对话框
603、612讯号标记
604“高位”按钮
605“低位”按钮
606、609、611、613、616点
607、608、610、614、615波形区段
701“关联”按钮
702时序关联指针
801时序关联指针
802“忽略不计”按钮
803区块
1001“输入”按钮
1002输入讯号描述对话框
1003讯号标记
1101“输出”按钮
1102输出讯号描述对话框
1103讯号标记
1201逻辑运算按钮
1202“与”关联符号
1203、1205节点
1204讯号控制表列
1301“或”关联符号
1302、1303、1304节点
1401触发
1501时脉
1502讯号req
1503讯号gnt
1504额外讯号
1505输入讯号rd
1506输入讯号wr
1507下拉式控制列
1508“与”关联符号
1509组合输出
1510时序关联
1511触发
1601、1602、1603、1604步骤
1701计算机
1702处理器
1703存储器
1704介面设备
1705本地端介面
1706使用波形产生触发的系统
1707操作系统
具体实施方式
图1中显示于波形图中使用时序关联符号来定义时序关联。波形图可以由本发明的使用波形产生触发的方法来产生,而本方法亦能在由其它工具或程序产生的图式上运作。波形图包含一时脉101、一讯号req 102与一讯号gnt 103。时脉的第一个上升边缘与讯号req由低位转换至高位转折点104同时发生,时脉的第二个上升边缘与讯号gnt由低位转换至高位的转折点105同时发生,以及时脉的第三个上升边缘与讯号req由低位转换至高位的转折点106同时发生。其中讯号req102为第一讯号,讯号gnt 103为第二讯号。
本技术领域相关人士应能发现,附图1隐含了讯号req(102)与讯号gnt(103)之间的数个时序关联。以自然的语言来设计,其中一个关联为“讯号req变高位后经过一时脉周期,讯号gnt变高位”。在时序关联中,即一讯号的动作(追随者,follower)取决于另一讯号的动作(前导者,antecedent)。在此,讯号req是前导者而讯号gnt是追随者。
于附图1中,时序关联指针(timing relationship indicator)107明白地指出此第一时序关联。于一实施例,时序关联指针107由使用者的输入产生。于另一实施例,本方法运作于由一些其它工具或程序产生的时序关联指针107上。
时序关联指针107定义了以下的关联。指针107的一边缘对准前导讯号由低位转换至高位的部分104,而另一边缘则对准追随讯号由低位转换至高位的部分105。指针107横跨两个讯号部分或段(segment)描述了时序关联。指针107亦包含了一指示,以指出于两个讯号转折点之间允许产生的时脉周期数。于一些实施例中,周期数介于一区间范围内,例如1到4。
图1中亦隐含了第一讯号req102与第二讯号gnt103间的第二个时序关联(“第二讯号gnt变高位后经过一时脉周期,第一讯号req变低位”),并明白地被时序关联指针108所指出。在此第二关联中,第二讯号gnt是前导者而第一讯号req是追随者。指针108的一边缘对准前导者由低位转换至高位的部分105,而另一边缘则对准追随者由高位转换至低位的部分106。图1的时序关联指针107仅是图形符号的一个例子,其可用来定义一时序关联。任何允许使用者具体指定一部分的前导者、一部分的追随者与两者之间间隔的使用者输入(图形或文字)均可使用于本发明之中。
以指针表示的时序关联更映像(mapping)至触发:指针107定义的关联映像至触发109;以及指针108定义的关联映像至触发110.每一个触发均表示了一必须为“真”的时序关联.产生的触发之后可以被工程师应用于模拟、正式的验证程序之中,而一个违反的触发通常会被记录并旗标标记(flagged)为一个错误(error).本技术领域相关人士不需要进一步的解释,应均可了解如何使用触发来表示时序关联,同时亦应可明白本方法可支持多种不同触发语言.再者,于一实施例中本方法更同时支持不同的语言,使用者可从中选择目前使用的语言.
一实施例中,当多个时序关联在时间上为循序的,则此多个时序关联更可结合成为一单一的触发。转折点104、105之间的关联与转折点105、106之间的关联系连续的:它们共享一共同的时脉转折点105。这两个连续的时序关联可以组合成一单一的触发111表示。于一些实施例中,使用者则能以每一关联为基准,取消(override)将连续时序关联结合为一单一触发的做法。
指针107定义了前导者一转折点与追随者的一转折点之间的时序关联。因此,触发109亦使用两个转折点来表示一时序关联。本例子中,则系以System Verilog语言来产生触发。因此,触发109中使用了System Verilog的关键词rose,以讯号转折点:rose(req)##rose(gnt)来表示时序关联。当使用其它触发设计语言时,则选用其它适当的转折关键词。
本发明使用波形产生触发的方法的另一实施例,如图2所示,则是允许以讯号状态(state)取代讯号转折,来定义时序关联。波形图仍包含与图1相同的三个讯号:时脉101、讯号req(102)与讯号gnt(103)。然而,一不同形式的时序关联指针201则用来定义三者之间的关系。指针201的边缘与先前不同,其系藉由指出讯号的状态而非讯号的转折点,来定义时序关联。若以自然的语言表示此关联,可表示为“讯号req是高位,一时脉周期后讯号gnt与req是高位”。图2中,本方法是使用讯号的值或状态,而非使用讯号的转折,来产生触发202(使用System Verilog语言)。以System Verilog语言表示,触发202的内容为req##req&&gnt,不含讯号转折的关键词rose。
图3显示于波形时脉图中,一定义时序关联的指针的例子。这里,讯号转折并非于时脉边缘,而是于一时脉周期之间产生:于第一时脉周期期间,讯号req由低位转换至高位301;于第二时脉周期期间,讯号gnt由低位转换至高位302;以及于第三时脉周期期间,讯号req由高位转换至低位303。本例子中时序关联指针304的使用与图1相似:指针304的一边缘对准由低位转换至高位的讯号reg的部分302,另一边缘则对准由低位转换至高位的讯号gnt的某部分303。于图3,触发305产生方法与图1的方法相似。
图4显示,透过波形分析,以本发明使用波形产生触发的方法所产生的波形图与触发。波形图包含一时脉401、一讯号req402与一讯号gnt403。时脉的第一个上升边缘与讯号req由低位转换至高位的一转折点404同时发生,时脉的第二个上升边缘与讯号gnt由低位转换至高位的一转折点405同时发生,以及时脉的第三个上升边缘与讯号req由高位转换至低位的一转折点406同时发生。
图4并未明确地显示讯号req与gnt之间的时序关联。然而,于此实施例中,本方法藉由分析于时脉边缘发生的讯号转折,以从时脉化的波形图中辨别一或多个时序关联。本方法根据转折点404与405来辨别一时序关联:讯号req变高位后经一时脉周期,讯号gnt变高位。本方法根据转折点405与406来辨别另一时序关联:讯号gnt变高位后经一时脉周期,讯号req变低位。由于工程师熟悉由波形图中解析时序关联,本技术领域相关人士不需其它进一步说明应均能了解如何推知以上这些时脉关联。
本方法根据辨别的时序关联以产生触发:对应转折点404与405的关联为映像至触发407;以及对应转折点405与406的关联为映像至触发408.每一个触发均表示了一必须为“真”的时序关联.
图5是本发明使用波形产生触发的方法的一使用者介面范例的示意图。使用者透过一交互式程序,输入对于讯号的描述以及讯号之间的关联,而程序将根据使用者的输入产生波形图。使用者可以检视图式并对讯号与关联作编辑,因而一新的波形图如焉产生。使用者介面包括熟知的控制介面(如按钮、下拉列表、文字输入区域等)以绘制讯号与输入关联。
使用者使用一组按钮501,并利用图5至图8中一连串的使用者互动操作来定义讯号与关联。图5说明定义一时脉讯号的过程。当按
Figure G2005101341714D00091
“时脉”按钮502,将出现一时脉讯号描述对话框503。透过对话框503,使用者输入时脉的名称与其周期。在跳出讯号描述对话框503后,程序根据时脉讯号与其预定的周期产生并画出波形504,并以先前输入的名称来标示此波形。
图6说明定义讯号、产生这些讯号的波形的过程。要定义一讯号,需先按“讯号”按钮601,以出现一讯号描述对话框602。透过对话框602,使用者输入第一个讯号的名称(req)与其初始值(高位)。之后跳出讯号描述对话框602,程序将产生一讯号标记603。要画出讯号req的波形,使用者需动作其中一讯号状态按钮(“高位”604或“低位”605),之后点击于标记603右测的一个点上。本例子中,讯号req于第一时脉周期变高位,并于两个时脉周期后变低位。要画出该波形,使用者先按“低位”按钮605,并点击于点606上。之后程序产生由一开始至点606为止均保持为低位的一初始波形区段607。下个区段608则系藉由按
Figure G2005101341714D00092
“高位”按钮604后并点击于点609产生。而最后的区段610则通过按
Figure G2005101341714D00093
“低位”按钮605后点击于点611产生。
第二个讯号gnt亦由相似的方式产生。例子中的讯号gnt在第二时脉周期时变高位后即维持高位状态。要画出讯号gnt的波形,“讯号”按钮601被点按,并将讯号的名称(gnt)输入讯号描述对话框602之中。当跳出讯号描述对话框602后,程序将产生一讯号标612。之后使用者点按“低位”按钮605并点击于点613之上,而形成由一开始至点613为止均保持为低位的一波形区段614。第二个区段615则于点
Figure G2005101341714D00101
“高位”按钮604之后,再点击于点616产生。
图7说明了定义讯号之间的时序关联,并于产生的波形上表示这些关联的过程。最简单的关联仅牵涉两个讯号:一前导讯号,与在某些方面跟随着前导讯号而动作的一追随讯号。利用与先前讨论的图5、图6相似的例子,讯号req变高位后经过一时脉周期,讯号gnt亦变高位。故而在此特定关联下,讯号req是一前导者而讯号gnt是一追随者。
为了定义此关联,“关联”按钮701将被使用。程序生成一时序关联指针702,包含两个讯号边缘与一数字的中垂线。首先,使用者沿着讯号gnt波形底部定下时序关联指针702的位置。接着使用者拖曳(drag)着时序关联指针702的左侧边缘来对准点606的位置(讯号req由低位转换至高位的转折点),并拖拉着时序关联指针702的右侧边缘对准点613的位置(讯号gnt由低位转换至高位的转折点)。时序关联指针702中垂线内的数字代表允许的讯号转折的次数,此例子中为1。
图8说明了于讯号gnt与req间定义两个以上的时序关联的过程.如之前的定义,本例子中讯号gnt变高位后经过一时脉周期,讯号req变低位.要定义此第二个关联,“关联”按钮701再次被作动以产生另一时序关联指针801.使用者沿着讯号req波形底部定下时序关联指针702的位置.接着,使用者拖拉着时序关联指针801的左侧边缘来对准点613的位置(讯号gnt由低位转换至高位的转折点),并拖拉着时序关联指针801的右侧边缘对准点609的位置(讯号req由高位转换至低位的转折点).时序关联指针801的中垂线内的数字代表允许讯号作高低位转换的次数,此例子中为1.
第三个时序关联则定义为“当讯号req变换为低位后,讯号gnt 的值为忽略不计”。第三个时序关联通过按
Figure G2005101341714D00111
“忽略不计”按钮802,产生一区块803来完成定义。使用者沿着讯号gnt的波形设定好区块803的位置,接着拖曳区块803的左右两侧边缘,以定义其值忽略不计的时间范围。图8中,区块803的左侧边缘对准点609(讯号req由高位转换至低位的转折点),右侧边缘则对准最后一个时脉周期。
在根据图5至图8的过程产生一或多个时序关联后,使用者下达指令让程序将这些关联映像为触发(映像过程已说明于图1至图4中)。其结果如图9。本方法由时序关联指针702提供的信息产生触发901,并由时序关联指针801的信息产生触发902。于一实施例中,触发映像指令(assertion mapping instruction)系透过一功能选单(未图标)完成;于另一实施例,则是透过按钮(未图式)。一实施例中,使用者透过一对话盒选定一预设的触发语言,此预设语言可以在下达映像指令时透过一特定语言的选择而取消。于另一实施例,使用者则必须于下达映像指令时选定特定的触发语言。
现在,取得两个或多个讯号之间的时序关联的过程已详细描述如上,本技术领域相关人士应可了解,如何以特定的语言进行取得的时序关联与触发之间的映像。因此,说明书中仅提供部分映像的例子。本技术领域相关人应可了解,单一的时序关联有时可以用相同的语言、多种不同种类的触发设计来表示,故而时序关联与触发之间的映像关系不必然是一对一的。
图5至图8中描述的三种时序关联,可以映像至下列以SystemVerilog语言撰写的触发:
时序关联指针702→(req##req&&gnt)
时序关联指针801→(req&&req##!req)
图3至图6中描述的三种时序关联,可以映像至下列以PSL语言撰写的触发:
时序关联指针702→(req;req&&gnt)
时序关联指针801→(req&&req;!req)
图10至图14中以波形图的方式,来说明定义输入与输出讯号之间的一逻辑/组合(logical/combinatorial)关联的过程。图10说明了定义输入讯号、产生这些输入讯号的波形的过程。要定义一输入讯号,“输入”按钮1001被按
Figure G2005101341714D00121
,以出现一输入讯号描述对话框1002。透过该对话框1002,使用者可输入一输入讯号的名称(signal_a)。当跳出对话框1002,程序将产生一讯号标记1003。本例子中,并未将画出讯号signal_a波形的过程图标。一与图5的使用者介面相似,或任何其它可产生讯号signal_a波形的使用者介面皆可被使用。其它两个输入讯号signal_b与signal_c,亦可以采取类似的方式产生。
图11说明了定义输出讯号、产生这出讯号的波形的过程。要定义一输出讯号,“输出”按钮1101被按,以出现一输出讯号描述对话框1102.透过该对话框1102,使用者可输入一输出讯号的名称(signal_d).当跳出对话框1102,程序将产生一讯号标记1103.本例子中,并未将画出讯号signal_d波形的过程图标.一与图5的使用者介面相似,或任何其它可产生讯号signal_d波形的使用者介面皆可被使用.
图12说明定义讯号之间一逻辑或组合关联的过程。于一实施例中,本发明使用波形产生触发的方法被拿来产生波形图与定义关联。于另一实施例,该方法运作于由一些其它工具或程序产生的波形图上。
要定义一逻辑关联,需使用逻辑运算按钮1201来选择一逻辑运算子(operator)。本例子中,“与(AND)”运算子被选择,并产生一“与”关联符号(AND relationship symbol)1202。讯号signal_a的一节点1203藉由选择讯号控制表列1204中的signal_a而产生。同样地,讯号signal_b的一节点1205藉由选择讯号控制表列1204中的signal_b而产生。这两个节点连接(例如藉由拖曳动作)至“与”关联符号1202的两个输入。因而讯号signal_a与signal_b之间,一“与”关联被定义。
图13中定义了第二个的组合关联。“或(OR)”运算子被选择,并产生一“或”关联符号(OR relationship symbol)1301。讯号signal_c的一节点1302藉由选择讯号控制表列1204中的signal_c而产生,并连接至“或”关联符号1301。接着,“与”关联符号1202的输出节点1303被选择,之后更连接至“与”关联符号1301(例如藉由拖曳动作)。因此,“与”输出(讯号signal_a和signal_b)以及讯号signal_c之间一“或”的关联被定义。最后,讯号signal_d的一节点1304藉由选择讯号控制表列1204中的signal_d而产生,并连接至“或”关联符号1301的输出节点1305。上述过程定义了以下的组合关联
signal_d=signal_a&signal_b||signal_c
当一或多个组合关联利用图10至图13的程序产生后,使用者下达命令让程序将图中关联映像为触发。其结果如图14。本方法通过由节点1203、1205、1302、1303、1304以及关联符号1202与1301提供的信息,以产生触发1401。以System Verilog语言来表示,产生的触发为:ASSERT(signal_d=signal_a&signal_b||signal_c)。于一实施例,触发映像指令系透过一功能选项(未图标)完成;于另一实施例,则是透过按钮(未图式)。一实施例中,使用者透过一对话盒选定一预设的触发语言,此预设语言可以在下达映像指令时透过一特定语言的选择而取消。于另一实施例,使用者则必须于下达映像指令时选定特定的触发语言。
本发明使用波形产生触发的方法的一实施例,可辨别尚未以明确的关联符号定义的组合关联。一波形的输入或输出可以通过已知分析技术,如真值表或卡诺夫(Karnaugh)表,以取得讯号间的组合关联。实施例产生组合关联的触发的方法,与上述用符号明确定义的关联的辨别方法一样。
图15说明本方法另一实施例,其允许一时序组合与组合关联被定义。如先前其它实施例,触发接着这些关联之后产生。本例中的波形图包含时脉讯号1501、讯号req1502、讯号gnt1503与一额外的讯号1504。实施例中,波形图系根据如上述图5至图8的过程产生。
接着,输入讯号rd1505与输入讯号wr1506,以及利用这两个讯号作输入的组合关联被定义。本实施例中,如第十至图13的过程被使用,不同的是一下拉式控制列1507取代原先分离的按钮,用来产生组合运算子1508。组合输出1509则连接至波形图讯号1504。
接着,利用与图1至图3相同的程序增加一时序关联指针1510.最后,使用者下指令让程序将图式的关联映像为触发.本例中,本方法利用时序关联指针1510提供的信息产生触发1511.触发1511同时包含时脉与组合关联:
ASSERT(rose(req)&rose(rd|wr)##rose(gnt))
图1至图15中的使用者介面可以作不同的变化,本发明并不限制。本例子中,点击的位置系决定时间,且高/低位讯号值则由控制按钮的“高位”按钮604与“低位”按钮605的状态(致能/不致能)决定。于另一实施例,点击的位置可决定时间或讯号值,故而使用者藉由点击在零位准线之上来决定一高位讯号值,点击在靠近零位准线的附近来决定一低位讯号值。再一实施例中,则是用文字介面取代图形介面。于文字介面的实施例中,使用者可从指令列或一档案中输入文字。一讯号可以用一连串成对的“时间/数值”来表示。例如,一讯号“一开始于第一时脉为高位,于第二时脉变低位,持续停留在低位状态两个时脉,之后再变高位”可以用(0,1)(1,0)(2,0)(3,1)的标记描述方式表示。而讯号关联同样亦能用文字方式描述。
图16为本方法使用波形产生触发的流程图。于步骤1601,本方法接收有关于讯号的描述,以及这些讯号之间的关联。于步骤1602,产生一波形来代表这些讯号与关联。步骤1601与1602并非必要的步骤,因为本方法可运作在以其它工具或程序所产生的波形上。于步骤1603,则是分析波形以辨别讯号之间一或多个的关联。如果本方法实施步骤1601,其中的讯号描述与关联描述均可用来分析波形。于最后步骤1604,本方法根据辨别的关联产生一或多个触发。
图17为可用来实现本发明使用波形产生触发的方法之一实施例的一般用途计算机系统的方块图。本技术领域相关人士应可了解,本方法可在执行其它集成电路设计工具(如编辑器、编译器、合成器、模拟器、除错器等)相同系统上执行,或是在远程服务器系统(如X窗口环境)上执行。在硬件架构上,一般而言计算机1701包含一处理器1702,一存储器1703,以及透过本地端介面1705而互相连接的一或多个的输入输出装置或介面设备1704。本地端介面1705可以包含其它的组成元件(为简单起见未绘制于图式),如控制器、缓冲器、驱动器、中继器与接收器等进行通讯所需的装置。本地端介面1705更可包含地址、控制与资料联机以使得上述的组成元件进行通讯。
处理器1702一执行软件程序-特别是储存于存储器1703-的硬件装置。处理器1702可以是任何特制或商业贩售的处理器、一中央处理单元(CPU)、与计算机1701相关的数个处理器间的辅助处理器、一半导体微处理器(微芯片或芯片组的形式)、一微处理器或是其它可执行软件程序命令的装置。
存储器1703可包含任一挥发性存储元件(如随机存取存储器(RAM,如DRAM、SRAM、SDRAM等等))或非挥发性存储元件(例如,ROM、硬盘、磁带、CDROM等等),或是其组合。再者,存储器1703更可包含电、光、磁的或其它形式的储存媒体。注意,存储器1703可为分布式架构,其中各个组成元件可置于不同的地方,但是可被处理器1702所存取。
存储器1703中的软件包括一或多个分开的程序,其中每个程序包含多数个可执行指令的列表,以用来执行逻辑功能。于实施例中,存储器1703中的软件包含使用波形产生触发的系统1706的一或多个组成元件,以及一适当的操作系统1707。操作系统1707控制其它计算机程序的执行,例如将触发与硬件设计语言来源文件合并,并提供排程(scheduling)、输入输出控制、档案数据管理、存储器管理与通讯控制等相关服务。
上述程序可以是一来源文件、可执行程序(目的码)、script或其它包含一组可被执行的命令的实体(entity)。当为一来源档,则需透过编译器、组译器或解译器等其它相关工具的转译(包含或不包含于存储器1703),以与操作系统1707妥善地运作。
介面设备1704可包含输入装置,例如(但不限制为)键盘、鼠标、扫描仪、麦克风等。再者,介面设备1704亦可包含输出装置,例如(但本发明并不限制)打印机、显示器、传真装置等。最后,介面设备1704更可包含用来连接输入与输出的装置,例如调制解调器(modem,用来存取其它装置、系统或网络)、射频或其它频率的无线电收发机、电话介面、桥接器、路由器等,同样地亦不限定于上述举例的装置。
若计算机1707为一个人计算机、工作站或其它相近似装置,则储存在存储器1703的软件更可包含一基本输入输出系统(Basic InputOutput System,BIOS)。BIOS为一组必要的软件例行程序,用来于开机时初始化并测试硬设备、启动操作系统1707,以及支持硬件装置间资料的传递。BIOS储存于ROM上,因而BIOS可以在计算机1701启动时被执行。
当计算机1701在运作中,处理器1702被设定用来执行储存于存储器1703的软件、传递存储器1703输入或输出的资料、以及根据软件进行一般性地控制计算机1701的运作。使用波形产生触发的系统1706以及操作系统1707由处理器1702所读取(全部或部分,通常是部分),并缓冲储存在处理器1702中以待执行。
必须注意的是,本方法可以在任何与计算机相关的系统或方法中实施。于本文件叙述中,“计算机可读取媒介”可以是任何可储存、传送、传递、传播程序给指令执行系统/装置的工具。计算机可读取媒介可以是一电、磁、光、电磁、红外线或半导体的系统、装置或传播介质,本发明并不限制。以下列举了一组可能的计算机可读取媒介可能(并不详尽),包含:一或多条金属线形成的电连接(electricalconnection)、一携带式计算机磁盘、一随机存取存储器RAM、一只读存储器ROM、一可消除可程序化只读存储器(EPROM、EEPROM或闪存)以及一携带式光盘只读存储器(CDROM)。须注意的是,计算机可读取媒介甚至可以是一书面纸张或其它上面印制了程序的媒体,而程序可透过如光学扫描仪等装置而被电性地撷取出来,之后经过编译、解译或必要时其它适当的处理程序以储存于计算机存储器之中。
于一替代的实施例中,本方法用硬件方式来实现,其可用以下本领域已知的技术中任一个或其组合来实施:具有逻辑门,可对资料讯号进行逻辑功能处理的离散逻辑电路;具有适当逻辑门组合的特殊应用集成电路(ASIC);可程序门阵列(PGA);以及场式可程序门阵列(FPGA)等。
以上所述仅为本发明之较佳实施例而已,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示之精神下完成的等效改变或修饰,均应包含在所述的权利要求范围中。

Claims (20)

1.一种从波形图产生硬件设计语言触发的方法,该波形图包含一第一讯号、一第二讯号与一时脉讯号,该从波形图中产生硬件设计语言触发的方法包含以下步骤:
辨别该第一讯号与该第二讯号之间的一时序关联,该时序关联包含部分该第一讯号、部分该第二讯号以及该部分第一讯号与该部分第二讯号之间的一间隔周期;以及
根据该波形图的该时序关联产生该硬件设计语言触发。
2.如权利要求1所述的从波形图产生硬件设计语言触发的方法,其中该部分第一讯号包括一讯号转折。
3.如权利要求2所述的从波形图产生硬件设计语言触发的方法,其中该讯号转折与该时脉讯号的一边缘同时发生。
4.如权利要求2所述的从波形图产生硬件设计语言触发的方法,其中该讯号转折于该时脉讯号的一周期内发生。
5.如权利要求1所述的从波形图产生硬件设计语言触发的方法,其中该部分第一讯号包括一讯号状态。
6.如权利要求5所述的从波形图产生硬件设计语言触发的方法,其中该讯号状态为逻辑上低位或是逻辑上高位。
7.如权利要求1所述的从波形图中产生硬件设计语言触发的方法,更包含以下步骤:
接收该时序关联的一指针,其中该指针辨别该部分第一讯号、该部分第二讯号与该间隔周期。
8.如权利要求7所述的从波形图中产生硬件设计语言触发的方法,其中该接收步骤更包含:
接收该时序关联的一指针,其中该指针的一第一边缘对准该部分第一讯号且该指针的一第二边缘对准该部分第二讯号。
9.如权利要求7所述的从波形图中产生硬件设计语言触发的方法,其中该接收步骤更包含:
接收该时序关联的一指针,其中该指针指定一数值予该间隔周期。
10.如权利要求7所述的从波形图中产生硬件设计语言触发的方法,其中该接收步骤更包含:
接收该时序关联的一指针,其中该指针指定一范围予该间隔周期。
11.如权利要求1所述的从波形图中产生硬件设计语言触发的方法,其中该根据该波形图的该时序关联产生该硬件设计语言触发的步骤更包含:
决定该时序关联包含一讯号转折;以及
对应该讯号转折的决定,产生包含一讯号转折的一硬件设计语言的触发。
12.如权利要求11所述的从波形图中产生硬件设计语言触发的方法,其中该根据该波形图的该时序关联产生该硬件设计语言触发的步骤更包含:
决定该时序关联包含一讯号状态;以及
对应该讯号转折的决定,产生包含一讯号状态的一硬件设计语言的触发。
13.如权利要求1所述的从波形图中产生硬件设计语言触发的方法,其中还包含下列步骤:
辨别一第一输入讯号、一第二输入讯号与一组合输出讯号之间的一组合关联;以及
辨别该组合输出讯号与一追随讯号之间的一时序关联,该时序关联包含一段的该组合输出讯号、一段的该追随讯号与该段第一输入讯号与该段第二输入讯号之间的一间隔周期。
14.一种包含一计算机程序以从波形图产生硬件设计语言触发的方法,该波形图包含一第一输入讯号、一第二输入讯号与一输出讯号,其特征在于,该包含一计算机程序以从波形图产生硬件设计语言触发的方法包含:
辨别该第一输入讯号、该第二输入讯号与该输出讯号之间的一组合关联;以及
根据该波形图的一时序关联产生该硬件设计语言触发。
15.如权利要求14所述的包含一计算机程序以从波形图产生硬件设计语言触发的方法,更包含以下步骤:
接收该组合关联的一指针,其中该指针辨别该第一输入讯号、该第二输入讯号、一布尔运算子与该输出讯号之间的一连接关系。
16.一种从波形图产生硬件设计语言触发的方法,该波形图包含复数个讯号,其特征在于,该方法包含以下步骤:
接收复数个讯号描述,每一该讯号描述为形容该复数个讯号中的一个讯号;
接收用以描述至少两个该复数个讯号之间一时序或组合的关联的一讯号关联描述;
产生包含代表该关联的波形图;以及
根据该讯号关联描述产生一硬件描述语言的触发。
17.如权利要求16所述的方法,其特征在于,更包含下列步骤:
根据该讯号关联描述提供一第一使用者介面控制。
18.如权利要求16所述的方法,其特征在于,更包含下列步骤:
根据该讯号关联描述提供一第二使用者介面控制。
19.如权利要求16所述的方法,其特征在于,更包含下列步骤:
根据该讯号关联描述提供一第二使用者介面控制,该第二使用者控制允许标示部分第一讯号、标示部分第二讯号以及该部分第一讯号与该部分第二讯号之间的一间隔周期。
20.如权利要求16所述的方法,其特征在于,更包含下列步骤:
根据该讯号关联描述提供一第二使用者介面控制,该第二使用者介面控制允许标定至少复数个讯号中的二个、一布尔运算子与该输出讯号之间的一连接关系。
CN2005101341714A 2005-02-03 2005-12-27 从波形图产生硬件设计语言触发的方法与系统 Active CN1815480B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/050,212 US20060190882A1 (en) 2005-02-03 2005-02-03 System and method for generating assertions using waveforms
US11/050,212 2005-02-03

Publications (2)

Publication Number Publication Date
CN1815480A CN1815480A (zh) 2006-08-09
CN1815480B true CN1815480B (zh) 2010-05-05

Family

ID=36907681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005101341714A Active CN1815480B (zh) 2005-02-03 2005-12-27 从波形图产生硬件设计语言触发的方法与系统

Country Status (3)

Country Link
US (1) US20060190882A1 (zh)
CN (1) CN1815480B (zh)
TW (1) TWI317081B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8627057B2 (en) * 2010-12-22 2014-01-07 Intel Corporation Reconfigurable sensing platform for software-defined instrumentation
US9626468B2 (en) * 2014-02-27 2017-04-18 Synopsys, Inc. Assertion extraction from design and its signal traces
US10922463B1 (en) * 2019-10-20 2021-02-16 Xilinx, Inc. User dialog-based automated system design for programmable integrated circuits
TWI765452B (zh) * 2020-12-08 2022-05-21 日商Jfe鋼鐵股份有限公司 時間序列訊號之觸發條件決定方法、監視對象設備之異常診斷方法及時間序列訊號之觸發條件決定裝置
CN115906730A (zh) * 2022-09-09 2023-04-04 芯华章科技(北京)有限公司 验证逻辑系统设计的方法、设备及存储介质
CN117787160B (zh) * 2024-02-26 2024-05-14 上海芯联芯智能科技有限公司 一种生成数字电路的硬件描述语言的方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701501B2 (en) * 2000-10-16 2004-03-02 Simon Joshua Waters Structured algorithmic programming language approach to system design
US6954887B2 (en) * 2001-03-22 2005-10-11 Syntest Technologies, Inc. Multiple-capture DFT system for scan-based integrated circuits
US20030188272A1 (en) * 2002-03-27 2003-10-02 Peter Korger Synchronous assert module for hardware description language library
US7356789B2 (en) * 2004-06-01 2008-04-08 Tai An Ly Metastability effects simulation for a circuit description

Also Published As

Publication number Publication date
TW200629096A (en) 2006-08-16
US20060190882A1 (en) 2006-08-24
TWI317081B (en) 2009-11-11
CN1815480A (zh) 2006-08-09

Similar Documents

Publication Publication Date Title
CN101842789B (zh) 用于存储器抽象和使用该存储器抽象来验证的方法和装置
JP4806529B2 (ja) 複製されたロジックを使用するデバッグの方法とシステム
US10915683B2 (en) Methodology to create constraints and leverage formal coverage analyzer to achieve faster code coverage closure for an electronic structure
WO2002001424A2 (en) System and method relating to verification of integrated circuit design
CN1815480B (zh) 从波形图产生硬件设计语言触发的方法与系统
US8635579B1 (en) Local clock skew optimization
US7216318B1 (en) Method and system for false path analysis
Attarzadeh-Niaki et al. Heterogeneous co-simulation for embedded and cyber-physical systems design
US9619598B2 (en) Input space reduction for verification test set generation
JP5034916B2 (ja) 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置
US8321825B2 (en) Method and system for synthesizing relative timing constraints on an integrated circuit design to facilitate timing verification
US7730437B1 (en) Method of full semiconductor chip timing closure
Huggi et al. Design and verification of memory elements using python
Wolf et al. Execution cost interval refinement in static software analysis
CN115470125B (zh) 基于日志文件的调试方法、设备以及存储介质
US6543034B1 (en) Multi-environment testing with a responder
US8160859B2 (en) Medium storing logic simulation program, logic simulation apparatus, and logic simulation method
Sohofi et al. System‐level assertions: approach for electronic system‐level verification
Kaja et al. Modelling Peripheral Designs using FSM-like Notation for Complete Property Set Generation
Plassan et al. Improving the efficiency of formal verification: the case of clock-domain crossings
CN103969574A (zh) 应用FPGA实现ATE测试波形的Verilog编码方法
JP2009140028A (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体
US20050166165A1 (en) Verilog to C++ language translator
Fossati et al. Socrocket: a virtual platform for soc design
US20060178863A1 (en) Combining and representing signals of a hardware simulation device and elements of a program listing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant