一种基于FPGA的多通道复用鉴相器的设计与实现
2017-11-03张秀清康亚楠王晓君
张秀清,康亚楠,刘 岩,王晓君
(1.河北工业大学电气工程学院,天津 300130;2.河北科技大学信息科学与工程学院,石家庄 050000)
一种基于FPGA的多通道复用鉴相器的设计与实现
张秀清1,2*,康亚楠2,刘 岩2,王晓君2
(1.河北工业大学电气工程学院,天津 300130;2.河北科技大学信息科学与工程学院,石家庄 050000)
针对导航接收机中多通道鉴相器资源占用较多与生产成本较高的问题,提出了一种基于FPGA的多通道复用鉴相器方案。该方案通过仲裁单元与FIFO缓存器对多通道相关结果进行仲裁与缓存,首先将多通道并行结果缓存排序为单通道串行结果,随后将FIFO中的串行结果输入到鉴相器中,最终使多通道复用同一鉴相器进行计算与处理。整个跟踪环路中的鉴相器个数由原来的每一通道配置一个变为多个通道复用一个,从而降低了资源占用与生产成本。
多通道鉴相器;资源占用;生产成本;通道复用;仲裁单元;FIFO
在FPGA设计中,尤其在数字导航接收机多通道信号鉴相处理时,通常都是先设计一个单通道信号的鉴相单元,然后再通过复制鉴相单元来实现并行多通道信号的鉴相处理[1]。这种并行多通道鉴相器结构具体如图1所示,在这种结构中所有通道的鉴相过程是并行执行的,每一个通道相互独立工作,互不干扰,产生各自的相关结果,并将相关结果输入至鉴相器得到鉴相结果,最终将鉴相结果交由CPU来处理[2-3]。并行结构设计相对简单,调试容易,但当处理通道增加时,每一个通道均会占用一定资源,因此需要的FPGA芯片成本就会相应的增加,这无疑会增加整个开发过程中的成本,当需要的处理通道达到一定数量时,即使等级很高的芯片也无法满足工程需要,因此多通道复用鉴相器功能就能很好的解决资源占用与成本消耗问题,并且需要的芯片等级也会相应的降低[4-5]。
图1 并行多通道鉴相器结构
1 多通道复用鉴相器结构设计
通道I、Q两支路的相关结果需要输入至相应通道的鉴相器进行计算,而后得到相应通道的鉴相结果,然而鉴相器并不是实时的对相关结果进行处理,而是每隔1 ms或者更长一段时间进行鉴相处理,因此鉴相器可以通过复用来使整个设计资源占用减少,从而使整个开发过程成本降低[6-8]。多通道复用鉴相器结构如图2所示。该复用结构主要由仲裁单元、FIFO缓存器与鉴相器3部分组成。仲裁单元主要是对多通道相关结果进行判断与排序,通过产生读写使能来对FIFO输入数据与输出数据进行相应控制,从而使鉴相器能够及时处理每一通道的相关结果。FIFO是将相关结果进行缓存,防止数据丢失,在仲裁单元控制下将多通道的并行相关结果转换为串行相关结果。鉴相器是将经过仲裁的通道串行相关结果进行鉴相处理,最终CPU利用鉴相结果进行相应的计算与调整。整个复用结构的协调中心在仲裁单元,该单元完成对整个数据链的调配与控制,而FIFO与鉴相器是相对独立的模块,需要在仲裁单元的控制下进行数据缓存与处理。
图2 多通道复用鉴相器结构
图4 仲裁排序模块内部结构图
2 仲裁单元设计
在整个复用过程中,相关结果的缓存与鉴相处理必须协调工作,而整体控制由仲裁单元完成,仲裁单元包括仲裁排序模块与仲裁读取模块,主要通过控制FIFO来完成相关结果缓存与串行输出,控制鉴相器来完成鉴相处理,从而保证整个设计能够有序稳定的工作。
2.1 仲裁排序模块
仲裁排序模块引脚逻辑如图3所示,该模块输入分别为时钟信号(clk)、复位信号(reset)、N通道i支路相关结果(data_in_i_N)、N通道q支路相关结果(data_in_q_N)与N通道相关结果有效使能(data_in_val_N),该模块输出为FIFO写使能(write_en)与FIFO输入数据(din)。
图3 仲裁排序模块引脚逻辑图
仲裁排序模块内部结构如图4所示。多通道相关器将N个通道相关结果有效(data_in_val_N)并行输入至相关结果有效缓存器,N个i支路相关结果(data_in_i_N)与N个q支路相关结果(data_in_q_N)也并行输入至I支路相关结果缓存器与Q支路相关结果缓存器;缓存器生成的data_in_val经过结果有效查询机制得到单通道相关结果选择器(MUX)的通道有效条件判断使能(Chn_flag),同时,两个结果缓存器生成的data_in_i与data_in_q经过相关结果查询机制得到MUX的数据输入(data_in),其中data_in由同一通道的i支路相关结果与q支路相关结果拼接而成;通道循环计数器不断的向MUX实时的输入通道计数值chn_n;MUX根据chn_n在Chn_flag中的有效位来生成FIFO写使能(write_en)与FIFO输入数据(din),其中din由通道号(chn_n)、相应通道的i支路相关结果与q支路相关结果拼接而成,这样一个通道的数据就缓存至FIFO中,其他通道数据依据同样逻辑进行缓存,整体实现了并串转换的过程。
2.2 仲裁读取模块
仲裁读取模块引脚逻辑如图5所示,该模块输入分别为时钟信号(clk)、复位信号(reset)、FIFO空信号(empty)与FIFO的输出数据(dout_temp),该模块输出为FIFO读使能(read_en)、输出结果有效使能(data_val)、通道号(chnn)、i支路相关结果(data_out_i)与q支路相关结果(data_out_q)。
图5 仲裁读取模块引脚逻辑图
仲裁读取模块内部结构如图6所示。设置鉴相器单元的工作时钟数,读计数器生成的计数器值(cnt_read)在计算启动生成器中与工作时钟数比较,达到此值时会生成计算启动标志(start_flag);读使能生成器会在start_flag的作用下,判断FIFO反馈回来的空信号(empty)是否有效来生成读使能(read_en),若empty无效则读取FIFO缓存的相关结果;相关结果经过鉴相器将鉴相结果输入至CPU,最终CPU来进行相关的处理与调整。
图6 仲裁读取模块内部结构图
3 行为仿真
利用modelsim软件对仲裁单元进行行为仿真来验证其正确性,将仲裁单元行为仿真分为仲裁排序模块仿真与仲裁读取模块仿真。仲裁排序模块仿真结果如图7所示,该仿真是对同时到达的5个通道的相关结果进行仲裁排序,输入信号为5个通道的相关结果与相关结果有效使能;将相关结果输入至data_in_i与data_in_q,并且有效使能输入至data_in_val;经过查询机制与MUX最终得到FIFO写使能与输入数据,其中chn_n为MUX提供查询通道有效使能的变量。
仲裁读取模块仿真结果如图8所示,设置鉴相器工作时钟数为28,当cnt_read值与鉴相器工作时钟数相等时,start_flag启动读取过程,empty无效时,将FIFO输出结果(dout_temp)拆分为chnn、data_out_i与data_out_q,同时输出结果有效使能(data_val)供鉴相器判断处理。
图8 仲裁读取模块行为仿真
图7 仲裁排序模块行为仿真
4 结束语
在FPGA中实现多通道并行结构有着实现简单,调试容易的特点,但是会增加资源消耗与开发成本。因此本方案从资源消耗与开发成本做综合考虑分析,利用仲裁单元实现对FIFO缓存器与鉴相器的控制,将并行多通道相关结果变为串行相关结果,共同复用一个鉴相器,资源很大程度上得到了减少。因此本设计具有较高的工程设计参考价值。
[1] 刘纯武,黄芝平. 一种多通道信号处理复用结构及其FPGA实现方法[J]. 电子测量与仪器学报,2008,22(1):72-75.
[2] 王黎明,刘贵忠,刘龙,等. 一种基于FGPA的并行流水线FIR滤波器结构[J]. 微电子学,2004,34(5):582-585.
[3] 薛立勤,邹雪城,陈朝阳. 一种提高微控制器IP可复用性的核内总线设计[J]. 计算机工程与应用,2005,41(2):107-108.
[4] 谢刚. GPS原理与接收机设计[M]. 北京:电子工业出版社,2009:237-241.
[5] Elliott D Kaplan. Understanding GPS:Principles and Applications[EB/OL].
[6] 关红宾,李晨航. 复用跟踪通道数字信号处理[J]. 科技视界,2013(9):87-90.
[7] 王东升,李在铭. 基于FPGA的实时视频运动背景补偿校正技术[J]. 电子测量与仪器学报,2006,20(5):69-72.
[8] 熊承义,田金文,柳健,等. 基于线扫格式的JPEG2000小波变换的VLSI结构[J]. 微电子学,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-),男,博士在读,河北科技大学信息学院讲师,主要从事导航信号处理的研究,894367585@qq.com;
康亚楠(1990-),男,河北科技大学硕士研究生。