电子测量技术 第4o卷第8期 2017年8月 ELECTRONIC MEASUREMENT TECHN0LOGY 基于FPGA的多通道大容量FIFO设计 徐洋洋 (连云港杰瑞电子公司连云港222006) 摘要:提出了一种基于FPGA的多通道大容量FIFO设计方案。在高速数据采集板卡中,高速大容量FIFO决定了 数据采集的深度与速度。为了满足高速数据采集板卡FIFO速度高、容量大以及体积小的要求,采用SDRAM与 FPGA联合设计的方案。取SDRAM价格低、存储空间大、速度快的特点,同时利用FPGA解决SDRAM接口控制逻 辑复杂的问题,将存储空间封装为FIFO接口。完成了SDRAM状态控制器、FIFO地址管理器以及FIFO逻辑接口的 设计与实现。在Modelsim平台上完成了基于Micron Technolog公司SDRAM模型的数据读写仿真。最后,在一块 PXI板卡上完成了实物测试,分析了时钟频率、延时参数以及读写速率对误码率的影响,并给出调整方案。实现了8 路16 M存储深度16 bits位宽异步双口FIFO,读写速度可达128 Mbps,为高速数据采集系统提供可靠的数据存储 平台。 关键词:sDRAM;FPGA;FIFO;PXI;高速采集系统 中图分类号:TN79 1 文献标识码:A 国家标准学科分类代码:510.4030 Design of multi—channel FIFO with mass storage facility based on FPGA Xu Yangyang (Lianyungang JARI Electronics Co.,I td Institute,I ianyungang 222006,China) Abstract:proposed a method of Multi—channel FIFO with mass storage facility based on FPGA.In the high—speed sample board,the speed and capability of the system depend Oil the FIFO.In order tO fulfil high—speed sample board requirements high—speed,huge facility and little volume,slected SDRAM and FPGA tO accomplish.The SDRAM has high—speed,huge capability and low—cost but complex.Taking the advantage of FPGA tO make up the complexity of SDRAM.,use the FPGA tO make the logic of the FIFO,accomplished the SDRAM state controller FIFO address management and FIFO Interface logic.Then accomplish simulation on the Modelsim with a SDRAM mode1 designed by Micron Technolog.At last,applying this method on a PXI board.Analysed the influence of clock frequency,delay parameter and read—write Frequency to Bit Error,then gived the rectify solution.Realized eight channel FIFO with 1 6 M storage deep,asynchronous dual—port,16 bits wide and a speed of 128 Mbps.Providing a reliable data storage platform for the high speed data acquisition system. Keywords:SDRAM;FPGA;FIF0;PXI;high-speed sample system 0 引 言 2 GSa/s ]。另外一般数据采集系统与数据处理系统属于 两个时钟域。因此数据存储系统需要同时具备高速输入接 口以及低速输出接口,同时要满足不同时钟域的设计。 当前高速的数据存储方案有Flash、高速FIFO、IDE硬 高速数据采集系统广泛的应用于雷达、虚拟仪器、示波 器、图像处理设备中 ]。高速数据采集系统一般有采集系 统、存储系统、数据处理系统 ]。其中采集系统完成短时间 的高速数据采集;存储系统完成与采集系统相匹配的高速 盘以及SDRAM等[5]。其中Flash存储空间大,可以长久 保存。例如三星公司的K9K8G08UOM具有8 G的存储空 间,接口速度可以达到40 MHzl6],其缺点为每次数据写入 存储,以及与数据处理系统相匹配的低速输出;数据处理系 统完成后续的数据处理口 。采集系统数据采集特点为时间 短、速度高。目前NI最新的高速数据采集卡是PXI一5154 数字化仪/示波器,具有双通道最大同步实时采样率 收稿日期:2O16—11 前需要执行擦除操作。擦除的周期为20 ms,因此总写入 时间会较长。高速FIFO特点是写入速度快、双口异步 FIFO内部集成了异步处理机制,能够很好的完成跨时钟 ・ l93 ・ 第40卷 电 子 测 量技术 域高速数据处理。其缺点是价格昂贵、同时存储空间小于 100 M,不适合高速数据采集系统使用。1DE硬盘具有非 1架构设计 SDRAM与FPGA联合设计的重点为SDRAM控制 常丰富的存储资源,很高的存储速度,但体积巨大无法满足 板卡的体积要求。 器以及FIFO接口电路。整体结构框图,如图1所示。主 要模块包括FIFO接口逻辑、输入输出缓存FIF()、sDRAM 状态控制器、FIFO地址管理器、SDRAM数据控制器和 SDRAM体积小、存储空间大,缺点是控制逻辑复杂。 针对高速采集系统多采用FPGA做采集逻辑控制,利用 FPGA强大的逻辑处理功能,在不增加硬件成本和板卡空 间的情况下可以很好地解决SDRAM控制逻辑复杂的 缺点。 SDRAM指令控制器。其中输入输出缓存FIFO主要完成 数据的缓存iSDRAM数据控制器与SDRAM指令控制器 借鉴Altra官网设计。其他模块设计原理如图1所示。 FPGA 一通道1空标志 数据 I通道1出人数据 通道l输出数 通道1读请求一 ) 输出缓存FIFO 一 数据写请求数据 通道写请求: 通道1时钟: 数据 数据读清求 输人缓俘FIFO 数据 SDRAM 数据控制器 Dalai15:0】 FIFO接L]逻辑 SDRAM数据写响应 + 卜\ Dalai15:0】 SDRAM数据读响应 ●—— ●■ SDRAM SDRAM 状态控制器 一工作状态 初始状态 Addr 卜\ Addr I通道8出人数据 (通道8输出数据 通道8读请求 通道8 割示志 sDRAM数据写十 t 器 读1 『1 指令控制器 SDRAM CS 一 CS RAS CAS RAS CAS WE WE 通道8写请求二 通道80 ̄钟二 一FIFO状态 各通道空标 FIFO地址管理器 地址 BA Dqm CKE BA Dqm CKE 图1整体结构 1.1 SDRAM状态控制器设计 SDRAM中文全称为同步动态随机存储器,是一种大容 始、写数据和写等待。刷新状态包含的状态有初始状态、 刷新等待状态。综上,所有工作状态包括,初始状态 (IDLE)、行有效(AcTIVE)、行等待(TRCD)、读初始 (READ)、读潜伏(CL)、读数据(RD)、读等待(RWAIT)、写 量高速数据存取器件。为了达到高速、高集成度,SDRAM 内置逻辑控制单元,用来解读外围指令完成数据存取功能。 同时完成定时刷新工作,例如micron公司的 MT48LC16M16A2在每间隔64 ms就需要刷新一次,刷新 时间为7.813 s ;为了节约引脚,其行地址与列地址共用 初始(wRITE)、写数据(WR)、写等待(RwAIT)、自刷新 (AR)、自刷新等待(TRFC)。设计SDRAM状态机如图3 所示。对于读写冲突的状态,设定为写优先。当读请求、 写请求同时发生时,输入AWR为O11,此时状态机在行等 待(TRCD)会跳转到写初始(WR1TE),从而优先处理写操 总线。这些状态的转换控制都需要按照既定的状态进行 ]。 因此设计了SDRAM状态控制器完成SDRAM状态控制。 SDRAM上电后应当首先进行自刷新之后进入工作状态。 作。状态的转移除了图中标示的ARW 3个输入信号以外 还有计时器信号,当计时器信号满足设计要求时,状态自 动进行转移。 1.2 FIFO地址管理器设计 FIFO地址管理根据SDRAM状态控制器的读写响应 因此设计了两个状态机分别为自刷新状态机、工作状态机。 自刷新状态需要完成上电等待200 ms以及8次自刷 新,之后SDRAM就会进人工作状态,自刷新状态机如图2 所示。 自刷新完成后SDRAM进入工作状态。工作状态包 括空闲状态、读状态、写状态以及刷新状态几种。其中读 信号以及FIFO接口逻辑模块的状态以及读写信号完成8 个通道的地址管理。内部将SDRAM分为8个相互独立 的地址块,每个地址块具有独立的写入地址寄存器、读出 状态包含的状态有行有效、行等待、读初始、读潜伏、读数 据和读等待。写状态包含的状态有行有效、行等待、写初 地址寄存器。根据FIFO状态判断当读写的通道数,同时 徐洋洋:基于FPGA的多通道大容量FIFO设计 上电等待 200 hiS 第8期 第1次自动 刷新完成 第2次自动 刷新完成 第3次自动 刷新完成 图2 自刷新状态机 自刷新清求; SDRAM- ̄请求 sDRAM读请求 图3工作状态状态机 更改响应的地址。并对SDRAM控制器发出读写指令。 其中写入寄存器数值计算公式如下: WR—if WRRD addr +1十1((w尺WR d add r 一RD addr ) >RD ) ’ addr =WRaddr +1 —(1) 每当写入数据是更改写入地址寄存器,进行式(1)、 其中WR—addr为写人地址寄存器数据,数据格式为无符 号数;i表示通道标志,为1,2,3,…,8;RD—addr为读出地 址寄存器。 (2)的计算。考虑到数据溢出问题,当数据写入写满整个 存储空间时,地址寄存器会由最大值变为零,因此存在写 入地址寄存器小于或者等于读出地址寄存器的情况。当 读出寄存器数值计算公式如下: RD addr 写入寄存器等于读出寄存器时,表示当前FIFO已经溢出, 此时应当将RD—addr数据加一。这样就保证了FIFO可 ・ 195 ・ 第4O卷 以无限存储.且存储数据为最新。 1.3 FIFO接口逻辑 电 子 测 量技 术 对于渎速率_彳r盘u下公式 FIF()接口逻辑使用状态机控制,每个FIF()通道的 溃、写分别占用一个状态,空闲状态占用一个状态.共1 7 个状态。只有当前状态为空闲状态时每个通道可以一亍用 SDRAM渎写权。为了防止数据溢出造成数据丢失.同时 充分利用SI)RAM突发读写页的特点.每个通道设置了一 t +t d+d+t 等tdj广d t+…+d l吲z ’~ t (4) 其中t.,为读潜伏周期,此处为3;, 为突发读周期.此处 为512;,…,为写入等待周期,此处为3;由此计算得到: , =10.31 MHZ。 个一页大小和缓仔FIF()。 为防止数据阻塞,需要对8个通道同时写入数据的最 坏情况进行数据流量分析。有如下公式: 考虑到时钟偏斜。以及数据处理余量此处没计FIF() 输入输出频率./ 为8 MHz。 2仿真测试 t —,.w—十t —卜f… —r'fW十t…“—十一f [阜 .512 ( ) 仿真环境为Modelsim se 6.5g。仿真器件为库文件为 Ahera公司的altera—mf、220model、cyc3一alonls等 。工 程设计使用cycloneiii系列芯片。SDRAM模型使用 Micron Technolog公司SDRAM BUS Fuctional模型 版 以M1、48I C16M1 6A2为例.以上参数除最高写入频率 / 为汁箅值外其他均为芯片参数或设计参数。其中丁 为 为SDRAM刷新周期64 nlS;, 为自刷新需要周期.此处 为10 ns;, .为自刷新等待周期.此处为7.821/,s;_/ SDRAM设计频率.此处为100 MHz,t 为行有效周期. 本为V2.2.写入并读出突发长度为8,写入时钟为8 MHz 时得到如图4所示波形。图中A为SDRAM数据引脚.B 为SDRAM状态控制器的状态变量。通过仿真可以看到 设计达到了预定要求。同时在此处还进行_r写入与读出 频率为10 MHz的压力测试,数据并无溢出错误现象,说明 在仿真环境下系统设计完全能够达到设计预期。 此处为1:, 为行等待周期,此处为l;t ",为突发写周期. 此处为512;t一 ,为写入等待周期,此处为3;t 为初始状 态周期.此处为1;由此计算得到_, … 一12.35 MHz。同理 4 SDRAM读写仿真波形 3 实物验证 实际使用中.由于PCB布线延时的影响。SDRAM的 读写情况会与仿真有所不同。主要足由PCB布线导致数 据线、时钟线有一定的延时造成,因此实际应用中需要重 新调试一套适合PCB的设计参数。这里完成了一块基于 PXI的测试板。其框架如图5所示。 测试中由外部提供16 bit数字量,从0×0000到0× ffff依次写入到SDRAM中.然后再通过FPGA将写入的 数据读出并通过PXI桥路芯片发送给上位机。通过上位 机软件对数据进行分析,并记录每65 536个数字中误码的 个数。分别调整数据SDRAM主时钟延时参数clkdl、数 图5 PXI测试版框图 据读写频率 厂 SDRAM主时钟频率_, 得到表1。分 主时钟频率会改变数据的采样以及保持时间,进而调整数 据正确率。 析表1发现,调整SDRAM主时钟延时参数、改变SDRAM ・ 】96 ・ 徐洋洋:基于FPGA的多通道大容量FIFO设计 表1参数分析 外电子测量技术,2009,28(1):12—13. 第8期 [4] 徐洋洋,高文政,徐大林.基于DSP的旋转变压器解 算系统设计[J].电子测量技术,2015,38(1):54 58. [5] 李冰洋,贾银亮,张峰,等.基于FPGA的机载综合 显示系统的设计与实现[J].电子测量技术,2016, 39(2):76—79. [6] 陈瑞斌,唐惠玲,徐虎,等.基于FPGA的页快速命 同时也可以看到如果SDRAM时钟频率过低则会导致数 据溢出使误码大幅增加。因此在工程中应当严格的约束 SDRAM时钟、数据以及控制引脚的长度,增加设计可靠性。 中的SDRAM控制器的设计[J].现代电子技术, 2015(13):63-66. [7] 王飞.基于FPGA的全数字化峰值时刻检测技 术[J].电子测量与仪器学报,2015(6):914—919. [8] 汪伟,徐科军,方敏,等.一种气体超声波流量计信 号处理方法研究[J].电子测量与仪器学报,2015, 29(9):1365-1373. 4 结 论 本文设计了一种基于FPGA的多通道大容量FIFO。 给出了SDRAM控制器的状态分析,同时给出了多通道 FIFO的地址分配方法以及地址防溢出算法。实现了8路 互不耦合的高速大容量FIFO。在高速数据采集板卡领域 具有十分广泛的应用前景。 [9] 邓翔宇.修正非线性误差的宽量程多电桥电阻测量电 路设计[J].电子测量与仪器学报,2016(9): 1418—1424. ,110] 美国国家仪器.运用示波器和使用者可设定的 参考文献 [1] 张磊,贺强民,包斌.一种用于筛选高可靠性FPGA FPGA提高测量质量与速度[J].国外电子测量技 术,2015,34(6):1-4. 的硬件测试电路[J].电子测量技术,2015,38(2): 68—73. 作者简介 徐洋洋,1989年出生,工学硕士,工程师,主要研究方 向为数据处理、轴角解算算法研究等。 E—mail:sanshuiyu@CSH.edu.cn I-2] 胡亚平.FPGA与CPU高速接口的实现口].国外电 子测量技术,2013,32(4):66—68. [3] 汪铁华.浅谈电子测量技术和仪器的重要性I-J].国 (上接第192页) 参考文献 [1] 赵锐,钟榜,朱祖礼,等.室内定位技术及应用综 述[J].电子科技,2014,27(3):154—157. [2]DONG R,QUAN R,HOU F,et a1.New research trends on high—precision time transfer technology[J]. Instrumentation,2015(4). E8] 胡泮,杨鹏,史旺旺,等.基于WSN的低功耗水稻土 壤水分监测系统[J].农机化研究,2015(1): 1OO一104. 1-9] 阳熊.基于超宽带的定位技术研究与应用[D].成 都:电子科技大学,2015. [1O]梁旭,刘才慧.基于混合粒子群算法的在线检测路径 规划[J].国外电子测量技术,2015,34(12):30—34. [11]陈漠.用于最优化问题的改进粒子群优化算法研 究[D].长春:吉林大学,2015. -I3]LIN C.Application of SDS-TWR technology in coal mine personnel positioning system[J].Industry& Mine Automation,2015. 作者简介 赵强,工学硕士,主要从事无线传感器网络的研究。 E—mail:zhaoqiangnuaa@yeah.net [4] 李奇越,吴忠,黎洁,等.基于改进卡尔曼滤波的 NLOS误差消除算法I-J].电子测量与仪器学报, 2o15,29(10):1513-1519. I-5] 贺晶晶,姜平,冯晓荣.基于UWB的无人运输车的 导航定位算法研究[J].电子测量与仪器学报,2016, 30(11):1743—1749. 王敬东,副教授,主要从事无线传感器网络、图像处理 技术研究。 E—mail:wjd1291@nuaa.edu.cn [6] 王沁,何杰,张前雄,等.测距误差分级的室内TOA 刘云霄,工学硕士,主要从事无线传感器网络研究。 E—mail:liuxiansheng999@foxmail.com 定位算法[J].仪器仪表学报,2011,32(12): 285 1-2856. 杨秀梓,工学硕士,主要从事无线传感器网络研究。 E—mail:xiuziyang@126.com t-7] 郑学理,付敬奇.基于PDR和RSSI的室内定位算法 研究[J].仪器仪表学报,2015,36(5):1177—1185.