張秀清,康亞楠,劉 巖,王曉君
(1.河北工業(yè)大學(xué)電氣工程學(xué)院,天津 300130;2.河北科技大學(xué)信息科學(xué)與工程學(xué)院,石家莊 050000)
一種基于FPGA的多通道復(fù)用鑒相器的設(shè)計(jì)與實(shí)現(xiàn)
張秀清1,2*,康亞楠2,劉 巖2,王曉君2
(1.河北工業(yè)大學(xué)電氣工程學(xué)院,天津 300130;2.河北科技大學(xué)信息科學(xué)與工程學(xué)院,石家莊 050000)
針對(duì)導(dǎo)航接收機(jī)中多通道鑒相器資源占用較多與生產(chǎn)成本較高的問題,提出了一種基于FPGA的多通道復(fù)用鑒相器方案。該方案通過仲裁單元與FIFO緩存器對(duì)多通道相關(guān)結(jié)果進(jìn)行仲裁與緩存,首先將多通道并行結(jié)果緩存排序?yàn)閱瓮ǖ来薪Y(jié)果,隨后將FIFO中的串行結(jié)果輸入到鑒相器中,最終使多通道復(fù)用同一鑒相器進(jìn)行計(jì)算與處理。整個(gè)跟蹤環(huán)路中的鑒相器個(gè)數(shù)由原來的每一通道配置一個(gè)變?yōu)槎鄠€(gè)通道復(fù)用一個(gè),從而降低了資源占用與生產(chǎn)成本。
多通道鑒相器;資源占用;生產(chǎn)成本;通道復(fù)用;仲裁單元;FIFO
在FPGA設(shè)計(jì)中,尤其在數(shù)字導(dǎo)航接收機(jī)多通道信號(hào)鑒相處理時(shí),通常都是先設(shè)計(jì)一個(gè)單通道信號(hào)的鑒相單元,然后再通過復(fù)制鑒相單元來實(shí)現(xiàn)并行多通道信號(hào)的鑒相處理[1]。這種并行多通道鑒相器結(jié)構(gòu)具體如圖1所示,在這種結(jié)構(gòu)中所有通道的鑒相過程是并行執(zhí)行的,每一個(gè)通道相互獨(dú)立工作,互不干擾,產(chǎn)生各自的相關(guān)結(jié)果,并將相關(guān)結(jié)果輸入至鑒相器得到鑒相結(jié)果,最終將鑒相結(jié)果交由CPU來處理[2-3]。并行結(jié)構(gòu)設(shè)計(jì)相對(duì)簡(jiǎn)單,調(diào)試容易,但當(dāng)處理通道增加時(shí),每一個(gè)通道均會(huì)占用一定資源,因此需要的FPGA芯片成本就會(huì)相應(yīng)的增加,這無疑會(huì)增加整個(gè)開發(fā)過程中的成本,當(dāng)需要的處理通道達(dá)到一定數(shù)量時(shí),即使等級(jí)很高的芯片也無法滿足工程需要,因此多通道復(fù)用鑒相器功能就能很好的解決資源占用與成本消耗問題,并且需要的芯片等級(jí)也會(huì)相應(yīng)的降低[4-5]。
圖1 并行多通道鑒相器結(jié)構(gòu)
通道I、Q兩支路的相關(guān)結(jié)果需要輸入至相應(yīng)通道的鑒相器進(jìn)行計(jì)算,而后得到相應(yīng)通道的鑒相結(jié)果,然而鑒相器并不是實(shí)時(shí)的對(duì)相關(guān)結(jié)果進(jìn)行處理,而是每隔1 ms或者更長(zhǎng)一段時(shí)間進(jìn)行鑒相處理,因此鑒相器可以通過復(fù)用來使整個(gè)設(shè)計(jì)資源占用減少,從而使整個(gè)開發(fā)過程成本降低[6-8]。多通道復(fù)用鑒相器結(jié)構(gòu)如圖2所示。該復(fù)用結(jié)構(gòu)主要由仲裁單元、FIFO緩存器與鑒相器3部分組成。仲裁單元主要是對(duì)多通道相關(guān)結(jié)果進(jìn)行判斷與排序,通過產(chǎn)生讀寫使能來對(duì)FIFO輸入數(shù)據(jù)與輸出數(shù)據(jù)進(jìn)行相應(yīng)控制,從而使鑒相器能夠及時(shí)處理每一通道的相關(guān)結(jié)果。FIFO是將相關(guān)結(jié)果進(jìn)行緩存,防止數(shù)據(jù)丟失,在仲裁單元控制下將多通道的并行相關(guān)結(jié)果轉(zhuǎn)換為串行相關(guān)結(jié)果。鑒相器是將經(jīng)過仲裁的通道串行相關(guān)結(jié)果進(jìn)行鑒相處理,最終CPU利用鑒相結(jié)果進(jìn)行相應(yīng)的計(jì)算與調(diào)整。整個(gè)復(fù)用結(jié)構(gòu)的協(xié)調(diào)中心在仲裁單元,該單元完成對(duì)整個(gè)數(shù)據(jù)鏈的調(diào)配與控制,而FIFO與鑒相器是相對(duì)獨(dú)立的模塊,需要在仲裁單元的控制下進(jìn)行數(shù)據(jù)緩存與處理。
圖2 多通道復(fù)用鑒相器結(jié)構(gòu)
圖4 仲裁排序模塊內(nèi)部結(jié)構(gòu)圖
在整個(gè)復(fù)用過程中,相關(guān)結(jié)果的緩存與鑒相處理必須協(xié)調(diào)工作,而整體控制由仲裁單元完成,仲裁單元包括仲裁排序模塊與仲裁讀取模塊,主要通過控制FIFO來完成相關(guān)結(jié)果緩存與串行輸出,控制鑒相器來完成鑒相處理,從而保證整個(gè)設(shè)計(jì)能夠有序穩(wěn)定的工作。
2.1 仲裁排序模塊
仲裁排序模塊引腳邏輯如圖3所示,該模塊輸入分別為時(shí)鐘信號(hào)(clk)、復(fù)位信號(hào)(reset)、N通道i支路相關(guān)結(jié)果(data_in_i_N)、N通道q支路相關(guān)結(jié)果(data_in_q_N)與N通道相關(guān)結(jié)果有效使能(data_in_val_N),該模塊輸出為FIFO寫使能(write_en)與FIFO輸入數(shù)據(jù)(din)。
圖3 仲裁排序模塊引腳邏輯圖
仲裁排序模塊內(nèi)部結(jié)構(gòu)如圖4所示。多通道相關(guān)器將N個(gè)通道相關(guān)結(jié)果有效(data_in_val_N)并行輸入至相關(guān)結(jié)果有效緩存器,N個(gè)i支路相關(guān)結(jié)果(data_in_i_N)與N個(gè)q支路相關(guān)結(jié)果(data_in_q_N)也并行輸入至I支路相關(guān)結(jié)果緩存器與Q支路相關(guān)結(jié)果緩存器;緩存器生成的data_in_val經(jīng)過結(jié)果有效查詢機(jī)制得到單通道相關(guān)結(jié)果選擇器(MUX)的通道有效條件判斷使能(Chn_flag),同時(shí),兩個(gè)結(jié)果緩存器生成的data_in_i與data_in_q經(jīng)過相關(guān)結(jié)果查詢機(jī)制得到MUX的數(shù)據(jù)輸入(data_in),其中data_in由同一通道的i支路相關(guān)結(jié)果與q支路相關(guān)結(jié)果拼接而成;通道循環(huán)計(jì)數(shù)器不斷的向MUX實(shí)時(shí)的輸入通道計(jì)數(shù)值chn_n;MUX根據(jù)chn_n在Chn_flag中的有效位來生成FIFO寫使能(write_en)與FIFO輸入數(shù)據(jù)(din),其中din由通道號(hào)(chn_n)、相應(yīng)通道的i支路相關(guān)結(jié)果與q支路相關(guān)結(jié)果拼接而成,這樣一個(gè)通道的數(shù)據(jù)就緩存至FIFO中,其他通道數(shù)據(jù)依據(jù)同樣邏輯進(jìn)行緩存,整體實(shí)現(xiàn)了并串轉(zhuǎn)換的過程。
2.2 仲裁讀取模塊
仲裁讀取模塊引腳邏輯如圖5所示,該模塊輸入分別為時(shí)鐘信號(hào)(clk)、復(fù)位信號(hào)(reset)、FIFO空信號(hào)(empty)與FIFO的輸出數(shù)據(jù)(dout_temp),該模塊輸出為FIFO讀使能(read_en)、輸出結(jié)果有效使能(data_val)、通道號(hào)(chnn)、i支路相關(guān)結(jié)果(data_out_i)與q支路相關(guān)結(jié)果(data_out_q)。
圖5 仲裁讀取模塊引腳邏輯圖
仲裁讀取模塊內(nèi)部結(jié)構(gòu)如圖6所示。設(shè)置鑒相器單元的工作時(shí)鐘數(shù),讀計(jì)數(shù)器生成的計(jì)數(shù)器值(cnt_read)在計(jì)算啟動(dòng)生成器中與工作時(shí)鐘數(shù)比較,達(dá)到此值時(shí)會(huì)生成計(jì)算啟動(dòng)標(biāo)志(start_flag);讀使能生成器會(huì)在start_flag的作用下,判斷FIFO反饋回來的空信號(hào)(empty)是否有效來生成讀使能(read_en),若empty無效則讀取FIFO緩存的相關(guān)結(jié)果;相關(guān)結(jié)果經(jīng)過鑒相器將鑒相結(jié)果輸入至CPU,最終CPU來進(jìn)行相關(guān)的處理與調(diào)整。
圖6 仲裁讀取模塊內(nèi)部結(jié)構(gòu)圖
利用modelsim軟件對(duì)仲裁單元進(jìn)行行為仿真來驗(yàn)證其正確性,將仲裁單元行為仿真分為仲裁排序模塊仿真與仲裁讀取模塊仿真。仲裁排序模塊仿真結(jié)果如圖7所示,該仿真是對(duì)同時(shí)到達(dá)的5個(gè)通道的相關(guān)結(jié)果進(jìn)行仲裁排序,輸入信號(hào)為5個(gè)通道的相關(guān)結(jié)果與相關(guān)結(jié)果有效使能;將相關(guān)結(jié)果輸入至data_in_i與data_in_q,并且有效使能輸入至data_in_val;經(jīng)過查詢機(jī)制與MUX最終得到FIFO寫使能與輸入數(shù)據(jù),其中chn_n為MUX提供查詢通道有效使能的變量。
仲裁讀取模塊仿真結(jié)果如圖8所示,設(shè)置鑒相器工作時(shí)鐘數(shù)為28,當(dāng)cnt_read值與鑒相器工作時(shí)鐘數(shù)相等時(shí),start_flag啟動(dòng)讀取過程,empty無效時(shí),將FIFO輸出結(jié)果(dout_temp)拆分為chnn、data_out_i與data_out_q,同時(shí)輸出結(jié)果有效使能(data_val)供鑒相器判斷處理。
圖8 仲裁讀取模塊行為仿真
圖7 仲裁排序模塊行為仿真
在FPGA中實(shí)現(xiàn)多通道并行結(jié)構(gòu)有著實(shí)現(xiàn)簡(jiǎn)單,調(diào)試容易的特點(diǎn),但是會(huì)增加資源消耗與開發(fā)成本。因此本方案從資源消耗與開發(fā)成本做綜合考慮分析,利用仲裁單元實(shí)現(xiàn)對(duì)FIFO緩存器與鑒相器的控制,將并行多通道相關(guān)結(jié)果變?yōu)榇邢嚓P(guān)結(jié)果,共同復(fù)用一個(gè)鑒相器,資源很大程度上得到了減少。因此本設(shè)計(jì)具有較高的工程設(shè)計(jì)參考價(jià)值。
[1] 劉純武,黃芝平. 一種多通道信號(hào)處理復(fù)用結(jié)構(gòu)及其FPGA實(shí)現(xiàn)方法[J]. 電子測(cè)量與儀器學(xué)報(bào),2008,22(1):72-75.
[2] 王黎明,劉貴忠,劉龍,等. 一種基于FGPA的并行流水線FIR濾波器結(jié)構(gòu)[J]. 微電子學(xué),2004,34(5):582-585.
[3] 薛立勤,鄒雪城,陳朝陽(yáng). 一種提高微控制器IP可復(fù)用性的核內(nèi)總線設(shè)計(jì)[J]. 計(jì)算機(jī)工程與應(yīng)用,2005,41(2):107-108.
[4] 謝剛. GPS原理與接收機(jī)設(shè)計(jì)[M]. 北京:電子工業(yè)出版社,2009:237-241.
[5] Elliott D Kaplan. Understanding GPS:Principles and Applications[EB/OL].
[6] 關(guān)紅賓,李晨航. 復(fù)用跟蹤通道數(shù)字信號(hào)處理[J]. 科技視界,2013(9):87-90.
[7] 王東升,李在銘. 基于FPGA的實(shí)時(shí)視頻運(yùn)動(dòng)背景補(bǔ)償校正技術(shù)[J]. 電子測(cè)量與儀器學(xué)報(bào),2006,20(5):69-72.
[8] 熊承義,田金文,柳健,等. 基于線掃格式的JPEG2000小波變換的VLSI結(jié)構(gòu)[J]. 微電子學(xué),2005,35(1):47-50.
DesignandImplementationofaMulti-ChannelMultiplexedPhaseDetectorBasedonFPGA
ZHANGXiuqing1,2*,KANGYanan2,LIUYan2,WANGXiaojun2
(1.School of Eflectrical Engineering,Hebei Universityof Technology,Tianjin 300130,China;2.Hebei University of Science and Technology,Shijiazhuang 050000,China)
For the problem of more resource consumption and production costs of multi-channel phase detector in the navigation receiver,a multi-channel multiplexed phase detector based on FPGA is proposed. The multi-channel related results are arbitrated and cached by the arbitration unit and FIFO buffer. The multi-channel parallel data is transformed into single-channel serial data to send to FIFO,which send the serial data to the phase detector,and the same phase detector is used to calculate and process by multi-channel. The number of phase detector is decreased seriously to only one in the tracking loop,and resource consumption and production costs are saved correspondingly.
multi-channel phase detector;resource consumption;production cost;channel multiplexing;arbitration unit;FIFO
10.3969/j.issn.1005-9490.2017.05.011
2016-08-16修改日期2016-10-23
TN43;TN407
A
1005-9490(2017)05-1104-04
張秀清(1979-),男,博士在讀,河北科技大學(xué)信息學(xué)院講師,主要從事導(dǎo)航信號(hào)處理的研究,894367585@qq.com;
康亞楠(1990-),男,河北科技大學(xué)碩士研究生。