专利名称:用于时钟树转换处的先入先出(fifo)装置与方法
技术领域:
本发明涉及先入先出(FIFO)设计,尤指用于时钟树转换处的FIFO设计。
背景技术:
在数字电路中,通常使用时钟信号来定义用于电路中数据移动的时间参考,而为使电路中受时钟信号驱动的各组件能够接收到时钟信号,通常会自该时钟信号的其中一点或其来源产生时钟树(Clock Tree)以供这些组件使用,但时钟树产生前与产生后的时钟信号间会具有一延迟(Latency),因而造成数据的维持时间(Hold Time)必须作对应的调整。图I为遭遇上述问题的一示意图,其中缓冲器或延迟单元11用来表示由时钟源产生的时钟树与时钟源间所具有的延迟(Latency),须注意的是,图中的缓冲器或延迟单元11是时钟树的延迟示意,非设计所加入的缓冲器或延迟单元。图I中的来源端具有缓存器13,其接收输入信号并由来源时钟驱动,输入信号的数据由缓存器13传送至后端的缓存器15,而来源时钟产生时钟树以驱动缓存器15。在本发明中,将经由来源时钟产生时钟树的界面称为时钟树转换处。由图I的时序图可看出来时钟树与来源时钟间的延迟会使组件15在接收输入数据时发生问题,使得输入信号由来源时钟的时钟域(Clock Domain)传输至时钟树的时钟域时无法被组件15正确接收。而解决这项问题的传统办法是运用如图2所示的方式,插入缓冲器或延迟单元17,使输入数据在时序上能够正确地被组件15接收。或是如图3所示,以可调式延迟单元调整时钟树的上升缘(Rising Edge),使其在正确的时机触发组件15以安全地接收输入信号的数据。上述的解决方案其概念虽然简单,然而实际的电路却往往不如上述单纯,因此随着后端电路功能增加与复杂化,时钟树所造成的时钟延迟的影响也越显著,使得上述方式在实行上变得相当繁琐而耗费时程。举例来说,如图4所示,显示器的信号输入常有多种来源如HDMI、Tuner、色差端子、S端子、或ADC…等,这些输入来源41 44本身所具有的内部电路会产生各自的时钟树与数据,而这些时钟树与数据再经由多任务器45与46传输至后端的缓存器47,因为该些时钟树具有各自的延迟(latency),而时钟与数据的延迟的差异必须小于最高处理时钟速度的周期,且该周期的范围可能由13. 5MHz 300MHz,若时钟与数据延迟的差异超过时钟为300MHz的时钟的一个周期,则必定会有维持时间违例(HoldTimeViolation)的状况发生,在显示器的输入来源种类相当多的状况下,所使用的多任务器除了面对速差很大的时钟之外也必须处理数据,而经过多任务器45与46的处理之后会遇到后端的电路,虽然各输入来源端自行产生时钟树,并平衡时钟与数据间的延迟关系,但经过多任务器后,必须再另行产生一个后端电路所需要的时钟树,以避免在来源端一次产生过于庞大的时钟树,或因时钟树过于庞大而无法产生,但随着功能需求增加,后端电路通常十分庞大,且所需的时钟缓冲器(Clock Buffer)亦不在少数,使得所需产生的时钟树相对变得更长,因而必须不断地调整所有输入来源的时钟与数据间的延迟关系,来平衡时钟与数据间的延迟关系,以确保后端电路的第一级可安全地接收所有数据,而数据是否能够被安全接收也与后端时钟树的长度有关,使得这些平衡关系会随着加入新的设计或不同的电路平面图(Floor Plan)而必须重新调整,因此实行起来相当复杂,加上显示器的输入来源非常多,造成后端电路设计上相当大的不便,而影响研发时程与成本。缘此,申请人鉴于习知技术中的缺失,构思出本案以克服上述缺点,以下为本案的简要说明。
发明内容
因此,本发明的目的之一在于隔离时钟树产生前与产生后的时钟信号而使两者独立,以解决传统方法的问题。根据本发明的第一构想,其提供一种先入先出(FIFO)装置,其利用一第一时钟域的一第一时钟信号接收一输入信号且利用一第二时钟域的一第二时钟信号输出一输出信号,该装置包括至少三个写入缓存器,其属于该第一时钟域,用以接收该输入信号,其中每一写入缓存器各自具有一第一输出;一第一控制器,其属于该第一时钟域,用以依一顺序致能该至少三个写入缓存器,并产生一起始信号;一多任务器,接收这些第一输出;以及一第
二控制器,属于该第二时钟域,其通过一异步接口接收该起始信号,且依据该起始信号控制该多任务器依该顺序输出这些第一输出作为该输出信号;其中该第二时钟域是根据该第一时钟域所产生的一时钟树,且该第二时钟信号与该第一时钟信号不同步。
图I为产生时钟树后所发生的延迟的示意图;图2是先前技术用于补偿或平衡时钟与数据间延迟关系的一方式的示意图;图3是先前技术用于补偿或平衡时钟与数据间延迟关系的另一方式的示意图;图4是多输入来源状况下,其来源时钟与时钟树的示意图;图5是本发明的一实施例的示意图;图6是本发明所使用的异步接口的内部结构;图7是对应图5的时序图;图8是对应第五图的时序图;图9为本发明另一实施例的示意图;以及图10为本发明另一实施例的示意图。主要组件符号说明11、17:缓冲器或延迟单元 13、15缓存器19:可调式延迟单元41 :来源I42 :来源 243 :来源 344:来源445、46:多任务器47:缓存器50:FIF0 装置51 53:写入缓存器54:第一控制器55 :多任务器56 :第二控制器57 :输出缓存器58 :延迟单元59:异步接口591、592 :D型正反器91 :编译出的双端口静态随机存取存储器
100 :先入先出(FIFO)装置IOl1 IOli =FIFO 电路104 :第一多任务器105 :第二多任务器106:其余电路107:延迟单元
具体实施例方式请参阅图5,其是本发明先入先出装置的一实施例的示意图。在本实施例中FIFO装置50包含写入缓存器51 53、第一控制器54、多任务器55、第二控制器56、输出缓存器57、延迟单元58及异步接口 59。延迟单元58代表来源时钟产生时钟树时的延迟,而本发明将来源时钟与时钟树的时钟信号视为不同步且具有一相位差。写入缓存器51 53与第一控制器54受来源时钟驱动,可视为属于一第一时钟域,第二控制器56与输出缓存器57受时钟树的时钟信号驱动,可视为属于第二时钟域。 写入缓存器51 53接收一输入信号,该输入信号可以是单一位或是多位的数据,且每一写入缓存器各自具有一第一输出并电连接至多任务器55。第一控制器54电连接至写入缓存器51 53,使输入信号的数据依顺序存入写入缓存器51 53。第一控制器54产生一起始信号传送至第二控制器56,该起始信号代表第一控制器已开始动作。由于第一控制器54与第二控制器56属不同时钟域,因此第二控制器56通过异步接口 59接收该起始信号,并于收到该起始信号后开始控制该多任务器55依该顺序输出这些第一输出作为该多任务器55的一第二输出,之后并由输出缓存器57接收。其中写入缓存器51 53与输出缓存器57较佳由D型正反器构成,第一控制器54与第二控制器56中较佳分别具有一第一计数器与一第二计数器,该第一计数器与该第二计数器较佳依该顺序进行计数,而使第一控制器54与第二控制器56以这些计数器所计数的值来决定致能写入缓存器51 53的顺序,而该第二计数器在第二控制器56收到该起始信号后开始依序计数。而异步接口 59较佳地可由一 D型正反器591构成,如图6所示。FIFO装置50在两种极端状况下的时序图如图7与图8所示,图7中时钟树的时钟信号稍微落后来源时钟,在异步接口 59由两级D型正反器构成的情况下,可由控制该起始信号的传递,让第二计数器落后第一计数器两个输出时钟周期,使第二计数器实际落后第一计数器一个周期多一点,如图7中箭头所指之处即是第二计数器接收到该起始信号后开始进行计数。而因为三级写入缓存器51 53的缘故,输出缓存器57可以正确存取存于三级写入缓存器51 53的数据。其中,该第二输出或输出缓存器57的输出落后该输入信号稍微大于二个该来源时钟的时钟周期。图8中时钟树看起来约略超前来源时钟,而如上所述,第二计数器实际上应是落后第一计数器约大于两个周期,而在此设计下,由时序图可看出输出缓存器57仍可以正确存取存于三个写入缓存器51 53的数据。其中,该第二输出或输出缓存器57的输出落后该输入信号稍微大于三个该来源时钟的时钟周期。在上述两极端状况下,输出缓存器57皆能正确存取存于三个写入缓存器51 53的数据,因此本发明的设计可确保数据的安全接收。本发明所使用的写入缓存器并不限于三个,而越多缓存器越能确保后端电路能正确接收数据,但该第二输出或输出缓存器57的输出在时序上落后该输入信号越多。图9为本发明另一实施例的示意图,其中图5的写入缓存器51 53由编译出的双端口静态随机存取存储器(Compiled 2-port SRAM)91取代。第一控制器54将该输入来源的数据依照一顺序写入双端口静态随机存取存储器91中的三个地址,并产生一起始信号通过异步接口 59传送至第二控制器56,使第二控制器56开始自该三个地址依先前写入的顺序读出该输入来源的数据,而其余组件的作动与图5相同。同样可以为本领域具一般技艺人士所理解的是,写入的地址并不限于三个,而使用越多地址越能确保后端电路能正确接收数据。由前述实施例可知,在单一输入信号的情况下,本发明能够确保后端电路能正确接收数据,并解决先前技术补偿或平衡时钟与数据间的延迟关系的复杂过程。同理,在多输入信号的状况下,亦可应用本发明,在每个输入信号来源插入如图5的FIFO装置。如图10所示,其为横跨两时钟域的先入先出(FIFO)装置100的示意图,其中后端的时钟域是由前端的时钟域的来源时钟通过时钟树而产生,图10包含FIFO电路IOl1 IOli、第一多任务器104、第二多任务器105、其余使用时钟树作为时钟信号的其余电路106以及延迟单元107,延迟单元107代表时钟树与各来源时钟I i之间不同步或具有相位差,其中FIFO电 路IOl1 IOli其内部图示为图5的简略示意图,代表与图5的结构相同。图10中的输入信号I i分别经过FIFO电路IOl1 IOli传送至第一多任务器104,再由第一多任务器104依需求选择输入信号I i其中之一传送至其它电路106,第二多任务器105依所要输出的输入信号I i其中之一来选择对应的来源时钟I i其中之一,并产生时钟树作为读取时钟传送至对应的FIFO电路IOl1 IOli其中之一。其中,各来源时钟的时钟可能从13. 5MHz到300MHz,或更大的速差范围。如上述实施例所述,各路输入信号来源所发生的延迟可分别解决,如此一来即可解决多种不同输入信号来源具有不同延迟或其时钟速差很大的问题。因本发明的电路不大,只需局部平衡时钟与数据间的相对关系,不会受到后方电路的大小所影响,在补偿或平衡时钟与数据间的相对关系后,后端的电路所需的时钟树可自由地产生而无须考虑前端电路地触发时机与延迟。本发明另揭露一种先入先出的方法,其利用一第一时钟域的一第一时钟信号接收一输入信号且利用一第二时钟域的一第二时钟信号输出一输出信号,其包括以下步骤根据该第一时钟信号并利用至少三个写入缓存器来接收该输入信号,其中每一写入缓存器各自具有一第一输出;根据该第一时钟信号依一顺序致能该至少三个写入缓存器,并产生一起始信号;以及根据该第二时钟信号并利用该起始信号依该顺序输出这些第一输出以作为该输出信号;其中该第二时钟域是根据该第一时钟域所产生的一时钟树,且该第二时钟信号与该第一时钟信号不同步。惟以上所述者,仅为本发明的最佳实施例而已,当不能限定本发明所实施的范围。即大凡依本发明权利要求所作的均等变化与修饰,皆应属于本发明专利涵盖的范围。
权利要求
1.一种先入先出(FIFO)装置,其利用一第一时钟域的一第一时钟信号接收一输入信号且利用一第二时钟域的一第二时钟信号输出一输出信号,所述装置包括 至少三个写入缓存器,其属于所述第一时钟域,用以接收所述输入信号,其中每一写入缓存器各自具有一第一输出; 一第一控制器,其属于所述第一时钟域,用以依一顺序致能所述至少三个写入缓存器,并产生一起始信号; 一多任务器,接收这些第一输出;以及 一第二控制器,属于所述第二时钟域,其通过一异步接口接收所述起始信号,且依据所述起始信号控制所述多任务器依所述顺序输出这些第一输出作为所述输出信号; 其中所述第二时钟域是根据所述第一时钟域所产生的一时钟树,且所述第二时钟信号与所述第一时钟信号不同步。
2.根据权利要求I所述的装置,其中,所述第一时钟信号选自多个来源时钟,所述多个来源时钟中最快者与最慢者的时钟至少差一个数量级。
3.根据权利要求2所述的装置,其中,所述输入信号选自多个来源输入信号,且所述输入信号对应所述第一时钟信号。
4.根据权利要求I所述的装置,其中,所述至少三个写入缓存器中的每一写入缓存器是一 D型正反器(D Flip-Flop)。
5.根据权利要求I所述的装置,其中,所述第一控制器包括一第一计数器,所述第一计数器由所述第一时钟域的时钟信号触发并依照所述顺序进行计数,使所述第一控制器依所述顺序致能所述至少三个写入缓存器。
6.根据权利要求5所述的装置,其中,所述第二控制器包括一第二计数器,所述第二计数器由所述第二时钟域的时钟信号触发,且依据所述起始信号依照所述顺序进行计数,使所述第二控制器依据所述顺序输出所述这些第一输出作为所述输出信号。
7.根据权利要求I所述的装置,其中,当所述第二时钟信号落后所述第一时钟信号,所述输出数据落后所述输入信号至少二个所述第一时钟信号的时钟周期。
8.根据权利要求I所述的装置,其中,当所述第二时钟信号领先所述第一时钟信号,所述输出数据落后所述输入信号至少三个所述第一时钟信号的时钟周期。
9.一种先入先出的方法,其利用一第一时钟域的一第一时钟信号接收一输入信号且利用一第二时钟域的一第二时钟信号输出一输出信号,包括以下步骤 根据所述第一时钟信号并利用至少三个写入缓存器来接收所述输入信号,其中每一写入缓存器各自具有一第一输出; 根据所述第一时钟信号依一顺序致能所述至少三个写入缓存器,并产生一起始信号;以及 根据所述第二时钟信号并利用所述起始信号依所述顺序输出所述这些第一输出以作为所述输出信号; 其中,所述第二时钟域是根据所述第一时钟域所产生的一时钟树,且所述第二时钟信号与所述第一时钟信号不同步。
10.根据权利要求9所述的方法,其中,所述第一时钟信号选自多个来源时钟,所述多个来源时钟中最快者与最慢者的时钟至少差一个数量级。
11.根据权利要求10所述的方法,其中,所述输入信号选自多个来源输入信号,且所述输入信号对应所述第一时钟信号。
12.根据权利要求9所述的方法,还包括以下步骤 根据所述第一时钟信号依所述顺序进行计数,以依所述顺序致能所述至少三个写入缓存器。
13.根据权利要求10所述的方法,还包括以下步骤 根据所述第二时钟信号通过一异步接口接收所述起始信号,且依据所述起始信号依所述顺序输出所述这些第一输出以作为所述输出信号。
14.一种先入先出装置,其利用一第一时钟域的一第一时钟信号接收一输入信号且利用一第二时钟域的一第二时钟信号输出一输出信号,所述装置包括 一双端口静态随机存取存储器(2-Port SRAM),其属于所述第一时钟域,且至少具有三个地址,用以接收所述输入信号; 一第一控制器,其属于所述第一时钟域,用以产生一起始信号,且将所述输入信号依据一顺序写入至所述至少三个地址;以及 一第二控制器,其属于所述第二时钟域,并通过一异步接口接收所述起始信号,且依据所述起始信号依照所述顺序自所述至少三个地址读取所述输入信号作为所述输出信号;其中,所述第二时钟域是根据所述第一时钟域所产生的一时钟树,且所述第二时钟信号与所述第一时钟信号不同步。
15.根据权利要求14所述的装置,其中,所述第一时钟信号选自多个来源时钟,所述多个来源时钟中最快者与最慢者的时钟至少差一个数量级。
16.根据权利要求15所述的装置,其中,所述输入信号选自多个来源输入信号,且所述输入信号对应所述第一时钟信号。
全文摘要
本发明提供用于时钟树转换处的先入先出(FIFO)装置与方法,其利用一第一时钟域的一第一时钟信号接收一输入信号且利用一第二时钟域的一第二时钟信号输出一输出信号,该装置包括至少三个写入缓存器,其属于该第一时钟域,用以接收该输入信号,其中每一写入缓存器各自具有一第一输出;一第一控制器,其属于该第一时钟域,用以依一顺序致能该至少三个写入缓存器,并产生一起始信号;一多任务器,接收这些第一输出;以及一第二控制器,属于该第二时钟域,其通过一异步接口接收该起始信号,且依据该起始信号控制该多任务器依该顺序输出这些第一输出作为该输出信号;其中该第二时钟域是根据该第一时钟域所产生的一时钟树,且该第二时钟信号与该第一时钟信号不同步。
文档编号G06F5/06GK102880442SQ20111019599
公开日2013年1月16日 申请日期2011年7月13日 优先权日2011年7月13日
发明者童旭荣, 汤森煌 申请人:瑞昱半导体股份有限公司