本申請屬于數據傳輸領域,具體涉及一種數字芯片接收ADC輸出數據的方法及數字芯片。
背景技術:
計算機技術、通信技術和微電子技術的高速發(fā)展大大促進了ADC技術的發(fā)展,ADC的采樣率作為一個關鍵的技術指標也變得越來越高。在進行現代電子設計時,數字芯片(FPGA/CPLD/ASIC)需要將來自ADC的高速輸出數據接收并進行處理。目前市面上主流ADC的數據輸出接口還是低電壓差分信號LVDS(Low-Voltage Differential Signaling)接口,因此在進行ADC接口設計時,能否可靠的接收來自ADC的高速LVDS數據就變得非常的重要。
現有技術的方案如圖1所示,數字芯片接收來自ADC的隨路時鐘Synclk(頻率合成時鐘),采用內部鎖相環(huán)PLL對該時鐘進行倍頻(X2),從而產生采樣接收時鐘Iclk(FIclk=2*FSynclk)與處理時鐘Gclk。數字芯片使用Iclk來接收ADC輸出的高速LVDS數據,并將其轉換到數字芯片處理時鐘Gclk的時鐘域上,其中數字芯片內部鎖相環(huán)產生的采樣接收時鐘Iclk只有一個相位。
如圖2所示,數字芯片內部的數據接收器對于接口上的位周期可以簡單的劃分為3部分:第一部分是時鐘不確定度(clock uncertainty),該部分主要由ADC輸出特性及ADC所在單板決定;第二部分是接收器邊緣范圍(RSKM),該部分主要由數字芯片決定;第三部分為采樣窗口(Sample Window),在接收數據時,只有采樣時鐘沿位于數據的采樣窗口范圍之內時才能保證數據可靠的被數字芯片采集到。隨著ADC采樣速率越來越高,LVDS總線上傳輸的數據速率也越來越快,因而數字芯片(FPGA/CPLD/ASIC)能夠接收到ADC輸出的高速LVDS數據的窗口也變得越來越小。器件工藝的差別及外界環(huán)境的變化,將使得各種情況下(比如不同的芯片或者是不同的環(huán)境下)的采樣窗口發(fā)生變化,使接收到的數據出現誤碼的幾率越來越高,數據變得更加不可靠。
技術實現要素:
本申請?zhí)峁┮环N數字芯片接收ADC輸出數據的方法,以解決現有技術中數字芯片在接收來自ADC的輸出數據時,會因為產品工藝、環(huán)境變化等原因導致接收到的數據出現誤碼而導致可靠性不高的問題,同時提供一種接收ADC輸出數據的數字芯片。
根據第一方面,本申請?zhí)峁┝艘环N數字芯片接收ADC輸出數據的方法實施例,該方法包括如下步驟:
數字芯片內預先存儲N個相位系數,每一個相位系數對應一個相位;所述N個相位系數用于供數字芯片配置給數字芯片內的鎖相環(huán),以使得鎖相環(huán)根據來自于ADC輸出的隨路時鐘Synclk來產生的采樣接收時鐘Iclk的相位為被配給鎖相環(huán)的相位系數對應的相位,其中N為大于1的整數;
在接收由ADC輸出的待采集數據之前,查找用于在當前環(huán)境下接收ADC數據的采樣接收時鐘Iclk的最佳相位,并把該最佳相位對應的相位系數配置給鎖相環(huán),以產生具有最佳相位的采樣接收時鐘Iclk;
根據所述具有最佳相位的采樣接收時鐘Iclk來接收ADC輸出的待采集數據。
在一較優(yōu)實施例中,所述N個相位系數分別對應N個等分的相位。在一較優(yōu)實施例中,查找用于接收當前待采集數據的采樣接收時鐘Iclk的最佳相位,包括:
在接收由ADC輸出的待采集數據之前,通知ADC發(fā)送測試數據并接收;
數字芯片從所述N個相位系數對應的最小相位開始,依次調整鎖相環(huán)輸出的采樣接收時鐘Iclk的相位,找出當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的所有相位,并根據這些相位選擇出采樣接收時鐘Iclk的最佳相位。
在一較優(yōu)實施例中,選擇所述當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的所有相位中最中間的一個相位作為所述最佳相位。
在一較優(yōu)實施例中,數字芯片從所述N個相位系數對應的最小相位開始,依次調整鎖相環(huán)輸出的采樣接收時鐘Iclk的相位,找出當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的所有相位,包括:
第一步:數字芯片將最小相位對應的相位系數配置給鎖相環(huán),以產生具有對應相位的采樣接收時鐘Iclk;
第二步:當鎖相環(huán)的時鐘鎖定之后,檢測接收到的ADC測試數據是否存在誤碼;
第三步:當檢測結果為不存在誤碼時,則將當前配置給鎖相環(huán)的相位系數對應的相位標記為當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的相位;
第四步:判斷當前配置給鎖相環(huán)的相位系數是否為最后一個相位系數,如果不是,則將下一個相位系數配置給鎖相環(huán),以產生具有對應相位的采樣接收時鐘Iclk,并重新從第二步開始往下進行;如果是,則關閉ADC測試數據。
根據第二方面,本申請?zhí)峁┝艘环N接收ADC輸出數據的數字芯片實施例,包括:
鎖相環(huán),用于根據來自于ADC輸出的隨路時鐘Synclk產生采樣接收時鐘Iclk;
存儲模塊,用于預先存儲N個相位系數,每一個相位系數對應一個相位,其中N為大于1的整數;
鎖相環(huán)配置模塊,用于將所述N個相位系數配置給所述鎖相環(huán),以使得鎖相環(huán)根據來自于ADC輸出的隨路時鐘Synclk來產生的采樣接收時鐘Iclk的相位為被配給鎖相環(huán)的相位系數對應的相位;
最佳相位確定模塊,用于在數字芯片接收由ADC輸出的待采集數據之前,查找用于在當前環(huán)境下接收ADC數據的采樣接收時鐘Iclk的最佳相位,并通知鎖相環(huán)配置模塊把該最佳相位對應的相位系數配置給鎖相環(huán),以產生具有最佳相位的采樣接收時鐘Iclk;
數據接收器,用于根據所述具有最佳相位的采樣接收時鐘Iclk來接收ADC輸出的待采集數據。
在一較優(yōu)實施例中,所述存儲模塊存儲的N個相位系數分別對應N個等分的相位。
在一較優(yōu)實施例中,所述最佳相位確定模塊包括:
開始模塊,在數據接收器接收由ADC輸出的待采集數據之前,通知ADC發(fā)送測試數據以使得數據接收器接收測試數據;
查找模塊,用于通知鎖相環(huán)配置模塊從所述N個相位系數對應的最小相位開始,依次將這N個相位系數配置給鎖相環(huán)以依次輸出具有對應相位的采樣接收時鐘Iclk,以找出當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的所有相位,并根據這些相位選擇出采樣接收時鐘Iclk的最佳相位。
在一較優(yōu)實施例中,所述查找模塊包括選擇模塊,用于選擇所述當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的所有相位中最中間的一個相位作為所述最佳相位。
在一較優(yōu)實施例中,所述查找模塊還包括:
通知模塊,用于通知鎖相環(huán)配置模塊將最小相位對應的相位系數配置給鎖相環(huán),以產生具有對應相位的采樣接收時鐘Iclk;
誤碼檢測模塊,用于當鎖相環(huán)的時鐘鎖定之后,檢測數據接收器接收到的ADC測試數據是否存在誤碼;
標記模塊,用于當誤碼檢測模塊的檢測結果為不存在誤碼時,則將當前配置給鎖相環(huán)的相位系數對應的相位標記為當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的相位;
判斷模塊,用于判斷當前配置給鎖相環(huán)的相位系數是否為最后一個相位系數,如果不是,則通知鎖相環(huán)配置模塊將下一個相位系數配置給鎖相環(huán),以產生具有對應相位的采樣接收時鐘Iclk,并通知誤碼檢測模塊繼續(xù)工作;如果是,則關閉ADC測試數據。
有益效果:
由于本申請的數字芯片接收ADC輸出數據的方法和系統(tǒng),在使用ADC輸出的LVDS隨路時鐘產生數據采樣接收時鐘時,將采樣時鐘劃分為多個相位。在芯片啟動或者用戶需要時,查找當前環(huán)境下能夠接收ADC數據的采樣接收時鐘Iclk的最佳相位,并把該最佳相位的相位系數配置給鎖相環(huán),以產生具有最佳相位的采樣接收時鐘Iclk;再利用具有最佳相位的采樣接收時鐘Iclk的最佳相位時鐘來接收ADC的輸出數據。
該方法是對數字芯片內部的鎖相環(huán)部分進行優(yōu)化,支持鎖相環(huán)輸出時鐘相位動態(tài)重配功能,同時增加了數字芯片ADC接口的自測試過程,以計算出采樣接收時鐘Iclk的最佳相位,保證接收采樣時鐘沿盡可能靠近數據采樣窗口的中間。
與現有技術相比,本發(fā)明在芯片啟動或者用戶需要時都會進行ADC發(fā)送測試數據,數字芯片調整采樣接收時鐘相位進行測試數據檢測過程,找出在當前環(huán)境下能夠正確接收ADC數據的所有相位,并計算出采樣接收時鐘Iclk的最佳相位,保證在任何情況下都能有效可靠的接收來自ADC的高速LVDS數據,盡量減少誤碼比例。
附圖說明
圖1為現有技術數字芯片接收ADC輸出數據方法的結構原理圖;
圖2為數字芯片內部數據接收器的位周期劃分示意圖;
圖3為本申請數字芯片接收ADC輸出數據方法實施例的流程圖;
圖4為本申請鎖相環(huán)輸出時鐘相位劃分實施例的示意圖;
圖5為本申請查找用于接收當前待采集數據的采樣接收時鐘實施例的流程圖;
圖6為本申請找出當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘的所有相位實施例的流程圖;
圖7為確定最佳相位并進行鎖相環(huán)配置實施例的流程圖;
圖8為本申請接收ADC輸出數據的數字芯片實施例的原理框圖;
圖9為本申請接收ADC輸出數據的數字芯片中查找模塊實施例的原理框圖。
具體實施方式
下面通過具體實施方式結合附圖對本申請作進一步詳細說明。其中不同實施方式中類似元件采用了相關聯的類似的元件標號。在以下的實施方式中,很多細節(jié)描述是為了使得本申請能被更好的理解。然而,本領域技術人員可以毫不費力的認識到,其中部分特征在不同情況下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情況下,本申請相關的一些操作并沒有在說明書中顯示或者描述,這是為了避免本申請的核心部分被過多的描述所淹沒,而對于本領域技術人員而言,詳細描述這些相關操作并不是必要的,他們根據說明書中的描述以及本領域的一般技術知識即可完整了解相關操作。
另外,說明書中所描述的特點、操作或者特征可以以任意適當的方式結合形成各種實施方式。同時,方法描述中的各步驟或者動作也可以按照本領域技術人員所能顯而易見的方式進行順序調換或調整。因此,說明書和附圖中的各種順序只是為了清楚描述某一個實施例,并不意味著是必須的順序,除非另有說明其中某個順序是必須遵循的。
由于ADC輸出到數字芯片的數據由多對LVDS信號組成,每對LVDS信號中采樣窗口相對于隨路時鐘的邊沿的延遲可能都不一樣。因此調整采樣時鐘的延遲,使得對于每對LVDS數據來說,采樣時鐘沿位于采樣窗口內(最好是采樣窗口中間)是非常重要的。另外由于工藝的差異,每片ADC、數字芯片或者是每一塊單板中數據的有效采樣窗口可能都不一樣,對于不同的對象(ADC/數字芯片/單板)可能需要調整的采樣時鐘的延遲是不一樣的。
基于上述考慮,本申請對現有數字芯片的接收方法進行了改進,如圖3所示提供了該方法實現結構的一種實施例,在該實施例中,數字芯片接收ADC輸出數據的方法包括如下步驟:
步驟S31:數字芯片內預先存儲N個相位系數,每一個相位系數對應一個相位;這N個相位系數用于供數字芯片配置給數字芯片內的鎖相環(huán),以使得鎖相環(huán)根據來自于ADC輸出的隨路時鐘Synclk來產生的采樣接收時鐘Iclk的相位為被配給鎖相環(huán)的相位系數對應的相位,其中N為大于1的整數。
優(yōu)選地,相位系數的生成過程為:數字芯片通過內部的鎖相環(huán)將來自于ADC輸出的隨路時鐘Synclk產生數據的采樣接收時鐘Iclk時,根據數字芯片內部的鎖相環(huán)所支持的特性,將鎖相環(huán)輸出的采樣接收時鐘Iclk等分為N個相位,并按照鎖相環(huán)工作原理生成這N個相位的相應系數,將上述相位系數存儲在該數字芯片的存儲模塊中,這里的存儲模塊優(yōu)選數字芯片內部的ROM,以供數字芯片配置給數字芯片內的鎖相環(huán)。
如圖4所示為本發(fā)明提供的一種鎖相環(huán)輸出時鐘相位劃分實施例的示意圖由圖可知,根據來自于ADC輸出的隨路時鐘Synclk,數字芯片將鎖相環(huán)輸出的時鐘Iclk等分為8個相位,相鄰相位的間隔為45度,按照鎖相環(huán)工作原理生成這8個相位的相應系數并存儲在該數字芯片內部的ROM中。
步驟S32:當數字芯片啟動或者用戶需要時,在接收由ADC輸出的待采集數據之前,查找用于在當前環(huán)境下接收ADC數據的采樣接收時鐘Iclk的最佳相位,并把該最佳相位對應的相位系數配置給鎖相環(huán),以產生具有最佳相位的采樣接收時鐘Iclk。
優(yōu)選地,如圖5所示,查找用于接收當前待采集數據的采樣接收時鐘Iclk的最佳相位,包括:
步驟S51:在接收由ADC輸出的待采集數據之前,設置采樣接收時鐘Iclk的初始相位,通知ADC發(fā)送測試數據并接收;
步驟S52:數字芯片從預先存儲在ROM中的N個相位系數對應的初始相位(一般為最小相位0)開始,依次調整鎖相環(huán)輸出的采樣接收時鐘Iclk的相位,找出當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的所有相位(包括相位個數及位置),并根據這些相位選擇出采樣接收時鐘Iclk的最佳相位。
優(yōu)選地,選擇當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的所有相位中最中間的一個相位作為所述最佳相位。
優(yōu)選地,如圖6和圖7所示,數字芯片從N個相位系數對應的最小相位開始,依次調整鎖相環(huán)輸出的采樣接收時鐘Iclk的相位,找出當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的所有相位過程如下:
第一步S61:數字芯片將最小相位對應的相位系數配置給鎖相環(huán),以產生具有對應相位的采樣接收時鐘Iclk;
第二步S62:當鎖相環(huán)的時鐘鎖定之后,檢測接收到的ADC測試數據是否存在誤碼;
第三步S63:當檢測結果為不存在誤碼時,則將當前配置給鎖相環(huán)的相位系數對應的相位標記為當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的相位;
第四步S64:判斷當前配置給鎖相環(huán)的相位系數是否為最后一個相位系數,如果不是,則將下一個相位系數配置給鎖相環(huán),以產生具有對應相位的采樣接收時鐘Iclk,并重新從第二步開始往下進行;如果是,則關閉ADC測試數據。
步驟S33:根據具有最佳相位的采樣接收時鐘Iclk來接收ADC輸出的待采集數據,將其轉換到數字芯片處理時鐘Gclk時鐘域上。
在另一個實施例中,如圖8所示,本發(fā)明還提供了一種接收ADC輸出數據的數字芯片,由圖可知,該芯片包括:
鎖相環(huán)82,用于根據來自于ADC輸出的隨路時鐘Synclk產生采樣接收時鐘Iclk;
存儲模塊81,用于預先存儲N個相位系數,每一個相位系數對應一個相位,其中N為大于1的整數;
鎖相環(huán)配置模塊83,用于將N個相位系數配置給鎖相環(huán),以使得鎖相環(huán)根據來自于ADC輸出的隨路時鐘Synclk來產生的采樣接收時鐘Iclk的相位為被配給鎖相環(huán)的相位系數對應的相位;
最佳相位確定模塊84,用于在數字芯片接收由ADC輸出的待采集數據之前,查找用于在當前環(huán)境下接收ADC數據的采樣接收時鐘Iclk的最佳相位,并通知鎖相環(huán)配置模塊83把該最佳相位對應的相位系數從存儲模塊81讀取出來配置給鎖相環(huán),以產生具有最佳相位的采樣接收時鐘Iclk;
數據接收器85,用于根據具有最佳相位的采樣接收時鐘Iclk來接收ADC輸出的待采集數據。
在一個實施例中,存儲模塊81存儲的N個相位系數分別對應N個等分的相位。
在另一個實施例中,最佳相位確定模塊84包括:
開始模塊,在數據接收器85接收由ADC輸出的待采集數據之前,通知ADC發(fā)送測試數據以使得數據接收器85接收測試數據;
查找模塊,用于通知鎖相環(huán)配置模塊83從N個相位系數對應的最小相位開始,依次將這N個相位系數從存儲模塊81讀取出來配置給鎖相環(huán)以依次輸出具有對應相位的采樣接收時鐘Iclk,以找出當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的所有相位,并根據這些相位選擇出采樣接收時鐘Iclk的最佳相位。
在另一個實施例中,查找模塊包括選擇模塊,用于選擇當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的所有相位中最中間的一個相位作為最佳相位。
在另一個實施例中,如圖9所示,除了選擇模塊105以外,該查找模塊還包括:
通知模塊101,用于通知鎖相環(huán)配置模塊83將最小相位對應的相位系數配置給鎖相環(huán),以產生具有對應相位的采樣接收時鐘Iclk;
誤碼檢測模塊102,用于當鎖相環(huán)的時鐘鎖定之后,檢測通過數據接收器85接收到的ADC測試數據是否存在誤碼;
標記模塊103,用于當誤碼檢測模塊102的檢測結果為不存在誤碼時,則將當前配置給鎖相環(huán)的相位系數對應的相位標記為當前環(huán)境下能夠正確接收ADC數據的采樣接收時鐘Iclk的相位;
判斷模塊104,用于判斷當前配置給鎖相環(huán)的相位系數是否為最后一個相位系數,如果不是,則通知鎖相環(huán)配置模塊83將下一個相位系數配置給鎖相環(huán),以產生具有對應相位的采樣接收時鐘Iclk,并通知誤碼檢測模塊102繼續(xù)工作;如果是,則關閉ADC測試數據。
本發(fā)明的數字芯片在使用ADC輸出的LVDS隨路時鐘產生數據采樣接收時鐘時,將采樣時鐘劃分為多個相位。在芯片啟動或者用戶需要時都會通知ADC發(fā)送測試數據,并且調整數字芯片內部鎖相環(huán)輸出的采樣接收時鐘的相位,找出在當前環(huán)境下能夠正確接收ADC數據的所有相位的個數及位置,并根據這些相位選擇出采樣接收時鐘Iclk的最佳相位。該方法是對數字芯片內部的鎖相環(huán)部分進行優(yōu)化,支持鎖相環(huán)輸出時鐘相位動態(tài)重配功能,同時增加了數字芯片ADC接口的自測試過程,以計算出采樣接收時鐘Iclk的最佳相位,保證接收采樣時鐘沿盡可能靠近數據采樣窗口的中間。
本申請中所涉及的功能既可通過上述實施例中描述的程序的方式實現,也可通過硬件的方式實現,例如通過門電路搭建成專用集成電路。本領域技術人員可以理解,上述實施方式中各種程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:只讀存儲器、隨機存儲器、磁盤或光盤等,數據處理模塊可通過執(zhí)行程序實現上述功能。
以上應用了具體個例對本申請進行闡述,只是用于幫助理解本申請,并不用以限制本申請。對于本申請所屬技術領域的技術人員,依據本申請的思想,還可以做出若干簡單推演、變形或替換。