一种SDRAM控制器的设计电路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
现代电子技术
Modern Electronics Technique
Feb.2022Vol.45No.4
2022年2月15日第45卷第4期
0引言
以太网数据要通过E1线路传输就必须对以太网净荷数据进行帧封装,才能从E1线路上恢复出以太网数据帧,完成以太网数据的交换。
使用HDLC 协议进行以太网数据的二次封装,以太网数据在进行HDLC 协议封装的传输过程中,不同数据链路进行数据交互时会出现
亚稳态和数据吞吐量差异的问题。
由于已有设计在以太网模块内部完成了跨时钟域的处理,因此本文提出的电路旨在解决跨时钟域数据通信时的吞吐量差异问题。
这个问题的解决通常需要一个存储模块进行缓存,而SDRAM 由于具有较高的读写速率和精度、存储容量大等优点[1⁃4],常用于数据缓存模块中,所以本文设计在利用SDRAM [5]基本的缓存特性基础上,提出一种SDRAM 控制器的新设计思路,运用模块化的设计方法,即双缓存模块IN_FIFO 和OUT_FIFO 的设计,将8bit 的输入数
DOI :10.16652/j.issn.1004⁃373x.2022.04.007
引用格式:黄海生,党成,李鑫,等.一种SDRAM 控制器的设计电路[J].现代电子技术,2022,45(4):35⁃38.
一种SDRAM 控制器的设计电路
黄海生,党
成,李
鑫,叶小艳
(西安邮电大学电子工程学院,陕西西安
710121)
摘
要:针对以太网映射器芯片中以太网链路和HDLC 链路之间存在不同速率数据链路通信的相互转换问题,文中提
出一种SDRAM 控制器的设计方案并采用Verilog HDL 来实现。
在该设计电路中,仲裁器处理以太网链路和HDLC 链路与SDRAM 之间的数据传送请求,以太网模块将接收到的数据写入IN_FIFO 缓冲区,仲裁器负责将IN_FIFO 中的数据导入SDRAM 。
在约定信息速率(CIR )控制器的作用下,仲裁器将SDRAM 中的数据写入OUT_FIFO 缓冲区,HDLC 模块将OUT_FIFO 中的数据读出。
采用双缓存模块的设计对写入与读出的数据进行缓存,既可减少资源消耗又能够提高SDRAM 的
读写速率;同时增设CIR 控制器来控制从SDRAM 中读出的以太网数据是否采用规定的速率。
结果表明,文中设计的电路输入数据与输出数据完全一致,能够很好地解决不同数据链路在进行数据交互时的吞吐量差异问题。
关键词:以太网映射器;链路通信;SDRAM 控制器;Verilog HDL ;约定信息速率;双缓存;以太网数据;吞吐量差异中图分类号:TN402⁃34
文献标识码:A
文章编号:1004⁃373X (2022)04⁃0035⁃04
Design circuit of SDRAM controller
HUANG Haisheng ,DANG Cheng ,LI Xin ,YE Xiaoyan
(School of Electronic Engineering ,Xi ’an University of Posts and Telecommunications ,Xi ’an 710121,China )
Abstract :In allusion to the mutual conversion of data link communication with different rates between Ethernet link and HDLC link in Ethernet mapper chip ,a design scheme of SDRAM controller is proposed and implemented by means of Verilog HDL.In this design circuit ,the arbiter is use to process the data transmission request between the Ethernet link ,HDLC link and SDRAM ,the Ethernet module is used to write the received data into the IN_FIFO buffer ,and the arbiter is responsible for importing data from IN_FIFO into SDRAM.Under the action of the committed information rate (CIR )controller ,the arbiter is used to write the data in SDRAM to OUT_FIFO buffer ,and the HDLC module is used to read out the data in OUT_FIFO.The design of dual cache module is used to cache the written and read out data ,which can not only reduce the resource
consumption ,but also improve the read ⁃write rate of SDRAM ,and meanwhile CIR controller is added to control whether the Ethernet data read out from SDRAM can adopt the specified rate.The results show that the input data and output data of the circuit designed in this paper are completely consistent ,which can well solve the problem of throughput difference in data
interaction between different data links.
Keywords :Ethernet mapper ;link communication ;SDRAM controller ;Verilog HDL ;committed information rate ;double cache ;Ethernet data ;throughput difference
收稿日期:2021⁃06⁃11
修回日期:2021⁃07⁃29
基金项目:国家自然科学基金项目(61661049)
35
现代电子技术
2022年第45卷
据转换为32bit 的数据进行读写处理,有效地提高数据的读写速率;同时增设CIR 模块,通过设置CIR 寄存器来控制以太网模块至HDLC 模块发送的数据吞吐量,从而将SDRAM 接收的以太网帧数据发送限制在设定的速率上。
1系统背景电路
图1所示为SDRAM 控制器设计系统的背景框图。
图中以太网帧接收模块将接收的数据进行一系列处理,在模块内部完成跨时钟域处理后将数据输出,与SDRAM 模块以相同的时钟频率进行交互,由SDRAM 将输出的数据送入HDLC 成帧电路模块进行封装,得到HDLC 帧数据后通过WAN 接口发送,WAN 接口能够与Dallas Semiconductor/Maxim 的E1成帧器、线路接口单元(LIU )和单片收发器(SCT )进行无缝连接。
本文提出的SDRAM 控制器电路主要是为了使以太网帧和HDLC
帧在完成速率同步后,能够正确地对SDRAM 进行读写
以实现数据缓存。
图1SDRAM 控制器设计系统背景框图
2SDRAM 控制器整体设计
SDRAM 控制器整体设计架构如图2所示。
首先,
将数据写入读缓存IN_FIFO 模块,IN_FIFO 模块输出的读请求信号RD_REQ 经仲裁模块SDRAM_ARB 仲裁后,
得到SDRAM 的写指示信号WR_IND ,并送入SDRAM 控制模块SDRAM_CTL 中,得到SDRAM 的写使能信号(即IN_FIFO 的读使能信号),并将其送回IN_FIFO 模块控
制数据的读取。
将读出的数据送入SDRAM_CTL 模块,在SDRAM 写指示信号的控制下将数据通过总线SDATA 送入SDRAM 模块中进行处理,SDATA 为inout 类型。
SDRAM 输出的数据也通过SDATA 总线进行传输。
在OUT_FIFO 写使能信号控制下将数据SDATA 写入OUT_FIFO 中,经OUT_FIFO 读缓冲后输出。
图2SDRAM
控制器设计总体框图
另外,REG_PRO 模块将数据队列的最大和最小地址提供给FIFO_CTL 模块,进而产生读写地址。
CIR_CTL 用来控制SDRAM 发送数据的吞吐量,将其输出的CIR_ACTIVE 信号、OUT_FIFO 输出的写请求信号WR_REQ 以及FIFO_CTL 输出的帧指示信号FRM_IND 送入仲裁模块进行仲裁,将得到的读指示信号RD_IND
送入SDRAM_CTL 中,得到SDRAM 的读使能信号(即OUT_FIFO 的写使能信号)并发送给OUT_FIFO 模块来控制数据SDATA 的写入。
3
SDRAM 控制器主要模块的设计
3.1
CIR_CTL 模块
CIR 用于将SDRAM 接收的数据发送限制在设定的速率上,CIR 寄存器控制数据的吞吐量。
CIR 寄存器在
0~52Mb/s 范围内可设,间隔为500Kb/s 。
本文设计中
CIR_REG[7:0]值为8′h8F ,最高位置1将使能约定信息速率控制器功能,CIR_REG[6:0]提供约定信息速率数
值,该数值乘以500Kb/s 得到CIR 值。
若可用吞吐量为
36
第4期
正,则输出CIR_ACTIVE信号送给SDRAM_ARB模块进行仲裁处理,从而控制SDRAM读指示信号的产生。
CIR工作原理如下:
1)CIR模块对每125ms结束时累积的可用吞吐量进行计数。
2)计算新的可用吞吐量,可用吞吐量=原有可用吞吐量-最近发送帧长度(以字节形式表示)。
3)可用吞吐量每125ms递增CIR/8。
4)每250ms可用吞吐量复位为CIR初始值。
5)CIR最大值不能超过发送线路速率。
6)对于接收并存储在SDRAM中的数据,向OUT_FIFO模块发送时要求可用吞吐量必须为正。
如果可用吞吐量为负,则CIR_ACTIVE为0,将不进行数据传送。
3.2IN_FIFO与OUT_FIFO模块
在数据高速传输的情况下,应加入缓存器FIFO对SDRAM写入和读出数据进行缓冲,确保数据传输的稳定性和一致性,防止数据失真。
本文设计采用双FIFO 缓冲设计,即读缓存和写缓存,其中写缓存IN_FIFO模块将其输入的8bit位宽的以太网帧数据转换为32bit 位宽的数据输出,对32bit数据的处理有效地提高了SDRAM的读写速率;读缓存OUT_FIFO模块将读出的数据转换为8bit的数据输出,确保数据输入与输出的一致性。
3.3SDRAM_ARB模块
仲裁模块管理以太网端口与HDLC端口之间数据的传输请求,管理SDRAM中数据的输入与输出。
对IN_FIFO输出的读请求信号进行仲裁,将得到的SDRAM写指示信号发送给SDRAM_CTL模块处理,最终得到FIFO的读使能与SDRAM的写使能。
对CIR_CTL输出的CIR_ACTIVE、OUT_FIFO输出的写请求信号WR_REQ、FIFO_CTL输出的帧指示信号FRM_IND进行仲裁,得到SDRAM的读指示信号RD_IND并送入SDRAM_CTL中,最终得到FIFO的写使能与SDRAM的读使能信号。
3.4SDRAM模块
SDRAM采用MICRON公司的MT48LC4M32B2型号,时钟为100MHz,SDRAM容量为128MB,数据位宽为32bit。
SDRAM的工作原理如下:
1)初始化
开机后,SDRAM需要先对逻辑控制单元进行初始化操作(包括所有L⁃Bank预充电、刷新、设置模式寄存器)[6⁃7]。
其中,模式寄存器的设置需通过地址线来控制,在本文中突发长度为1,CAS潜伏期CL=2,突发类型选
择为顺序。
在模式寄存器设置结束后,可以对SDRAM 进行数据读写[8⁃9]。
2)读写操作
对一个L⁃Bank中的阵列进行寻址时,首先需要确定行,其次确定列。
片选和L⁃Bank的定址可以与行有效同时进行。
文中有12个地址线A0~A11,共4096行,在SDARM控制命令为激活(act)时,L⁃Bank根据bank地址的不同进行定址,且具体的行地址可由地址线的不同来选择确定。
列寻址信号与读写命令是同时发出的。
在SDARM的控制命令为读(read)或写(write)时,具体的列地址由地址线A0~A7来决定。
在确定列地址之后可找到具体的存储单元,接着可将数据通过I/O通道(DQ)输出到内存总线上[10⁃11]。
当SDRAM处于突发写操作状态时,数据由DQ总线进入模块;当SDRAM处于突发读操作状态时,数据由DQ总线输出。
由于CL为2,因此在进行数据读操作时,从CAS与读命令发出后需要经过2个时钟周期才会有数据输出,并且CL只作用于数据读取时。
3)刷新操作
刷新操作须在64ms内被执行4096次,可选择周期执行,也可突发执行[12⁃13]。
本文选择周期性刷新,即每15625ns内必须执行一次刷新操作,由于系统时钟为100MHz,周期为10ns,所以每1562个时钟周期内必须刷新一次,本文选择每17页刷新一次,1页为30个时钟周期。
SDRAM控制命令如表1所示。
表1SDRAM控制命令表
命令字
nop
act
read
write
bterm
pre
refresh
lmr
CS
1
RAS
1
1
1
1
CAS
1
1
1
1
WE
1
1
1
1
3.5SDRAM_CTL模块
SDRAM_CTL中各模块分布情况如图3所示。
图3中各模块具体功能如下:
1)SDRAM_NORM_INI模块。
上电后在SDRAM操作时钟的作用下,通过计数得到SDRAM初始化的指示信号。
2)SDRAM_CMD_PRO模块。
该模块在对输入指令进行分析判断后,产生相应的CS、RAS、CAS、WE等信
黄海生,等:一种SDRAM控制器的设计电路37
现代电子技术
2022年第45卷
号,从而形成对SDRAM 的控制指令[14]。
3)SDRAM_ADDR_PRO 模块。
在SDRAM 初始化
指示信号、刷新指示信号、读写指示信号、数据长度指示信号的作用下,将外部发来的地址译码为SDRAM 所需要的bank 地址和row/col 地址命令。
4)SDRAM_DATA_PRO 模块。
主要在数据写操作
时将数据发送到SDATA 总线上,数据由输入总线进入SDRAM
模块中。
图3SDRAM_CTL 中各模块简单的分布图
4SDRAM 控制器设计仿真
本文采用Verilog 硬件描述语言对电路进行描述,
在ModelSim 上对该电路进行功能仿真[15]。
系统复位结束后,在时钟的作用下将数据写入IN_FIFO 缓冲区,由仲裁器负责将IN_FIFO 中的数据导入SDRAM 中。
在CIR 的作用下,仲裁器将SDRAM 中的数据写入OUT_FIFO 缓冲区,最后将OUT_FIFO 中的数据读出,观察系统写入与读出数据是否一致。
IN_FIFO 模块写入的数据波形与OUT_FIFO 模块读出的数据波形分别如图4、图5
所示。
图4IN_FIFO
模块写入数据的波形
图5OUT_FIFO 模块读出数据的波形
由图4、图5仿真结果表明,OUT_FIFO 模块读出的数据与IN_FIFO 模块写入的数据一致(其中,OUT_FIFO 模块读开始信号所对应的读数据为该帧数据的长度16′h7a )。
5结语
本文提出一种SDRAM 控制器的设计电路,并使用Verilog HDL 对该电路进行了描述。
经仿真验证,在满足CIR 功能的条件下,OUT_FIFO 模块读出的数据与IN_FIFO 模块写入的数据始终保持一致,说明了本文设计的正确性。
本文电路设计简单,对于以太网映射器的研究
有着重要的意义,可广泛地用于不同链路的数据通信中。
参
考
文
献
[1]潘亮,穆仕博,何广亮,等.FPGA 的SDR/DDR3SDRAM 控制器
设计[J].单片机与嵌入式系统应用,2020,20(1):52⁃55.[2]雷能芳.数据采集系统中SDRAM 控制器的FPGA 设计[J].电子设计工程,2017,25(15):137⁃140.
[3]WON K S ,Ho K D ,RH I I.Design and verification of
SDRAM controller based on FPGA [J].Journal of computer and communications ,2020,8(7):14⁃22.
[4]吕达,张加宏,李敏,等.基于FPGA 的多通道FIFO 存储控制器
的设计与实现[J].现代电子技术,2019,42(4):1⁃4.
[5]张芳健,王晗,蔡念,等.基于FPGA 的绝对式光栅尺接口通讯
设计与实现[J].仪表技术与传感器,2018(1):36⁃40.[6]安书董,李明,郑久寿,等.一种采用可编程逻辑实现SDRAM 的控制方法[J].航空计算技术,2020,50(4):97⁃100.[7]张聪.基于LVDS 的数据收发系统研究与实现[D].西安:西安电子科技大学,2017.
[8]杨腾.基于FPGA 的应用于STM32的SDRAM 控制器设计方案[J].智库时代,2019(7):254⁃257.
[9]王婉星.嵌入式SDRAM 控制器的设计与验证[D].西安:西安
电子科技大学,2017.
[10]齐佳硕,王洪岩.基于FPGA 的SDRAM 接口设计及实现[J].电
子测量技术,2018,41(19):141⁃144.
[11]吴聪睿,张忠伟,张学全.用于图像压缩系统的SDRAM 控制
器设计[J].电子设计工程,2018,26(1):178⁃182.[12]富校乾,杨婷,李璇,等.基于FPGA 的SDRAM 控制器设置[J].电子元器件与信息技术,2020,4(5):93⁃95.
[13]TIGADI A S ,GUHILOT H.Design of an Arbiter for two
systems accessing a single DDR3memory on a reconfigurable platform [J].International journal of information engineering and electronic business ,2018,10(6):14⁃20.[14]惠为君.基于FPGA 的SDRAM 控制器[J].电脑知识与技术,2015,11(5):241⁃243.
[15]王雪,黄海生,姚秋瑞.一种新型的HDB3编解码电路[J].光通
信技术,2020,44(3):52⁃57.
作者简介:黄海生(1964—),男,陕西榆林人,硕士,教授,研究方向为专用集成电路设计与系统集成。
党成(1996—),女,陕西渭南人,硕士研究生,研究方向为电路与系统。
李
鑫(1986—),男,陕西宝鸡人,硕士,助教,研究方向为电路与系统。
叶小艳(1996—),女,陕西渭南人,硕士研究生,研究方向为电路与系统。
38。