结构化系统的设计方法

文档序号:6412558阅读:256来源:国知局
专利名称:结构化系统的设计方法
技术领域
本发明涉及集成电路设计方法,尤其涉及集成电路结构设计的交互式方法。
当代集成电路的复杂性导致基于使用高层综合方法的结构化设计的发展,以减少设计周期。例如,典型的高层综合方法用集成电路行为的算法描述生成一个寄存器传输级(RTL)硬件的电路方案。该方法包括一系列设计任务,例如,调度,资源配制,链接(把行为语句映射到具体的硬件元件),及控制器的生成。这些设计任务的复杂性与所设计的集成电路的复杂性密切相关。
用于高层综合的现有技术方法的输入由一组描述具体的集成电路性能的行为语句及约束条件组成。这一系列设计任务自动执行,最后提出一个硬件方案。每一个设计任务都产生数据,这些数据与行为语句的关系越来越难被认出,因此设计者很难把特定的硬件元件与具体的描述语句联系起来。如果在硬件方案中检测到设计错误,设计者很难确定应改变的行为语句。硬件元件与行为语句间对应的低可视性使得硬件优化成为试错过程,这些试错过程要求自动化设计任务的几次迭代。相当大部分的设计任务用于重复计算集成电路的和原先的迭代相同的部分。计算资源支出在时间的消耗及成本上。
因此,为了减少设计时间及成本,有必要发明一种同每一个设计任务产生的数据有多重交互的结构化设计方法,以增加硬件与行为间对应的可视性。


图1表示一个交互式结构化设计系统的方框图;图2表示该交互式结构化设计系统的流程图;图3表示分配给一个算法描述的控制步骤的时序图;图4表示该算法描述的硬件方案的原理图;图5表示修改后的算法描述的硬件方案的原理图6表示用于实现交互式结构化设计系统的计算机的方框图。
图1表示一个交互式结构化设计系统10的方框图,由多个直观的辅助的编辑器组成,其中每一个都控制一个不同的设计任务。微结构设计数据库12包括存储在一个公共数据库中的各种类型数据的存储器。例如,表示集成电路的行为,结构及定时数据类型都存储在微结构设计数据库12中。通过层次编辑器14,行为编辑器16,结构编辑器18,时序编辑器20,提取库编辑器22及设计工具包24都可以对数据进行读或写访问。存储在微结构设计数据库12中的数据以每一个编辑器和设计工具包24都接受的预先确定的格式存储。
层次编辑器14用于把集成电路设计划分成分层模块。设计者一般根据设计规范及特定模块的行为的复杂性划分电路。例如与总线接口的数字信号处理器(DSP)芯片可以进一步划分成总线接口模块及DSP芯片模块。在层次编辑器14中产生的数据存储在微结构设计数据库12中,用于进一步处理。通过层次编辑器14的图形界面可以从微结构设计数据库12中重新调用分层数据,用来对特定的模块进行观察或重新划分。
层次编辑器14定义的描述单独模块的算法行为的数据存储在微结构设计数据库12中。为了在显示器上观察,行为数据以图形或文本格式提取和安排。由于行为数据是作为一系列用来定义具体功能或操作的语句输入的,因此行为编辑器16一般具有内部语法检查。一般在层次编辑器14中定义了分层模块后生成行为数据。
结构编辑器18管理微结构设计数据库12中存储的寄存器传输级(RTL)数据。RTL数据表示在层次编辑器14中产生的分层模块的硬件元件。设计者交互式提供或编辑RTL数据,或通过设计工具包24中的设计工具利用微结构数据库12中存在的数据产生RTL数据。为了在结构编辑器18中通过图形界面显示成原理图,RTL数据以图形或文本格式安排。
时序编辑器20为在行为编辑器16中生成的行为语句的基于周期的定时提供编辑环境。定时数据存储在微结构设计数据库12中,由设计者交互式提供或由设计工具包24中的工具提供。时序编辑器20包括一个图形界面,用来以图形或文本格式显示定时数据,以此观察及安排该算法描述的相对调度。
提取库编辑器22为RTL库元件的存取、编辑或生成提供环境。RTL元件存储在微结构设计数据库12中。库元件数据包括RTL库元件的属性,例如延时、定时方法等等。通过提取库编辑器18的图形界面来访问库元件数据,用来交互式观察及编辑。
设计工具包24包括结构设计10使用的可执行程序以使特定的设计任务自动化。例如,设计工具包24包括生成行为语句的周期调度的工具。由于时序图与行为语句有关,通过时序编辑器20来观察调度。设计工具包24中的另一个工具产生划分开的模块的RTL结构,其原理图在结构编辑器18中观察及编辑。设计者使用适当的编辑器可以交互式地修改设计工具包24中的工具自动生成的数据。
设计工具包24中的一个重要的工具是控制发生器,控制发生器生成由状态机组成的控制单元,为了实现规定的行为和定时,状态机在规定的时间给RTL元件提供控制信号。控制生成一般是自动的,并且作为设计过程的最后阶段完成。
图2表示由步骤202-212组成的微结构设计系统10的设计流程图,通过执行一个步骤及转移到任何其它步骤,可以以不同的次序来完成。在步骤202,对层次编辑器14划分出的每一个模块都生成或编辑其行为或算法描述。行为数据以一组操作或功能语句通过行为编辑器16输入,这些语句一般用文本方式的编程语言写成,例如C语言。行为数据也可以用流程图以图形方式输入。通过行为编辑器16中的图形界面来观察或编辑该算法描述。
在步骤204,控制步从划分出的模块的算法描述映射到系统时钟的特定周期。控制步映射由行为语句与完成该语句的特定时钟周期的链接关系定义。控制步描述了用于完成由行为语句定义的功能或操作的周期定时。表示控制步的时序图在时序编辑器20中观察或编辑。
在步骤206,根据设计规范来配置RTL元件。在实现一个设计时所用的每一类RTL元件的数量都由控制步映射(步骤204)的结果确定。当前的RTL元件配置都存储在微结构设计库12中,用结构编辑器18检查。设计规范经常对设计中使用的RTL元件的数量提出限制。为了把限制加到设计中去,RTL元件的数据在结构编辑器18中提取并交互式地编辑,以修改RTL当前元件配置。
通过执行设计工具包24中的互连工具能自动产生RTL元件的互连。互连工具能产生全新的结构,或者也能把新的互连加到已存在的不完全的互连结构中。反过来,为了观察及修改已有的互连,设计者也可以用结构编辑器18交互式地提供所有或部分互连。互连步骤208包括产生在当前RTL元件间传送信号的导线。此外,在互连步骤208还产生为实现RTL元件的共享及通信协议所需要的开关器件,例如多路器与三态器件。根据设计规范生成导线及开关器件,与此同时要考虑由控制步映射及行为到结构的映射步骤204及210产生的限制。互连数据存储在微结构设计数据库12中。
结构映射(步骤210)将模块行为描述中的变量及操作与具体的RTL元件相联系。因此,在行为编辑器16中观察及编辑的算法或行为语句与在结构编辑器18中观察及编辑的RTL元件有联系。在显示器上可以同时观察RTL元件及行为语句。当在显示器的一个区域中选中特定的RTL元件时,在显示器的另一个区域中相关的行为语句被加亮,清楚地表示出行为语句与RTL元件间的联系。这些联系使控制发生工具(步骤212)产生实现该设计规定的行为,定时及资源配置的控制单元。设计工具包24中的映射工具自动产生行为语句与具体的RTL元件间的联系。另一方面,也可以用结构编辑器18及行为编辑器16规定用特定的RTL元件来完成特定的行为操作,交互式地定义所要求的联系,以使用设计规定的元件。
通过给结构设计系统10中的每一个编辑器提供一个用户界面,本方法允许设计者在设计的每一个阶段对每一个设计任务产生的数据进行观察和/或修改。在一个原始设计中,步骤202-212经常是自动或交互式地顺序完成。在某些情况下,当从草案开始一个新的设计时,顺序执行步骤202-212是足够的。
然而,设计工作的很重要的部分是修改或改进已存在的RTL方案,以符合新的规定。这种修改或改进经常要求只改变已存在的RTL方案的一部分。现有技术中的设计系统顺序执行步骤202-212,因此对修改就好象对一个初始设计一样。任何改变都要求设计者从步骤202重新开始。因此设计和计算资源浪费在对于RTL方案的不需改变的那部分的重复计算上。此外,设计者还不能防止现有技术的设计系统改变方案中需要重新使用的部分。
结构设计系统10的一个特点是用于存储微结构设计数据库12提供的设计数据的共用数据库。由于每一个编辑器都访问及解释同样的设计数据,从而确保了设计数据的行为、定时、结构及映射类型的一致性。微结构设计数据库12包括一个或多个表格,其中存有每一个设计数据元素的属性。步骤202-212中的每一个步骤都可以增添或删除这些属性。例如,如果设计者修改一个行为语句映射的一个特定的控制步,那么该语句映射的已存在的控制步从表格中删除,并加入新的映射。表格中未被改变的属性保持不变。因此在接下来执行步骤202-210的设计任务时,只有那些被改变的属性被更新。在另外的实施方式中可以使用旗标或其它指示器来跟踪属性的变化。美国专利5533179号公开了只修改需改变的属性的例子。
每一个编辑器都有一个用户界面,让设计者确定要完成哪些设计任务及要完成设计的哪一部分。在设计的任何步骤,每一个编辑器都能访问共用数据库以提供设计数据的可靠的交互式编辑,以使设计任务不必以任何特定的顺序执行。例如,设计者可以先执行步骤206,然后再按步骤208、202、204、210、及212的顺序进行转移。
结构设计系统10的另一个特点是不需重复有关的设计数据未变的设计任务。尤其是设计工具包24中的工具和每一个编辑器相关,允许设计者选择和控制完成特定设计任务的设计的这些部分。因此未改变的设计部分不用重新计算。取消了不必要的或冗长的设计任务,更有效地利用了设计和计算资源。
这里有一个为了用于不同的应用,修改一个现有的集成电路设计的例子,通过该例子可以理解设计任务的顺序可改变的优点。首先在层次编辑器14中把现有设计划分成固定的及可编程的部分,这样固定部分在不同的应用中重复使用,只有可编程部分改变。在这样划分的系统中,首先执行步骤206和208,以配置及互连固定部分包括的RTL元件。其次执行步骤202,以根据特定应用的设计规范定义特定的行为。然后通过执行步骤204和210设置控制步及结构映射以形成数据库,生成可编程的部分。最后在步骤212产生控制单元。
在另一个例子中也可以看到以可变顺序完成设计任务的优点,这里一个新指令要被加到用本发明介绍的设计方法设计的已有的微处理器中,其数据库存在微结构设计数据库12中。现有技术方法要求以从步骤202到212的顺序执行设计任务,以完成微处理器的完整再设计。现有的技术方法效率低,尤其当已有的微处理器的大部分原先已作过大量的调试及优化时。
如果原先的优化部分未被新的指令改变,本方法允许设计者保留原先的优化部分。设计工具包24中的工具都有一个选择模式,在这种模式中一种工具只对设计者用一种编辑器选择的数据操作。在加一个新指令到一个已有的微处理器中的例子中,设计者选择微处理器需要实现新指令的那部分。为了只修改设计者选择的部分,在选择模式下应用适宜的工具。
例如,用行为编辑器在步骤202把描述新指令的行为语句加到已有的微处理器的算法描述中。设计者通过行为编辑器16的用户界面交互式地确认和选择新的行为语句。在选择模式下执行步骤204,以把所选择的语句映射到控制步。假定不需要用另外的RTL元件来实现新加的指令,执行步骤210,以使只有选择的新的行为语句被映射到已存在的RTL方案。通过执行步骤212产生能使已有的RTL结构实现修改后的指令组的新的控制器。这种情况下,仅执行步骤202,204,210及212就实现了新设计,同时保留了微处理器原来被优化和调试过的部分。
下面通过一个例子来说明用本发明来产生和编辑设计数据库的过程,例中设计一个电路,它计算在输入端INP1和INP2分别输入的两个值的平方函数的差。用行为编辑器16提供所要求的函数的算法描述(步骤202),该算法描述由下面表1中的语句1到语句5组成。
表11.X=INP12.Y=INP23.X1=X*X4.Y1=Y*Y5.OUT=X1-Y1一旦算法描述输入到设计数据库中,根据对于特定的设计任务所加的设计限制执行步骤204-212,自动生成RTL方案。或者,设计者也可以交互式地定制该算法描述及RTL方案的特定方面。例如假定设计者交互式地限制该RTL方案,使每到第四个周期提供一个输出,及使用一个单独的二周期流水线乘法器电路。首先通过执行步骤204完成控制步映射,然后在步骤206配置RTL元件。
图3是表示用于表1的算法语句的控制步映射的时序图300。为清楚起见,执行每个语句的系统时钟周期用阴影表示。波形301和302表示在周期T1期间在输入端INP1和INP2分别接收到输入值X和Y。波形303表示在周期T1和T2完成乘法X1=X*X。波形304表示在周期T2和T3完成乘法Y1=Y*Y。由于用同一个二周期流水线乘法器完成二个乘法,所以波形302和303在周期T2期间重叠。由于设计者提出第四周期的限制,所以波形305表示OUT=X1-Y1在周期4产生。
一旦控制步映射结束,通过规定特定的RTL元件交互式地完成步骤206,如用结构编辑器18产生一个二周期的流水线乘法器。所要求的减法器电路及用于存储中间值Y,X1和Y1的两个寄存器也交互式地配置。作为另外一个过程,用设计工具包24中和每一步骤有关的工具执行执行步骤206-212,自动完成RTL方案。
假定交互式地配置流水线乘法器,减法器及两个寄存器,结构映射(步骤210)经常在生成互连(步骤208)前完成,以把在步骤206配置的具体的RTL元件链接到特定的算法操作。例如,在步骤206配置的流水线乘法器映射到表1的行为语句3和4的乘法操作。类似地,表1的行为语句5的减法操作可以链接到在步骤206配置的减法电路,以及中间值Y,X1,X2可以映射到步骤206配置的特定的寄存器。
在圆满完成了行为描述,控制步映射RTL元件配置及结构映射后,互连和控制单元自动生成(步骤208,212),以完成该RTL方案。从上面的例子中可以看出。本发明的方法不要求严格按图2表示的次序从步骤202到212顺序执行,而是允许设计者从一步转移到顺序中的任何其他步骤,以最有效地完成集成电路设计。例如,在上面描述的过程中,步骤210就在步骤208前完成。
图4是一个原理图,举例说明在一个集成电路实施方式中,由时序图300所示的定时约束的表1的行为语句1到5的RTL方案400。RTL方案400包括流水线乘法器401,减法器402,寄存器403和404,三态驱动器405,控制单元406及多路器407,408及409。输入端INP1接收值X,输入端INP2接收值Y。根据表1中的行为语句1到5定义的算法输出端提供计算结果OUT=X2-Y2。周期定时由系统时钟提供。
根据执行本发明的上述步骤配置RTL元件。特别是在步骤206交互式地配置流水线乘法器401,以执行表1中行为语句3和4的乘法操作。同样,在步骤206交互式地配置减法器402,以完成表1中行为语句5的减法功能。在步骤206还配置寄存器403和404,以存储表1的中间值Y,X1和Y1。在步骤208自动生成互连导线和多路器407-409。
控制单元406自动生成,给用于实现规定的算法描述和定时的特定元件提供控制信号C1-C6。例如,三态驱动器405有一个控制输入端,它在周期T4从控制单元406接收控制信号C2,以把计算结果OUT送到输出端,或把三态驱动器405设置为三态模式。
原理5表示表1中语句1-5的RTL方案500,其中改变设计规范,要求计算结果OUT在输出端存储并显示4个周期。用图4所示的已有的RTL方案400的数据库作为出发点,可以看出,通过配置一个新寄存器505取代RTL方案400中的三态驱动器405实现了设计规范的改变。因此,设计者直接执行步骤206,交互式地从数据库中删除三态驱动器405,并用结构编辑器18配置寄存器505。由于不发生变化的步骤202和204可以被旁路,所以直接转移进入到特定的设计任务提高了设计效率。
在步骤208,用结构编辑器18加入导线504,把寄存器505连接到减法器402。同样,用结构编辑器18从已有的数据库中交互式地修改或生成导线501-503。应注意的是,在步骤206和208,只需要编辑RTL方案500中被修改的部分。下面的操作可以在选择模式下完成,这样,只有相应于选中的新元件的数据要重新计算。未改变的余下的RTL元件仍保留在数据库中,并且仍然用在RTL方案500中。较少的及局部的修改的结构映射(步骤210)通常交互式地完成,以规定计算结果OUT=X2-Y2存在寄存器505中。
虽然原先执行过步骤212,自动生成了RTL方案400中的控制单元406,但由于要完成不同的功能,步骤212还要重新执行以生成控制单元506。特别是在周期T4,控制单元406使三态驱动器405输出,而控制单元506在导线502上对寄存器505提供控制信号C7,用来在时钟周期T4存储计算结果OUT,直到接收到下一个控制信号C7。
上面的例子表明设计者能交互式地操纵微结构设计数据库12,以修改RTL元件,使产生不同结构的RTL方案400和500。用结构编辑器18交互式地修改特定的RTL元件及互连,而不修改算法描述中的语句,产生不同的机构。具体来说,用结构编辑器18把寄存器505和导线501-504交互式地加到设计数据库中,修改RTL方案400,然后转移到其他设计任务,完成RTL方案500的设计。
本发明也能产生和用现有技术方法产生的电路结构不同的RTL方案。例如,用现有技术的设计方法能产生实现表1的行为语句所描述的功能相同的电路的原理图。用行为语句作为输入数据执行现有技术的设计程序,表示电路原理的数据在输出端产生。该输出数据形成具有特定的现有技术设计程序规定的结构特性的方案。
相反,用本发明产生的RTL方案的结构不受特定的设计程序限制,而仍能被设计者修改和优化。设计者在交互式地修改设计数据库的过程中转移到适宜的步骤。更具体地说,如上所述,设计者能转移到结构编辑器18,交互式地修改RTL方案和互连,而不修改算法描述中的语句。结果,可以修改一个设计,以产生一个RTL方案,其结构与用现有技术方法产生的结构完全不同。
一个RTL方案一般由集成电路的原理图组成。从这样的原理图产生的数据用来制造光刻掩膜,以在用于制造集成电路的半导体衬底上制造该RTL方案的物理结构。用于产生RTL方案的本设计方法包括制定集成电路的制造过程的设计部分,该集成电路包括该RTL方案。
图6表示用于设计集成电路的具有结构设计系统10的计算机600的方框图,包括控制电路602,输入装置604,输出装置606及存储器608。输入装置604用于把输入数据送到计算机600。在此设计者交互式地输入数据,输入装置604一般是一个键盘。然而,输入装置604也可以是其它类型的输入装置,例如磁盘机或磁带机,调制解调器或扫描仪。输入数据从输入装置604藕合到控制电路602,该控制电路执行存储在存储器608中的一个决定如何处理输入数据的编辑程序。
输出装置606一般包括显示监视器,用于交互式地显示从控制电路602接收到的表示所设计的集成电路结构系统的数据。输出装置606可以是其它类型能显示或传送在计算机600中产生或存储的数据的装置,例如打印机,调制解调器,及磁盘机或磁带机。
控制电路602执行存储在存储器608中用于实现包括在结构设计系统10中的设计任务的软件程序。通过执行一个工具程序自动完成该设计任务,该工具程序存储在存储器608中用于存储设计工具包24的那个区域。控制电路602一般由微处理器构成,但控制电路602的功能也可由其他类型的逻辑电路提供,包括状态机。控制电路602也执行存储在存储器608中的编辑程序,它提供计算机600和交互式地完成设计任务的设计者之间的图形界面。这样的编辑程序包括层次编辑器14,行为编辑器16,结构编辑器18,时序编辑器20及提取库编辑器22。
控制电路602管理进入计算机600的数据流及从输入装置604接收到的输入数据,并显示传送到输出装置606的数据。在工具程序或编辑器的指引下。控制电路602提取,修改及存储存在被称为微结构设计数据库12的存储器608中的共用设计数据库中的数据存储器608包括上述用来存储用以实现结构设计系统10的数据和软件程序的存储器区域的大部分。存储器608可能包括随机存取存储器,只读存储器,磁存储介质,例如软盘,硬盘及磁带,还可能包括光存储介质,例如光盘,及类似的存储装置。
现在应该已经明确,实现结构设计方法的计算机是用于设计集成电路的。通过完成一组设计任务由该结构系统的算法描述提出该集成电路的算法描述及该集成电路的RTL方案。这些设计任务并不需要以特定的顺序完成。而是为了完成这些设计任务,设计者可以任何适宜的次序交互式地从一个设计任务转移到另一个任务。
该结构设计方法进一步还允许设计者通过直接执行适宜的步骤,及通过与该步骤有关的编辑器的用户界面交互式地按要求改变,以交互式地更有效地修改已有的RTL方案。设计者交互式地确定要修改的部分,以任何次序交互式地转移到其它步骤,仅对要修改的部分完成修改后的RTL方案,完成设计任务。
虽然这里表示和描述了本发明的具体实施方式
,但熟练的技术人员会作出进一步的修改和改进。可以理解,本发明并不仅限于所指出的特定形式,本发明的权利要求覆盖不违反本发明的实质和范围的所有修改。
权利要求
1.一种在结构级设计系统的计算机实现方法,其特点是以下步骤从该系统的算法描述通过多个设计任务(202-212)产生该系统(400)的寄存器传输级(RTL)方案;及从多个设计任务(202-212)之一转移到多个设计任务中的另一个(202-212),以不同的次序执行多个设计任务。
2.权利要求1的方法,其中每一个设计任务都包括多个设计判断,及转移步骤包括在多个设计任务(202-212)之一中交互式地定义或修改多个设计判断之一并转移到在多个设计任务(202-212)的另一个中的多个设计判断中的另一个。
3.权利要求1的方法,其中多个设计任务(202-212)包括以下步骤产生及编辑算法描述(202);及由算法描述生成控制步映射(204)。
4.一种在结构级设计系统的方法,其特点是以下步骤从该系统的算法描述通过每一个都包含多个设计判断的多个设计任务产生该系统(400)的寄存器传输级(RTL)方案;及在多个设计任务(202-212)中交互式地定义或修改多个设计判断。
5.权利要求4的方法,其中多个设计任务(202-212)包括以下步骤配置RTL元件(206);生成并编辑算法描述(202);由算法描述及RTL元件产生控制步映射(204);在RTL元件间产生互连(208);由对该RTL元件及互连的算法描述产生结构映射(210)。
6.权利要求4的方法,其中多个设计任务包括产生控制单元(212)以使该RTL元件能实现该算法描述的步骤。
7.一个可读的计算机存储介质,其特点为存储器(24)的第一个区域用于存储多个计算机可执行的设计任务(202-212),用于产生描述由一个结构系统的算法描述来的该结构系统的共用设计数据库(12);及存储器(14-22)的第二个区域用于存储多个用于交互式地观察及修改该共用设计数据库(12)并用于以不同的次序执行这些计算机可执行的设计任务(202-212)的多个数据编辑器(14-22)。
8.一种根据以下步骤设计的集成电路由该集成电路的算法描述通过每一个都包含多个设计判断的多个设计任务(202-212)产生该集成电路的寄存器传输级(RTL)方案(400);及在多个设计任务中交互式地定义或修改多个设计判断。
9.权利要求8的集成电路,其中交互式地定义或修改多个设计判断的步骤包括对该算法描述的元素交互式地分配控制步映射(204)的步骤。
10.权利要求8的集成电路,其中交互式地定义或修改多个设计判断的步骤包括交互式地生成从该算法描述中的一个元素到某个RTL元件的结构映射的步骤。
全文摘要
用来实现设计集成电路的结构设计方法的计算机。生成该集成电路的行为的算法描述(步骤202),通过执行一组设计任务(步骤204-212)由该算法描述产生该集成电路的寄存器传输级逻辑(RTL)方案(400,500)。完成了一个设计任务后,可以通过转移到另一个设计任务来修改该RTL方案,从而该设计可以任何次序完成。数据存储在共用数据库(12)中,通过多个数据编辑器(14-22)可以交互式地对其进行编辑。
文档编号G06F17/50GK1195825SQ9712306
公开日1998年10月14日 申请日期1997年12月2日 优先权日1996年12月3日
发明者卡汉·库克查卡, 陈迟彤, 威尔赫姆斯·J·菲利普森, 托马斯·E·塔卡西克 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1