專利名稱:使用自由振蕩式環形振蕩器的任意波形合成器的制作方法
技術領域:
本發明一般涉及波形生成領域。更準確地說,本發明涉及一種通過使用自由振蕩式環形振蕩器來產生任意波形的方法和設備。
背景技術:
目前存在很多希望將時間單位或距離單位以廉價方式分成更小單位的情況。例如在一個范圍檢測器中,輸出信號與輸入信號之間所經過的時間可能短到只有若干毫秒,使用標準的基準時鐘來計算流逝的時間將會產生錯誤計數,由此導致不準確的距離計算。
在激光打印機這樣的另一個實例中,較為理想的是在用于高分辨率的給定行單元內部的不同距離提供一個從白到黑的躍遷(反之亦然)。相關內容可以參見在此引入作為參考的美國專利5,109,283。然而,在打印機的激光二極管上并不足以分辨那些以10MHz的打印機像素時鐘速率來計時的黑色-白色信號或白色-黑色信號,由此不能對指定打印單元內部的打印躍遷執行精確控制。更快的時鐘則過于昂貴和/或不能用于在高分辨率圖形圖像所需要的高時間分辨率上為打印躍遷提供基準(例如與微米級的打印單元距離相對應的1納秒)。
一種解決上述問題的方案是使用一個結合了自由振蕩式(free-running)環形振蕩器(也可以將其稱為環路振蕩器)的設備。在美國專利5,793,709和5,903,522中描述了這種解決方案,這些專利在此引入作為參考。然而,對CD-RW、DVD、通信和雷達領域中的應用來說,其在信號方面的需求要求使用具有更高頻率和精度的躍遷邊沿,由此對其產生了限制。而電路傳導路徑和實施硬件中的差別也會變得非常明顯。基于基準時鐘頻率的代數時鐘將會限制代數電路執行計算的速度。此外,計算自由振蕩式環形振蕩器(“環路”)的外部電路同樣限制了代數電路執行計算的速度。在使用同步信號時,使用所述輸出的設備無法容忍輸出信號中的不可預測的突然躍遷。
發明內容
本發明旨在解決這些需要。
因此,本發明的一個目的是對不同實施硬件和不等路徑長度進行補償。本發明的另一個目的是根據生成的輸出信號來產生一個遠比基準時鐘更快的用于躍遷邊沿計算的內部時鐘。本發明還包括一個用于在躍遷邊沿計算出錯時提供內部時鐘的監視器(watchdog)。此外,本發明的另一個目的是通過在內部計算平均環路速度來提高總的可允許的計算頻率。所述電路還根據平均環路速度而對環路中的躍遷位置進行計算,從而提高精度。本發明的另一個目的是在輸出相位發生預定變化時產生一個將更新輸出波形與先前輸出波形無縫結合的輸出。對CD-RW、DVD、通信和雷達領域中的應用來說,它們需要的是更快和更準確的邊沿躍遷。
本發明涉及一種用于產生任意波形的方法和設備,在一個方面中,本發明涉及一種用于產生任意波形的波形生成器。所述波形生成器包括一個自由振蕩式環形振蕩器、一個代數模塊、一個切換模塊以及一個輸出模塊。自由振蕩式環形振蕩器包括多個連接在環路中的延遲部件以及排列在延遲部件之間的多個分支,其中每一個分支都提供了一個唯一定相的振蕩躍遷信號。代數模塊則包括一個代數數據輸入端口、一個時鐘輸入端口以及一個代數數據輸出端口。所述代數模塊對在代數數據輸入端口接收的信號作出響應,從而在代數數據輸出端口產生一個表示任意波形的第一上升沿的信號。切換模塊則包括一個與代數數據輸出端口進行電通信的切換輸入端口、多個與自由振蕩式環形振蕩器的分支進行電通信的切換分支輸入端口以及切換輸出端口。在切換輸出端口,切換模塊對在切換輸入端口接收的表示第一上升沿的信號做出響應,從而提供一個從多個自由振蕩式環形振蕩器分支的一個分支中選出的第一躍遷信號。輸出模塊則包括一個與切換輸出端口進行電通信的躍遷信號輸入端口、一個與代數數據輸出端口進行電通信的窗口輸入端口以及一個與代數模塊的時鐘輸入端口進行電通信的波形輸出端口。所述輸出模塊還對在輸出模塊的躍遷信號輸入端口接收的第一躍遷信號以及在窗口輸入端口接收的第一上升沿的信號作出響應,從而在波形輸出端口創建一個任意波形。
在一個實施例中,任意波形生成器包括一個環路平均模塊,所述環路平均模塊則包括一個基準時鐘輸入端口和一個分支輸入端口,所述分支輸入端口電連接到自由振蕩式環形振蕩器中的多個分支。所述環路平均模塊對在基準時鐘輸入端口接收的基準時鐘信號作出響應,從而對在基準時鐘信號邊沿之間出現的分支躍遷數目進行計數,此外還響應于所述計數對平均環路速度進行計算。所述環路平均模塊還可以對計算得到的平均環路速度以及捕捉到的多個環路狀態作出響應,從而計算環形振蕩器的瞬時相位。
在另一個實施例中,任意波形生成器包括一個微小延遲模塊。所述微小延遲模塊包括一個與切換輸出端口進行電通信的信號輸入端口,一個與代數模塊的代數數據輸出端口進行電通信的選擇輸入端口,以及一個與輸出模塊的輸入端口進行電通信的微小延遲輸出端口。響應于在選擇輸入端口接收的第一上升沿的信號,所述微小延遲模塊對從切換模塊的切換輸出端口到輸出模塊的輸入端口的第一躍遷信號的傳播進行延遲。此外,所述輸出模塊的選擇輸入端口還通過微小延遲模塊與切換模塊的切換輸出端口進行電通信。
在另一個實施例中,代數模塊包括一個同步輸入端口。響應于在代數數據輸入端口和同步輸入端口接收的信號,所述代數模塊在代數數據輸出端口創建一個處于任意波形內部的第一上升沿的信號。然后,所述代數模塊產生一個第一上升沿的信號,由此在任意波形生成器中實現第一上升沿的無縫合并。
在另一個實施例中,其中一個延遲部件是反相延遲部件,并且每個延遲部件都是同等負載的。在另一個實施例,至少有一個延遲部件包含了測試切換模塊。這個測試切換模塊具有一個測試控制輸入端口和一個測試數據輸入端口。響應于在測試控制輸入端口接收的信號,所述延遲部件會在相應分支創建一個與在測試數據輸入端口接收的信號相一致的信號。
在另一個實施例中,任意波形生成器還包括一個補償模塊。所述補償模塊包括一個與代數模塊進行電通信的數據輸出端口,以及一個用于對表示基準時鐘源的頻率改變參數的信號進行接收的補償輸入端口。所述補償模塊對關聯于基準時鐘源的頻率改變參數的基準時鐘頻率變化進行估計。然后,響應于這個頻率變化,所述補償模塊在補償輸出端口創建一個校正信號。在另一個實施例中,頻率改變參數是基準時鐘源的溫度。而在另一個實施例中,頻率改變參數是基準時鐘源的壽命。
在另一個實施例中,代數模塊對在代數輸入端口接收的信號作出響應,從而在代數數據輸出端口創建任意波形內部的第一下降沿的第二信號。在另一個實施例中則使得輸出模塊創建一個關于在窗口輸入端口接收的第一上升沿的錯誤信號的追逐信號。在另一個實施例中,所述任意波形生成器是在CMOS集成電路內部實現的。
在另一個實施例中,任意波形生成器包括一個放大器和一個環路速度補償電路。放大器對來自耦合到環形振蕩器的電源的電源噪聲的至少一個分量進行前饋,環路速度補償電路則與放大器進行電通信。在一個實施例中,響應于經過放大的噪聲,環路速度補償電路與環路平均模塊進行電通信,以便對所計算的平均環路速度進行調整。在另一個實施例中,環路速度補償電路與代數模塊進行電通信,以便響應于經過放大的噪聲對計算得到的平均環路速度進行調整。
在另一個實施例中,任意波形生成器包括多個電容部件,其中每一個部件都與多條信號路徑中的一條相應路徑進行電通信。每一個電容部件都具有相應的預定容量,以便在經由相應信號路徑傳播躍遷信號的過程中創建相應的預定時延,這樣一來,第一信號路徑上的躍遷的傳播時間實質上與第二信號路徑上的躍遷的傳播時間是相等的。
在另一個實施例中,多個電容部件中的每一個電容部件都具有一個小于50毫微微法左右的值。在另一個實施例中,多條信號路徑中的每一條路徑都與第一電容部件和第二電容部件進行電通信。并且在另一個實施例中,相對于溫度、工藝以及電源電壓而言,第一和第二電容部件具有不同的靈敏度。
在另一個方面中,本發明涉及一種用于創建任意波形的方法。所述創建任意波形的方法包括在延遲部件環路中生成一個連續躍遷序列,對在環路中的其中一個延遲部件上出現的躍遷進行計數,確定所需的第一上升沿時間和第一下降沿時間,基于計數得到的躍遷和內部時鐘對所需第一上升沿做出響應,以便選擇連續躍遷序列中的第一躍遷,基于計數得到的躍遷和內部時鐘對所需第一下降沿時間作出響應,以便選擇連續躍遷序列中的第二躍遷,通過使用第一和第二選定躍遷來產生一個輸出信號,以及基于輸出信號生成內部時鐘信號。
在一個實施例中,生成輸出信號的方法包括對過去出現的所需第一上升沿時間作出響應,從而使用連續躍遷序列中的每一個躍遷來產生輸出信號。
在另一個實施例中,所述方法包括相對于輸入基準時鐘而在其中一個延遲部件上計算平均躍遷速率。
在另一個實施例中,所述方法包括對計算得到的平均躍遷速率以及延遲部件環路的多個所捕捉狀態作出響應,從而計算延遲部件環路內部的瞬時相位。
在另一個實施例中,所述方法包括將多個傳播延遲中的一個延遲添加到選定躍遷中,其中在多個傳播延遲中,兩個延遲之間的差值小于一個躍遷經由延遲部件環路中的延遲部件的平均傳播時間。
在另一個實施例中,所述方法包括接收一個外部同步信號,以及對接收到的同步信號作出響應,從而修改第一和第二躍遷的選擇。在另一個實施例中,所述修改處理包括調整第一躍遷的選擇,由此在輸出信號中提供第一上升沿的無縫合并,從而創建任意波形。
在另一個實施例中,每一個躍遷都具有極性。并且在另一個實施例中,產生連續躍遷序列包括結合一個延遲部件來對躍遷極性進行反相。此外在另一個實施例中,連續躍遷序列的生成為各個延遲部件都提供了相等的負載。
在另一個實施例中,所述方法包括接收一個表示基準時鐘源的頻率改變參數的信號,確定頻率改變所造成的基準時鐘的任何變化,以及對所確定的變化作出響應,從而改變第一躍遷的選擇。并且在另一個實施例中,所述頻率改變參數是基準時鐘源的溫度。此外,在另一個實施例中,所述頻率改變參數是基準時鐘源的壽命。
在另一個實施例中,所述方法包括將預定時延添加到經由相應信號路徑的躍遷傳播之中,由此經過信號路徑的躍遷的傳播時間實質上與經過第二信號路徑的躍遷的傳播時間是相等的。
本領域技術人員可以從以下關于優選實施例的描述以及附圖中想到其他目標、特征和優點,其中圖1A是本發明一個實施例的高級框圖;圖1B是來自圖1A所示的自由振蕩式環路振動器分支的信號的時序圖;圖2是描述附加模塊的本發明的一個實施例的高級框圖;圖3是圖2所示的延遲部件模塊的一個實施例的詳細框圖;圖4是本發明另一個實施例的高級框圖;圖5是本發明的代數模塊的一個實施例的詳細框圖;圖6是圖5所示的周期積分器模塊的一個實施例的詳細框圖;圖7是圖5所示的環路平均模塊的一個實施例的詳細框圖;圖8是圖5所示的時鐘域變換模塊的一個實施例的詳細框圖;圖9A是圖5所示的同步模塊的一個實施例的詳細框圖;圖9B是圖9A所示的同步去抖動模塊的一個實施例的詳細框圖;圖10A是本發明的切換模塊的一個實施例的詳細框圖;圖10B是圖10A所示的平衡復用模塊的一個實施例的詳細框圖;
圖11是本發明的微小延遲模塊的一個實施例的詳細框圖;圖12是本發明的輸出模塊的一個實施例的詳細框圖;圖13是圖12所示的捕獲模塊、窗口模塊和邊沿觸發器的一個實施例的詳細框圖;圖14是圖12所示的相位組合模塊的一個實施例的詳細框圖;圖15是圖14所示的平衡XOR模塊的一個實施例的詳細框圖;以及圖16是通過本發明一個實施例所進行的信號傳播的時序圖。
具體實施例方式
圖1A在高級別上描述了一個用于創建輸出信號136的任意波形生成器100。所述任意波形生成器100包括一個自由振蕩式環路振動器104、一個切換模塊112、一個代數模塊108以及一個輸出模塊114。環路振蕩器104經由分支電連接到切換模塊112,以便將躍遷邊沿傳送到切換模塊112。代數模塊108接收一個外部基準時鐘信號128和一個代數數據輸入信號132。如下文更詳細描述的那樣,代數模塊108通過使用這些信號128、132而從分支中選擇躍遷邊沿,以便產生輸出信號136的下一個躍遷邊沿。代數模塊108電連接到切換模塊112和輸出模塊114,以便傳送計算得到的用于產生輸出信號136的躍遷邊沿。切換模塊112接收來自代數模塊108的躍遷邊沿信息,并且選擇與計算得到的躍遷邊沿相對應的環路振蕩器104的分支。所述切換模塊還電連接到輸出模塊114,以便將來自選定分支的躍遷邊沿傳送到輸出模塊114。輸出模塊則接收躍遷邊沿,并且將其作為輸出信號136來進行供應。
自由振蕩式環路振蕩器104包括一個針對外部復位信號140的輸入端、一系列延遲部件模塊120a、120b、120c、120o、120p(概括為120)以及至少一個反相部件124。復位信號140具有兩種狀態,即復位狀態和運行狀態。當信號140處于復位狀態時,環路振蕩器104并不振蕩。當信號140躍遷到運行狀態時,環路振蕩器104將會開始振蕩。所述躍遷則經由第一延遲部件模塊120a傳播到下一個延遲部件模塊120b的輸入端。在延遲部件模塊120的輸入端接收到信號之后不久,在相應分支上將會輸出所述信號。
舉例來說,在將躍遷傳播到延遲部件模塊120a的輸入端之后的某個時間,所述躍遷將會出現在分支0上。由于所述躍遷還傳播到延遲部件模塊120a的輸出端并且隨后傳播到下一個延遲部件模塊120b的輸入端,因此該躍遷還會在分支1上出現。這個處理會在所述躍遷前進到最后一個延遲部件模塊120p和分支15的整個過程中重復。圖1A的示范性實施例描述了16個分支。但是分支數目也可以改變。此外,分支數目是出于設計考慮而選擇的,其數目部分地取決于所需頻率、可用實施硬件以及代數模塊計算速度。
圖1B的示范性實施例描述的是在圖1A的相應分支上出現的躍遷。如圖1B所示,在各個分支上的各個躍遷之間存在著大約300皮秒的延遲。這個延遲時間表示的是所述躍遷從延遲部件模塊120的輸入端傳播到相應分支的輸出端所花費的時間。它取決于實現所述設計的硬件。而所示實施例則是在采用了0.35微米工藝的ASIC上實現的。采用0.25微米工藝的ASIC可以產生大小約為采用0.35微米工藝的ASIC所產生的延遲時間的一半的延遲時間。借助于更小的延遲時間,代數模塊108可以計算出所述躍遷邊沿在輸出信號136中的更準確的位置。所述延遲時間則是出于設計考慮而選擇的,它取決于所需頻率、可用實施硬件以及代數模塊計算速度。
在另一個實施例中,每一個延遲部件模塊120都包含一個反相部件。所述反相部件將會使間隔分支在與圍繞環路的單個邊沿傳播相反的方向上進行躍遷。例如,分支1、分支3、分支5、分支7、分支9、分支11、分支13以及分支15各自從高電平狀態躍遷到低電平狀態,而不像圖1B所顯示的那樣從低電平狀態躍遷到高電平狀態。由于正躍遷的傳播時間不同于負躍遷的傳播時間,因此使用反相部件將會使圍繞環路的傳播時間更為一致。此外,反相部件還產生了更均勻的電源負載。
參考圖2,躍遷是通過一系列延遲部件模塊120a~120p傳播的。一旦到達最后一個延遲部件模塊120p的輸出端,那么所述躍遷將會完成一個循環(也稱為一個行程(lap))。環路108的示范性實施例包括與最后一個延遲部件模塊120p的輸出端相連的反相邏輯部件208。這個反相邏輯部件208與連接到在先延遲部件模塊120的輸出端的每一個延遲部件模塊120中所包含的反相邏輯部件404(圖3)相類似。由此可以確保最后一個延遲部件模塊120p的輸出是以類似于其他延遲部件模塊120a~120o的方式加載的,這樣一來,在各個分支上,躍遷之間的時間都是相似的。此外,硬件實施方式的容限還可以確定延遲時間等同到何種程度。
為了創建“循環”效果,在這里必須重復執行經由一系列延遲部件模塊120a、120b、120c、120o、120p的躍遷傳播。為此目的,在這里選擇一個躍遷(例如從延遲部件模塊120o開始的躍遷)并且將其經由反相部件124回送到第一延遲部件模塊120a的輸入端。所使用的反相部件124的數目取決于選定延遲部件模塊120(例如延遲部件模塊120o)是否在第一延遲部件模塊120a的相反方向上輸出一個躍遷。
舉例來說,如果第一延遲部件模塊120a先前是從低電平躍遷到高電平,并且選定躍遷(例如延遲部件模塊120o)也是從低電平躍遷到高電平,那么在所述路徑中必然存在一個使得傳送到第一延遲部件模塊120a的輸入端的躍遷是從高到低的反相器124。如果所述實施例具有包含反相部件的延遲部件模塊120,并且已經相對于第一延遲部件模塊120a而對選定躍遷進行了反相,那么這兩個反相部件124,124′(未顯示)將會串聯使用,以便確保將相反方向的躍遷傳送到第一延遲部件120a。此外在這里還對連接到反相器124的延遲部件模塊120o進行選擇,以使所述躍遷從選定延遲部件模塊120o經由一個或多個反相部件124到達第一延遲部件模塊120a的傳播時間近似等于從選定延遲部件模塊120o躍遷到最后一個延遲部件模塊120p的輸出端的傳播時間。
對一個說明性實例來說,每一個延遲部件模塊120都包含了反相部件。經過兩個反相部件124、124’(未顯示)的傳播時間與兩個延遲部件模塊120的傳播時間是相等的。此外在這里還選擇了對應于分支13的延遲部件模塊120n(未顯示)。所述延遲部件模塊120n是第一延遲部件模塊120a的相反方向的躍遷,這樣則需要兩個反相部件124,124′來確保正確的極性。此外,所述定時同樣是正確的,由此在該躍遷還在從分支13傳播到分支15的時間里經由兩個反相部件124、124’到達第一延遲部件模塊120a的輸入端。
如圖2所示,環路振蕩器104還包括一個行程計數器模塊200和一個狀態捕捉模塊204。代數模塊108還包括一個環路平均模塊212。行程計數器模塊200電連接到第一延遲部件模塊120a,以便在躍遷邊沿經過延遲部件模塊120a時接收所述躍遷邊沿。行程計數器模塊200電連接到狀態捕捉模塊204,以便傳送所保存的行程數目。狀態捕捉模塊204則接收一個基準時鐘信號128。所述狀態捕捉模塊204電連接到每一個分支以及行程計數器模塊200,以便在基準時鐘信號128躍遷時接收并保存環路振蕩器104的分支和行程計數器模塊200的狀態。此外,所述狀態捕捉模塊204還電連接到代數模塊108,以便傳送所保存的狀態信息220。而環路平均模塊212則接收來自狀態捕捉模塊204的經發送的存儲的狀態信息220,并對在代數模塊108的計算中所使用的平均環路速度進行計算。
行程計數器200包括兩個計數器。其中正沿計數器200a(未顯示)在正沿躍遷(例如從邏輯低到高)每次經過第一延遲部件模塊120a時都會計數1。負沿計數器200b(未顯示)則會在負沿躍遷(例如從邏輯高到低的躍遷)每次經過第一延遲部件模塊120a時計數1。因此,負沿計數器200b與正沿計數器200a具有180度的相位差。在這里使用兩個計數器200a、200b是為了確保即使在更新一個計數器時,所述任意波形生成器100的其他模塊也可以使用穩定和精確的計數器來確定行程數目。每一個計數器的大小(位數)都是可以改變的,并且所述大小是出于設計考慮而選擇的,它取決于所需頻率、可用實施硬件以及代數模塊計算速度。此外,每一個計數器都會保持計數,一旦達到最大值,則計數器回滾到零并且繼續計數。
狀態捕捉模塊204包括一個將基準時鐘信號128用作時鐘的寄存器204a(未顯示)。一旦基準時鐘信號128躍遷(通常是正沿躍遷),則寄存器204a保存(也稱為捕捉)環路振蕩器104的狀態。在一個實施例中,寄存器204a保存的是一個16位數據字。在本實施例中則將11個比特用于行程計數器200的值。此外還使用了四個比特來表示16個分支。在這里將這四個比特用于分支狀態,由此表示所述躍遷在捕捉時傳播所經過的最后一個分支。此外在這里還使用了一個比特來表示所述躍遷在經過第一延遲部件模塊120a時的躍遷狀態(也就是正沿或負沿)。為了確定代數模塊108選擇的躍遷邊沿究竟是正沿還是負沿以及是否需要由切換模塊112進行反相,在這里需要使用這個比特。
延遲部件模塊120創建那些輸出到分支并被捕捉的躍遷邊沿。圖3中更詳細地顯示了其中一個延遲部件模塊120。延遲部件模塊120包括一個NAND部件404。NAND部件404的兩個輸入端408、412分別接收由在先延遲部件模塊120輸出的信號以及一個邏輯高電平信號424。所述邏輯高電平信號確保NAND部件404的輸出即為來自先前延遲部件模塊120的輸出端的輸入信號408的反相信號。
對第一延遲部件模塊120a(圖2)來說,邏輯高電平信號由復位信號140取代,輸入信號408則是從反相輸出部件124而不是先前延遲部件120輸出的。當復位信號140處于復位狀態即邏輯低電平時,無論輸入信號408怎樣變化,所述NAND部件404輸出的都是一個邏輯高電平。對自由振蕩式環形振蕩器104′來說,其剩余延遲部件模塊120b到120p(圖2)都會驅動到其相應狀態,所述環路振蕩器104則會在復位信號躍遷到運行狀態即邏輯高電平之前一直處于復位狀態。
NAND部件404的輸出發送到下一個延遲部件模塊120。所述輸出412同時也是反相器416的一個輸入。來自某個選定延遲部件模塊120(例如圖2的延遲部件模塊120o)的反相輸出端420的躍遷發送到另一個反相器124(圖2),然后則發送到第一延遲部件模塊120a,從而保持環路振蕩器104的振蕩。對其他延遲部件模塊120a、120b、120c、120p來說,輸出420并未連接。在一個實施例中,出于負載均衡目的,無論是否連接,每一個延遲部件模塊120中都會包含反相器416。如上所述,通過盡可能保持延遲部件模塊120中的負載相似和相等,可以使得經過每一個延遲部件模塊120的傳播時間保持一致。
NAND部件404的輸出端412與測試切換模塊400相連。所述測試切換模塊400接收一個測試輸入信號440。這個信號440的狀態確定了由測試切換模塊400生成的信號。舉例來說,如果測試輸入信號440處于一種“NOT(否)”測試狀態(例如邏輯低電平),那么NAND部件428將會輸出一個信號,該信號與NAND部件404的輸出412具有相反的狀態。無論測試數據輸入信號444怎樣變化,所述NAND部件432都會輸出一個邏輯高電平。因此,NAND部件436輸出的是與NAND部件428的輸出相反的狀態,所述NAND部件428的輸出則與NAND部件404的輸出412的狀態相同。如果測試輸入信號440處于測試狀態(例如邏輯高電平),那么無論NAND部件404的輸出412怎樣變化,所述NAND部件428都會輸出一個邏輯高電平。NAND部件432輸出的則是與測試數據輸入信號444相反的狀態。因此,NAND部件436輸出的是與NAND部件432的輸出相反的狀態,這個狀態與測試數據輸入信號444的狀態則是相同的。
反相驅動器448對NAND部件436的輸出進行放大,其中所述輸出即為測試切換模塊400的輸出。反相驅動器448的輸出則是發送到切換模塊112(圖2)的分支信號456。因此,依照測試輸入信號440的狀態,反相驅動器448的輸出將會是NAND部件404的輸出或是測試數據輸入信號444的相反狀態。
對第一延遲部件模塊120a來說,NAND部件436的輸出是反相驅動器452的一個輸入。反相驅動器452的輸出端與行程計數器模塊200相連。行程計數器對從反相驅動器452輸出的每一個躍遷進行計數。對其他延遲部件模塊120b到120p來說,反相驅動器452的輸出并未連接。在一個實施例中,為了均衡負載,無論是否連接,每一個延遲部件模塊120中都會包含反相驅動器452。
圖4描述的是任意波形生成器100′的一個替換實施例。任意波形生成器100′還包括一個微小延遲模塊310、一個補償模塊320、一個自由振蕩式環路振蕩器104′,其中所述振蕩器包括一個狀態捕捉模塊204′和一個代數模塊108′。所述代數模塊108′則包括一個同步模塊304。微小延遲模塊310電連接到切換模塊112,以便接收躍遷邊沿。所述微小延遲模塊310還經由一個延遲部件模塊120而將差分延遲添加給小于傳播延遲時間的躍遷邊沿。此外,微小延遲模塊310還電連接到輸出模塊114,以便將經過進一步延遲的躍遷邊沿傳送到輸出模塊114。補償模塊320則接收補償輸入信號324。此外,所述補償模塊還電連接到代數模塊108′,以便傳送調整信號。
在一個實施例中,補償模塊320接收一個補償輸入信號324,該信號表示的是創建基準時鐘輸入信號128的振蕩器(也就是基準時鐘128的來源)的溫度。補償模塊320根據補償輸入信號324并且使用溫度-頻率的預定關系(例如查找表)來確定基準時鐘128的頻率變化。此外,補償模塊320還將帶有變化信息的調整信號輸出到代數模塊108′。依照基準時鐘128的周期增量的變化以代數方式添加給所需輸出周期132,從而在沒有恒溫箱和加熱延遲的情況下產生一個極其穩定的時間基準,以此作為輸出信號136。
在另一個實施例中,通過將壽命標識信號(例如當前日期)用作補償輸入信號324,可以采用相似方式來對晶體老化進行校正。而補償模塊320則是根據補償輸入信號324并且使用壽命-頻率的預定關系(例如查找表)來確定基準時鐘128的頻率變化的。
狀態捕捉模塊204′接收一個同步輸入信號300。并且狀態捕捉模塊204′電連接到每一分支以及行程計數器模塊200,以便在同步信號300變換時接收和保存環路振蕩器104′分支以及行程計數器模塊200的狀態。所述狀態捕捉模塊204′包括一個將同步信號300用作時鐘的第二寄存器204b(未顯示)。一旦同步信號300躍遷(通常是正沿躍遷),那么第二寄存器204b將會保存環路振蕩器104′的狀態。在一個實施例中,第二寄存器204b保存一個16比特的數據字,它是用于描述第一寄存器204a的比特。
狀態捕捉模塊204′還電連接到代數模塊108′,以便傳送所保存的狀態信息330。代數模塊108′的同步模塊304則接收狀態捕捉模塊204′傳送的被保存狀態信息330并且計算后續的躍遷邊沿選定范圍,由此輸出信號136與同步信號300處于相同相位。
圖5更詳細地描述了代數模塊108′。代數模塊108’對從環路振蕩器104’中創建輸出信號136的每一個躍遷邊沿所需要的行程和分支進行計算。在一個實施例中,四信道代數模塊108′計算輸出信號136的接下來的兩個上升沿以及對應的下降沿。第一上升沿稱為相位0信號,對應的下降沿則稱為相位1信號,并且第二上升沿稱為相位2信號,而相應的下降沿則稱為相位3信號。為使附圖保持清楚,除非所指內容之外,在這里只對用于創建相位0信號的電路進行描述。此外,除非另有所指,否則用于其他三個相位信號的電路都是相似的。通過并行計算四個邊沿,代數模塊108′可以在一個更快的頻率上工作,由此允許輸出信號136是一個更高的頻率。在其他實施例中,根據所需要的性能而需要用到多于或少于四個信道。
代數模塊108’接收基準時鐘128和RISE(上升)時鐘540。RISE時鐘540是從輸出模塊114的相位組合模塊1225(圖12)那里接收的。所述RISE時鐘540是輸出信號136的頻率的一半,它具有與輸出信號136的上升沿相對應的邊沿。代數模塊108’則是將RISE時鐘540用作執行計算和將數據存入寄存器的時鐘。此外,代數模塊108′還接收一個代數數據輸入信號132。所述代數數據輸入信號132包括一個表示基準時鐘輸入信號128的周期乘數的數據字132a,其乘積則限定了輸出信號136的所需周期。
在一個實施例中,數據字132a是一個27比特的字,其中前6個比特表示乘數的整數部分,另外21個比特表示乘數的小數部分。使用27比特使得用戶能夠定義精度超過1ppm的輸出信號136的頻率。例如,對作為基準時鐘輸入128的周期的二分之一(也就是頻率的兩倍)的輸出信號136來說,所述數據字132a是000000.100000000000000000000。對作為基準時鐘輸入128的周期的四分之一(也就是頻率的四倍)的輸出信號136來說,所述數據字132a是000000.010000000000000000000。在另一個實例中,作為周期為基準時鐘輸入128的周期的2.25倍的輸出信號136(也就是頻率的0.444444……倍),所述數據字132a是000010.010000000000000000000。
周期積分器模塊500使用乘數數據字132a來確定何時出現下一個涉及基準時鐘信號128的上升沿。圖6更詳細地描述了周期積分器模塊500。在這里將乘數數據字132a輸入到n倍模塊600和加法器632′這兩個組件之中。這兩個組件600、632則使用乘數數據字132a,以便依據基準時鐘信號128來分別計算用于第一上升沿即相位0以及第二上升沿即相位2的所需躍遷。在一個實施例中,n倍模塊600將乘數數據字132a與IC中硬連線的一個常數相乘。如下所述,對不同條件來說,所述常數是不同的。所用常數則是出于設計需要而被確定的。
在一個說明性實例中,選定常數是2(用于標準條件)、6(用于捕獲(catch-up)模式)和11(用于同步模式)。在標準條件下,由于相位0的計算是對間隔的上升沿進行計算,因此n倍模塊600會將乘數數據字132a與2相乘。如下所述,所述“捕獲”是這樣一種模式,其中代數模塊108’因為某種原因而錯誤地計算并請求了一個已經出現的需要邊沿。這樣一來,在代數模塊108’能捕獲并請求一個將來出現的需要邊沿之前,所述捕獲模塊1205(圖12)會使得RISE時鐘540以快很多的速度運行。因此需要一個比標準條件中所使用的數字2更大的常數,以便顧及執行捕獲的時間。對同步模式來說,在同步信號之后以及代數模塊108′之前出現的等待時間周期將會放置一個躍遷邊沿。這個等待時間周期表示的是同步模塊304計算何時放置躍遷邊沿來產生“無縫”同步所需要的時間。所述常數必須得到精準的確定,以便適應于所述等待時間周期。
在標準條件或捕獲模式中,n倍模塊600的輸出發送到加法器628。所述輸出是與用于標準條件或捕獲模式之一的校正模式的常數相乘的乘數數據字132a。所述校正模式是通過接收自捕獲模塊1205的輸入信號604確定的,其中所述信號表示的是任意波形生成器100′是否處于捕獲模式。對同步模式來說,作為乘數數據字132a與用于同步模式的常數相乘的結果的所述輸出將會發送到加法器624。
在加法器628中,n倍模塊600的輸出添加到寄存器616中保存的當前值中。寄存器616中保存的當前值表示的是當前相位0邊沿。在標準條件下,加法器628的輸出即為當前相位0邊沿與二倍的依據基準時鐘信號128的所需周期之和。它表示的是下一個相位0的邊沿,其中所述邊沿是經由復用器608傳播并在下一個RISE時鐘信號540上計時到寄存器616中的。復用器608則根據從同步模塊304接收的轉接信號596而從加法器624或加法器628中進行選擇。在這里將會重復這個循環(例如將寄存器616的內容添加給n倍模塊600的輸出并且在下一個RISE時鐘540對其加以保存),以便確定下一個奇數的上升沿躍遷。
相位2信號的確定處理(及其對應電路)則稍有不同。寄存器616包含了當前相位0的邊沿。為了計算下一個(例如第二)上升沿,寄存器616的輸出(也就是第一上升沿)將被發送到加法器632′并與根據基準時鐘128(也就是乘數數據字132a)的所需周期相加。加法器632′的輸出表示的是第二(例如偶數)上升沿的值。在下一個反相時鐘脈沖RISEb540′上,加法器632′的輸出計時到寄存器620′中。反相時鐘RISEb540′則被用于滿足用以產生與相位0的相差180度相位的邊沿的相位2信道中的嚴格的定時需要。乘數數據字132a能夠在每一個(例如第一和/或第二和/或第三等等)上升沿計算中得到改變。因此,所述周期可以隨著每一個上升沿而變化,由此產生一個任意波形。
回過來參考圖5,周期積分器模塊500的輸出發送到一個加法器572。如上所述,周期積分器模塊500的輸出表示的是依據基準時鐘128而需要下一個奇數躍遷邊沿的時間。加法器572的另一個輸入則是當前時鐘時間508。在下一個奇數躍遷邊沿時間中減去從時鐘域變換模塊212接收的當前時鐘時間508,以便確定在下一個奇數躍遷邊沿位置之前所保持的時鐘脈沖128的數目和部分。如圖6中所示,用于下一個偶數躍遷邊沿的周期積分器模塊500的輸出發送到一個相同的加法器572′(未顯示)。圖5所示的用于計算下一個奇數躍遷邊沿的電路幾乎完全等同于用于計算下一個偶數躍遷邊沿的電路。其中的不同之處在于所有寄存器512′、516′、520′、524′、528′、532′、536′都是由RISEb時鐘脈沖540′來進行計時的。
用戶可以移動所需邊沿的相位。這個操作是通過一個第二數據字132b來執行的,其中所述數據字是代數數據輸入信號132的一部分。在一個實施例中,第二數據字132b是一個21比特帶符號字,其中前8個比特表示的是基準時鐘周期的整數部分,另外13個比特表示基準時鐘周期的小數部分。輸出信號的相位可以前移(舉例來說,如果為正的話)或后移(舉例來說,如果為負的話)128個基準時鐘周期之多。如果處于同步模式,那么所述相移相對的是最后一個同步輸入300。
如果使用第二數據字132b來請求一個相移輸入,那么相移將會保存在寄存器532中并被添加給加法器572。加法器572的輸出則是以基準時鐘128的周期為單位的超出預發送集合時鐘信號508的下一個邊沿的位置。在每一個RISE時鐘脈沖540上,加法器572的輸出時鐘輸入到寄存器520中。由于這個值是用基準時鐘128衡量的,因此必須將其轉換成與乘法器576相乘的環路振蕩器104′的行程和分支的單位。乘法器576則將寄存器520的輸出(也就是根據基準時鐘128的增量邊沿位置)與寄存器512的輸出相乘,其中所述輸出是當前平均環路速度(也就是每一基準時鐘脈沖128的分支)。所述結果則是來自基于環路振蕩器104′的行程和分支的預發送時鐘信號508的下一個邊沿的時間。此外,所述結果(也就是乘法器576的輸出)是在RISE時鐘脈沖540上計時輸入到寄存器524中的。
在一個實施例中,乘法器576是一個17比特×17比特的快速乘法器。并且在一個實施例中,由于加法器572的輸出是21比特,因此在加法器572與寄存器520之間串聯使用了一個桶形移位器(未顯示)。所述桶形移位器從加法器572的輸出上移到4個前端零(例如MSB),所移位的零的實際數目依賴于相關的環路速度,由此將二進制的表示減至17個比特。
寄存器524的輸出表示的是多個行程和分支所預期的邊沿時間,所述輸出發送到加法器580a并且與環路振蕩器104′的當前狀態相加,從而確定下一個邊沿放置的絕對位置,在一個實施例中,所述總和可以是通過添加寄存器536中保存的值所移動的另一個相位。保存在寄存器536中的值則作為第三數據字132c接收,其中所述第三數據字132c是代數數據輸入信號132的一部分。由于相移是按照分支而不是基準時鐘信號128進行的,因此可以使用第三數據字132c的輸入來精確消除系統中的傳播延遲。
加法器580的輸出發送到加法器584,以便與常數550相加。常數550是通過選擇實施方式而被確定的。舉例來說,它可以借助芯片布局而被確定,并且可以對其進行選擇,以便允許在邊沿觸發器1215、1220上最大限度地建立/保持容限。常數550是以已知傳播延遲(例如以分支單位)為基礎,由此將選定分支的躍遷集中在其窗口之中。常數550只影響到行程的選擇而不影響分支的選擇。加法器584的輸出則是在RISE時鐘脈沖540上計時輸入到寄存器528中的。寄存器528中保存的值560則是用于選擇下一個邊沿躍遷的行程和的分支的值560。寄存器值560則發送到切換模塊112、微小延遲模塊310和輸出模塊114,從而為輸出信號136中的下一個偶數上升沿(相位0信號)躍遷選擇正確的邊沿躍遷。
同樣,相位2信號電路具有一個保存下一個奇數上升沿躍遷的值的寄存器528′。在一個實施例中,創建相應偶數與奇數下降沿(相位1信號與相位3信號)的電路包括一個添加寄存器528和528′的內容的加法器(未顯示)。代數模塊108′將加法器的輸出分為兩部分,以便獲取一個與兩個上升沿之間中途的時間相對應的值。分離的加法器將會創建偶數和奇數下降沿。在另一個實施例中,第四數據字132d(未顯示)可以與圖5描述的相似電路結合使用,以便根據第四數據字132d而將一個下降沿置于偶數與奇數上升沿之間的任何位置。
在計算躍遷邊沿位置的過程中,代數模塊108′使用環路平均模塊212和時鐘域變換模塊504。圖7更詳細地描述了環路平均模塊212。環路平均模塊212接收基準時鐘信號128,以便將時鐘信息輸入其寄存器700、712、734、750。環路平均模塊212還從狀態捕捉模塊204′接收所保存的狀態信息220。如上所述,所保存的狀態信息220包含行程計數器200和所述躍遷在對基準時鐘128的躍遷進行捕捉時傳播經過的最后一個分支的狀態。環路平均模塊對每個基準時鐘128以分支為單位對環路平均速度進行計算。此外,所述環路平均模塊212還對最后一個基準時鐘脈沖128上的環路平均位置進行計算,也就是計算最后一個基準時鐘脈沖128上的環路瞬時相位。
環路平均模塊212的平均環路速度部分在減法部件704的正輸入端接收當前保存的規定信息220。寄存器700則在先前基準時鐘脈沖128上保存所存儲的規定信息220的值。減法部件704在負輸入端接收寄存器700中保存的值。減法部件704的輸出表示所述差值,并且該輸出是所述躍遷在一個基準時鐘128的周期所經過的分支數目。這個值保存在寄存器712中。在一個實施例中,算術部件716、720和724被用于在64個環路速度值(例如衰變時間常數=64)上對寄存器712中保存的環路速度值求取均值,從而獲取一個平均環路速度。在64個時鐘脈沖上求平均值僅僅是一個設計選擇,它是為了提供與合成器的總精度相一致的環路速度精度。在其他實施例中,用于取平均的基準時鐘脈沖128的數目可以是不同的。
平均速度保存在寄存器734中并被提供給時鐘域變換模塊504和同步模塊304。在一個實施例中,如果當前環路速度與平均環路速度在每個基準時鐘脈沖128上相差八個以上的分支,那么將會使用復用器730而在最近的環路速度中切換到寄存器734中。這樣則允許環路速度發生突然變化,以便復位平均值,并且將可能在啟動時出現的很大的瞬變值減至最小。在這里,8個分支以上的變化是一個可以加以變化、以便滿足設計目的的設計選擇。
此外,在未曾顯示的另一個實施例中還對平均環路速度564進行調整,以便補償為環形振蕩器104供電的電源的變化。這個變化是由其他電路未曾濾出的頻率上的噪聲造成的。放大電路(未顯示)將這個變化的電壓電平縮放成補償電路可用的電平。補償電路(未顯示)則對電源電壓(例如噪聲)中經過放大的變化進行測量,并且對此變化進行數字化(例如經由一個模-數轉換器來發送噪聲信號)。補償電路則將數字化的變化信號發送到環路平均模塊212,以便調整計算得到的平均環路速度564。所述變化具有線性相關性(也就是說,電壓的增加將會提高環路速度),因此,計算得到的平均環路速度564是據此調整的。根據需要,在這里可以使用本領域已知的任何技術來對數字化的變化信號進行縮放。通過在數字化的變化信號中使用更多比特,可以提高補償的精度。在另一個實施例中,補償電路將數字化的變化信號發送到代數模塊108,以便補償電源的變化。
環路平均模塊212的平均位置(也就是瞬時相位)部分對在分支的小數部分中計算得到的環路位置進行追蹤,并且在時間上對所述位置求取均值。計算得到的平均位置則用于增加的精度。環路平均模塊212的平均環路位置部分在減法部件738的正輸入端接收當前保存的規定信息220。減法部件738則在負輸入端接收計算得到平均環路位置,其中所述位置即為寄存器750中保存的內容的輸出,先前計算得到的平均環路位置則是在加法器758那里與寄存器734中保存的平均環路速度相加的。所述差值則即為減法部件738的輸出,該差值也是實際環路位置與計算得到的平均環路位置之間的差值。在一個實施例中,算術部件742和746被用于在32個值上求取所述差值的平均值,以便為過去的32個基準時鐘脈沖128獲取一個平均差值。此外,在這里還可以使用一個不同于32的值。而計算得到的平均環路位置則保存在寄存器750中。
在一個實施例中,如果當前從實際環路位置中得到的平均環路位置差值大于八個分支,則在先前環路位置中也可以使用復用器754來進行切換。由此允許環路相位中出現突然變化,以便復位平均值并將可能在啟動時出現的很大的瞬變值減至最小。八個分支以上的變化是一個設計選擇,在這里可以對其加以改變,以便滿足設計目的。寄存器750的輸出或寄存器700的輸出是根據復用器754的狀態而在加法器758中添加給平均環路速度564的,由此創建計算得到的平均環路位置568。此外,計算得到的平均環路位置568還發送到時鐘域變換模塊504和同步模塊304。平均環路速度信號564和clean_cnt_at_clk信號568則攜帶了與其對應的時間常數將要證實的精度比特之外的附加精度比特。通過這個操作,可以避免累積來自系統性取整錯誤的直流偏壓。
圖8更詳細地顯示了時鐘域變換模塊504。時鐘域變換模塊504從在基準時鐘128的域中計時的環路平均模塊212那里接收平均環路速度564和計算得到的平均環路位置568。時鐘域變換模塊504則將基準時鐘128域中的信號轉換成RISE時鐘540域中的信號。時鐘域變換模塊504為在RISE時鐘540域中計時的代數模塊108′的寄存器512,516(圖5)提供穩定值。此外,時鐘域變換模塊504還提供當前時鐘時間508,其中所述時間作為基準時鐘128的域中的一個計數器640開始并且發送到加法器572,所述加法器則工作在RISE時鐘540的域中。在所示實施例中,計數器640是一個8位計數器并且會在達到其最大值時回滾到零。此外,所顯示的電路同時還將這些信號校正為RISEb(例如相位2電路)。
half_clk信號643是從基準時鐘信號128中創建的。通過將基準時鐘信號128分成兩個,可以創建half_clk信號643。第一層寄存器644、648、676、680、690、692是使用基準時鐘信號128計時的。其中第一層寄存器644、648、676、680、690、692用于確保在基準時鐘128的域中正確捕捉信號508、564、568。用于各個信號508、564、568的電路(也就是傳播路徑)則分別包含了第一層寄存器對644和648、676和680、690和692。每一對寄存器中的一個寄存器644、676、690是在half_clk信號643處于正狀態時啟用的。這對寄存器中的另一個寄存器648、680、692則是在half_clk信號643處于負狀態時啟用的。對相位0躍遷邊沿的計算來說,其中將會使用第二層寄存器中的寄存器652、682、694。通過使用第一層寄存器對644和648、676和680、690和692,可以確保這些寄存器對中至少有一個寄存器會在時鐘輸入到RISE時鐘540的域中的寄存器652、682、694的時候是穩定的。即使基準時鐘信號128是在將RISE時鐘540域的寄存器652、682、694用作計時的過程中躍遷的,穩定性也是可以得到確保的。每一個復用器660、686、698都會確定使用哪一個第一層寄存器對644和648、676和680、690和692作為時鐘域變換模塊504的輸出。在這里,所用寄存器是穩定的。復用器的信道選擇則是通過寄存器641中保存的half_clk643的狀態做出的。這個寄存器在RISE時鐘540將數據計時輸入RISE時鐘540域的寄存器652、682、694之后的某個延遲時間保存half_clk信號643的狀態。無論何時,只要捕捉所述half-clk時所述half_clk正在進行躍遷,那么寄存器641和642′的輸出都是不可預測的。然而,這時所有第一層寄存器都是穩定的,這樣一來,只要為master_clk信號508和clean_cnt_at_clk信號568選擇相同寄存器,那么所選擇的寄存器將是無關緊要的。所顯示的延遲則是確保這個屬性所必需的。
對相位2的計算來說(例如偶數躍遷邊沿),在這里使用了相似的電路(也就是寄存器656′、684′、696′、642′以及復用器664′、688′、699′)。其中一個差別在于所有寄存器656′、684′、696′、642′都是使用RISEb信號540來計時的。在所示實施例中,從環路平均模塊212接收的平均環路速度信號564是21個比特。桶形移位器668和自動排列(range)部件672則被用于將所述信號移出多達四個前端比特,以及將所述信號轉換成17個比特。
如果使用同步信號來確定輸出信號136(也就是同步模式)相位,那么在計算下一個邊沿躍遷的時間時將會涉及到同步模塊304。圖9A更詳細地描述了同步模塊304。所述同步模塊304接收同步輸入300、來自環路平均模塊212的平均環路速度564以及計算得到的平均位置568。此外,同步模塊304還接收來自狀態捕捉模塊204′的所保存的狀態信息330。保存的狀態信息330包括在對同步輸入300的躍遷進行捕捉時的行程計數器200和最后一個躍遷分支的狀態。所述同步模塊304輸出一個表示可以放置無縫邊沿躍遷時間的start_integrate信號592。由于所述同步模塊304會在新定相輸出能用最小“假信號”來舊定相輸出時確定一個準確的半周期,因此所述邊沿躍遷將是無縫的。同步模塊304選擇這個躍遷邊緣作為指針,以便將輸出信號136轉接成與同步輸入300同相的信號。同步模塊304則產生一個轉接信號596,以便向周期同步模塊304表明同步模塊304已經計算了所需要的邊沿躍遷并且所述邊沿躍遷應被代入周期積分器模塊500。
為了計算無縫邊沿躍遷位置,同步模塊304使用減法部件820從所保存的狀態信息330中減去先前基準時鐘128時計算的平均位置568。減法部件820的輸出則表示以分支為單位的基準時鐘128與同步輸入信號300之間的相移。在這里使用了三個寄存器808、812、816來為兩個附加基準時鐘128的脈沖保持先前基準時鐘128的脈沖時計算得到的環路振蕩器104′的平均位置568,同步去抖動模塊800則對同步信號300的時間進行去抖動操作。
在圖9B中更詳細地顯示了同步去抖動模塊800。XOR部件904是一個允許用戶設定同步輸入信號300的極性的可選部件。在這里將sync_pol的輸入設定成同步輸入信號300的有效變換。在所示實施例中,防抖動電路是為有效上升的同步輸入信號300而設立的。無論所用同步輸入信號300的極性如何,所述XOR部件904都會確保其輸出是一個有效上升信號。AND部件908則允許用戶啟用和禁用同步模式。如果禁用sync_enable(例如低電平狀態),那么沒有同步脈沖經過所述同步去抖動模塊800。
同步去抖動模塊800輸出一個sync_buff信號950。在這里使用了所述synch_buff信號950來對捕捉周期積分器模塊500的輸出的寄存器832(圖9A)進行計時,從而指示在同步脈沖300時出現的相位0和相位2這兩個接下來預期得到的躍遷邊沿。Sync-buff將snyc輸入提供到狀態捕捉模塊204′。邏輯部件936則使得sync_buff信號只從同步輸入300變換的時間持續到觸發器912的第一D輸入改變狀態之前。此外還添加了延遲944,以確保在D觸發器912上,所述模塊204’的同步輸入是在邊沿之前。用于sync_buff信號950的時幀則非常窄,從而允許同步信號在沒有出錯的情況下任意接近一個ref-clk128邊沿。一旦寄存器832保存所述信息并且第一D觸發器改變了狀態,那么下一個D觸發器916將會在后續基準時鐘128的脈沖上改變狀態。AND部件924則只切換到高電平狀態,如果同步脈沖(也就是AND部件908的輸出)是高電平,那么第一D觸發器912將會變成高電平狀態,第二和第三D觸發器916、920則處于低電平狀態。如果AND部件924的輸出在后續基準時鐘128的脈沖上是高電平,那么第二D觸發器915的輸出將會變成高電平狀態。由此創建了一個穩定的(也就是去抖動的)同步信號900(“SYNCsync”)。在這里不會看到任何持續了不到兩個基準時鐘128的脈沖的同步信號。SYNCsync信號900持續了基準時鐘128的一個周期。NAND部件928、932與第三D觸發器920則確保所述第二D觸發器916會在SYNCsync信號900之后的下一個時鐘脈沖再次改變狀態。當第二D觸發器916再次改變狀態時,SYNCsync信號900將會結束。
回過來參考圖9A,其中將SYNCsync信號900用于啟用寄存器824。所述寄存器824保存減法部件820在SYNCsync信號900之后的下一個基準時鐘128的脈沖上的輸出。此外在這里還使用了所述SYNCsync信號900來啟用寄存器850,其中所述寄存器保存的是SYNCsync信號900之后的下一個基準時鐘128脈沖上的平均環路速度564。波紋除法器804則將所保存的以分支為單位的相移與寄存器850中保存的以每個基準時鐘128的分支為單位的平均環路速度相除。
上述結果發送到求和器840上的一個正輸入端。此外還將寄存器828中保存的當前時鐘時間508發送到求和器840的一個正輸入端。另外還將一個常數3發送到求和器840的一個負輸入端。該常數表示的是用于同步去抖動模塊800的三個基準時鐘128的脈沖的等待時間,并且由此將被減去。此外,在這里還將當前(也就是轉接的時候)相位0邊沿位置發送到求和器840的一個正輸入端。在寄存器832中捕捉的相位0的邊沿位置或是相位2的邊沿位置都發送到求和器840的一個負輸入端。復用器836則根據與延遲854相等的某個時段的FALLb信號狀態來選擇將要使用的信號。這個操作即為在sync_buff信號950之前的時鐘域之間的異步數據傳送。選定的信號表示的是在同步脈沖300時計算得到的躍遷邊沿。這個信號將會從當前(也就是在轉接時)相位0的邊沿躍遷中減去,以便補償同步模塊304的等待時間。而求和器840的輸出592則發送到周期積分器模塊500(圖6)的寄存器612。所述輸出592表示的是按照基準時鐘128的與同步輸入300同相的輸出信號136的第一無縫邊沿躍遷。
在這里將D觸發器850、854、858用作一個延遲,以確保波紋除法器804在轉接之前已經固定。而D觸發器862、866則被用于借助轉接信號來校準RISE時鐘540,其中所述時鐘即為周期積分器模塊500中的寄存器所使用的時鐘。D觸發器866與AND部件858確保轉接信號僅僅持續RISE時鐘540的一個周期。轉接信號596則由復用器608使用(圖6)。在有效時,復用器608對加法器624的輸出進行選擇,其中所述輸出包含從同步模塊304中計算得到的邊沿躍遷。在下一個RISE時鐘540的脈沖上,計算得到的邊沿躍遷將被計時到寄存器616中(圖6),并且轉接信號將會變為“無效”。然后,復用器608從加法器628的輸出中進行選擇,如上所述,所述輸出繼續將所需周期長度添加給先前躍遷邊沿。
正如上文參考圖5所描述的那樣,用于與同步輸出300同相的輸出信號136并且通過按照基準時鐘128的第一無縫邊沿躍遷是從周期積分器模塊500中輸出的。所述躍遷經過加法器572和乘法器576,在所述設備中,所述躍遷從基準時鐘128的周期轉換成分支的數目。然后,邊沿躍遷計算經由加法器580與加法器584繼續進行,在所述設備中,所述躍遷在一個RISE時鐘540脈沖上存入寄存器528。寄存器528的輸出560表示的是用分支和行程來衡量的邊沿躍遷位置,并且所述輸出將會發送到切換模塊112。切換模塊112則使用這個信息來選擇環路振蕩器104′的所需分支,以便創建下一個邊沿躍遷。
圖10A和10B更詳細地描述了切換模塊112。圖10A描述的是用于為相位0信號選擇邊沿的復用器1000、1003、1010的結構。在一個實施例中使用了16:1的分支選擇模塊1003而從環路振蕩器104′的16個分支中的一個分支選擇躍遷邊沿。所述分支選擇模塊1003則是由5個平衡復用器模塊1000組成的。
圖10B更為詳細地描述了平衡復用器模塊1000。平衡復用器模塊1000是一個4:1的復用器。所述平衡復用器模塊1000包括NAND部件1015、1020、1025、1030、1035以及電容延遲部件1040、1045、1050、1055。在一個實施例中,正如本領域已知的那樣,電容延遲部件1040、1045、1050、1055是通過使用專門為了在IC中創建電容器而設計的IC庫單元來實現的。電容延遲部件1040、1045、1050、1055的電容將會導致當信號在沿相應路徑傳播時在信號躍遷中出現延遲。平衡復用器模塊1000接收一個邊沿選擇輸入,在一個實施例中,所述輸入是一個2比特信號,它定義了的是所選擇的四個輸入。此外在這里還使用了NAND部件1015、1020、1025、1030、1035來選擇和傳播所請求的邊沿,以便進行輸出。
對圖10A中描述的每一個平衡復用器模塊1000a、1000b、1000c、1000d、1000e、1000f、1000g、1000h、1000i、1000j來說,NAND部件1015、1020、1025、1030、1035都是相同的。然而,對圖10A中描述的每一個平衡復用器模塊1000a、1000b、1000c、1000d、1000e、1000f、1000g、1000h、1000i、1000j來說,電容延遲部件1040、1045、1050、1055則是不同的。這一點是必需的,因為電容延遲部件1040、1045、1050、1055的值基于兩個因素,對每一個平衡復用器模塊1000a、1000b、1000c、1000d、1000e、1000f、1000g、1000h、1000i、1000j來說,這兩個因素的值并不相同。
第一個因素在于正在傳播的躍遷究竟是正向(也就是從低電平狀態到高電平狀態)還是負向(也就是從高電平狀態到低電平狀態)躍遷。這兩種類型的躍遷都是經由NAND部件1015、1020、1025、1030、1035及其路徑上的其他部件傳播的,但是它們的傳播速率則不相同。電容延遲部件1040、1045、1050、1055的值可以補償這兩個不同速率。第二個因素在于邊沿從分支到切換模塊112以及經過切換模塊112的傳播路徑具有不同的長度。電容延遲部件1040、1045、1050、1055的值可以補償這些不同的路徑長度。無論信號極性或是信號所要傳播的路徑長度怎樣,所述電容延遲部件1040、1045、1050、1055的值都會確保躍遷邊沿從一個分支傳播到切換模塊112的輸出的時間相等。電容延遲部件1040、1045、1050、1055的值則依照實施硬件設計而發生變化。此外,這些電容器還校正延遲部件104的回路中的不規則性。
在另一個實施例中,平衡復用器模塊1000的每一個第一電容延遲部件1040、1045、1050、1055都具有相應的第二電容延遲部件1040a、1045a、1050a、1055a(未顯示)。每一個相應的第二電容延遲部件1040a、1045a、1050a、1055a都與它所關聯的第一電容延遲部件并聯(也就是說,1040與1040a是并行的)。同樣,第一電容部件集合1040、1045、1050、1055會對溫度變化、工藝以及電源電壓做出反應。而相應的第二電容延遲部件集合1040a、1045a、1050a、1055a則不會對溫度變化、工藝以及電源電壓做出相似的反應。由此確保了可以用相應的第二組電容延遲部件集合1040a、1045a、1050a、1055a來補償相對于溫度變化、工藝和電源電壓而言并非線性的傳播延遲變化。相應的第二電容延遲部件集合1040a、1045a、1050a、1055a則是通過一個與實施第一電容延遲部件集合1040、1045、1050、1055所不同的IC工藝來實現的。在此可以使用本領域已知的任何方法。
回過來參考圖10A,其中使用和校準(也就是選擇電容延遲部件的值)第一分支選擇模塊1003a來從環路振蕩器104′的分支接收一個上升(也就是正向)躍遷。此外還通過使用和校準一個第二分支選擇模塊1003b(也就是選擇電容延遲部件1040、1045、1050、1055的值)來從環路振蕩器104′的分支中接收一個下降(也就是負向)躍遷。如果選定分支是一個下降沿,并且由此所述分支是通過第二分支選擇選擇模塊1003b來選擇的,那么所述分支是通過反相器1005來反相的。復用器1010基于從代數模塊108′接收的輸入來選擇所用分支選擇模塊1003a、1003b。相位1、相位2和相位3的信號各自具有相似的復用器結構,以便選擇相應的邊沿。來自復用器1010的上升沿則始終是有效邊沿。
圖11更詳細地描述了微小延遲模塊310。微小延遲模塊310旨在將所述躍遷邊沿延遲一個差分時間量,其中所述時間量小于環路振蕩器104′的分支之間的時間(例如小于圖1B所描述的300皮秒)。微小延遲模塊310提高了輸出信號136中的邊沿躍遷位置的精度。所述微小延遲模塊310包括NAND部件1105、1110、1115、1120、1125、1130、1135、1140以及電容延遲部件1150、1155、1160、1165、1170、1175。此外,所述微小延遲模塊310還接收一個邊沿選擇輸入,其中在一個實施例中,所述輸入是一個定義了所使用的是哪八條可能路徑的三比特信號。NAND部件1105、1110、1115、1120、1125、1130、1135、1140則被用于選擇所請求的邊沿并且將其傳播到輸出端,由此可以經由八個可能路徑之一來對其進行路由。任意波形生成器100′包括一個用于代數模塊108′所計算的各條信道的微小延遲模塊(例如相位0、相位1、相位2和相位3)。所關注的邊沿則總是正向進入和離開所述微小延遲模塊105。
如上所述,對每個微小延遲模塊310來說,電容延遲部件1150、1155、1160、1165、1170、1175可以是不同的。然而在優選實施例中,微小延遲模塊的內部設計全都是相同的,由此將會導致具有相同的電容值。此外如上所述,每一個微小延遲模塊都可以包括相應的電容延遲部件集合1150a、1155a、1160a、1165a、1170a、1175a。在一個實施例中,通過微小延遲模塊108的快速路徑甚至遠遠大于每一個分支之間的延遲時間。然而在這八條可能路徑中,任何兩條路徑之間的延遲時間差值都小于各個分支之間的延遲時間。微小延遲模塊添加的很大的固定延遲分量則是由代數模塊108′所使用的常數550(圖5)的一部分以及代數模塊108'中的相位補償輸入132c的一部分(可選的)來進行補償的。而所述微小延遲模塊310的輸出則發送到輸出模塊114。
在圖12中更詳細地描述了輸出模塊114。所述輸出模塊包括一對邊沿觸發器1215、1220以及一個窗口模塊1210。這三個組件1215、1220、1210是對應于各條信道(例如相位0、相位1、相位2和相位3)而被包含的。此外,輸出模塊114還包括相位或信道組合模塊1225。用于各條信道的邊沿觸發器對1215、1220(例如相位0、相位1、相位2和相位3)的輸出則發送到相位或信道組合模塊1225。相位或信道組合模塊1225將所有信道信號(例如相位0、相位1、相位2、相位3)組合成一個單獨輸出136。如果需要用到多個輸出,那么可以通過相應信道組合模塊1225來為各個輸出合并不同信道組合。輸出模塊114還包括一個捕獲模塊,在一個實施例中,所述捕獲模塊只包括上升沿信道(例如相位0、相位2)。
在圖13中更詳細地描述了捕獲模塊1205、窗口模塊1210以及一對邊沿觸發器1215、1220。在這里將接收自微小延遲模塊310的相位0邊沿用作這兩個邊沿JK觸發器1215、1220的時鐘。這對邊沿觸發器1215、1220的JK輸入則是從窗口模塊1210中接收的。在一個實施例中,窗口模塊1210具有兩個比較器1336、1360。第一比較器1336將代數模塊108′計算的行程與同相行程計數器200a相比較。第二比較器1360則將代數模塊108′計算的行程與異相行程計數器200b相比較。當代數模塊108′計算的行程與行程計數器200相等時,所述窗口打開。在這里將邊沿觸發器對設定成通過AND部件1376或1382來對源自微小延遲模塊310的邊沿躍遷輸入進行計時。窗口開啟觸發器1340或觸發器1372中的每一個觸發器都是基于以代數方式計算的單個比特并由復用器1344使用和選擇的。此外還使用XOR部件1348、觸發器1352以及NAND部件1356在所需邊沿躍遷成功計時了邊沿觸發器對1215、1220的時候復位并關閉窗口。當得到代數信號ph0_win_open的創建替換窗口的指示時,觸發器1368和AND部件1364將被用于創建一個替換窗口。替換窗口則用于使得波形合成器能以很高頻率工作,例如在高于自由振蕩環路本身的頻率上工作。在這種情況下,所需環路已經處在進行中,使用包括比較器1350、1336的機制則變得過晚。取而代之的是,除了延遲之外,替換窗口將會立即“打開”,以使相關數據有效。
第一比較器1336還確定代數模塊108′計算的行程是否比行程計數器200a的當前值與等待時間的容限之和更小。如果小于的話,那么代數模塊108′傳送一個錯誤計算并且第一比較器會將一個信號發送到捕獲模塊1205。所述捕獲模塊1205在代數模塊108請求一個過去發生的行程(也就是所請求的行程小于當前行程)的時候有效。比較器1336的輸出表示所請求的是一個過去的行程,該輸出發送到捕獲模塊1205的觸發器1308。在環路振蕩器104′的下一個周期,誤差信號將被計時輸入到觸發器1308中。采用ph0_catch標記的觸發器1308的輸出則發送到一個OR部件1312。相位2信號具有一個相似的捕獲模塊1205′(未顯示)。其中的一個不同之處在于,觸發器部件1309和OR部件1310沒有與相位2捕獲模塊1205′包含在一起。而相位1和相位3信號則不具有捕獲模塊1205。對相位2的捕獲模塊1205′來說,其觸發器1308′(未顯示)的輸出也是OR部件1312的輸入以及觸發器1309的輸入。在觸發器1308′的輸出發生變化之后的RISEb時鐘540′的脈沖上,觸發器1309向OR部件1310輸出一個有效捕獲信號。所述OR部件1310則將一個有效捕獲信號604輸出到周期積分器模塊500的n倍模塊600。如上所述,所述n倍模塊600使用這個信號604來確定所述任意波形生成器是否處于捕獲模式之中并且是否應用了正確的乘法器。在處于捕獲模式時,通過使用邊沿觸發器對1215、1220的置位和復位輸入,所述NAND部件1316、1320、1324、1328以及AND部件1332將被用于以四分之一的自由環路振蕩器104′的速度來創建RISE時鐘540的脈沖。如上所述,在將來再一次請求所述行程之前,所述捕獲模式將會為代數模塊108′創建一個替換高速時鐘并增加經過編程的周期。而在那時,所述捕獲模塊1205將會結束捕獲模式(例如將捕獲信號604改成“非”有效狀態)。在電路恢復時,所述電路將是以正確的相位恢復的。
參考圖14,輸出模塊114的相位或信道組合模塊1225包含三個平衡XOR模塊1500a、1500b、1500c以及四個反相驅動部件1405、1410、1415、1420。如上所述,前兩個平衡XOR模塊1500a、1500b的輸出從輸出模塊114發送到代數模塊108′并且由代數模塊108′用作執行計算的時鐘。此外,這些輸出還發送到第三平衡XOR模塊1500c,以便創建輸出信號136。第一平衡XOR模塊1500a接收上升沿信道信號(也就是相位0,相位2)。接下來的平衡XOR模塊1500b則接收下降沿信道信號(也就是相位1,相位3)。在這里使用了相位組合模塊1225來合并每一個信號(也就是相位0,相位1,相位2以及相位3)。所述相位組合模塊1225是以一種平衡方式進行組合的,這樣一來,無論信號或信號極性怎樣(也就是相位0,相位1,相位2,相位3),來自邊沿觸發器對1215、1220的輸出端到輸出信號136的傳播延遲時間幾乎都是相同的。
圖15更詳細地描述了平衡XOR模塊1500。平衡XOR模塊1500包括6個NAND部件1505、1510、1515、1520、1525、1530以及八個反相器1535、1540、1545、1550、1555、1560、1565、1570。平衡XOR模塊1500還包括電容延遲部件1575a、1575b、1575c、1575d、1575e、1575f、1575g、1575h。對圖14中描述的每一個平衡XOR模塊1500a、1500b、1500c來說,電容延遲部件1575a、1575b、1575c、1575d、1575e、1575f、1575g、1575h都是不同的。如上所述,對補償用于各個輸入的不同路徑長度以及這些輸入處理是上升沿還是下降沿躍遷來說,電容延遲部件1575a、1575b、1575c、1575d、1575e、1575f、1575g、1575h并不相同。此外如上所述,每一個平衡XOR模塊都可以包括一個相應的第二電容延遲部件集合1575aa、1575ab、1575ac、1575ad、1575ae、1575af、1575ag、1575ah。
作為一個說明性實例,圖16描述的是輸出一個輸出信號136″的任意波形生成器100″的時序圖,其中所述信號是一個周期為7毫微秒(也就是大約143MHz)的方波。這個時序圖描述的是一個任意波形生成器100″,其中代數模塊108″包含了用于計算兩個交替上升沿(也就是相位0和相位2)以及兩個交替下降沿(也就是相位1、相位3)的并行電路。此外,所述時序圖還顯示了從輸入端進入切換模塊112″并且到達輸出模塊114″的輸出端的各個信號。
標記了“16:1復用器”的方框表示的是經過分支選擇模塊(例如圖10A的分支選擇模塊1003a)的傳播時間。標記了“符號”的方框表示的是經過所述在正(也就是上升沿)分支選擇模塊(例如圖10A中的1003a)或負(也就是下降沿)分支選擇模塊(例如圖10A中的1003b)之間進行選擇的復用器符號選擇部件例如圖10A中的復用器1010的傳播時間。標記了“微調”的方框表示的是經過微小延遲模塊(例如圖11的微小延遲模塊310)的傳播時間。微調方框之前的邊沿上的雙線表示的則是經由微小延遲模塊310傳播的變量。標記了“JK flops”的方框表示的是經過邊沿觸發器對(例如圖13中的觸發器1215,1220)的傳播時間。緊隨在標記了“JK flops”的方框之后并且標記了“XOR的方框表示的是經過第一平衡XOR模塊(例如圖14所示的用于相位0和相位2信號的平衡XOR模塊1500a或者用于相位1和相位3信號的平衡XOR模塊1500b)的傳播時間。緊隨在標記了“XOR”的方框之后并且標記了“XOR”的下一個方框表示的是經過下一個平衡XOR模塊(例如圖14的平衡XOR模塊1500c)的傳播時間。標記了“時鐘樹”的方框表示的是經過時鐘樹(例如圖14中所示的時鐘樹)的傳播時間。標記了“out_clk”的信號表示的是由“任意波形生成器100輸出的輸出信號136”。
本發明可以在不脫離本發明實質或基本特征的情況下采用其他特定形式來加以實施。因此,在各個方面都將上述實施例視為是說明性的,而不是對這里描述的發明加以限制,這樣一來,本發明的范圍是通過附加權利要求而不是上文的描述來進行限定的,并且這其中意圖包含所有那些落入權利要求等價物的含義和范圍以內的變化。
權利要求
1.一種用于提供任意波形的波形生成器,包括一個自由振蕩式環形振蕩器,包括多個連接在環路中的延遲部件;以及排列在延遲部件之間的多個分支,每一個分支都提供了一個唯一定相的振蕩躍遷信號;一個代數模塊,該模塊具有一個代數數據輸入端口、一個時鐘輸入端口以及一個代數數據輸出端口,所述代數模塊對在代數數據輸入端口接收的信號作出響應,從而在代數數據輸出端口產生一個表示任意波形的第一上升沿的信號;一個切換模塊,該模塊具有一個與代數數據輸出端口進行電通信的切換輸入端口、多個與所述自由振蕩式環形振蕩器的分支進行電通信的切換分支輸入端口以及一個切換輸出端口,其中所述切換模塊對在切換輸入端口接收的表示第一上升沿的信號做出響應,從而在切換輸出端口提供一個從多個分支的一個分支中選出的第一躍遷信號;以及一個輸出模塊,該模塊具有一個與切換輸出端口進行電通信的躍遷信號輸入端口、一個與代數數據輸出端口進行電通信的窗口輸入端口以及一個與代數模塊的時鐘輸入端口進行電通信的波形輸出端口,其中所述輸出模塊對在輸出模塊的躍遷信號輸入端口接收的第一躍遷信號以及在窗口輸入端口接收的表示第一上升沿的信號作出響應,從而在波形輸出端口生成一個任意波形。
2.權利要求1的任意波形生成器,還包括一個環路平均模塊,該模塊包括一個基準時鐘輸入端口和一個分支輸入端口,其中所述分支輸入端口電連接到多個分支,其中所述環路平均模塊對在基準時鐘輸入端口接收的基準時鐘信號作出響應,從而被配置成(i)對在基準時鐘信號邊沿之間出現的分支躍遷數目進行計數,(ii)響應于所述計數對平均環路速度進行計算。
3.權利要求2的環路平均模塊,還被配置成對(i)計算得到的平均環路速度以及(ii)捕捉到的多個環路狀態作出響應,從而計算環形振蕩器的瞬時相位。
4.權利要求1的任意波形生成器,還包括一個微小延遲模塊,該模塊包括一個與切換輸出端口進行電通信的信號輸入端口、一個與代數模塊的代數數據輸出端口進行電通信的選擇輸入端口以及一個與輸出模塊的輸入端口進行電通信的微小延遲輸出端口,響應于在選擇輸入端口接收的指示第一上升沿的信號,所述微小延遲模塊對從切換模塊的切換輸出端口到輸出模塊的輸入端口的第一躍遷信號的傳播進行延遲;其中所述輸出模塊的輸入端口與切換模塊的切換輸出端口通過微小延遲模塊進行電通信。
5.權利要求1的任意波形生成器,其中代數模塊還包括一個同步輸入端口,響應于在代數數據輸入端口接收的信號以及在同步輸入端口接收的信號,所述代數模塊在代數數據輸出端口生成一個表示任意波形內的第一上升沿的信號。
6.權利要求5的任意波形生成器,其中所述代數模塊生成一個表示第一上升沿的信號,由此在任意波形中實現第一上升沿的無縫合并。
7.權利要求1的任意波形生成器,其中一個延遲部件是反相延遲部件。
8.權利要求1的任意波形生成器,其中每一個延遲部件都是同等負載的。
9.權利要求1的任意波形生成器,其中至少有一個延遲部件還包含測試切換模塊,該模塊具有一個測試控制輸入端口和一個測試數據輸入端口,響應于在測試控制輸入端口接收的信號,所述延遲部件在相應分支生成一個與在測試數據輸入端口接收的信號相同的信號。
10.權利要求1的任意波形生成器,還包括一個補償模塊,該模塊包括一個與代數模塊進行電通信的數據輸出端口以及一個用于對表示基準時鐘源的頻率改變參數的信號進行接收的補償輸入端口,其中所述補償模塊對與頻率改變參數相關聯的基準時鐘頻率變化進行估計,響應于所述變化,所述補償模塊在補償輸出端口生成一個校正信號。
11.權利要求10的任意波形生成器,其中頻率改變參數是基準時鐘源的溫度。
12.權利要求10的任意波形生成器,其中頻率改變參數是基準時鐘源的壽命。
13.權利要求1的任意波形生成器,其中代數模塊還被配置成對在代數輸入端口接收的信號作出響應,從而在代數數據輸出端口生成一個表示任意波形內的第一下降沿的第二信號。
14.權利要求1的任意波形生成器,其中輸出模塊還被配置成生成一個捕獲信號,該信號表示的是用于指示在窗口輸入端口接收的第一上升沿的錯誤信號。
15.權利要求1的任意波形生成器,其中所述任意波形生成器是在CMOS集成電路內部實現的。
16.權利要求1的任意波形生成器,還包括一個放大器,所述放大器對來自耦合到環形振蕩器的電源的電源噪聲的至少一個分量進行前饋;以及一個環路速度補償電路,所述環路速度補償電路與所述放大器進行電通信。
17.權利要求1的任意波形生成器,還包括多個電容部件,其中每一個部件都與多條信號路徑中的一條相應路徑進行電通信,每一個電容部件都具有相應的預定容量,以便在經過相應信號路徑傳播躍遷信號的過程中生成相應的預定時延,由此,第一信號路徑上的躍遷的傳播時間實質上與第二信號路徑上的躍遷的傳播時間相等。
18.權利要求17的任意波形生成器,其中多個電容部件中的每一個電容部件都具有小于50毫微微法左右的值。
19.權利要求17的任意波形生成器,其中多條信號路徑中的每一條路徑都與第一電容部件和第二電容部件進行電通信。
20.權利要求19的任意波形生成器,其中相對于溫度而言,第一電容部件和第二電容部件具有不同的靈敏度。
21.權利要求19的任意波形生成器,其中相對于工藝而言,第一電容部件和第二電容部件具有不同的靈敏度。
22.權利要求19的任意波形生成器,其中相對于供應電壓而言,第一電容部件和第二電容部件具有不同的靈敏度。
23.一種用于產生任意波形的方法,包括在延遲部件環路中生成一個連續的躍遷序列;對在環路中的一個延遲部件上出現的躍遷進行計數;確定所需的第一上升沿時間和第一下降沿時間,以便產生任意波形;基于計數得到的躍遷和內部時鐘對所需的第一上升沿時間做出響應,以便選擇連續躍遷序列中的第一躍遷;基于計數得到的躍遷和內部時鐘對所需的第一下降沿時間作出響應,以便選擇連續躍遷序列中的第二躍遷;使用第一和第二選定躍遷來產生一個輸出信號,從而生成任意波形;以及基于輸出信號生成內部時鐘信號。
24.權利要求23的方法,其中生成輸出信號的步驟還包括對過去出現的所需第一上升沿時間作出響應,從而使用連續躍遷序列中的每一個躍遷來產生輸出信號。
25.權利要求23的方法,還包括相對于輸入基準時鐘而在其中一個延遲部件上計算平均躍遷速率。
26.權利要求25的方法,還包括對(i)計算得到的平均躍遷速率以及(ii)延遲部件環路的多個捕捉狀態作出響應,從而計算延遲部件環路內的瞬時相位。
27.權利要求23的方法,還包括將多個傳播延遲中的一個延遲添加到選定躍遷中,其中在多個傳播延遲中的兩個延遲之間的差值小于躍遷經由延遲部件環路中的延遲部件的平均傳播時間。
28.權利要求23的方法,還包括接收一個外部同步信號;以及對接收到的同步信號作出響應,從而修改第一躍遷和第二躍遷的選擇。
29.權利要求28的方法,其中修改步驟還包括修改第一躍遷的選擇,由此在輸出信號中提供第一上升沿的無縫合并,以便生成任意波形。
30.權利要求23的方法,其中每一個躍遷都具有極性,并且生成連續躍遷序列的步驟還包括使用一個延遲部件來對躍遷極性進行反相。
31.權利要求23的方法,其中生成連續躍遷序列的步驟還包括為每個延遲部件提供相等的負載。
32.權利要求23的方法,還包括接收一個表示基準時鐘源的頻率改變參數的信號;確定頻率改變參數所造成的基準時鐘變化;以及對所確定的變化作出響應,從而改變第一躍遷的選擇。
33.權利要求32的方法,其中頻率改變參數是基準時鐘源的溫度。
34.權利要求32的方法,其中頻率改變參數是基準時鐘源的壽命。
35.權利要求23的方法,還包括將預定時延添加到經由相應信號路徑的躍遷傳播之中,由此,經過信號路徑的躍遷的傳播時間實質上與經過第二信號路徑的躍遷的傳播時間相等。
全文摘要
一種波形生成器,包括自由振蕩式環形振蕩器(104)、代數模塊(108)、切換模塊(112)以及輸出模塊(114)。自由振蕩式環形振蕩器包括多個連接在環路中的延遲部件(120p,120o,120c,120b,120a)以及排列在延遲部件之間的多個分支(分支15,分支14,分支2,分支1,分支0),每個分支提供唯一定相的振蕩躍遷信號。代數模塊(108)對輸入信號(132)作出響應,從而產生表示任意波形的第一上升沿的輸出信號(136)。
文檔編號H03K3/64GK1628294SQ02828899
公開日2005年6月15日 申請日期2002年3月25日 優先權日2002年3月25日
發明者阿達姆·L·卡雷 申請人:時間工作室公司