專利名稱:基于fpga的可配置的時(shí)鐘頻率合成裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于FPGA的可配置的時(shí)鐘頻率合成裝置,屬于收發(fā)器的發(fā)送時(shí)鐘設(shè)計(jì)技術(shù)領(lǐng)域。
背景技術(shù):
光纖通道技術(shù)中涉及的光電轉(zhuǎn)換部分通常使用集成模塊SFP(Small Form FactorPluggable)實(shí)現(xiàn),而電信號(hào)數(shù)據(jù)在輸入到SFP前和從SFP輸出后分別需要進(jìn)行數(shù)據(jù)的并串和串并轉(zhuǎn)換。目前實(shí)現(xiàn)該轉(zhuǎn)換過程主要有兩種方式,一是采用單獨(dú)的并串-串并轉(zhuǎn)換芯片SerDes (Serializer/Deserializer)芯片實(shí)現(xiàn),這種方式由于使用了額外的芯片,會(huì)增加板卡體積和系統(tǒng)不穩(wěn)定因素,還會(huì)使邏輯設(shè)計(jì)變得復(fù)雜;另一種是采用FPGA內(nèi)嵌的收發(fā)器
硬核接口 ALT2GXB,調(diào)用FPGA廠商提供的IP核實(shí)現(xiàn)該收發(fā)器硬核接口邏輯,本方式集成度高,有利于開展后續(xù)邏輯設(shè)計(jì)和提高系統(tǒng)穩(wěn)定性,應(yīng)用廣泛。若采用IP核實(shí)現(xiàn)收發(fā)器硬核接口邏輯,需要給FPGA提供一個(gè)本地的高精度參考時(shí)鐘,作為收發(fā)器的發(fā)送時(shí)鐘。時(shí)鐘恢復(fù)單元CRU (Clock Recovery Unit)可以從接收數(shù)據(jù)中恢復(fù)出時(shí)鐘信號(hào),作為收發(fā)器的接收時(shí)鐘。一些設(shè)計(jì)中使用普通晶振作為收發(fā)器的發(fā)送時(shí)鐘源,會(huì)由于發(fā)送時(shí)鐘信號(hào)抖動(dòng)過大導(dǎo)致收發(fā)器不能正常產(chǎn)生恢復(fù)時(shí)鐘信號(hào),也就不能正確輸出接收數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明是為了解決使用普通晶振作為收發(fā)器的發(fā)送時(shí)鐘源,會(huì)由于發(fā)送時(shí)鐘信號(hào)抖動(dòng)過大導(dǎo)致收發(fā)器不能正常產(chǎn)生恢復(fù)時(shí)鐘信號(hào),因而不能正確輸出接收數(shù)據(jù)的問題,提供一種基于FPGA的可配置的時(shí)鐘頻率合成裝置。本發(fā)明所述基于FPGA的可配置的時(shí)鐘頻率合成裝置,它包括時(shí)鐘發(fā)生單元、頻率合成單元、頻率合成控制邏輯單元和收發(fā)器,時(shí)鐘發(fā)生單元的時(shí)鐘信號(hào)輸出端連接頻率合成單元的時(shí)鐘信號(hào)輸入端,頻率合成單元的控制信號(hào)輸入端連接頻率合成控制邏輯單元的控制信號(hào)輸出端,頻率合成單元的兩對(duì)設(shè)定頻率的差分時(shí)鐘信號(hào)輸出端與收發(fā)器的兩對(duì)發(fā)送時(shí)鐘信號(hào)輸入端一一對(duì)應(yīng)連接,所述頻率合成單元和收發(fā)器均為FPGA內(nèi)部的功能單元,頻率合成控制邏輯單元內(nèi)部提供21位的配置寄存器,該配置寄存器通過FPGA內(nèi)部的其他邏輯單元或由上位機(jī)通過PCI接口進(jìn)行21位數(shù)據(jù)配置,實(shí)現(xiàn)時(shí)鐘頻率合成;所述21位數(shù)據(jù)在解析后以測(cè)試寄存器T、N分頻寄存器和M分頻寄存器的形式輸出。所述時(shí)鐘發(fā)生單元采用25MHz無源晶振和IOMHz有源晶振實(shí)現(xiàn),所述25MHz無源晶振和IOMHz有源晶振作為頻率合成單元的時(shí)鐘源,分別連接到頻率合成單元的晶振輸入和測(cè)試時(shí)鐘輸入。頻率合成單元使用美國IDT公司的ICS8430I-61實(shí)現(xiàn)。
FPGA使用Altera公司的EP2SGX90E系列實(shí)現(xiàn)。所述頻率合成控制邏輯單元的邏輯控制采用Verilog語言實(shí)現(xiàn),頻率合成控制邏輯單元包括配置寄存器、解析容錯(cuò)處理機(jī)、串行裝載狀態(tài)機(jī)、并行裝載狀態(tài)機(jī)和未工作狀態(tài)機(jī);解析容錯(cuò)處理機(jī)用于對(duì)配置寄存器接收的21位配置數(shù)據(jù)進(jìn)行解析,將解析后得到的14位配置數(shù)據(jù)分別賦值給相應(yīng)的測(cè)試寄存器T、N分頻寄存器和M分頻寄存器,并判斷所有配置數(shù)據(jù)是否存在錯(cuò)誤,對(duì)存在錯(cuò)誤的數(shù)據(jù)根據(jù)其所屬發(fā)送寄存器及數(shù)據(jù)錯(cuò)誤類型輸出預(yù)設(shè)默認(rèn)值,然后輸出頻率合成單元時(shí)鐘源選擇信號(hào)xtal_sel和pll選擇信號(hào)vco_sel ;同時(shí)根據(jù)21位配置數(shù)據(jù)確定頻率合成 單元的工作模式,再根據(jù)已確定的工作模式,對(duì)串行裝載標(biāo)志信號(hào)serial_load_flag和并行裝載標(biāo)志信號(hào)para_load_f lag正確賦值,供頻率合成控制邏輯單元使用,當(dāng)頻率合成單元的復(fù)位輸入信號(hào)s_mr無效,且串行裝載標(biāo)志信號(hào)serial_load_flag為I時(shí),進(jìn)入串行裝載狀態(tài)機(jī),使測(cè)試寄存器T、N分頻寄存器和M分頻寄存器對(duì)應(yīng)的14位數(shù)據(jù)以串行的方式輸出,完成對(duì)頻率合成單元的配置;當(dāng)頻率合成單元的復(fù)位輸入信號(hào)s_mr無效,且并行裝載標(biāo)志信號(hào)para_load_flag為I時(shí),進(jìn)入并行裝載狀態(tài)機(jī),使測(cè)試寄存器T、N分頻寄存器和M分頻寄存器對(duì)應(yīng)的14位數(shù)據(jù)以并行的方式輸出,完成對(duì)頻率合成單元的配置;如果串行裝載標(biāo)志信號(hào)serial_load_flag和并行裝載標(biāo)志信號(hào)para_load_flag都為O,進(jìn)入未工作狀態(tài)機(jī)。所述串行裝載狀態(tài)機(jī)包括五種狀態(tài),分別為等待狀態(tài)、開始狀態(tài)、移位狀態(tài)、讀取狀態(tài)和結(jié)束狀態(tài)等待狀態(tài)檢測(cè)頻率合成控制邏輯單元的復(fù)位信號(hào)rst_n、串行裝載標(biāo)志信號(hào)serial_load_f lag 和并行裝載標(biāo)志信號(hào) para_load_f lag,當(dāng)頻率合成控制邏輯單元的復(fù)位信號(hào)rst_n為1,且串行裝載標(biāo)志信號(hào)serial_load_flag為I時(shí),使串行裝載狀態(tài)機(jī)輸出頻率合成單元所需的串行裝載標(biāo)志信號(hào)s_load為0,并行裝載標(biāo)志信號(hào)np_load為1,配置頻率合成單元為串行裝載方式,然后進(jìn)入開始狀態(tài);開始狀態(tài)設(shè)置讀取個(gè)數(shù)寄存器read_num為O,然后進(jìn)入移位狀態(tài);,移位狀態(tài)將待發(fā)送的一位數(shù)據(jù)賦值給頻率合成單元的數(shù)據(jù)總線s_data,設(shè)置輸出串行時(shí)鐘s_clock為O,然后進(jìn)入讀取狀態(tài);讀取狀態(tài)檢測(cè)串行時(shí)鐘S_cl0ck信號(hào)和讀取個(gè)數(shù)寄存器read_num的數(shù)值,當(dāng)串行時(shí)鐘s_clock為I時(shí),將頻率合成單元的數(shù)據(jù)總線s_data的數(shù)據(jù)讀入頻率合成單元,當(dāng)讀取個(gè)數(shù)寄存器read_num的數(shù)值不等于14時(shí),設(shè)置輸出串行時(shí)鐘S_cl0ck為I,并使讀取個(gè)數(shù)寄存器read_num中的數(shù)值加I,然后進(jìn)入移位狀態(tài);當(dāng)讀取個(gè)數(shù)寄存器read_num等于14時(shí),設(shè)置讀取個(gè)數(shù)寄存器read_num為O,輸出串行裝載標(biāo)志信號(hào)s_load為1,然后進(jìn)入結(jié)束狀態(tài);結(jié)束狀態(tài)輸出串行裝載標(biāo)志信號(hào)s_load為O,通過串行裝載標(biāo)志信號(hào)s_load的下降沿表示一次串行裝載過程結(jié)束,然后進(jìn)入開始狀態(tài)。
所述并行裝載狀態(tài)機(jī)包括三種狀態(tài),分別為等待狀態(tài)、開始狀態(tài)和結(jié)束狀態(tài)等待狀態(tài)檢測(cè)頻率合成控制邏輯單元的復(fù)位信號(hào)rst_n和并行裝載標(biāo)志信號(hào)para—load—flag,當(dāng)頻率合成控制邏輯單元的復(fù)位信號(hào)rst_n為1,并行裝載標(biāo)志信號(hào)para_load_flag為I時(shí),輸出串行裝載標(biāo)志信號(hào)s_load為0,然后進(jìn)入開始狀態(tài);開始狀態(tài)輸出并行裝載信號(hào)np_load為0,然后進(jìn)入結(jié)束狀態(tài);結(jié)束狀態(tài)輸出并行裝載信號(hào)np_load為I,通過并行裝載信號(hào)np_load的上升沿表示一次并行裝載過程結(jié)束,然后進(jìn)入開始狀態(tài)。所述未工作狀態(tài)機(jī)執(zhí)行時(shí),輸出頻率合成單兀的復(fù)位輸入信號(hào)s_mr為I。本發(fā)明的優(yōu)點(diǎn)是本發(fā)明方法中,頻率合成單元采用專用頻率合成芯片ICS8430I-61,能夠輸出最大周期間抖動(dòng)30ps、單周期抖動(dòng)6ps的高精度差分時(shí)鐘信號(hào),將此時(shí)鐘信號(hào)作為收發(fā)器的發(fā)送時(shí)鐘可以使收發(fā)器正常工作;該頻率合成芯片能實(shí)現(xiàn)20. 83MHz到500MHz的時(shí)鐘信號(hào)輸出,可以滿足不同速率的光纖通道應(yīng)用對(duì)于收發(fā)器發(fā)送時(shí)鐘的需求;本發(fā)明通過Verilog HDL語言實(shí)現(xiàn)FPGA對(duì)頻率合成芯片的控制,提供給用戶一個(gè)配置寄存器,只需正確配置該寄存器,就可以靈活地改變頻率合成芯片的輸出頻率;通過本發(fā)明方法提供收發(fā)器發(fā)送時(shí)鐘,可以降低對(duì)本地晶振的精度要求,更加方便晶振采購。本發(fā)明方法產(chǎn)生的時(shí)鐘信號(hào)能夠滿足FPGA的收發(fā)器對(duì)發(fā)送時(shí)鐘抖動(dòng)的要求,其輸出頻率范圍能滿足目前光纖通道的應(yīng)用。本發(fā)明方法采用專用頻率合成芯片產(chǎn)生低抖動(dòng)、寬輸出范圍的差分時(shí)鐘,對(duì)頻率合成芯片的控制采用可編程邏輯器件實(shí)現(xiàn),可通過寄存器進(jìn)行靈活配置。
圖I為本發(fā)明的結(jié)構(gòu)框圖;圖2為頻率合成控制邏輯的原理框圖;圖3為串行裝載狀態(tài)的內(nèi)部狀態(tài)轉(zhuǎn)換圖;圖4為并行裝載狀態(tài)的內(nèi)部狀態(tài)轉(zhuǎn)換圖;圖5為本發(fā)明方法的工作流程圖。
具體實(shí)施例方式具體實(shí)施方式
一下面結(jié)合圖I和圖2說明本實(shí)施方式,本實(shí)施方式所述基于FPGA的可配置的時(shí)鐘頻率合成裝置,它包括時(shí)鐘發(fā)生單元I、頻率合成單元2、頻率合成控制邏輯單元3和收發(fā)器4,時(shí)鐘發(fā)生單元I的時(shí)鐘信號(hào)輸出端連接頻率合成單元2的時(shí)鐘信號(hào)輸入端,頻率合成單元2的控制信號(hào)輸入端連接頻率合成控制邏輯單元3的控制信號(hào)輸出端,頻率合成單元2的兩對(duì)設(shè)定頻率的差分時(shí)鐘信號(hào)輸出端與收發(fā)器4的兩對(duì)發(fā)送時(shí)鐘信號(hào)輸入端一一對(duì)應(yīng)連接,所述頻率合成單元2和收發(fā)器4均為FPGA內(nèi)部的功能單元,頻率合成控制邏輯單元3內(nèi)部提供21位的配置寄存器3-1,該配置寄存器3-1通過FPGA內(nèi)部的其他邏輯單元5或由上位機(jī)通過PCI接口進(jìn)行21位數(shù)據(jù)配置,實(shí)現(xiàn)時(shí)鐘頻率合成;所述21位數(shù)據(jù)在解析后以測(cè)試寄存器T、N分頻寄存器和M分頻寄存器的形式輸出。本實(shí)施方式中,時(shí)鐘發(fā)生單元I可以使用普通無源晶振和精度較好的有源晶振,輸出時(shí)鐘信號(hào)到頻率合成單元2。頻率合成單元2使用專用頻率合成芯片,在FPGA邏輯控制下,輸出兩對(duì)設(shè)定頻率的高精度低抖動(dòng) 差分時(shí)鐘信號(hào),分別作為兩路收發(fā)器的發(fā)送時(shí)鐘。頻率合成控制邏輯單元3在實(shí)現(xiàn)對(duì)頻率合成單元2控制的基礎(chǔ)上,對(duì)其接口進(jìn)行了封裝,提供一個(gè)21位的配置寄存器3-1,用戶只需要對(duì)該寄存器進(jìn)行適當(dāng)配置,就可以得到所需的收發(fā)器發(fā)送時(shí)鐘信號(hào),對(duì)寄存器的配置可以通過FPGA其他邏輯實(shí)現(xiàn),或者在上位機(jī)設(shè)置,通過PCI接口傳遞給控制邏輯。
具體實(shí)施方式
二 本實(shí)施方式為對(duì)實(shí)施方式一的進(jìn)一步說明,所述時(shí)鐘發(fā)生單元I采用25MHz無源晶振和IOMHz有源晶振實(shí)現(xiàn),所述25MHz無源晶振和IOMHz有源晶振作為頻率合成單元2的時(shí)鐘源,分別連接到頻率合成單元2的晶振輸入和測(cè)試時(shí)鐘輸入。
具體實(shí)施方式
三本實(shí)施方式為對(duì)實(shí)施方式一或二的進(jìn)一步說明,頻率合成單元2使用美國IDT公司的ICS8430I-61實(shí)現(xiàn)。
具體實(shí)施方式
四本實(shí)施方式為對(duì)實(shí)施方式一、二或三的進(jìn)一步說明,F(xiàn)PGA使用Altera公司的EP2SGX90E系列實(shí)現(xiàn)。
具體實(shí)施方式
五下面結(jié)合圖2和圖5說明本實(shí)施方式,本實(shí)施方式為對(duì)實(shí)施方式一、二、三或四的進(jìn)一步說明,所述頻率合成控制邏輯單元3的邏輯控制采用Verilog語言實(shí)現(xiàn),頻率合成控制邏輯單元3包括配置寄存器3-1、解析容錯(cuò)處理機(jī)3-2、串行裝載狀態(tài)機(jī)3-3、并行裝載狀態(tài)機(jī)3-4和未工作狀態(tài)機(jī)3-5 ;解析容錯(cuò)處理機(jī)3-2用于對(duì)配置寄存器3-1接收的21位配置數(shù)據(jù)進(jìn)行解析,將解析后得到的14位配置數(shù)據(jù)分別賦值給相應(yīng)的測(cè)試寄存器T、N分頻寄存器和M分頻寄存器,并判斷所有配置數(shù)據(jù)是否存在錯(cuò)誤,對(duì)存在錯(cuò)誤的數(shù)據(jù)根據(jù)其所屬發(fā)送寄存器及數(shù)據(jù)錯(cuò)誤類型輸出預(yù)設(shè)默認(rèn)值,然后輸出頻率合成單元時(shí)鐘源選擇信號(hào)xtal_sel和pll選擇信號(hào)vco_sel ;同時(shí)根據(jù)21位配置數(shù)據(jù)確定頻率合成單元2的工作模式,再根據(jù)已確定的工作模式,對(duì)串行裝載標(biāo)志信號(hào)serial_load_flag和并行裝載標(biāo)志信號(hào)para_load_flag正確賦值,供頻率合成控制邏輯單元3使用,當(dāng)頻率合成單元2的復(fù)位輸入信號(hào)s_mr無效,且串行裝載標(biāo)志信號(hào)serial_load_flag為I時(shí),進(jìn)入串行裝載狀態(tài)機(jī)3-3,使測(cè)試寄存器T、N分頻寄存器和M分頻寄存器對(duì)應(yīng)的14位數(shù)據(jù)以串行的方式輸出,完成對(duì)頻率合成單元2的配置;當(dāng)頻率合成單元2的復(fù)位輸入信號(hào)s_mr無效,且并行裝載標(biāo)志信號(hào)para_load_flag為I時(shí),進(jìn)入并行裝載狀態(tài)機(jī)3-4,使測(cè)試寄存器T、N分頻寄存器和M分頻寄存器對(duì)應(yīng)的14位數(shù)據(jù)以并行的方式輸出,完成對(duì)頻率合成單元2的配置;如果串行裝載標(biāo)志信號(hào)serial_load_flag和并行裝載標(biāo)志信號(hào)para_load_flag都為O,進(jìn)入未工作狀態(tài)機(jī)3-5。本實(shí)施方式中,解析容錯(cuò)處理機(jī)3-2部分負(fù)責(zé)將輸入的21位配置數(shù)據(jù)分解到相應(yīng)寄存器,輸出頻率合成芯片時(shí)鐘源選擇信號(hào)xtal_sel和pll選擇信號(hào)VC0_Sel,根據(jù)配置數(shù)據(jù)確定頻率合成芯片工作模式,并對(duì)串行裝載標(biāo)志信號(hào)serial_l0ad_flag和并行裝載標(biāo)志信號(hào)para_load_flag正確賦值。當(dāng)選擇信號(hào)xtal_sel為O時(shí),頻率合成芯片時(shí)鐘源為IOMHz有源晶振,當(dāng)選擇信號(hào)xtal_sel為I時(shí),頻率合成芯片時(shí)鐘源為25MHz無源晶振;本實(shí)施方式中,在頻率合成芯片內(nèi)部集成了一個(gè)PU,該P(yáng)ll為鎖相環(huán),可以實(shí)現(xiàn)輸出信號(hào)頻率對(duì)輸入信號(hào)頻率的自動(dòng)跟蹤,最終使輸出頻率等于輸入頻率,pll選擇信號(hào)vco_sel是用于選擇是否使能該pll功能。為了方便用戶使用,控制邏輯對(duì)用戶輸入的21位配置數(shù)據(jù)沒有額外限制,所以需要在邏輯設(shè)計(jì)時(shí)添加容錯(cuò)處理,如果用戶輸入的配置數(shù)據(jù)存在錯(cuò)誤,邏輯會(huì)根據(jù)錯(cuò)誤類型輸出預(yù)設(shè)默認(rèn)值。配置寄存器中的分頻寄存器都按照二進(jìn)制數(shù)制定義,而不是按照頻率合成芯片手冊(cè)給出的無規(guī)則定義,在解析容錯(cuò)處理中進(jìn)行數(shù)據(jù)轉(zhuǎn)換,因此用戶不需要知道無規(guī)則的數(shù)據(jù)對(duì)應(yīng)關(guān)系,簡(jiǎn)化了配置過程。
具體實(shí)施方式
六下面結(jié)合圖2、圖3和圖5說明本實(shí)施方式,本實(shí)施方式為對(duì)實(shí)施方式一、二、三、四或五的進(jìn)一步說明,所述串行裝載狀態(tài)機(jī)3-3包括五種狀態(tài),分別為等
待狀態(tài)、開始狀態(tài)、移位狀態(tài)、讀取狀態(tài)和結(jié)束狀態(tài)等待狀態(tài)檢測(cè)頻率合成控制邏輯單元3的復(fù)位信號(hào)rst_n、串行裝載標(biāo)志信號(hào)serial_load_f lag 和并行裝載標(biāo)志信號(hào) para_load_f lag,當(dāng)頻率合成控制邏輯單元3的復(fù)位信號(hào)rst_n為1,且串行裝載標(biāo)志信號(hào)serial_load_flag為I時(shí),使串行裝載狀態(tài)機(jī)3_3輸出頻率合成單元2所需的串行裝載標(biāo)志信號(hào)s_load為O,并行裝載標(biāo)志信號(hào)np_load為I,配置頻率合成單元2為串行裝載方式,然后進(jìn)入開始狀態(tài);開始狀態(tài)設(shè)置讀取個(gè)數(shù)寄存器read_num為0,然后進(jìn)入移位狀態(tài);,移位狀態(tài)將待發(fā)送的一位數(shù)據(jù)賦值給頻率合成單元的數(shù)據(jù)總線s_data,設(shè)置輸出串行時(shí)鐘s_clock為O,然后進(jìn)入讀取狀態(tài);讀取狀態(tài)檢測(cè)串行時(shí)鐘S_cl0ck信號(hào)和讀取個(gè)數(shù)寄存器read_num的數(shù)值,當(dāng)串行時(shí)鐘s_clock為I時(shí),將頻率合成單元的數(shù)據(jù)總線s_data的數(shù)據(jù)讀入頻率合成單元,當(dāng)讀取個(gè)數(shù)寄存器read_num的數(shù)值不等于14時(shí),設(shè)置輸出串行時(shí)鐘s_cl0ck為I,并使讀取個(gè)數(shù)寄存器read_num中的數(shù)值加I,然后進(jìn)入移位狀態(tài);當(dāng)讀取個(gè)數(shù)寄存器read_num等于14時(shí),設(shè)置讀取個(gè)數(shù)寄存器read_num為O,輸出串行裝載標(biāo)志信號(hào)s_load為1,然后進(jìn)入結(jié)束狀態(tài);結(jié)束狀態(tài)輸出串行裝載標(biāo)志信號(hào)s_load為O,通過串行裝載標(biāo)志信號(hào)s_load的下降沿表示一次串行裝載過程結(jié)束,然后進(jìn)入開始狀態(tài)。本實(shí)施方式中,移位狀態(tài)和讀取狀態(tài)配合使用,整體實(shí)現(xiàn)的功能是以串行方式將測(cè)試寄存器T、N分頻寄存器和M分頻寄存器對(duì)應(yīng)的14位數(shù)據(jù)傳遞給頻率合成單元。其中,14位數(shù)據(jù)的最高位先發(fā)送,最低位最后發(fā)送,移位狀態(tài)每一次是將待發(fā)送的一位數(shù)據(jù)賦值給頻率合成單元的數(shù)據(jù)總線s_data,讀取狀態(tài)是將總線s_data上的數(shù)據(jù)讀入頻率合成單元,當(dāng)串行時(shí)鐘s_clock為I時(shí),頻率合成單元會(huì)將s_data上的數(shù)據(jù)讀入頻率合成單元。讀取狀態(tài)中提到的個(gè)數(shù)寄存器read_num,用于判斷解析后得到的14位配置數(shù)據(jù)是否已經(jīng)全部發(fā)送給頻率合成單元。讀取read_num的值起到一個(gè)輔助判斷配置過程是否完成的功能。
本實(shí)施方式中,當(dāng)頻率合成控制邏輯單元3的復(fù)位信號(hào)無效,且串行裝載標(biāo)志信號(hào)Serial_load_flag為I后,頻率合成芯片進(jìn)入串行裝載狀態(tài),即FPGA的頻率合成控制邏輯單元3將測(cè)試寄存器T、N分頻寄存器和M分頻寄存器的值以串行的方式輸出,完成對(duì)頻率合成單元2的配置,否則處于等待狀態(tài)。
具體實(shí)施方式
七下面結(jié)合圖2、圖4和圖5說明本實(shí)施方式,本實(shí)施方式為對(duì)實(shí)施方式一、二、三、四、五或六的進(jìn)一步說明,所述并行裝載狀態(tài)機(jī)3-4包括三種狀態(tài),分別為等待狀態(tài)、開始狀態(tài)和結(jié)束狀態(tài)等待狀態(tài)檢測(cè)頻率合成控制邏輯單元3的復(fù)位信號(hào)rst_n和并行裝載標(biāo)志信號(hào)para—load—flag,當(dāng)頻率合成控制邏輯單元3的復(fù)位信號(hào)rst_n為1,并行裝載標(biāo)志信號(hào)para_load_flag為I時(shí),輸出串行裝載標(biāo)志信號(hào)s_load為O,然后進(jìn)入開始狀態(tài);開始狀態(tài)輸出并行裝載信號(hào)np_load為0,然后進(jìn)入結(jié)束狀態(tài);結(jié)束狀態(tài)輸出并行裝載信號(hào)np_load為I,通過并行裝載信號(hào)np_load的上升沿表示一次并行裝載過程結(jié)束,然后進(jìn)入開始狀態(tài)。本實(shí)施方式中,并行裝載在邏輯設(shè)計(jì)上相對(duì)簡(jiǎn)單,配置數(shù)據(jù)是通過印刷電路板PCB上的連接關(guān)系進(jìn)行設(shè)定,在開始狀態(tài)只需輸出np_load為O。在結(jié)束狀態(tài)中,設(shè)置np_load為1,完成并行發(fā)送過程。本實(shí)施方式中,當(dāng)頻率合成控制邏輯單元3的復(fù)位信號(hào)無效且并行裝在標(biāo)志信號(hào)para_load_flag為1,頻率合成單元2從未工作狀態(tài)等待進(jìn)入并行裝載狀態(tài),即FPGA的頻率合成控制邏輯單元3將測(cè)試寄存器T、N分頻寄存器和M分頻寄存器的值以并行的方式輸出,此時(shí)N分頻寄存器和M分頻寄存器的值來自頻率合成芯片特定引腳的電平狀態(tài),硬件設(shè)計(jì)時(shí)采用上下拉方式,即對(duì)于芯片內(nèi)部是下拉的引腳,設(shè)計(jì)時(shí)進(jìn)行上拉;對(duì)于芯片內(nèi)部是上拉的引腳,設(shè)計(jì)時(shí)進(jìn)行下拉,這樣在使用并行裝載模式時(shí),可以通過選焊電阻,得到所需的M、N值,最終得到需要的時(shí)鐘輸出,并行裝載狀態(tài)轉(zhuǎn)換圖如圖4所示。
具體實(shí)施方式
八下面結(jié)合圖2和圖5說明本實(shí)施方式,本實(shí)施方式為對(duì)實(shí)施方式一、二、三、四、五、六或七的進(jìn)一步說明,所述未工作狀態(tài)機(jī)3-5執(zhí)行時(shí),輸出頻率合成單元2的復(fù)位輸入信號(hào)s_mr為I。本發(fā)明方法得到所需頻率的時(shí)鐘信號(hào)輸出的工作流程如圖5所示。具體工作流程為I)、對(duì)板卡上電,進(jìn)行硬件初始化;2)、加載PCI接口驅(qū)動(dòng),通過驅(qū)動(dòng)程序設(shè)置頻率合成控制邏輯單元3提供的配置寄存器3-1 ;也可通過FPGA內(nèi)其他邏輯3-2配置該寄存器;3)數(shù)據(jù)解析與容錯(cuò)處理對(duì)輸入頻率合成控制邏輯單元3的配置寄存器值進(jìn)行解析,將值賦給相應(yīng)寄存器,輸出頻率合成芯片時(shí)鐘源選擇信號(hào)和Pll選擇信號(hào),對(duì)頻率合成芯片進(jìn)行初步配置,同時(shí)給出配置寄存器值設(shè)定的芯片工作模式標(biāo)志。對(duì)于無效輸入或越界輸入等錯(cuò)誤配置數(shù)據(jù),需要進(jìn)行容錯(cuò)處理,即根據(jù)錯(cuò)誤類型輸出預(yù)設(shè)默認(rèn)值;4)工作模式選擇如果設(shè)定為串行加載模式,頻率合成控制邏輯單元3將配置數(shù)據(jù)在串行時(shí)鐘S_cl0ck上升沿以串行數(shù)據(jù)s_data的形式寫入到頻率合成芯片;如果設(shè)定為并行加載模式,頻率合成控制邏輯單元3將配置數(shù)據(jù)在并行加載標(biāo)志np_load下降沿以并行的形式寫入到頻率合成芯片,通過其上升沿指示操作完成;如果串行模式或并行模式標(biāo)志信號(hào)都無效,則處于未工作模式,輸出頻率合成芯片復(fù)位信號(hào);5)、一次配置過程完成后,判斷是否需要繼續(xù)配置,即配置寄存器的值是否發(fā)生變化,如果變化,則返回2)步,開始下一次配置過程;如果不需要繼續(xù)配置,則結(jié)束。本發(fā)明方法中,對(duì)頻率合成芯片的控制簡(jiǎn)單化,可通過FPGA內(nèi)部其他邏輯或PCI接口設(shè)置一個(gè)21位寄存器實(shí)現(xiàn);頻率合成芯片的工作模式可通過配置寄存器設(shè)置;使用普通無源晶振和有源晶振,通過本時(shí)鐘頻 率合成方法可得到滿足收發(fā)器精度和抖動(dòng)要求的發(fā)送時(shí)鐘信號(hào);本發(fā)明方法使用一片頻率合成芯片能得到兩路差分時(shí)鐘信號(hào),可以滿足目前兩路光纖通道接口板卡對(duì)收發(fā)器發(fā)送時(shí)鐘的需求。
權(quán)利要求
1.一種基于FPGA的可配置的時(shí)鐘頻率合成裝置,其特征在于它包括時(shí)鐘發(fā)生單元(I)、頻率合成單元(2)、頻率合成控制邏輯單元(3)和收發(fā)器(4), 時(shí)鐘發(fā)生單元(I)的時(shí)鐘信號(hào)輸出端連接頻率合成單元(2)的時(shí)鐘信號(hào)輸入端,頻率合成單元(2)的控制信號(hào)輸入端連接頻率合成控制邏輯單元(3)的控制信號(hào)輸出端,頻率合成單元(2)的兩對(duì)設(shè)定頻率的差分時(shí)鐘信號(hào)輸出端與收發(fā)器(4)的兩對(duì)發(fā)送時(shí)鐘信號(hào)輸入端--對(duì)應(yīng)連接,所述頻率合成單元(2)和收發(fā)器(4)均為FPGA內(nèi)部的功能單元,頻率合成控制邏輯單元(3)內(nèi)部提供21位的配置寄存器(3-1),該配置寄存器(3-1)通過FPGA內(nèi)部的其他邏輯單元(5)或由上位機(jī)通過PCI接口進(jìn)行21位數(shù)據(jù)配置,實(shí)現(xiàn)時(shí)鐘頻率合成; 所述21位數(shù)據(jù)在解析后以測(cè)試寄存器T、N分頻寄存器和M分頻寄存器的形式輸出。
2.根據(jù)權(quán)利要求I所述的基于FPGA的可配置的時(shí)鐘頻率合成裝置,其特征在于所述時(shí)鐘發(fā)生單元(I)采用25MHz無源晶振和IOMHz有源晶振實(shí)現(xiàn),所述25MHz無源晶振和IOMHz有源晶振作為頻率合成單元(2)的時(shí)鐘源,分別連接到頻率合成單元(2)的晶振輸入和測(cè)試時(shí)鐘輸入。
3.根據(jù)權(quán)利要求2所述的基于FPGA的可配置的時(shí)鐘頻率合成裝置,其特征在于頻率合成單元(2)使用美國IDT公司的ICS8430I-61實(shí)現(xiàn)。
4.根據(jù)權(quán)利要求3所述的基于FPGA的可配置的時(shí)鐘頻率合成裝置,其特征在于FPGA使用Altera公司的EP2SGX90E系列實(shí)現(xiàn)。
5.根據(jù)權(quán)利要求4所述的基于FPGA的可配置的時(shí)鐘頻率合成裝置,其特征在于所述頻率合成控制邏輯單元(3)的邏輯控制采用Verilog語言實(shí)現(xiàn),頻率合成控制邏輯單元(3)包括配置寄存器(3-1)、解析容錯(cuò)處理機(jī)(3-2)、串行裝載狀態(tài)機(jī)(3-3)、并行裝載狀態(tài)機(jī)(3-4)和未工作狀態(tài)機(jī)(3-5); 解析容錯(cuò)處理機(jī)(3-2)用于對(duì)配置寄存器(3-1)接收的21位配置數(shù)據(jù)進(jìn)行解析,將解析后得到的14位配置數(shù)據(jù)分別賦值給相應(yīng)的測(cè)試寄存器T、N分頻寄存器和M分頻寄存器,并判斷所有配置數(shù)據(jù)是否存在錯(cuò)誤,對(duì)存在錯(cuò)誤的數(shù)據(jù)根據(jù)其所屬發(fā)送寄存器及數(shù)據(jù)錯(cuò)誤類型輸出預(yù)設(shè)默認(rèn)值,然后輸出頻率合成單元時(shí)鐘源選擇信號(hào)xtal_sel和pll選擇信號(hào)vco_sel ;同時(shí)根據(jù)21位配置數(shù)據(jù)確定頻率合成單元(2)的工作模式,再根據(jù)已確定的工作模式,對(duì)串行裝載標(biāo)志信號(hào)serial_load_flag和并行裝載標(biāo)志信號(hào)para_load_f lag正確賦值,供頻率合成控制邏輯單元(3)使用, 當(dāng)頻率合成單元(2)的復(fù)位輸入信號(hào)s_mr無效,且串行裝載標(biāo)志信號(hào)serial_load_flag為I時(shí),進(jìn)入串行裝載狀態(tài)機(jī)(3-3),使測(cè)試寄存器T、N分頻寄存器和M分頻寄存器對(duì)應(yīng)的14位數(shù)據(jù)以串行的方式輸出,完成對(duì)頻率合成單元(2)的配置; 當(dāng)頻率合成單元(2 )的復(fù)位輸入信號(hào)s_mr無效,且并行裝載標(biāo)志信號(hào)para_load_f lag為I時(shí),進(jìn)入并行裝載狀態(tài)機(jī)(3-4),使測(cè)試寄存器T、N分頻寄存器和M分頻寄存器對(duì)應(yīng)的14位數(shù)據(jù)以并行的方式輸出,完成對(duì)頻率合成單元(2)的配置; 如果串行裝載標(biāo)志信號(hào)serial_load_flag和并行裝載標(biāo)志信號(hào)para_load_f lag都為O,進(jìn)入未工作狀態(tài)機(jī)(3-5 )。
6.根據(jù)權(quán)利要求5所述的基于FPGA的可配置的時(shí)鐘頻率合成裝置,其特征在于所述串行裝載狀態(tài)機(jī)(3-3)包括五種狀態(tài),分別為等待狀態(tài)、開始狀態(tài)、移位狀態(tài)、讀取狀態(tài)和結(jié)束狀態(tài)等待狀態(tài)檢測(cè)頻率合成控制邏輯單元(3)的復(fù)位信號(hào)rst_n、串行裝載標(biāo)志信號(hào)serial_load_f lag 和并行裝載標(biāo)志信號(hào) para_load_f lag, 當(dāng)頻率合成控制邏輯單元(3)的復(fù)位信號(hào)rst_nS 1,且串行裝載標(biāo)志信號(hào)serial_load_flag為I時(shí),使串行裝載狀態(tài)機(jī)(3_3)輸出頻率合成單元(2)所需的串行裝載標(biāo)志信號(hào)s_load為O,并行裝載標(biāo)志信號(hào)np_load為1,配置頻率合成單元(2)為串行裝載方式,然后進(jìn)入開始狀態(tài); 開始狀態(tài)設(shè)置讀取個(gè)數(shù)寄存器read_num為O,然后進(jìn)入移位狀態(tài);, 移位狀態(tài)將待發(fā)送的一位數(shù)據(jù)賦值給頻率合成單元的數(shù)據(jù)總線s_data,設(shè)置輸出串行時(shí)鐘s_clock為O,然后進(jìn)入讀取狀態(tài); 讀取狀態(tài)檢測(cè)串行時(shí)鐘s_clock信號(hào)和讀取個(gè)數(shù)寄存器read_num的數(shù)值, 當(dāng)串行時(shí)鐘s_clock為I時(shí),將頻率合成單元的數(shù)據(jù)總線s_data的數(shù)據(jù)讀入頻率合成單元, 當(dāng)讀取個(gè)數(shù)寄存器read_num的數(shù)值不等于14時(shí),設(shè)置輸出串行時(shí)鐘S_cl0ck為1,并使讀取個(gè)數(shù)寄存器read_num中的數(shù)值加I,然后進(jìn)入移位狀態(tài); 當(dāng)讀取個(gè)數(shù)寄存器read_num等于14時(shí),設(shè)置讀取個(gè)數(shù)寄存器read_num為O,輸出串行裝載標(biāo)志信號(hào)s_load為I,然后進(jìn)入結(jié)束狀態(tài); 結(jié)束狀態(tài)輸出串行裝載標(biāo)志信號(hào)s_load為O,通過串行裝載標(biāo)志信號(hào)s_load的下降沿表示一次串行裝載過程結(jié)束,然后進(jìn)入開始狀態(tài)。
7.根據(jù)權(quán)利要求5或6所述的基于FPGA的可配置的時(shí)鐘頻率合成裝置,其特征在于所述并行裝載狀態(tài)機(jī)(3-4)包括三種狀態(tài),分別為等待狀態(tài)、開始狀態(tài)和結(jié)束狀態(tài) 等待狀態(tài)檢測(cè)頻率合成控制邏輯單元(3)的復(fù)位信號(hào)rst_n和并行裝載標(biāo)志信號(hào)para—load—flag, 當(dāng)頻率合成控制邏輯單元(3)的復(fù)位信號(hào)rst_n為1,并行裝載標(biāo)志信號(hào)para_load_flag為I時(shí),輸出串行裝載標(biāo)志信號(hào)s_load為0,然后進(jìn)入開始狀態(tài); 開始狀態(tài)輸出并行裝載信號(hào)np_load為0,然后進(jìn)入結(jié)束狀態(tài); 結(jié)束狀態(tài)輸出并行裝載信號(hào)np_load為I,通過并行裝載信號(hào)np_load的上升沿表示一次并行裝載過程結(jié)束,然后進(jìn)入開始狀態(tài)。
8.根據(jù)權(quán)利要求5所述的基于FPGA的可配置的時(shí)鐘頻率合成裝置,其特征在于所述未工作狀態(tài)機(jī)(3-5)執(zhí)行時(shí),輸出頻率合成單兀(2)的復(fù)位輸入信號(hào)s_mr為I。
全文摘要
基于FPGA的可配置的時(shí)鐘頻率合成裝置,屬于收發(fā)器的發(fā)送時(shí)鐘設(shè)計(jì)技術(shù)領(lǐng)域。它解決了使用普通晶振作為收發(fā)器的發(fā)送時(shí)鐘源,會(huì)由于發(fā)送時(shí)鐘信號(hào)抖動(dòng)過大導(dǎo)致收發(fā)器不能正常產(chǎn)生恢復(fù)時(shí)鐘信號(hào),因而不能正確輸出接收數(shù)據(jù)的問題。它的時(shí)鐘發(fā)生單元的時(shí)鐘信號(hào)輸出端連接頻率合成單元的時(shí)鐘信號(hào)輸入端,頻率合成單元的控制信號(hào)輸入端連接頻率合成控制邏輯單元的控制信號(hào)輸出端,頻率合成單元的兩對(duì)設(shè)定頻率的差分時(shí)鐘信號(hào)輸出端與收發(fā)器的兩對(duì)發(fā)送時(shí)鐘信號(hào)輸入端一一對(duì)應(yīng)連接,頻率合成控制邏輯單元內(nèi)部的配置寄存器通過FPGA內(nèi)部的其他邏輯單元或由上位機(jī)通過PCI接口進(jìn)行21位數(shù)據(jù)配置,實(shí)現(xiàn)時(shí)鐘頻率合成。本發(fā)明適用于時(shí)鐘頻率的合成。
文檔編號(hào)H04J3/06GK102882623SQ20121026170
公開日2013年1月16日 申請(qǐng)日期2012年7月26日 優(yōu)先權(quán)日2012年7月26日
發(fā)明者劉大同, 彭宇, 劉連勝, 劉川, 見其拓 申請(qǐng)人:哈爾濱工業(yè)大學(xué)