缔冠期刊网

基于FIFO的循环移位寄存器实现方法

2022-06-09

  摘 要: 为了完成高频率下相关器的时分复用,相关器的低频输入数据须通过循环移位寄存器移位。提出了在FPGA中采用多级串联FIFO核实现循环移位寄存器。对上述方案进行FPGA仿真实验,经实测表明基于FIFO的循环移位寄存器工作稳定,能够实时地提供准确数据给时分复用相关器模块。

 

  关键词: FIFO; 移位寄存器; FPGA; 相关器

 

  中图分类号: TN915.04-34 文献标识码: A 文章编号: 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 引 言

 

  在高动态接收机的时域相关+FFT捕获算法中需要进行大量的高速相关运算[1-2],因此在FPGA实现中需要产生大量的相关器。为了节省有限的FPGA资源、降低成本,同时相关运算频率[f1]是相关输入数据(后简称“输入数据”)频率[f2]的整数倍,因此时分复用相关器是达到目的的可行方法[3-4]。

 

  输入数据在频率[f1]下经过普通移位寄存器会造成数据的丢失。只有经过循环移位才能保证在下一个输入数据来之前,寄存器内之前的[N(N=f1f2)]个输入数据均在[f1]频率下进行了相关运算。由于FIFO先进先出的原理,利用深度为[N]的FIFO实现循环移位寄存器。

 

  1 FIFO简介

 

  FIFO(First Input First Output)是一种先进先出的数据缓存器,如图1所示。它与普通存储器的区别是没有外部读写地址线,控制逻辑简单。缺点是只能顺序读写数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址[5]。

 

  FIFO的主要参数是它的宽度和深度。FIFO的宽度指的是FIFO一次读写操作的数据位;深度指的是FIFO可以存储N(设宽度为N)位数据的个数[6]。

 

  根据FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO[7]。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。在本文中采用的是同步FIFO。

 

  2 方案设计

 

  在工程中需要2 560个相关器在124 MHz时钟下做2 560次相关运算。输入数据频率为15.5 MHz,因此在124 MHz时钟下可以使用320个相关器时分复用8次以实现2 560次相关。FPGA中的320个同步FIFO核在124 MHz时钟下对输入数据进行循环移位,每一个FIFO的输出数据作为320个相关器的输入数据进行相关运算[8]。整体方案结构如图2所示。

 

  320个FIFO模块以串联模式工作。图2中FIFO_0和FIFO_1分别为前后两个串联的FIFO模块。期刊网每个FIFO的深度为8,宽度为6 b。输入数据在15.5 MHz时钟下写入至FIFO_0,每124 MHz时钟FIFO内部数据进行一次移位,同时将最先进入FIFO的数据即移位到0位置的数据输出给累加器ADD做相关运算。一个ADD模块在124 MHz时钟下时分复用8次,相当于8个相关器add7~add0。在15.5 MHz时钟的控制下,将当前0位置上第一次输出给ADD模块的数据同时输出给下一个FIFO模块FIFO_1。每个FIFO的工作模式均与FIFO_0的一致。

 

  以第一个FIFO为例说明FIFO模块的具体工作过程。假设依次输入的数据为1,2,3,4,5,6,7,8,9,10,…。具体实现过程如图3所示。

 

  FIFO在124 MHz时钟下工作。一个时段指8拍124 MHz时钟即一个15.5 MHz输入数据时钟,每一个时段输入一个新数据。从第1个时段可看出,当向FIFO写了7个数据后,读出一个数据,按照FIFO先进先出的原则,读出的是第一个写进去的数据“1”(如第一时段第1行所示);下一个124 MHz时钟将第八个数据“8”(在此称为新进数)写入FIFO,同时读出第二个写进去的数据“2” (如第一时段第2行所示);在第一时段内由于除了第一个写入的数据“1”外,其他的数据均要被后面的时段采用,所以在读出数据“2”后,下一个时钟再将其回写入FIFO,同时读出第三个写进去的数据“3” (如第一时段第3行所示);同理下一个时钟将数据“3”回写入FIFO,读出第四个写进去的数据“4”,依次类推。 

 

  第一时段第1行读取的数据“1”和第二时段第1行读取的数据“2”依次输入到下一个FIFO中。两个相邻FIFO之间同一级数据应该相差8个124 MHz时钟,即当第[i]个FIFO写入第9个数据的同时,写入第[i]个FIFO的第一个数据写入第[i+1]个FIFO;也可以理解为同一个数据写入前后两个FIFO的时间上相差8个124 MHz时钟。

 

  而从图3可以看出,第一个时段中当写入第八个数据“8”的同时已经将写入第一个数据“1”读出了,所以为了满足上述的时序关系,将读出的数据“1”在124 MHz时钟下打8拍再送入下一个FIFO;同理第二时段第一行读出的数据“2”也在124 MHz时钟下打8拍再送入下一个FIFO。将320个FIFO按照上述时序关系串联起来就实现了2 560级循环移位寄存器。

 

  3 仿真与分析

 

  3.1 仿真条件

 

  在FPGA中对上述方案进行仿真。调用320个FIFO内核以实现循环移位寄存器,320个FIFO的输出分别作为320个相关器的输入,320个相关器在主时钟124 MHz下时分复用8次实现2 560个相关器。其中FIFO输入数据的频率为15.5 MHz,整个运算过程在主时钟124 MHz下工作。调用的FIFO内核如图4所示,其宽度为6 b,深度为8。输入数据为:-2,0,0,0,-2,-6,2,6,0,0,2,2,6,0,4,2,…。

 

  3.2 仿真结果

 

  320个FIFO核串联工作,连续两个相邻的FIFO_0和FIFO_1的时序逻辑如图5所示[9-10]。在FIFO_0内写满了8个数-2,0,0,0,-2,-6,2,6的下一拍即当FIFO_0写入第九个数“0”的同时,FIFO_1开始写入第一个数“-2”。每相邻两个FIFO的时序关系都与FIFO_0和FIFO_1的一样。320个FIFO核就是以这样的方式连接实现循环移位寄存器。

 

  一个FIFO同一时段在124 MHz时钟下连续输出八个数据,该八个数据依次在124 MHz时钟下作相关运算,每个相关结果均打八拍等待下一个数据的到来。以图3为例说明,最右一列的数据为FIFO的输出数据。第一时段最右一列的数据1,2,3,4,5,6,7,8依次作相关运算,其中数据“1”的相关结果打八拍等待第二时段最右一列第一行数据“2”再作累加相关,数据“2”的相关结果打八拍等待第二时段最右一列第二行数据“3”再作累加相关,依次类推。此过程的FPGA仿真图如图6所示,sum0~sum7为一个FIFO输出作相关运算的8个相关结果。

 

  4 结 语

 

  高动态接收机的时域相关+FFT捕获算法需要大量相关运算,为了减少硬件资源采用了时分复用技术实现大量的相关运算。本方案将输入数据经过多级串联FIFO进行循环移位,再作相关运算实现了相关器的时分复用。

 

  参考文献

 

  [1] 李菊,陈禾,金俊昆,等.基于FFT的两种伪码快速捕获方案的研究与实现[J].电子与信息学报,2006(10):1778-1781.

 

  [2] 谢钢.GPS原理与接收机设计[M].北京:电子工业出版社,2012.

 

  [3] 夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2008.

 

  [4] 劳有兰,陈锦.基于FPGA时分复用数字基带通信系统的设计[J].广西工学院学报,2003(2):34-37.

 

  [5] 张奇山,刘安芝,刘希顺.基于FPGA的FIFO设计和应用[J].嵌入式技术,2009(18):50-52.

 

  [6] 周晓波,李锐菁,赵强.基于FPGA 的高速存储器接口应用开发[J].铁路计算机应用,2013(5):8-11.

 

  [7] 唐清善,费玮玮,蔡惠智,等.基于FPGA的高速异步FIFO的设计与实现[J].微计算机信息,2009(29):6-8.

 

  [8] 胡辉,袁超,吴超,等.基于FPGA的GPS接收机相关器技术研究与实现[J].系统仿真学报,2011(7):1513-1517.

 

  [9] 何清平,刘佐濂.基于FPGA设计的综合技术分析[J].中国科技信息,2006(11):181-183.

 

  [10] 张小新,魏厚龙.FPGA技术及其开发方式概述[J].山西电子技术,2008(5):86-87. 

论文中心更多

期刊百科
期刊投稿 期刊知识 期刊审稿 核心期刊目录 录用通知 期刊版面费 投稿期刊推荐 学术问答
基础教育
小学语文 中学语文 小学数学 中学数学 小学英语 中学英语 物理教学 化学教学 生物教学 政治教学 历史教学 地理教学 科学教学 音乐教学 美术教学 体育教学 信息技术 班主任管理 校长管理 幼教 教育管理 微课教学 作文教学 德育教学 教学设计
医学论文
内科医学 外科医学 预防医学 妇科医学 检测医学 眼科医学 临床医学 药学论文 口腔医学 中西医 中医学 外科 护理 基础医学 急救医学 老年医学 医学实验 儿科医学 神经医学 兽医学 肿瘤医学 综合医学
职业教育
教育学原理 电影文学教育 学前教育 教育学管理 高等教育学 教育技术学 职业技术教育 成人教育学 特殊教育学 教育心理学 家庭教育 教育毕业 中专中职教育 教学设计 国学教育 学术研究 大学教育
药学卫生
社区门诊 医药学 医患关系 医院管理 疾病预防 保健医学 公共卫生 医学教育
文科论文
农业经济 工商管理毕业 会计毕业 行政管理 法律毕业 市场营销 经济毕业 汉语言文学 财务管理 物流管理 人力资源 旅游管理 国际贸易 物业管理 新闻学 企业管理 金融银行 社会科学 食品安全 办公档案 审计学 税务税收学 外国文学 哲学
理科论文
机电毕业 土木工程 计算机毕业 电气毕业 建筑毕业 电子商务 工程毕业 设计毕业 机械制造 汽车毕业 园林毕业 农学毕业 数控毕业 软件技术 水利工程 环境生态 畜牧渔业 化工毕业 科技创新 石油矿藏
论文格式
开题报告 论文题目 摘要关键词 目录提纲 论文致谢 参考文献 附录其他 论文答辩
职业论文
教育论文 经济论文 科技论文 财会论文 管理论文 医学论文 法学论文 文学论文 工业论文 建筑论文 农业论文 水利论文 计算机论文 社科论文 机械论文 生态环境 中西文化

先发表后付款 不成功可退款

权威机构认证 专注期刊10余年 1000余家杂志社长期合作

缔冠期刊网

首页 网站地图 返回顶部
Copyright © 1998- 缔冠期刊网