选通时钟产生电路及修改这种电路的方法

文档序号:6582635阅读:431来源:国知局
专利名称:选通时钟产生电路及修改这种电路的方法
技术领域
本发明涉及一种在接通和断开时输出时钟信号的选通时钟产生电路。
同步设计包括将外部时钟信号直接送到电路内的触发器的时钟输入端子,而不在电路内对时钟信号进行分频、接通或断开、或者反相,另外布置电路元件且将它们相连(在下文中称为“布置和互连”)以便减小时钟信号的时滞。
然而,在这样设计的时钟同步电路中,时钟信号始终同时送到所有的触发器。这就增加了触发器的电力消耗,因此增加了时钟同步电路整体的电力消耗。
一种用于减少时钟同步电路的电力消耗的有效方法是为电路设置选通时钟产生电路,以便把选通时钟产生电路所产生的选通时钟信号送至在一定条件下不用工作的触发器的时钟输入端子。


图14和16表示了传统的选通时钟产生电路的结构的示例。
首先,描述图14所示的选通时钟产生电路。在输入端子1接收时钟信号CLK1,输入端子1通过“或”门BUF1与“或”门BUF2的输入端子和“或”门BUF3的输入端子相连。
“或”门BUF2的输出端子与触发器FF1的时钟输入端子相连。“或”门BUF3的输出端子与“与”门AN1的第二输入端子相连。
在与触发器FF1的数据输入端子相连的输入端子2处接收数据信号Data1。触发器FF1的输出端子连接到“与”门AN1的第一输入端子。“与”门AN1的输出端子与输出选通时钟信号GCLK1的输出端子3相连。
现在,参考图14的电路结构图和图15A的时序图来描述以这种方式构造的选通时钟产生电路的操作。在输入端子1接收的时钟信号CLK1通过“或”门BUF1和“或”门BUF2到达触发器FF1的时钟输入端子。在输入端子2接收的数据信号Data1到达触发器FF1的数据输入端子。结果,选通信号Gate1从触发器FF1的输出端子送到“与”门AN1的第一输入端子,选通信号Gate1具有如图15A所示的波形,它具有延迟到时钟信号CLK1的上升沿的数据信号Data1的转换点。
在输入端子1接收的时钟信号CLK1也到达“与”门AN1的第二输入端子。因此, 与”门AN1将选通时钟信号GCLK1输出到输出端子3,选通时钟信号GCLK1为选通信号Gate1和时钟信号CLK1的“与”值。
这样,通过数据信号的输入来指定需要时钟信号的周期,可以只在需要时钟信号的周期内以选通时钟信号GCLK1的形式输出时钟信号。
接着,描述图16所示的选通时钟产生电路。在输入端子4接收时钟信号CLK2,输入端子4与反相器INV2的输入端子和“或”门BUF5的输入端子相连。
反相器INV2的输出端子通过“或”门BUF4与触发器FF3的时钟输入端子相连。“或”门BUF5的输出端子与“与”门AN3的第二输入端子相连。
在与触发器FF3的数据输入端子相连的输入端子5接收数据信号Data2。触发器FF3的输出端子与“与”门AN3的第一输入端子相连。“与”门AN3的输出端子与送出选通时钟信号GCLK2的输出端子6相连。
现在参考图16的电路结构图和图17A的时序图来描述以这种方式构造的选通时钟产生电路的操作。通过反相器INV2使在输入端子4接收的时钟信号CLK2反相,然后通过“或”门BUF4到达触发器FF3的时钟输入端子。在输入端子5接收的数据信号Data2到达触发器FF3的数据输入端子。结果,选通信号Gate3从触发器FF3的输出端子提供给“与”门AN3的第一输入端子,选通信号Gate3具有如图17A所示的波形,其中数据信号Data2的转换点延迟到时钟信号CLK2的下降沿。
在输入端子4接收的时钟信号CLK2还通过“或”门BUF5到达“与”门AN3的第二输入端子。因此,“与”门AN3输出到选通时钟信号GCLK2的输出端子6,选通时钟信号GCLK2为选通信号Gate3和时钟信号CLK2的“与”值。
这样,通过数据信号的输入来指定需要时钟信号的周期,可以只在所需的周期内以选通时钟信号GCLK2的形式输出时钟信号。
然而,根据设置和互连产生了不同延迟,因此到达输出选通时钟信号的“与”门的第一输入端子处的选通信号的边沿并不一定和到达同一“与”门的第二输入端子处的时钟信号的对应边沿重合,如图15A或17A所示。
例如,在图14所示的选通时钟产生电路中,如果时钟信号CLK1比选通信号Gate1更早到达“与”门AN1,那么如图15B所示,在选通信号Gate1的转换点的附近将存在时钟信号CLK1和选通信号Gate1同时为高电平的时段t1。这就在时段t1内在选通时钟信号GCLK1中产生假信号。相反,如果选通信号Gate1比时钟信号CLK1更早到达“与”门AN1,那么如图15C所示,在选通信号Gate1的转换点的附近不会产生时钟信号CLK1和选通信号Gate1同时为高电平的时段。因此,在选通时钟信号GCLK1中不会产生假信号。
另一方面,在图16所示的选通时钟产生电路中,如果选通信号Gate3比时钟信号CLK2更早到达“与”门AN3,那么如图17C所示,在选通信号Gate3的转换点的附近将产生时钟信号CLK2和选通信号Gate3同时为高电平的时段t2。则在时段t2内在选通时钟信号GCLK2中产生了假信号。相反,如果时钟信号CLK2比选通信号Gate3更早到达“与”门AN3处,那么如图17B所示,在选通信号Gate3的转换点的附近,不会产生时钟信号CLK2和选通信号Gate3同时为高电平的时段。因此,在选通时钟信号GCLK2中不会产生假信号。
选通时钟信号中的这种假信号可能会引起得到该信号的电路发生故障。为了避免这种情况,在时钟同步电路中,在设置和互连之后,必须在时钟和选通信号到达输出选通时钟信号的“与”门之前,检查时钟和选通信号中产生的延迟时间。如果发现在选通时钟信号中出现了假信号,就必然要重新进行设置和互连,例如插入备用电路,或者甚至重新设计整个电路,以便调节时钟和选通信号中的延迟时间。
为达到此目的,根据本发明,提供一种具有以下部分的选通时钟产生电路第一选通信号产生电路,它接收连续脉动的时钟信号,并产生具有与时钟信号的边沿同步的转换点的第一选通信号;第二选通信号产生电路,它产生相对于第一选通信号偏离了时钟信号的半个周期的第二选通信号;以及输出控制电路,它根据第一和第二选通信号来接通和断开时钟信号的输出。
图14是表示传统选通时钟产生电路的结构的示例的示意图;图15A是表示图14的选通时钟产生电路的操作的时序图,其中选通信号和时钟信号的延迟时间相同;图15B是表示图14的选通时钟产生电路的操作的时序图,其中选通信号比时钟信号延迟得多;图15C是表示图14的选通时钟产生电路的操作的时序图,其中时钟信号比选通信号延迟得多;图16是表示传统选通时钟产生电路的结构的另一示例的示意图;图17A是表示图16的选通时钟产生电路的操作的时序图,其中选通信号和时钟信号的延迟时间相同;图17B是表示图16的选通时钟产生电路的操作的时序图,其中选通信号比时钟信号延迟得多;图17C是表示图16的选通时钟产生电路的操作的时间图,其中时钟信号比选通信号延迟得多;图18A、18B和18C是表示时钟同步电路的结构的示意图;图19是表示包含图14的选通时钟产生电路的时钟同步电路的结构的示意图;以及图20是表示代表图19的时钟同步电路的HDL中描述的示意图。
在输入端子1接收时钟信号CLK1,输入端子1通过“或”门BUF1与“或”门BUF2的输入端子、“或”门BUF3的输入端子以及反相器INV1的输入端子相连。
“或”门BUF2的输出端子与触发器FF1的时钟输入端子相连。“或”门BUF3的输出端子与“与”门AN1的第二输入端子相连。反相器INV1的输出端子与触发器FF2的时钟输入端子相连。
在输入端子2接收数据信号Data1,输入端子2与触发器FF1的数据输入端子以及触发器FF2的数据输入端子相连。触发器FF1的输出端子与“与”门AN1的第一输入端子相连。“与”门AN1的输出端子与“与”门AN2的第一输入端子相连。触发器FF2的输出端子与“与”门AN2的第二输入端子相连。“与”门AN2的输出端子与输出端子3相连,在此处输出选通时钟信号GCLK1。
现在参考图1的电路结构图和图3的时序图来描述以这种方式构造的选通时钟产生电路的操作。应当指出,提供给图1所示的选通时钟产生电路的时钟信号CLK1和数据信号Data1具有与图15A所示相同的波形。
在输入端子1接收的时钟信号CLK1通过“或”门BUF1和“或”门BUF2到达触发器FF1的时钟输入端子。在输入端子2接收的数据信号Data1到达触发器FF1的数据输入端子。结果,选通信号Gate1从触发器FF1的输出端子提供给“与”门AN1的第一输入端子,选通信号Gate1具有如图3所示的波形,其中数据信号Data1的转换点延迟到时钟信号CLK1的上升沿。
在输入端子1接收的时钟信号CLK1还通过“或”门BUF3到达“与”门AN1的第二输入端子。“与”门AN1将作为选通信号Gate1和时钟信号CLK1的“与”值的信号输出到“与”门AN2的第一输入端子。
在输入端子1接收的时钟信号CLK1还通过“或”门BUF1和反相器INV1到达触发器FF2的时钟输入端子。在输入端子2接收的数据信号Data1也到达触发器FF2的数据输入端子。结果,选通信号Gate2从触发器FF2的输出端子提供给“与”门AN2的第二输入端子,选通信号Gate2具有如图3所示的波形,其中数据信号Data1的转换点延迟到时钟信号CLK1的下降沿。
提供给触发器FF1的数据输入端子的数据信号Data1在包含了图1的选通时钟产生电路的时钟同步电路中的某处产生。由于时钟同步电路具有同步设计,数据信号Data1是从在时钟信号CLK1的上升沿改变状态的信号中产生的信号。因此,从触发器FF2输出的选通信号Gate2是相对于选通信号Gate1提前了时钟信号CLK1的半个周期的信号。
如上所述,“与”门AN2在其第一输入端子处接收作为选通信号Gate1和时钟信号CLK1的“与”值的信号,并且在其第二输入端子处接收选通信号Gate2。因此,“与”门AN2将作为选通信号Gate1、选通信号Gate2和时钟信号CLK1的“与”值的选通时钟信号GCLK1输出给输出端子3。应当指出,选通信号Gate1和选通时钟信号GCLK1具有与图15A所示相同的波形。
这样,通过数据信号的输入指定其中需要时钟信号的周期,可以只在需要时钟信号的时间内以选通时钟信号GCLK1的形式输出时钟信号。
图1的选通时钟产生电路不会产生假信号,现在描述如何实现这一点。图4表示在图3所示的周期T1、T2和T3内“与”门AN1的输入信号以及“与”门AN2的输入和输出信号的状态变化。图5表示在图3所示的周期T4、T5和T6内“与”门AN1的输入信号以及“与”门AN2的输入和输出信号的状态变化。在图4和5中,在各圈中从左边起表示了时钟信号CLK1的逻辑状态、选通信号Gate1的逻辑状态和选通信号Gate2的逻辑状态,在“/”符号的右边表示“与”门AN2的输出状态,即选通时钟信号GCLK1的逻辑状态。
首先描述图4。在周期T1内,状态为“100/0”。在从周期T1到T2的过渡中,时钟信号CLK1和选通信号Gate2发生翻转,因此状态最终转变为“001/0”。这里,根据选通时钟产生电路中的设置和互连,状态能以下述两种方式之一变化如果时钟信号CLK1比选通信号Gate2翻转得早,那么状态从“100/0”变为“000/0”再变为“001/0”;如果选通信号Gate2比时钟信号CLK1翻转得早,那么状态从“100/0”变为“101/0”再变为“001/0”。
无论状态以哪种方式变化,选通时钟信号GCLK1的逻辑状态保持为“0”。因此,在从周期T1到T2的过渡中,在选通时钟信号GCLK1中不会出现假信号。
在周期T2内,状态为“001/0”。在从周期T2到T3的过渡中,时钟信号CLK1和选通信号Gate1发生翻转,因此状态最终转变为“111/1”。这里,根据选通时钟产生电路中的设置和互连,状态以下述两种方式之一变化如果时钟信号CLK1比选通信号Gate1翻转得早,那么状态从“001/0”变为“101/0”再变为“111/1”;如果选通信号Gate1比时钟信号CLK1翻转得早,那么状态从“001/0”变为“011/0”再变为“111/1”。
无论状态以哪种方式变化,选通时钟信号GCLK1的逻辑状态在周期T3开始之前只从“0”到“1”变化一次。因此,在从周期T2到T3的过渡中,在选通时钟信号GCLK1中不会出现假信号。
下面描述图5。在周期T4内,状态为“111/1”。在从周期T4到T5的过渡中,时钟信号CLK1和选通信号Gate2发生翻转,因此状态最终转变为“010/0”。这里,根据选通时钟产生电路中的设置和互连,状态能够以下述两种方式之一变化如果时钟信号CLK1比选通信号Gate2翻转得早,那么状态从“111/1”变为“011/0”再变为“010/0”;如果选通信号Gate2比时钟信号CLK1翻转得早,那么状态从“111/1”变为“110/0”再变为“010/0”。
无论状态以哪种方式变化,选通时钟信号GCLK1的逻辑状态只从“1”到“0”变化一次,然后保持为“0”。因此,在从周期T4到T5的过渡中,在选通时钟信号GCLK1中不会出现假信号。
在周期T5内,状态为“010/0”。在从周期T5到T6的过渡中,时钟信号CLK1和选通信号Gate1发生翻转,因此状态最终转变为“100/0”。这里,根据选通时钟产生电路中的设置和互连,状态能够以下述两种方式之一变化如果时钟信号CLK1比选通信号Gate1翻转得早,那么状态从“010/0”变为“110/0”再变为“100/0”;如果选通信号Gate1比时钟信号CLK1翻转得早,那么状态从“010/0”变为“000/0”再变为“100/0”。
无论状态以哪种方式变化,选通时钟信号GCLK1的逻辑状态保持为“0”。因此,在从周期T5到T6的过渡中,在选通时钟信号GCLK1中不会出现假信号。
这样,图1的选通时钟产生电路不会产生假信号。这就防止了得到从图1的选通时钟产生电路输出的选通时钟信号的电路发生故障。因此,无须重新进行设置和互连,比如插入备用电路或者重新设计整个电路以便调节延迟时间。
图2表示本发明第二实施例的选通时钟产生电路的结构。应当指出,用相同标号来表示与图16中所示相同的这些电路元件和信号。
在输入端子4接收时钟信号CLK2,输入端子4与反相器INV2的输入端子和“或”门BUF5的输入端子相连。
反相器INV2的输出端子与“或”门BUF4的输入端子以及反相器INV3的输入端子相连。“或”门BUF5的输出端子与“与”门AN3的第二输入端子相连。
“或”门BUF4的输出端子与触发器FF3的时钟输入端子相连。反相器INV3的输出端子与触发器FF4的时钟输入端子相连。
在输入端子5接收数据信号Data2,输入端子5与触发器FF3的数据输入端子相连。触发器FF3的输出端子与“与”门AN3的第一输入端子和触发器FF4的数据输入端子相连。“与”门AN3的输出端子与“与”门AN4的第一输入端子相连。触发器FF4的输出端子与“与”门AN4的第二输入端子相连。“与”门AN4的输出端子与输出端子6相连,在此处输出选通时钟信号GCLK2。
现在参考图2的电路结构图和图6的时序图来描述以这种方式构造的选通时钟产生电路的操作。在输入端子4接收到的时钟信号CLK2通过反相器INV2被反相,然后通过“或”门BUF4到达触发器FF3的时钟输入端子。在输入端子5接收的数据信号Data2到达触发器FF3的数据输入端子。结果,选通信号Gate3从触发器FF3的输出端子提供给“与”门AN3的第一输入端子,选通信号Gate3具有如图6所示的波形,其中数据信号Data2的转换点延迟到时钟信号CLK2的下降沿。
在输入端子4接收到的时钟信号CLK2还通过“或”门BUF5到达“与”门AN3的第二输入端子。“与”门AN3将作为选通信号Gate3和时钟信号CLK2的“与”值的信号输出到“与”门AN4的第一输入端子。
在输入端子4接收到的时钟信号CLK2还通过反相器INV2和INV3到达触发器FF4的时钟输入端子。从触发器FF3的输出端子输出的选通信号Gate3到达触发器FF4的数据输入端子。结果,选通信号Gate4从触发器FF4的输出端子提供给“与”门AN4的第二输入端子,选通信号Gate4具有这样的波形,其中选通信号Gate3的转换点延迟到时钟信号CLK2的上升沿。
从触发器FF4输出的选通信号Gate4是从触发器FF3输出的选通信号Gate3的延迟形式,因此,由触发器FF4输出的选通信号Gate4是相对于触发器FF3输出的选通信号Gate3滞后了时钟信号CLK1的半个周期的信号。
如上所述,“与”门AN4在其第一输入端子接收作为选通信号Gate3和时钟信号CLK2的“与”值的信号,并且在其第二输入端子接收选通信号Gate4。因此,“与”门AN4将作为选通信号Gate3、选通信号Gate4和时钟信号CLK2的“与”值的选通时钟信号GCLK2输出到输出端子6。应当指出,选通信号Gate3和选通时钟信号GCLK2具有与图17A所示相同的波形。
这样,通过数据信号的输入来指定其中需要时钟信号的周期,有可能只在需要时钟信号的周期中以选通时钟信号GCLK2的形式输出时钟信号。
图2的选通时钟产生电路不会产生假信号,现在描述如何实现这一点。图7表示在图6所示的周期T7、T8和T9内“与”门AN3的输入信号以及“与”门AN4的输入和输出信号的状态变化。图8表示在图6所示的周期T10、T11和T12中“与”门AN3的输入信号以及“与”门AN4的输入和输出信号的状态变化。在图7和8中,在各圈中从左边起表示了时钟信号CLK2的逻辑状态、选通信号Gate3的逻辑状态和选通信号Gate4的逻辑状态,在“/”符号的右边表示“与”门AN4的输出状态,即选通时钟信号GCLK2的逻辑状态。
首先描述图7。在周期T7内,状态为“100/0”。在从周期T7到T8的过渡中,时钟信号CLK2和选通信号Gate3发生翻转,因此状态最终转变为“010/0”。这里,根据选通时钟产生电路中的设置和互连,状态能够以下述两种方式之一变化如果时钟信号CLK2比选通信号Gate3转换得早,那么状态从“100/0”变为“000/0”再变为“010/0”;如果选通信号Gate3比时钟信号CLK2转换得早,那么状态从“100/0”变为“110/0”再变为“010/0”。
无论状态以哪种方式变化,选通时钟信号GCLK2的逻辑状态保持为“0”。因此,在从周期T7到T8的过渡中,在选通时钟信号GCLK2中不会出现假信号。
在周期T8内,状态为“010/0”。在从周期T8到T9的过渡中,时钟信号CLK2和选通信号Gate4发生翻转,因此状态最终转变为“111/1”。这里,根据选通时钟产生电路中的设置和互连,状态会以下述两种方式之一变化如果时钟信号CLK2比选通信号Gate4转换得早,那么状态从“010/0”变为“110/0”再变为“111/1”;如果选通信号Gate4比时钟信号CLK2转换得早,那么状态从“010/0”变为“011/0”再变为“111/1”。
无论状态以哪种方式变化,选通时钟信号GCLK2的逻辑状态在周期T9开始之前只从“0”到“1”变化一次。因此,在从周期T8到T9的过渡中,在选通时钟信号GCLK2中不会出现假信号。
下面描述图8。在周期T10内,状态为“111/1”。在从周期T10到T11的过渡中,时钟信号CLK2和选通信号Gate3发生翻转,因此状态最终转变为“001/0”。这里,根据选通时钟产生电路中的设置和互连,状态会以下述两种方式之一变化如果时钟信号CLK2比选通信号Gate3转换得早,那么状态从“111/1”变为“011/0”再变为“001/0”;如果选通信号Gate3比时钟信号CLK2转换得早,那么状态从“111/1”变为“101/0”再变为“001/0”。
无论状态以哪种方式变化,选通时钟信号GCLK2的逻辑状态只从“1”到“0”变化一次,然后保持为“0”。因此,在从周期T10到T11的过渡中,在选通时钟信号GCLK2中不会出现假信号。
在周期T11内,状态为“001/0”。在从周期T11到T12的过渡中,时钟信号CLK2和选通信号Gate4发生翻转,因此状态最终转变为“100/0”。这里,根据选通时钟产生电路中的设置和互连,状态能以下述两种方式之一变化如果时钟信号CLK2比选通信号Gate4转换得早,那么状态从“001/0”变为“101/0”再变为“100/0”;如果选通信号Gate4比时钟信号CLK2转换得早,那么状态从“001/0”变为“000/0”再变为“100/0”。
无论状态以哪种方式变化,选通时钟信号GCLK2的逻辑状态保持为“0”。因此,在从周期T11到T12的过渡中,在选通时钟信号GCLK2中不会出现假信号。
这样,图2的选通时钟产生电路不会产生假信号。这就防止了得到从图2的选通时钟产生电路输出的选通时钟信号的电路发生故障。因此,无须重新进行设置和互连,比如插入备用电路或者重新设计整个电路以便调节延迟时间。
如上所述,时钟同步电路通常具有同步设计。在不仅采用按照原样的外部时钟信号、而且采用通过使该外部时钟信号反相而得到的反相时钟信号的同步设计中,设置和互连需要将反相时钟信号当作另一时钟信号来处理。这样,需要将其中时滞减至最小的时钟信号的数目增多,这不仅使设置和互连更困难,而且增加了借以输入和输出时钟信号的“或”门的数目。这就增大了安装时钟同步电路的芯片的面积,从而增加了成本。
为避免这种情况,最好不将时钟同步电路设计成如图18C所示的、将送到触发器FF28到FF31的时钟信号分为两类的电路,而是设计成如图18A所示的电路,其中送到触发器FF20到FF23的时钟信号为单一类型的,或者设计成如图18B所示的电路,其中送到触发器FF24到FF27的时钟信号也为单一类型的。
在图18A所示的时钟同步电路中,由于直接把时钟信号CLK送到所有触发器FF20到FF23,即不通过反相器传递,因此提供给触发器FF20到FF23的时钟信号为单一类型的。在图18B所示的时钟同步电路中,由于时钟信号CLK通过反相器INV20提供给所有的触发器FF24到FF27,因此提供给触发器FF24到FF27的时钟信号为单一类型的。在图18C所示的时钟同步电路中,时钟信号CLK不通过反相器传递而送到触发器FF28和29,并且通过反相器INV21提供给触发器FF30和FF31;因此,提供给触发器FF28到FF31的时钟信号分为两种类型。
当上述本发明的选通时钟产生电路之一、例如图1所示的选通时钟产生电路结合在时钟同步电路中时,整个电路结构如图9所示。应当指出,在图9中,与图1所示相同的电路元件和信号以相同的标号表示。
一般来说,图9的时钟同步电路需要设计成将提供给触发器FF2的时钟信号当作单独的时钟信号。这就使得设计者很难将同步设计用于结合了根据本发明的选通时钟产生电路的时钟同步电路中。
为克服此困难,最好先设计采用传统的选通时钟产生电路的时钟同步电路,然后再修改此时钟同步电路,使得它与传统的选通时钟产生电路相对应的部分改变成根据本发明的选通时钟产生电路。现在具体地描述如何达到此目的。
图10表示用于修改时钟同步电路、从而将包含在其中的传统的选通时钟产生电路更改为根据本发明的选通时钟产生电路的电路修改装置。图10的电路修改装置配备了接收输入数据的输入装置11,输入数据例如为电路图信息或网表、或者以硬件描述语言(这里称为“HDL”)编写的描述;输出修改结果的输出装置12;存储输入数据和修改结果的硬盘13;存储器14,其中保存了进行修改所必需的数据;记录媒体15,其中记录了用于执行修改的程序;以及中央处理器(CPU)16,它按照记录在记录媒体15上的程序来执行修改。CPU16通过总线17与输入装置11、输出装置12、硬盘13、存储器14以及记录媒体15相连。
CPU16读取记录在记录媒体15上的程序,并按照程序执行下述处理过程。预先存储在存储器14中的数据包括电路信息数据、将增加到输入数据中的电路元件的网表、以及代表将添加到输入数据中的电路元件的HDL描述的数据。
现在参考图10的结构图和图11A与11B的流程图来描述当图10的电路修改装置接收了网表时所执行的处理。
图11A表示到增加触发器的步骤为止的处理步骤。首先,为输入装置11提供包含传统选通时钟产生电路的时钟同步电路的网表,例如,如图19所示的电路的网表(步骤S10)。应当指出,在图19中,与图9所示的电路元件和信号相同的电路元件和信号以相同标号表示。还为输入装置11提供了有关哪个端子接收时钟信号的信息,即指明在输入端子1接收时钟信号的信息(步骤S20)。
提供给输入装置11的数据通过CPU16传送给存储器14。根据传到存储器14的数据,CPU16在网表中搜寻与接收时钟信号的端子相连的电路元件,并列出组成网表的电路元件(步骤S30)。这里,“或”门和反相器被视为布线的一部分,要搜寻连接在它们之上的电路元件。因此,具体地说,将列出触发器FFl、FF10到FF12以及“与”门AN1。
接着CPU 16从步骤S30中列出的电路元件中抽取除在其时钟输入端子接收时钟信号的触发器以外的电路元件,即只有“与”门AN1(步骤S40)。在步骤S40中,“与”门AN1被视为根据时钟信号产生选通时钟信号的电路元件。
然后,CPU 16抽取产生输入信号给步骤S40中所抽取的电路元件的触发器、即触发器FF1(步骤S50)。
接着,CPU 16检查步骤S40中抽取的电路元件的输入信号的转换点是否与时钟信号的上升沿同步(步骤S60)。这里,输入装置11可接收指明在步骤S40中抽取的电路元件的输入信号的转换点是否与时钟信号的上升沿同步的信息。或者,也可能搜索在接收时钟信号的输入端子与触发器之间连接的反相器,并根据所发现的反相器的数目来检查在步骤S40中抽取的电路元件的输入信号的转换点是否与时钟信号的上升沿同步。
如果在步骤S40中抽取的电路元件的输入信号的转换点与时钟信号的上升沿同步(步骤S60的结果为“是”),那么CPU 16从预先存储在存储器14内的数据中取出触发器,将其作为接收与步骤S50中抽取的触发器相同的数据输入的新触发器而增加到网表中(步骤S70)。然后处理步骤进行到如图11B所示的步骤S90。
另一方面,如果在步骤S40中抽取的电路元件的输入信号的转换点与时钟信号的上升沿不同步而是与其下降沿同步(步骤S60的结果为“否”),那么CPU 16从预先存储在存储器14内的数据中取出触发器,将其当作接收在步骤S50中抽取的触发器的输出数据作为数据输入的新触发器而增加到网表中(步骤S80)。然后处理步骤进行到如图11B所示的步骤S90。
在所讨论的具体情况中,在步骤S10中提供的是图19的电路的网表,因此,“与”门的输入信号的转换点与时钟信号的上升沿同步。因此,CPU 16不执行步骤S80,而是执行步骤S70。也就是说,将接收与触发器FF1相同的数据输入的新触发器增加到网表中。
图11B表示在增加了触发器之后的处理步骤。在步骤S90中,CPU16从预先存储在存储器14内的数据中取出反相器,并将其作为接收时钟信号的反相器添加到网表中。然后,CPU 16重写网表,使得由此添加的反相器的输出与在步骤S70或S80中增加的触发器的时钟输入相连(步骤S100)。
接着,CPU 16从预先存储在存储器14内的数据中取出“与”门,将其添加到网表中(步骤S110)并重写网表,使得在步骤S40中抽取的电路元件的输出和在步骤S70或S80中添加的触发器的输出与由此添加的“与”门的输入相连(步骤S120)。
然后,CPU 16重写网表,使得在步骤S110中添加的“与”门的输出与已经和步骤S40中抽取的电路元件的输出相连的输出端子相连(步骤S130),然后结束处理程序。CPU 16则将通过该处理程序修改的网表作为修改结果存储在硬盘13上。
作为执行此程序的图10的电路修改装置的结果,图19的时钟同步电路的网表被修改为图9的时钟同步电路的网表。这允许设计者简单地设计包含选通时钟产生电路的时钟同步电路,该选通时钟产生电路根据传统使用的单一选通信号来接通和断开时钟信号的输出,因此使设计者免于用增加数目的时钟来设计。
然而,当通过将其网表提供给如上所述的图10的电路修改装置来修改电路时,所修改的电路可能是非功能的。例如,在修改电路为图9所示的时钟同步电路的情况下,提供给所添加的触发器FF2的数据输入端子的数据信号为提供给如图19所示的待修改的时钟同步电路中的触发器FF1的数据输入端子的数据信号Data1。在图19所示的待修改的时钟同步电路中,在从时钟信号CLK1的一个上升沿到下一个上升沿的一个整周期内,数据信号Data1只有到达触发器FF1的数据输入端子。另一方面,在图9所示的修改过的时钟同步电路中,数据信号Data1需要在从时钟信号CLK1的一个上升沿到下一个下降沿的时期内到达所添加的触发器FF2的数据输入端子。也就是说,在图9所示的修改过的时钟同步电路中,数据信号Data1需要在常规容许的周期的一半内到达触发器FF2。这样,对延迟时间的限制更加严格,因此修改过的时钟同步电路并不总是正常地工作。
为避免这种情况,不对已经输入电路图的比如电路图信息或网表进行修改,最好在其经过逻辑综合之前对HDL描述进行修改。通过在逻辑综合之前对HDL描述进行修改,可以在逻辑综合期间检查是否满足对延迟时间的限制,从而检查这样修改的电路是否能正常工作。另外,也可能优化电路的各个方面,包括延迟时间。
现在参考图13A和13B中的流程图来描述当图10的电路修改装置接收了逻辑综合之前的HDL描述时进行的处理步骤。
图13A表示到添加代表触发器的描述的步骤为止的处理程序。首先,将例如与图19所示时钟同步电路在逻辑上等效的、如图20所示的HDL描述提供给输入装置11(步骤S210)。在图20中表示以超高速集成电路硬件描述语言(VHDL)编写的描述,其中省略了除与图19的时钟同步电路的部分20逻辑等效的部分以外的描述部分。为简明起见,在下面的说明中,假定处理程序不涉及图20中省略的描述部分。
然后,将指明HDL描述中的“clk1”代表时钟信号的信息提供给输入装置11(步骤S220)。
提供给输入装置11的数据通过CPU 16传送给存储器14。根据传送给存储器14的数据,CPU 16在HDL描述中搜寻采用“clk1”作为其输入的过程语句或并行处理语句,并列出这些语句(步骤S230)。结果,从图20所示的HDL描述中发现并列出过程语句A1和并行处理语句B1。
接着,CPU 16从步骤S230中列出的过程语句或并行处理语句中抽取除用“clk1”代替表示信号边沿的描述“event”的语句之外的过程语句或并行处理语句(步骤S240)。结果,只抽取并行处理语句B1。并行处理语句B1是接收“clk1”和“gate1”以及输出选通时钟信号“gclk1”的描述。
然后,CPU 16抽取输出信号以用作给步骤S240中抽取的过程语句或并行处理语句的输入的过程语句或并行处理语句(步骤S250)。结果,抽取了输出“gate1”作为并行处理语句B1的输入信号的过程语句A1。
接着,CPU 16检查在步骤S240中抽取的过程语句或并行处理语句的输入信号的边沿是否与“clk1”的上升沿同步(步骤S260)。如果“event”附近的描述为“clk1’event and clk1=’1’”,则判断在步骤S240中抽取的过程语句或并行处理语句的输入信号的边沿与“clk1”的上升沿同步,如果“event”附近的描述为“clk1’event and clk1=’0’”,则判断在步骤S240中抽取的过程语句或并行处理语句的输入信号的边沿与“clk1”的下降沿同步。
如果在步骤S240中抽取的过程语句或并行处理语句的输入信号的边沿与“clk1”的上升沿同步(步骤S260的结果为“是”),那么CPU16检查在步骤S250中抽取的过程语句或并行处理语句是否为只代表触发器的描述。如果它包含了除触发器以外的电路的描述,那么CPU 16将其分成只代表触发器的描述和代表除触发器以外的电路的描述。
然后,CPU 16从预先存储在存储器14内的数据中抽取代表触发器的描述,将其作为新描述而添加到HDL描述中,该新描述代表接收与步骤S250中抽取的过程语句或并行处理语句所代表的触发器相同的数据输入的触发器(步骤S270)。然后处理程序进行到图13B所示的步骤S290。
另一方面,如果在步骤S240中抽取的过程语句或并行处理语句的输入信号的边沿与“clk1”的上升沿不同步,而是与“clk1”的下降沿同步(步骤S260中“否”),则CPUl 6检查在步骤S250中抽取的过程语句或并行处理语句是否为只代表触发器的描述。如果它包含了不同于触发器的电路的描述,那么CPU16将其分成只代表触发器的描述和代表除触发器之外的电路的描述。
然后,CPU 16从预先存储在存储器14内的数据中抽取代表触发器的描述,将其作为新描述而添加到HDL描述中,该新描述代表接收在步骤S250中抽取的过程语句或并行处理语句所代表的触发器的输出、作为其数据输入的触发器(步骤S280)。然后处理程序进行到如图13B所示的步骤S290。
在所讨论的特定情况中,在步骤S210中提供的是图20的HDL描述,因此,在步骤S240中抽取的并行处理语句B1的输入信号的边沿与时钟信号的上升沿同步。因此,CPU 16不执行步骤S280而是执行步骤S270。具体地说,其操作如下。
在过程语句A1的描述中,分离出除代表触发器的部分以外的部分,并将其作为过程语句A2添加到图12中。而且,引入新的信号名“data_input_to_ff1”,它代表提供给触发器的数据输入端子的数据信号。为处理这一情况,过程语句A1被修改为图12中的过程语句A3。也就是说,过程语句A1被分成过程语句A2和过程语句A3,使得在分离后的后者共同在逻辑上等效于分离前的前者。
此外,在HDL描述中添加了新的过程语句,它代表在其数据输入端接收信号“data_input_to_ff1”的触发器。这就是在步骤S270中具体执行的操作。
图13B表示在添加代表触发器的描述之后的处理程序。在步骤S290中,CPU 16从预先存储在存储器14内的数据中取出代表反相器的描述,并将其作为代表接收时钟信号的反相器的描述而增加到HDL描述中。具体地说,CPU 16引入了新的信号名“inv clk1”,并在HDL描述中添加如图12所示的新的并行处理语句B2。
然后,CPU 16重写HDL描述,使得由此添加的描述所代表的反相器的输出与在步骤S270或S280中添加的描述所代表的触发器的时钟输入端子相连(步骤S300)。具体地说,信号“inv_clk1”被引入到步骤S270或S280中添加的过程语句中的“event”中,然后生成图12所示的过程语句A4。
接着,CPU 16从预先存储在存储器14内的数据中取出代表“与”门的描述,并将其添加到HDL描述中(步骤S310)。
此外,CPU 16通过引入新的信号名“gate1_tmp”重写HDL描述,使得在步骤S240中抽取的过程语句或并行处理语句的输出和在步骤S270或S280中添加的描述所代表的触发器的输出与上述添加的描述所代表的“与”门的输入相连(步骤S320)。结果,把过程语句B1修改为图12所示的并行处理语句B3。
然后,CPU 16重写HDL描述,使得在步骤S310中添加的描述所代表的“与”门的输出信号与在步骤S230中抽取的过程语句或并行处理语句的输出信号相同(步骤S330),并且结束该处理程序。因此,在步骤S310中添加的描述变为如图12所示的并行处理语句B4。
此外,CPU 16将通过所述处理程序修改的HDL描述作为修改结果存储在硬盘13上。作为执行此程序的图10的电路修改装置的结果,图20所示的HDL描述被修改为图12所示的HDL描述。图12所示的HDL描述代表图9的时钟同步电路。应当指出,在图12所示的HDL描述中省略了除与图9的时钟同步电路的部分21逻辑等效的部分以外的部分。
此后,当这样修改过的HDL描述经过逻辑综合时,设计者在对延迟时间加上足够限制的前提下进行逻辑综合,可以检查包括所添加的电路元件的整个时钟同步电路是否正常工作。而且,当发现时钟同步电路正常工作时,设计者不仅可以在延迟时间上,还可以在其它限制因素、如扇出和信号跃迁时间上进行调节。与利用电路信息或网表进行设计的情况相比,这允许对更有可能按照设计来工作的时钟同步电路进行逻辑综合,因此提高了这样设计的时钟同步电路的可靠性。
权利要求
1.一种选通时钟产生电路,它包括第一选通信号产生电路,它接收连续脉动的时钟信号,并产生具有与所述时钟信号的边沿同步的转换点的第一选通信号;第二选通信号产生电路,它产生相对于所述第一选通信号偏离了所述时钟信号的半个周期的第二选通信号;以及输出控制电路,它根据所述第一和第二选通信号接通和断开所述时钟信号的输出。
2.如权利要求1所述的选通时钟产生电路,其特征在于所述第一选通信号产生电路接收数据信号,并且通过根据所述时钟信号延迟所述数据信号来产生所述第一选通信号,使得所述数据信号的转换点与所述时钟信号的边沿同步。
3.如权利要求2所述的选通时钟产生电路,其特征在于所述第一选通信号产生电路产生所述第一选通信号,使得所述第一选通信号的所述转换点与所述时钟信号的上升沿同步。
4.如权利要求3所述的选通时钟产生电路,其特征在于所述第二选通信号产生电路接收所述时钟信号和所述数据信号,并通过根据所述时钟信号延迟所述数据信号来产生所述第二选通信号。
5.如权利要求2所述的选通时钟产生电路,其特征在于所述第一选通信号产生电路产生所述第一选通信号,使得所述第一选通信号的所述转换点与所述时钟信号的下降沿同步。
6.如权利要求5所述的选通时钟产生电路,其特征在于所述第二选通信号产生电路接收所述时钟信号和所述第一选通信号,并通过根据所述时钟信号延迟所述第一选通信号来产生所述第二选通信号。
7.如权利要求3所述的选通时钟产生电路,其特征在于所述输出控制电路输出所述第一选通信号、所述第二选通信号和所述时钟信号的“与”值。
8.如权利要求4所述的选通时钟产生电路,其特征在于所述输出控制电路输出所述第一选通信号、所述第二选通信号和所述时钟信号的“与”值。
9.如权利要求5所述的选通时钟产生电路,其特征在于所述输出控制电路输出所述第一选通信号、所述第二选通信号和所述时钟信号的“与”值。
10.如权利要求6所述的选通时钟产生电路,其特征在于所述输出控制电路输出所述第一选通信号、所述第二选通信号和所述时钟信号的“与”值。
11.一种修改时钟同步电路的电路图信息或网表的方法,它包括输入步骤,该步骤至少输入包含选通时钟产生电路的第一时钟同步电路的电路图信息或网表,所述选通时钟产生电路根据通过按照所述时钟信号延迟数据信号、使得所述数据信号的所述转换点与所述时钟信号的上升沿同步而产生的第一选通信号,接通和断开连续脉动的时钟信号的输出,或者包含选通时钟产生电路的第二时钟同步电路的电路图信息或网表,所述选通时钟产生电路根据通过按照所述时钟信号延迟数据信号、使得所述数据信号的转换点与所述时钟信号的下降沿同步而产生的第一选通信号,接通和断开连续脉动的时钟信号的输出,其中,当输入所述第一时钟同步电路的电路图信息或网表时,所述方法除所述输入步骤以外还包括为所述第一时钟同步电路添加用于使所述时钟信号反相的反相器的步骤;在所述电路图信息或网表中搜寻产生所述第一选通信号的触发器的步骤;在所述电路图信息或网表中添加触发器的步骤,所述触发器接收与产生所述第一选通信号的所述触发器相同的数据输入,并接收来自所述反相器的信号输出作为时钟输入;在所述电路图信息或网表中添加“与”门的步骤,所述“与”门输出从所述添加的触发器输出的信号与在所述选通时钟产生电路被修改前已从所述选通时钟产生电路输出的信号的“与”值;以及将从所述添加的“与”门输出的信号作为在所述选通时钟产生电路被修改后、所述选通时钟产生电路的输出信号而输出的步骤,以及当输入所述第二时钟同步电路的电路图信息或网表时,所述方法除所述输入步骤以外还包括在所述第二时钟同步电路中搜寻产生所述第一选通信号的触发器的步骤;在所述电路图信息或网表中添加触发器的步骤,所述触发器接收与产生所述第一选通信号的所述触发器相同的数据输入,并接收所述时钟信号作为时钟输入;在所述电路图信息或网表中添加“与”门的步骤,所述“与”门输出从所述添加的触发器输出的信号与在所述选通时钟产生电路被修改前已从所述选通时钟产生电路输出的信号的“与”值;以及将从所述添加的“与”门输出的信号作为在所述选通时钟产生电路被修改后所述选通时钟产生电路的输出信号而输出的步骤。
12.一种修改以硬件描述语言编写的代表时钟同步电路的描述的方法,它包括输入步骤,该步骤至少输入在经过逻辑综合之前、代表包含选通时钟产生电路的第一时钟同步电路的硬件描述语言的描述,所述选通时钟产生电路根据通过按照所述时钟信号延迟数据信号、使得所述数据信号的转换点与所述时钟信号的上升沿同步而产生的第一选通信号,接通和断开连续脉动的时钟信号的输出,或者在进行逻辑综合之前、代表包含选通时钟产生电路的第二时钟同步电路的硬件描述语言的描述,所述选通时钟产生电路根据通过按照所述时钟信号延迟数据信号、使得所述数据信号的转换点与所述时钟信号的下降沿同步而产生的第一选通信号,接通和断开连续脉动的时钟信号的输出,其中,当输入在经过逻辑综合之前的、代表所述第一时钟同步电路的硬件描述语言的描述时,所述方法除所述输入步骤外还包括在经过逻辑综合之前、代表所述第一时钟同步电路的所述硬件描述语言的描述中添加代表用于使所述时钟信号反相的反相器的硬件描述语言的描述的步骤;在经过逻辑综合之前、代表所述第一时钟同步电路的所述硬件描述语言的描述中搜寻代表产生所述第一选通信号的触发器的描述的步骤;在经过逻辑综合之前、代表所述第一时钟同步电路的所述硬件描述语言的描述中添加代表触发器的硬件描述语言的描述的步骤,所述触发器接收与产生所述第一选通信号的所述触发器相同的数据输入,并接收来自所述反相器的信号输出作为时钟输入;在经过逻辑综合之前、代表所述第一时钟同步电路的所述硬件描述语言的描述中添加代表“与”门的硬件描述语言的描述的步骤,所述“与”门输出从所述添加的触发器输出的信号与在所述选通时钟产生电路被修改之前已从所述选通时钟产生电路输出的信号的“与”值;以及重写经过逻辑综合之前、代表所述第一时钟同步电路的所述硬件描述语言的描述的步骤,使得从所述添加的“与”门输出的信号作为在修改所述选通时钟产生电路之后所述选通时钟产生电路的输出信号而输出,以及当输入在经过逻辑综合之前、代表所述第二时钟同步电路的硬件描述语言的描述时,所述方法除所述输入步骤以外还包括在经过逻辑综合之前、代表所述第二时钟同步电路的所述硬件描述语言的描述中搜寻代表产生所述第一选通信号的触发器的描述的步骤;在经过逻辑综合之前、代表所述第二时钟同步电路的所述硬件描述语言的描述中添加代表触发器的硬件描述语言的描述的步骤,所述触发器接收与产生所述第一选通信号的触发器相同的数据输入,并接收所述时钟信号作为时钟输入;在经过逻辑综合之前、代表所述第二时钟同步电路的所述硬件描述语言的描述中添加代表“与”门的硬件描述语言的描述的步骤,所述“与”门输出从所述添加的触发器输出的信号与在所述选通时钟产生电路被修改之前已由所述选通时钟产生电路输出的信号的“与”值;以及重写在经过逻辑综合之前、代表所述第二时钟同步电路的所述硬件描述语言的描述的步骤,使得从所述添加的“与”门输出的信号作为在所述选通时钟产生电路被修改后所述选通时钟产生电路的输出信号而输出。
全文摘要
在传统的选通时钟产生电路中,根据电路元件的设置和互连产生不同的信号延迟时间,这常常会引起假信号。为避免这种情况,本发明的选通时钟产生电路具有产生第一选通信号的电路,第一选通信号具有与连续脉动的时钟信号的边沿同步的转换点;产生第二选通信号的电路,第二选通信号相对于第一选通信号偏离了时钟信号的半个周期;以及根据第一和第二选通信号接通和断开时钟信号的输出的电路。即使在第一或第二选通信号的转换点偏离时钟信号的边沿时,也不会产生假信号。
文档编号G06F1/04GK1391152SQ0212430
公开日2003年1月15日 申请日期2002年6月12日 优先权日2001年6月12日
发明者朝井淳毅 申请人:夏普公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1