歐春湘++楊嘉偉++任曉松
摘 要: 為了完成高頻率下相關(guān)器的時(shí)分復(fù)用,相關(guān)器的低頻輸入數(shù)據(jù)須通過循環(huán)移位寄存器移位。提出了在FPGA中采用多級(jí)串聯(lián)FIFO核實(shí)現(xiàn)循環(huán)移位寄存器。對(duì)上述方案進(jìn)行FPGA仿真實(shí)驗(yàn),經(jīng)實(shí)測(cè)表明基于FIFO的循環(huán)移位寄存器工作穩(wěn)定,能夠?qū)崟r(shí)地提供準(zhǔn)確數(shù)據(jù)給時(shí)分復(fù)用相關(guān)器模塊。
關(guān)鍵詞: FIFO; 移位寄存器; FPGA; 相關(guān)器
中圖分類號(hào): TN915.04?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)19?0060?03
Implementation of circulating shift?register based on FIFO
OU Chun?xiang1, YANG Jia?wei2, REN Xiao?song1
(1. Information Technology Academy of China Aerospace Science & Industry Corporation, Beijing 100071, China;
2. Defense Technology Academy of China Aerospace Science & Industry Corporation, Beijing 100854, China )
Abstract: Since the low frequency input data of the correlator should be shifted by circulating shift?register to accomplish time division multiplexing of the correlator in high frequency, an implementation method of circulating shift?register which adopts series FIFO (First input first output) core in FPGA is proposed. FPGA simulation of the scheme mentioned above was performed. The results shows that the shift?register based on FIFO works stable and can provide accurate data to the time division multiplexing correlator.
Keywords: FIFO; shift?register; FPGA; correlator
0 引 言
在高動(dòng)態(tài)接收機(jī)的時(shí)域相關(guān)+FFT捕獲算法中需要進(jìn)行大量的高速相關(guān)運(yùn)算[1?2],因此在FPGA實(shí)現(xiàn)中需要產(chǎn)生大量的相關(guān)器。為了節(jié)省有限的FPGA資源、降低成本,同時(shí)相關(guān)運(yùn)算頻率[f1]是相關(guān)輸入數(shù)據(jù)(后簡(jiǎn)稱“輸入數(shù)據(jù)”)頻率[f2]的整數(shù)倍,因此時(shí)分復(fù)用相關(guān)器是達(dá)到目的的可行方法[3?4]。
輸入數(shù)據(jù)在頻率[f1]下經(jīng)過普通移位寄存器會(huì)造成數(shù)據(jù)的丟失。只有經(jīng)過循環(huán)移位才能保證在下一個(gè)輸入數(shù)據(jù)來之前,寄存器內(nèi)之前的[N(N=f1f2)]個(gè)輸入數(shù)據(jù)均在[f1]頻率下進(jìn)行了相關(guān)運(yùn)算。由于FIFO先進(jìn)先出的原理,利用深度為[N]的FIFO實(shí)現(xiàn)循環(huán)移位寄存器。
1 FIFO簡(jiǎn)介
FIFO(First Input First Output)是一種先進(jìn)先出的數(shù)據(jù)緩存器,如圖1所示。它與普通存儲(chǔ)器的區(qū)別是沒有外部讀寫地址線,控制邏輯簡(jiǎn)單。缺點(diǎn)是只能順序讀寫數(shù)據(jù),其數(shù)據(jù)地址由內(nèi)部讀寫指針自動(dòng)加1完成,不能像普通存儲(chǔ)器那樣可以由地址線決定讀取或?qū)懭肽硞€(gè)指定的地址[5]。
FIFO的主要參數(shù)是它的寬度和深度。FIFO的寬度指的是FIFO一次讀寫操作的數(shù)據(jù)位;深度指的是FIFO可以存儲(chǔ)N(設(shè)寬度為N)位數(shù)據(jù)的個(gè)數(shù)[6]。
根據(jù)FIFO工作的時(shí)鐘域,可以將FIFO分為同步FIFO和異步FIFO[7]。同步FIFO是指讀時(shí)鐘和寫時(shí)鐘為同一個(gè)時(shí)鐘。在時(shí)鐘沿來臨時(shí)同時(shí)發(fā)生讀寫操作。異步FIFO是指讀寫時(shí)鐘不一致,讀寫時(shí)鐘是互相獨(dú)立的。在本文中采用的是同步FIFO。
2 方案設(shè)計(jì)
在工程中需要2 560個(gè)相關(guān)器在124 MHz時(shí)鐘下做2 560次相關(guān)運(yùn)算。輸入數(shù)據(jù)頻率為15.5 MHz,因此在124 MHz時(shí)鐘下可以使用320個(gè)相關(guān)器時(shí)分復(fù)用8次以實(shí)現(xiàn)2 560次相關(guān)。FPGA中的320個(gè)同步FIFO核在124 MHz時(shí)鐘下對(duì)輸入數(shù)據(jù)進(jìn)行循環(huán)移位,每一個(gè)FIFO的輸出數(shù)據(jù)作為320個(gè)相關(guān)器的輸入數(shù)據(jù)進(jìn)行相關(guān)運(yùn)算[8]。整體方案結(jié)構(gòu)如圖2所示。
320個(gè)FIFO模塊以串聯(lián)模式工作。圖2中FIFO_0和FIFO_1分別為前后兩個(gè)串聯(lián)的FIFO模塊。每個(gè)FIFO的深度為8,寬度為6 b。輸入數(shù)據(jù)在15.5 MHz時(shí)鐘下寫入至FIFO_0,每124 MHz時(shí)鐘FIFO內(nèi)部數(shù)據(jù)進(jìn)行一次移位,同時(shí)將最先進(jìn)入FIFO的數(shù)據(jù)即移位到0位置的數(shù)據(jù)輸出給累加器ADD做相關(guān)運(yùn)算。一個(gè)ADD模塊在124 MHz時(shí)鐘下時(shí)分復(fù)用8次,相當(dāng)于8個(gè)相關(guān)器add7~add0。在15.5 MHz時(shí)鐘的控制下,將當(dāng)前0位置上第一次輸出給ADD模塊的數(shù)據(jù)同時(shí)輸出給下一個(gè)FIFO模塊FIFO_1。每個(gè)FIFO的工作模式均與FIFO_0的一致。
以第一個(gè)FIFO為例說明FIFO模塊的具體工作過程。假設(shè)依次輸入的數(shù)據(jù)為1,2,3,4,5,6,7,8,9,10,…。具體實(shí)現(xiàn)過程如圖3所示。
FIFO在124 MHz時(shí)鐘下工作。一個(gè)時(shí)段指8拍124 MHz時(shí)鐘即一個(gè)15.5 MHz輸入數(shù)據(jù)時(shí)鐘,每一個(gè)時(shí)段輸入一個(gè)新數(shù)據(jù)。從第1個(gè)時(shí)段可看出,當(dāng)向FIFO寫了7個(gè)數(shù)據(jù)后,讀出一個(gè)數(shù)據(jù),按照FIFO先進(jìn)先出的原則,讀出的是第一個(gè)寫進(jìn)去的數(shù)據(jù)“1”(如第一時(shí)段第1行所示);下一個(gè)124 MHz時(shí)鐘將第八個(gè)數(shù)據(jù)“8”(在此稱為新進(jìn)數(shù))寫入FIFO,同時(shí)讀出第二個(gè)寫進(jìn)去的數(shù)據(jù)“2” (如第一時(shí)段第2行所示);在第一時(shí)段內(nèi)由于除了第一個(gè)寫入的數(shù)據(jù)“1”外,其他的數(shù)據(jù)均要被后面的時(shí)段采用,所以在讀出數(shù)據(jù)“2”后,下一個(gè)時(shí)鐘再將其回寫入FIFO,同時(shí)讀出第三個(gè)寫進(jìn)去的數(shù)據(jù)“3” (如第一時(shí)段第3行所示);同理下一個(gè)時(shí)鐘將數(shù)據(jù)“3”回寫入FIFO,讀出第四個(gè)寫進(jìn)去的數(shù)據(jù)“4”,依次類推。
第一時(shí)段第1行讀取的數(shù)據(jù)“1”和第二時(shí)段第1行讀取的數(shù)據(jù)“2”依次輸入到下一個(gè)FIFO中。兩個(gè)相鄰FIFO之間同一級(jí)數(shù)據(jù)應(yīng)該相差8個(gè)124 MHz時(shí)鐘,即當(dāng)?shù)赱i]個(gè)FIFO寫入第9個(gè)數(shù)據(jù)的同時(shí),寫入第[i]個(gè)FIFO的第一個(gè)數(shù)據(jù)寫入第[i+1]個(gè)FIFO;也可以理解為同一個(gè)數(shù)據(jù)寫入前后兩個(gè)FIFO的時(shí)間上相差8個(gè)124 MHz時(shí)鐘。
而從圖3可以看出,第一個(gè)時(shí)段中當(dāng)寫入第八個(gè)數(shù)據(jù)“8”的同時(shí)已經(jīng)將寫入第一個(gè)數(shù)據(jù)“1”讀出了,所以為了滿足上述的時(shí)序關(guān)系,將讀出的數(shù)據(jù)“1”在124 MHz時(shí)鐘下打8拍再送入下一個(gè)FIFO;同理第二時(shí)段第一行讀出的數(shù)據(jù)“2”也在124 MHz時(shí)鐘下打8拍再送入下一個(gè)FIFO。將320個(gè)FIFO按照上述時(shí)序關(guān)系串聯(lián)起來就實(shí)現(xiàn)了2 560級(jí)循環(huán)移位寄存器。
3 仿真與分析
3.1 仿真條件
在FPGA中對(duì)上述方案進(jìn)行仿真。調(diào)用320個(gè)FIFO內(nèi)核以實(shí)現(xiàn)循環(huán)移位寄存器,320個(gè)FIFO的輸出分別作為320個(gè)相關(guān)器的輸入,320個(gè)相關(guān)器在主時(shí)鐘124 MHz下時(shí)分復(fù)用8次實(shí)現(xiàn)2 560個(gè)相關(guān)器。其中FIFO輸入數(shù)據(jù)的頻率為15.5 MHz,整個(gè)運(yùn)算過程在主時(shí)鐘124 MHz下工作。調(diào)用的FIFO內(nèi)核如圖4所示,其寬度為6 b,深度為8。輸入數(shù)據(jù)為:-2,0,0,0,-2,-6,2,6,0,0,2,2,6,0,4,2,…。
3.2 仿真結(jié)果
320個(gè)FIFO核串聯(lián)工作,連續(xù)兩個(gè)相鄰的FIFO_0和FIFO_1的時(shí)序邏輯如圖5所示[9?10]。在FIFO_0內(nèi)寫滿了8個(gè)數(shù)-2,0,0,0,-2,-6,2,6的下一拍即當(dāng)FIFO_0寫入第九個(gè)數(shù)“0”的同時(shí),F(xiàn)IFO_1開始寫入第一個(gè)數(shù)“-2”。每相鄰兩個(gè)FIFO的時(shí)序關(guān)系都與FIFO_0和FIFO_1的一樣。320個(gè)FIFO核就是以這樣的方式連接實(shí)現(xiàn)循環(huán)移位寄存器。
一個(gè)FIFO同一時(shí)段在124 MHz時(shí)鐘下連續(xù)輸出八個(gè)數(shù)據(jù),該八個(gè)數(shù)據(jù)依次在124 MHz時(shí)鐘下作相關(guān)運(yùn)算,每個(gè)相關(guān)結(jié)果均打八拍等待下一個(gè)數(shù)據(jù)的到來。以圖3為例說明,最右一列的數(shù)據(jù)為FIFO的輸出數(shù)據(jù)。第一時(shí)段最右一列的數(shù)據(jù)1,2,3,4,5,6,7,8依次作相關(guān)運(yùn)算,其中數(shù)據(jù)“1”的相關(guān)結(jié)果打八拍等待第二時(shí)段最右一列第一行數(shù)據(jù)“2”再作累加相關(guān),數(shù)據(jù)“2”的相關(guān)結(jié)果打八拍等待第二時(shí)段最右一列第二行數(shù)據(jù)“3”再作累加相關(guān),依次類推。此過程的FPGA仿真圖如圖6所示,sum0~sum7為一個(gè)FIFO輸出作相關(guān)運(yùn)算的8個(gè)相關(guān)結(jié)果。
4 結(jié) 語(yǔ)
高動(dòng)態(tài)接收機(jī)的時(shí)域相關(guān)+FFT捕獲算法需要大量相關(guān)運(yùn)算,為了減少硬件資源采用了時(shí)分復(fù)用技術(shù)實(shí)現(xiàn)大量的相關(guān)運(yùn)算。本方案將輸入數(shù)據(jù)經(jīng)過多級(jí)串聯(lián)FIFO進(jìn)行循環(huán)移位,再作相關(guān)運(yùn)算實(shí)現(xiàn)了相關(guān)器的時(shí)分復(fù)用。
參考文獻(xiàn)
[1] 李菊,陳禾,金俊昆,等.基于FFT的兩種偽碼快速捕獲方案的研究與實(shí)現(xiàn)[J].電子與信息學(xué)報(bào),2006(10):1778?1781.
[2] 謝鋼.GPS原理與接收機(jī)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2012.
[3] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[4] 勞有蘭,陳錦.基于FPGA時(shí)分復(fù)用數(shù)字基帶通信系統(tǒng)的設(shè)計(jì)[J].廣西工學(xué)院學(xué)報(bào),2003(2):34?37.
[5] 張奇山,劉安芝,劉希順.基于FPGA的FIFO設(shè)計(jì)和應(yīng)用[J].嵌入式技術(shù),2009(18):50?52.
[6] 周曉波,李銳菁,趙強(qiáng).基于FPGA 的高速存儲(chǔ)器接口應(yīng)用開發(fā)[J].鐵路計(jì)算機(jī)應(yīng)用,2013(5):8?11.
[7] 唐清善,費(fèi)瑋瑋,蔡惠智,等.基于FPGA的高速異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009(29):6?8.
[8] 胡輝,袁超,吳超,等.基于FPGA的GPS接收機(jī)相關(guān)器技術(shù)研究與實(shí)現(xiàn)[J].系統(tǒng)仿真學(xué)報(bào),2011(7):1513?1517.
[9] 何清平,劉佐濂.基于FPGA設(shè)計(jì)的綜合技術(shù)分析[J].中國(guó)科技信息,2006(11):181?183.
[10] 張小新,魏厚龍.FPGA技術(shù)及其開發(fā)方式概述[J].山西電子技術(shù),2008(5):86?87.
第一時(shí)段第1行讀取的數(shù)據(jù)“1”和第二時(shí)段第1行讀取的數(shù)據(jù)“2”依次輸入到下一個(gè)FIFO中。兩個(gè)相鄰FIFO之間同一級(jí)數(shù)據(jù)應(yīng)該相差8個(gè)124 MHz時(shí)鐘,即當(dāng)?shù)赱i]個(gè)FIFO寫入第9個(gè)數(shù)據(jù)的同時(shí),寫入第[i]個(gè)FIFO的第一個(gè)數(shù)據(jù)寫入第[i+1]個(gè)FIFO;也可以理解為同一個(gè)數(shù)據(jù)寫入前后兩個(gè)FIFO的時(shí)間上相差8個(gè)124 MHz時(shí)鐘。
而從圖3可以看出,第一個(gè)時(shí)段中當(dāng)寫入第八個(gè)數(shù)據(jù)“8”的同時(shí)已經(jīng)將寫入第一個(gè)數(shù)據(jù)“1”讀出了,所以為了滿足上述的時(shí)序關(guān)系,將讀出的數(shù)據(jù)“1”在124 MHz時(shí)鐘下打8拍再送入下一個(gè)FIFO;同理第二時(shí)段第一行讀出的數(shù)據(jù)“2”也在124 MHz時(shí)鐘下打8拍再送入下一個(gè)FIFO。將320個(gè)FIFO按照上述時(shí)序關(guān)系串聯(lián)起來就實(shí)現(xiàn)了2 560級(jí)循環(huán)移位寄存器。
3 仿真與分析
3.1 仿真條件
在FPGA中對(duì)上述方案進(jìn)行仿真。調(diào)用320個(gè)FIFO內(nèi)核以實(shí)現(xiàn)循環(huán)移位寄存器,320個(gè)FIFO的輸出分別作為320個(gè)相關(guān)器的輸入,320個(gè)相關(guān)器在主時(shí)鐘124 MHz下時(shí)分復(fù)用8次實(shí)現(xiàn)2 560個(gè)相關(guān)器。其中FIFO輸入數(shù)據(jù)的頻率為15.5 MHz,整個(gè)運(yùn)算過程在主時(shí)鐘124 MHz下工作。調(diào)用的FIFO內(nèi)核如圖4所示,其寬度為6 b,深度為8。輸入數(shù)據(jù)為:-2,0,0,0,-2,-6,2,6,0,0,2,2,6,0,4,2,…。
3.2 仿真結(jié)果
320個(gè)FIFO核串聯(lián)工作,連續(xù)兩個(gè)相鄰的FIFO_0和FIFO_1的時(shí)序邏輯如圖5所示[9?10]。在FIFO_0內(nèi)寫滿了8個(gè)數(shù)-2,0,0,0,-2,-6,2,6的下一拍即當(dāng)FIFO_0寫入第九個(gè)數(shù)“0”的同時(shí),F(xiàn)IFO_1開始寫入第一個(gè)數(shù)“-2”。每相鄰兩個(gè)FIFO的時(shí)序關(guān)系都與FIFO_0和FIFO_1的一樣。320個(gè)FIFO核就是以這樣的方式連接實(shí)現(xiàn)循環(huán)移位寄存器。
一個(gè)FIFO同一時(shí)段在124 MHz時(shí)鐘下連續(xù)輸出八個(gè)數(shù)據(jù),該八個(gè)數(shù)據(jù)依次在124 MHz時(shí)鐘下作相關(guān)運(yùn)算,每個(gè)相關(guān)結(jié)果均打八拍等待下一個(gè)數(shù)據(jù)的到來。以圖3為例說明,最右一列的數(shù)據(jù)為FIFO的輸出數(shù)據(jù)。第一時(shí)段最右一列的數(shù)據(jù)1,2,3,4,5,6,7,8依次作相關(guān)運(yùn)算,其中數(shù)據(jù)“1”的相關(guān)結(jié)果打八拍等待第二時(shí)段最右一列第一行數(shù)據(jù)“2”再作累加相關(guān),數(shù)據(jù)“2”的相關(guān)結(jié)果打八拍等待第二時(shí)段最右一列第二行數(shù)據(jù)“3”再作累加相關(guān),依次類推。此過程的FPGA仿真圖如圖6所示,sum0~sum7為一個(gè)FIFO輸出作相關(guān)運(yùn)算的8個(gè)相關(guān)結(jié)果。
4 結(jié) 語(yǔ)
高動(dòng)態(tài)接收機(jī)的時(shí)域相關(guān)+FFT捕獲算法需要大量相關(guān)運(yùn)算,為了減少硬件資源采用了時(shí)分復(fù)用技術(shù)實(shí)現(xiàn)大量的相關(guān)運(yùn)算。本方案將輸入數(shù)據(jù)經(jīng)過多級(jí)串聯(lián)FIFO進(jìn)行循環(huán)移位,再作相關(guān)運(yùn)算實(shí)現(xiàn)了相關(guān)器的時(shí)分復(fù)用。
參考文獻(xiàn)
[1] 李菊,陳禾,金俊昆,等.基于FFT的兩種偽碼快速捕獲方案的研究與實(shí)現(xiàn)[J].電子與信息學(xué)報(bào),2006(10):1778?1781.
[2] 謝鋼.GPS原理與接收機(jī)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2012.
[3] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[4] 勞有蘭,陳錦.基于FPGA時(shí)分復(fù)用數(shù)字基帶通信系統(tǒng)的設(shè)計(jì)[J].廣西工學(xué)院學(xué)報(bào),2003(2):34?37.
[5] 張奇山,劉安芝,劉希順.基于FPGA的FIFO設(shè)計(jì)和應(yīng)用[J].嵌入式技術(shù),2009(18):50?52.
[6] 周曉波,李銳菁,趙強(qiáng).基于FPGA 的高速存儲(chǔ)器接口應(yīng)用開發(fā)[J].鐵路計(jì)算機(jī)應(yīng)用,2013(5):8?11.
[7] 唐清善,費(fèi)瑋瑋,蔡惠智,等.基于FPGA的高速異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009(29):6?8.
[8] 胡輝,袁超,吳超,等.基于FPGA的GPS接收機(jī)相關(guān)器技術(shù)研究與實(shí)現(xiàn)[J].系統(tǒng)仿真學(xué)報(bào),2011(7):1513?1517.
[9] 何清平,劉佐濂.基于FPGA設(shè)計(jì)的綜合技術(shù)分析[J].中國(guó)科技信息,2006(11):181?183.
[10] 張小新,魏厚龍.FPGA技術(shù)及其開發(fā)方式概述[J].山西電子技術(shù),2008(5):86?87.
第一時(shí)段第1行讀取的數(shù)據(jù)“1”和第二時(shí)段第1行讀取的數(shù)據(jù)“2”依次輸入到下一個(gè)FIFO中。兩個(gè)相鄰FIFO之間同一級(jí)數(shù)據(jù)應(yīng)該相差8個(gè)124 MHz時(shí)鐘,即當(dāng)?shù)赱i]個(gè)FIFO寫入第9個(gè)數(shù)據(jù)的同時(shí),寫入第[i]個(gè)FIFO的第一個(gè)數(shù)據(jù)寫入第[i+1]個(gè)FIFO;也可以理解為同一個(gè)數(shù)據(jù)寫入前后兩個(gè)FIFO的時(shí)間上相差8個(gè)124 MHz時(shí)鐘。
而從圖3可以看出,第一個(gè)時(shí)段中當(dāng)寫入第八個(gè)數(shù)據(jù)“8”的同時(shí)已經(jīng)將寫入第一個(gè)數(shù)據(jù)“1”讀出了,所以為了滿足上述的時(shí)序關(guān)系,將讀出的數(shù)據(jù)“1”在124 MHz時(shí)鐘下打8拍再送入下一個(gè)FIFO;同理第二時(shí)段第一行讀出的數(shù)據(jù)“2”也在124 MHz時(shí)鐘下打8拍再送入下一個(gè)FIFO。將320個(gè)FIFO按照上述時(shí)序關(guān)系串聯(lián)起來就實(shí)現(xiàn)了2 560級(jí)循環(huán)移位寄存器。
3 仿真與分析
3.1 仿真條件
在FPGA中對(duì)上述方案進(jìn)行仿真。調(diào)用320個(gè)FIFO內(nèi)核以實(shí)現(xiàn)循環(huán)移位寄存器,320個(gè)FIFO的輸出分別作為320個(gè)相關(guān)器的輸入,320個(gè)相關(guān)器在主時(shí)鐘124 MHz下時(shí)分復(fù)用8次實(shí)現(xiàn)2 560個(gè)相關(guān)器。其中FIFO輸入數(shù)據(jù)的頻率為15.5 MHz,整個(gè)運(yùn)算過程在主時(shí)鐘124 MHz下工作。調(diào)用的FIFO內(nèi)核如圖4所示,其寬度為6 b,深度為8。輸入數(shù)據(jù)為:-2,0,0,0,-2,-6,2,6,0,0,2,2,6,0,4,2,…。
3.2 仿真結(jié)果
320個(gè)FIFO核串聯(lián)工作,連續(xù)兩個(gè)相鄰的FIFO_0和FIFO_1的時(shí)序邏輯如圖5所示[9?10]。在FIFO_0內(nèi)寫滿了8個(gè)數(shù)-2,0,0,0,-2,-6,2,6的下一拍即當(dāng)FIFO_0寫入第九個(gè)數(shù)“0”的同時(shí),F(xiàn)IFO_1開始寫入第一個(gè)數(shù)“-2”。每相鄰兩個(gè)FIFO的時(shí)序關(guān)系都與FIFO_0和FIFO_1的一樣。320個(gè)FIFO核就是以這樣的方式連接實(shí)現(xiàn)循環(huán)移位寄存器。
一個(gè)FIFO同一時(shí)段在124 MHz時(shí)鐘下連續(xù)輸出八個(gè)數(shù)據(jù),該八個(gè)數(shù)據(jù)依次在124 MHz時(shí)鐘下作相關(guān)運(yùn)算,每個(gè)相關(guān)結(jié)果均打八拍等待下一個(gè)數(shù)據(jù)的到來。以圖3為例說明,最右一列的數(shù)據(jù)為FIFO的輸出數(shù)據(jù)。第一時(shí)段最右一列的數(shù)據(jù)1,2,3,4,5,6,7,8依次作相關(guān)運(yùn)算,其中數(shù)據(jù)“1”的相關(guān)結(jié)果打八拍等待第二時(shí)段最右一列第一行數(shù)據(jù)“2”再作累加相關(guān),數(shù)據(jù)“2”的相關(guān)結(jié)果打八拍等待第二時(shí)段最右一列第二行數(shù)據(jù)“3”再作累加相關(guān),依次類推。此過程的FPGA仿真圖如圖6所示,sum0~sum7為一個(gè)FIFO輸出作相關(guān)運(yùn)算的8個(gè)相關(guān)結(jié)果。
4 結(jié) 語(yǔ)
高動(dòng)態(tài)接收機(jī)的時(shí)域相關(guān)+FFT捕獲算法需要大量相關(guān)運(yùn)算,為了減少硬件資源采用了時(shí)分復(fù)用技術(shù)實(shí)現(xiàn)大量的相關(guān)運(yùn)算。本方案將輸入數(shù)據(jù)經(jīng)過多級(jí)串聯(lián)FIFO進(jìn)行循環(huán)移位,再作相關(guān)運(yùn)算實(shí)現(xiàn)了相關(guān)器的時(shí)分復(fù)用。
參考文獻(xiàn)
[1] 李菊,陳禾,金俊昆,等.基于FFT的兩種偽碼快速捕獲方案的研究與實(shí)現(xiàn)[J].電子與信息學(xué)報(bào),2006(10):1778?1781.
[2] 謝鋼.GPS原理與接收機(jī)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2012.
[3] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[4] 勞有蘭,陳錦.基于FPGA時(shí)分復(fù)用數(shù)字基帶通信系統(tǒng)的設(shè)計(jì)[J].廣西工學(xué)院學(xué)報(bào),2003(2):34?37.
[5] 張奇山,劉安芝,劉希順.基于FPGA的FIFO設(shè)計(jì)和應(yīng)用[J].嵌入式技術(shù),2009(18):50?52.
[6] 周曉波,李銳菁,趙強(qiáng).基于FPGA 的高速存儲(chǔ)器接口應(yīng)用開發(fā)[J].鐵路計(jì)算機(jī)應(yīng)用,2013(5):8?11.
[7] 唐清善,費(fèi)瑋瑋,蔡惠智,等.基于FPGA的高速異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009(29):6?8.
[8] 胡輝,袁超,吳超,等.基于FPGA的GPS接收機(jī)相關(guān)器技術(shù)研究與實(shí)現(xiàn)[J].系統(tǒng)仿真學(xué)報(bào),2011(7):1513?1517.
[9] 何清平,劉佐濂.基于FPGA設(shè)計(jì)的綜合技術(shù)分析[J].中國(guó)科技信息,2006(11):181?183.
[10] 張小新,魏厚龍.FPGA技術(shù)及其開發(fā)方式概述[J].山西電子技術(shù),2008(5):86?87.