Uploaded by a06022003

基于FPGA的DDR3六通道读写防冲突设计 电子创新网赛灵思社区

advertisement
2019/9/17
基于FPGA的DDR3六通道读写防冲突设计 | 电⼦创新⽹赛灵思社区
基于FPGA的DDR3六通道读写防冲突设计
在 周⼆, 07/31/2018 - 18:00 提交
作者:张凤麒,张延彬,王忠勇;2018年电⼦技术应⽤第7期
摘要: 为了解决期货⾏情数据加速处理中多个通道同时访问DDR3时出现的数据读写冲突问题,实
现了⼀种基于FPGA的DDR3六通道读写防冲突设计,完成了对单⽚DDR3内存条的多通道实时访问
控制需求。通过ChipScope⼯具采样结果证明了设计的可⾏性,提⾼了并⾏处理的速度,极⼤程度
地降低了期货⾏情数据处理中⾏情计算的时间开销,最⾼通道速率可达5.0 GB/s以上,带宽利⽤率
可达80%以上,在多通道数据读写应⽤中具有很⾼的实⽤价值。
0 引⾔
基于FPGA的期货⾏情数据加速处理过程中,不同的消息类型采⽤并⾏处理的⽅式,并且每⼀次的
处理结果需要使⽤内存来缓存⼀次⾏情数据信息。⾏情数据信息容量巨⼤,⽚上存储难以满⾜需
求,采⽤DDR3 SDRAM成为⾸选⽅法[1]。但由于DDR3只有⼀套数据访问通道,不能满⾜多个通
道同时访问的需求[2]。此前的对于SDRAM的多通道解决⽅案中,⽐如曹⼀江[3]等设计的基于NPI
总线的⽚外存储器,最⼤带宽可达743 Mb/s;樊博[4]等使⽤UI接⼝,DDR3通信的最⼤带宽可达
3.8 Gb/s;张宇嘉[5]等设计的基于AXI4的DDR3多端⼝⽅案虽然传输速率有所提⾼,但由于AXI4协
议本身的复杂性增加了开发使⽤的难度。本⽂实现并验证了期货⾏情数据加速处理中基于FPGA的
DDR3六通道UI接⼝读写防冲突设计,简化了DDR3多通道读写的复杂度,随着有效数据周期的提
升,最⾼端⼝速率可达5.0 GB/s以上,带宽利⽤率可达80%以上。
1 总体设计架构
本⽂所设计的六通道读写防冲突总体架构如图1所示,主要包括通道判优仲裁模块、读写逻辑控制
模块和DDR3存储器控制模块。
judy
存储控制器模块采⽤Xilinx公司的MIG核,⽤户只需要通过IP核的GUI选择内存芯⽚并进⾏相
关参数设置,即可完成DDR3的配置⼯作[6]。
通道判优仲裁模块将对六路通道进⾏仲裁,对于同⼀时刻有读写请求的不同通道,该模块按照优先
级的⾼低判定访问DDR3的顺序,利⽤中断思想解决多通道读写的冲突问题。
读写逻辑控制模块控制DDR3的接⼝⽣成,根据不同操作完成对应接⼝的时序控制[7],进⽽实现对
DDR3的正确读写访问。
DDR3
xilinx.eetrend.com/content/2018/100012866.html
1/8
2019/9/17
基于FPGA的DDR3六通道读写防冲突设计 | 电⼦创新⽹赛灵思社区
存储器控制模块设计
DDR3 IP核⽣成的控制器逻辑框图如图2所示,采⽤UI接⼝的⽅式相⽐于AXI4接⼝,不需要⾃⼰组
织数据,容易操作,⼤⼤简化了DDR3的使⽤复杂度,为DDR3的扩展使⽤带来了⽅便[8]。
2 DDR3
存储控制模块写操作
DDR3写操作接⼝信号如表1所示。
2.1
写操作过程:当app_rdy和app_wdf_rdy同时为⾼的情况下,写⼊DDR3的地址app_addr与
app_cmd绑定对⻬,写⼊DDR3的数据app_wdf_data与数据掩码app_wdf_mask绑定对⻬,
app_cmd置为3′b000,与此同时app_en、app_wdf_wren、app_wdf_end置⾼,即可将数据写到
xilinx.eetrend.com/content/2018/100012866.html
2/8
2019/9/17
基于FPGA的DDR3六通道读写防冲突设计 | 电⼦创新⽹赛灵思社区
对应的地址中。
因为DDR3的写时序不只⼀种,为了简化系统设计,本⽂设计的⽤户接⼝写操作时序为地址和数据
完全对⻬,便于理解和操作[9]。
2.2 存储控制模块读操作
DDR3的读操作接⼝信号如表2所示。
读操作过程:在app_rdy为⾼时,⽤户发送读命令并同时将app_en置⾼,则读命令和读地址会写到
DDR3中,DDR3会返回数据和有效指示信号,两者共同决定返回的数据是否有效。
通常情况下,DDR3的读请求结束之后不会⻢上返回数据,需要延迟⼀定的时钟周期。
3 通道判优仲裁模块设计
通常情况下,由于DDR3只有⼀组控制、地址和数据总线,因此同⼀时刻只能有⼀个通道在访问。
根据期货交易的处理规则,优先级由⾼到低的顺序依次为合约信息消息、市场状态消息、品种交易
状态消息、成交统计⾏情消息、多档定单簿⾏情消息、多档成交量统计⾏情消息。在通道判优的过
程中,⾸先将6种不同的消息经封装后分别寄存到相应的消息缓存中,每⼀通道写⼊消息缓存中的
数据格式,从⾼到低位依次为写使能、读使能、写数据、写地址、读地址;然后⾸先判断合约信息
消息缓存是否为空,如果不为空,则证明当前有合约信息消息的请求发⽣,此时状态机会跳转到合
约信息消息处理状态;待合约信息消息的缓存全部读取完毕之后,再次按优先级顺序判断其他消息
缓存是否为空,状态机随即做相应的跳转,完成不同通道之间的切换,如图3所示。
xilinx.eetrend.com/content/2018/100012866.html
3/8
2019/9/17
基于FPGA的DDR3六通道读写防冲突设计 | 电⼦创新⽹赛灵思社区
对于不同的消息类型,对应着不同的消息处理单元,⽬的是增加系统的并⾏处理操作,降低处理延
迟。
4 读写逻辑控制模块
读写逻辑控制模块主要对不同类型消息做并⾏化处理,⽣成DDR3的接⼝信号,每个消息的处理流
程如图4所示。
对于期货交易中的各种合约⾏情,种类多,但占⽤空间⼩,通常DDR3中⼀个地址就可完成⼀个⾏
情的存储,在⾏情的还原、计算、发布中,需要读取多个⾏情。由于DDR3的突发⻓度为8,为了
便于对⾏情的准确存取,6个通道的数据位宽均设定为DDR3位宽的1/8,即⼀次只存取⼀个地址的
数据。
xilinx.eetrend.com/content/2018/100012866.html
4/8
2019/9/17
基于FPGA的DDR3六通道读写防冲突设计 | 电⼦创新⽹赛灵思社区
对于通道判优仲裁模块输出的数据,写使能与读使能均为1 bit位宽,⾼电平表示请求发⽣;写数据
为64 bit位宽;写地址和读地址为28 bit位宽,DDR3的数据位宽在IP核中配置为512 bit,地址位宽
为28 bit。因写数据位宽与DDR3数据位宽不匹配,所以DDR3的写操作需要掩码配合共同完成。
处理过程如下:⾸先进⾏读写判断,若写使能置⾼,则跳转到写操作状态;若读使能置⾼,则跳转
到读操作状态,若⽆读写操作,处于等待状态。(期货⾏情消息处理中不会出现同⼀通道读写同时
进⾏的情况,因此同⼀通道读写使能同为⾼电平的情况不会出现。)
如果是写操作,⼀⽅⾯⽣成写⼊DDR3的地址和命令,另⼀⽅⾯将写数据封装成512 bit位宽。其中
写⼊DDR3的地址app_addr为{写地址[27:3],3′d0},写⼊的数据app_wdf_data和掩码
app_wdf_mask由写地址[2:0]确定。数据地址命令控制模块也会相应的产⽣app_en、
app_wdf_wren、app_wdf_end控制信号,这些信号共同作⽤关于DDR3 SDRAM存储器,配合完
成DDR3的写⼊操作,如图5所示。
如果是读操作,地址命令选择模块将读地址[27:3]赋值给app_addr作为写⼊DDR3的基地址,同时
将读地址[2:0]作为写⼊DDR3的偏移地址存⼊对应通道的偏移地址缓存中,在数据地址命令控制模
块⽣成其他的控制信号传送给DDR3 SDRAM存储器。DDR3 SDRAM根据地址返回相应的512 bit位
宽的数据。在返回数据的同时读取对应通道偏移地址缓存中的偏移地址,并根据此偏移提取对应的
64 bit数据从⽽完成DDR3的⼀次读取操作,如图6所示。
实验结果与分析
5.1 实验结果
5
xilinx.eetrend.com/content/2018/100012866.html
5/8
2019/9/17
基于FPGA的DDR3六通道读写防冲突设计 | 电⼦创新⽹赛灵思社区
本⽂以Xilinx公司的Kintex-7系列XC7K325T FPGA芯⽚和Micron公司的JBF9C256x72AKZ DDR3芯
⽚为硬件平台,并以此来验证本⽂设计的正确性,分析其性能。
测试⽅法:六通道在同⼀时刻发起DDR3的读写请求,其中1~4通道进⾏DDR3的写请求,5、6通
道进⾏DDR3的读请求,状态机按照消息优先级的顺序依次进⾏状态跳转完成处理,最后将数据分
别返回到相应通道中,ChipScope结果如图7所示。
实验分析
为了更好描述设计的性能,本⽂引⼊以下参数。仲裁时间:请求信号发⽣到通道开始处理的时间间
隔;IP核处理时间:DDR3 IP核从接收指令到返回数据的时间;有效提取时间:从512 bit的DDR3
返回数据中提取对应的64 bit的时间间隔;有效数据时间:数据有效的维持时间;总时间:消息请
求到数据返回的时间,即仲裁时间、IP核处理时间与有效数据时间之和。因此:
5.2
在本设计中,实测仲裁时间为3个时钟周期,IP核处理时间为22个时钟周期,有效提取时间2个时
钟周期,如图8所示。
每个通道的有效数据时间不相同,性能也不相同,具体测试结果如表3所示。
xilinx.eetrend.com/content/2018/100012866.html
6/8
基于FPGA的DDR3六通道读写防冲突设计 | 电⼦创新⽹赛灵思社区
2019/9/17
测试结果表明,本设计能稳定⾼效地完成多通道对DDR3的访问,随着有效数据周期的提升,通道
速率可达5 GB/s以上,带宽利⽤率可达80%以上,能够满⾜期货⾏情数据处理过程中的实时性要
求。
6 结论
本⽂设计并实现了基于FPGA的DDR3六通道读写防冲突设计,能有效地解决在期货⾏情数据处理中
多通道同时访问DDR3的冲突问题,在现有的Kintex-7系列FPGA平台期货⾏情数据处理系统中取得
了良好的应⽤效果。测试结果表明该防冲突设计能⾼效正确地完成多通道对DDR3的访问,具有稳
定性好、仲裁时间固定、效率⾼等特点。本⽂设计的DDR3多通道读写防冲突设计简化了多通道读
写DDR3的复杂度,降低了在期货⾏情数据处理过程中的延迟,提⾼了并⾏处理速度。
⽂章转载⾃:电⼦技术应⽤ (http://www.chinaaet.com/article/3000086048)
DDR3 (/tag/ddr3)
推荐阅读
⽤户读写时序
和 的介绍
Xilinx DDR IP详解与时序分析
(/content/2018/100013827.html)
mig读写时序下板实现
(/content/2019/100018055.html)
DDR3 SDRAM IP 的写时序
(/content/2018/100014578.html)
mig IP的仿真
mig IP
(/content/2019/100017954.html)
DDR3 mig
(/content/2019/100017830.html)
(/content/2019/100017982.html)
本站发布信息所有图⽚均来⾃⾃有图库、公关公司或者半导体原⼚,如有侵权请联系删除,
赔偿事宜请直接联系相关公关公司或者原⼚ ##---电⼦创新⽹合作⽹站 (http://www.eetrend.com)-ADI电机控制中⽂社区 (http://adi.eetrend.com) | Imagination Technologies 中⽂技术社区
(http://imgtec.eetrend.com) | 村⽥中⽂技术社区 (http://murata.eetrend.com) | 贸泽⼯程师社区
(http://mouser.eetrend.com) | 电⼦创新⽹赛灵思中⽂社区 (http://xilinx.eetrend.com) | MCU加油
站 (http://mcu.eetrend.com)
--##
xilinx.eetrend.com/content/2018/100012866.html
7/8
2019/9/17
基于FPGA的DDR3六通道读写防冲突设计 | 电⼦创新⽹赛灵思社区
本⽹站转载的所有的⽂章、图⽚、⾳频视频⽂件等资料的版权归版权所有⼈所有,本站采⽤的⾮本
站原创⽂章及图⽚等内容⽆法⼀⼀联系确认版权者。如果本⽹所选内容的⽂章作者及编辑认为其作
品不宜公开⾃由传播,或不应⽆偿使⽤,请及时通过电⼦邮件或电话通知我们,以迅速采取适当措
施,避免给双⽅造成不必要的经济损失。
粤ICP备12070055号 (http://www.miibeian.gov.cn)
xilinx.eetrend.com/content/2018/100012866.html
8/8
Download