CN111158633A - DDR3 multichannel read-write controller based on FPGA and control method - Google Patents

DDR3 multichannel read-write controller based on FPGA and control method Download PDF

Info

Publication number
CN111158633A
CN111158633A CN201911373430.7A CN201911373430A CN111158633A CN 111158633 A CN111158633 A CN 111158633A CN 201911373430 A CN201911373430 A CN 201911373430A CN 111158633 A CN111158633 A CN 111158633A
Authority
CN
China
Prior art keywords
read
write
data
channel
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911373430.7A
Other languages
Chinese (zh)
Inventor
王成栋
黄齐
马运超
杨冬辰
王成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201911373430.7A priority Critical patent/CN111158633A/en
Publication of CN111158633A publication Critical patent/CN111158633A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Abstract

The invention discloses a DDR3 multichannel read-write controller and a control method based on an FPGA, wherein the multichannel read-write of a DDR3 is realized by the FPGA, and the controller comprises a plurality of groups of data write channels, a plurality of groups of data read channels, a read-write control state machine and a DDR3 chip controller. The writing channel and the reading channel of the multiple groups of data are respectively composed of asynchronous writing address FIFO, reading address FIFO and data FIFO; the read-write control module processes the read-write requests of each channel in a polling mode, dynamically changes the number of address requests processed each time according to the state of each channel, and performs data read and write operations on the DDR3 chip through the DDR3 chip controller according to the priority of each channel. The DDR3 read-write controller adopting the control method can realize multi-channel real-time access to the DDR3 chip.

Description

DDR3 multichannel read-write controller based on FPGA and control method
Technical Field
The invention relates to the field of DDR3 read-write controllers based on an FPGA, and relates to multi-channel data read-write of a memory.
Background
The DDR3 SDRAM memory, i.e. the third generation double-rate synchronous dynamic random access memory, hereinafter referred to as DDR3, has the advantages of large capacity, fast speed, low power consumption, etc., and is widely used in the fields of computers, electronic communications, etc. An FPGA (field programmable gate array), namely a field programmable gate array, has a large number of applications in the fields of signal processing and image processing due to its high-speed parallel capability, and when a large amount of data needs to be processed, a DDR3 chip is often used for extended storage due to the limited on-chip Block Ram capacity of the FPGA.
In a system including FPGA and DDR3, DDR3 acts as mass storage, typically as system data buffers, and mediates data exchange between modules. No matter the DDR3 chip is directly controlled or the DDR3 chip is read and written by using an IP core, the DDR3 chip of a single data channel cannot meet the requirement of reading and writing a large amount of high-speed data of a system. Therefore, the read-write channel needs to be expanded, and multiple channels of simultaneous reading and writing are performed on the DDR3, wherein a multiple-channel controller and a corresponding control method are very important.
Disclosure of Invention
The invention discloses a DDR3 multi-channel read-write controller and a control method based on an FPGA, aiming at the requirement that a plurality of modules in an FPGA system need to simultaneously write in or read from a DDR3 chip at a high speed, and the technical scheme is as follows:
DDR 3's multichannel read-write control adopts FPGA to realize, and the controller includes: the system comprises a plurality of groups of data writing channels, a plurality of groups of data reading channels, a read-write control state machine and a DDR3 chip controller;
wherein the multiple groups of data writing channels comprise asynchronous writing address FIFO and asynchronous writing data FIFO; the multiple groups of data reading channels comprise asynchronous reading address FIFO and asynchronous reading data FIFO;
the read-write control state machine and the DDR3 chip controller form a read-write control module, and the read-write control module and the data read-write channel are connected with the DDR3 chip controller; the asynchronous write address FIFO and the asynchronous write data FIFO are address and data caches of a data write channel, the write clock is a user operation clock, and the read clock is a read/write controller working clock; the asynchronous read address FIFO is an address cache of a data read channel, the write clock is a user operation clock, and the read clock is a read/write controller working clock; the asynchronous read data FIFO is a data cache of a data read channel, the write clock is a work clock of a read-write controller, the read clock is a user operation clock, and a program control write-full mark is configured;
the bit width of the asynchronous write address FIFO and the asynchronous read address FIFO is the same as that of the DDR3 chip controller address, and the bit width of the asynchronous write data FIFO and the asynchronous read data FIFO is the same as that of the DDR3 chip controller data.
The read-write control module takes a write address FIFO empty reading signal of the write channel as a low write request, takes a read address FIFO empty reading signal of the read channel as a low read request and a read data FIFO program control full writing mark as a low read request, and performs data read and write operations on a DDR3 chip through a DDR3 chip controller according to the priority of the channel;
the read-write control state machine in the read-write control module comprises A, B, C, D, E states, and the meaning, execution operation and transfer flow of each state are as follows:
and a state A: the state A is an initial state, and the executed operation comprises the following steps: resetting the FIFO of each channel, initializing the processing marks of each channel and the maximum number of transferred data of each channel, setting a priority for each channel, initializing a DDR3 chip through a DDR3 chip controller, waiting for the completion of the initialization of the DDR3 chip, and then transferring to a state B;
and a state B: state B is an idle state, and the operations performed include: checking whether each unprocessed channel has a request, and if each channel has no request, resetting a channel processing mark; otherwise, selecting a channel with the highest priority from the unprocessed request channels as a data channel to be processed; if the gated data channel to be processed is a write channel, transferring to a state C; if the gated data channel to be processed is a read channel, transferring to a state E;
and C, state C: state C is a write state, and the operations performed include: reading the cache address in the write address FIFO of the write channel gated in the state B, simultaneously reading the cache data in the write data FIFO, and writing the data into a DDR3 chip through a DDR3 chip controller; when the write address FIFO is empty or the number of the write data is equal to the maximum number of the transfer data of the current channel, stopping writing, setting the channel mark as processed, and transferring to the state D;
and a state D: the state D is a data updating state, and the executed operation comprises the following steps: checking whether the channel has a read-write request, and if so, increasing the maximum number of transfer data of the channel; otherwise, reducing the maximum transfer data number of the channel; transitioning to state B;
and a state E: state E is a read state and the operations performed include: reading a cache address in a read address FIFO of the read channel gated by the state B, reading data corresponding to the address from a DDR3 chip through a DDR3 chip controller, and writing the data into the read data FIFO; when the read address FIFO is empty, or the read data FIFO is full or the number of read data is equal to the maximum number of transfer data of the current channel, stopping reading, setting the channel mark as processed, and transferring to the state D.
The DDR3 multichannel read-write controller and the control method based on the FPGA simplify the write operation of the DDR3 chip into writing data and addresses into the FIFO, simplify the read operation of the DDR3 chip into writing the addresses into the FIFO and reading the data from the FIFO, reduce the operation difficulty of the DDR3 chip, and improve the flexibility of reading and writing the DDR3 chip.
Drawings
FIG. 1 is a block diagram of an embodiment of a DDR3 multi-channel read-write controller of the invention
FIG. 2 is a state transition diagram of the DDR3 multi-channel read-write control method of the invention.

Claims (2)

1. A DDR3 multi-channel read-write controller and a control method based on FPGA are characterized in that the multi-channel read-write control of DDR3 is realized by adopting FPGA, and the controller comprises: the system comprises a plurality of groups of data writing channels, a plurality of groups of data reading channels, a read-write control state machine and a DDR3 chip controller; wherein the multiple groups of data writing channels comprise asynchronous writing address FIFO and asynchronous writing data FIFO; the multiple groups of data reading channels comprise asynchronous reading address FIFO and asynchronous reading data FIFO; the read-write control state machine and the DDR3 chip controller form a read-write control module, and the read-write control module and the data read-write channel are connected with the DDR3 chip controller; the asynchronous write address FIFO and the asynchronous write data FIFO are address and data caches of a data write channel, the write clock is a user operation clock, and the read clock is a read/write controller working clock; the asynchronous read address FIFO is an address cache of a data read channel, the write clock is a user operation clock, and the read clock is a read/write controller working clock; the asynchronous read data FIFO is a data cache of a data read channel, the write clock is a work clock of a read-write controller, the read clock is a user operation clock, and a program control write-full mark is configured; the bit width of the asynchronous write address FIFO and the asynchronous read address FIFO is the same as that of the DDR3 chip controller address, and the bit width of the asynchronous write data FIFO and the asynchronous read data FIFO is the same as that of the DDR3 chip controller data.
2. The FPGA-based DDR3 multichannel read-write controller and control method as claimed in claim 1, wherein the read-write control module uses the write address FIFO empty read signal of the write channel as low as a write request, uses the read address FIFO empty read signal of the read channel as low and the read data FIFO program control full flag as low as a read request, and performs data read and write operations on the DDR3 chip through the DDR3 chip controller according to the priority of the channel; the read-write control state machine in the read-write control module comprises A, B, C, D, E states, and the meaning, execution operation and transfer flow of each state are as follows:
and a state A: the state A is an initial state, and the executed operation comprises the following steps: resetting the FIFO of each channel, initializing the processing marks of each channel and the maximum number of transferred data of each channel, setting a priority for each channel, initializing a DDR3 chip through a DDR3 chip controller, waiting for the completion of the initialization of the DDR3 chip, and then transferring to a state B;
and a state B: state B is an idle state, and the operations performed include: checking whether each unprocessed channel has a request, and if each channel has no request, resetting a channel processing mark; otherwise, selecting a channel with the highest priority from the unprocessed request channels as a data channel to be processed; if the gated data channel to be processed is a write channel, transferring to a state C; if the gated data channel to be processed is a read channel, transferring to a state E;
and C, state C: state C is a write state, and the operations performed include: reading the cache address in the write address FIFO of the write channel gated in the state B, simultaneously reading the cache data in the write data FIFO, and writing the data into a DDR3 chip through a DDR3 chip controller; when the write address FIFO is empty or the number of the write data is equal to the maximum number of the transfer data of the current channel, stopping writing, setting the channel mark as processed, and transferring to the state D;
and a state D: the state D is a data updating state, and the executed operation comprises the following steps: checking whether the channel has a read-write request, and if so, increasing the maximum number of transfer data of the channel; otherwise, reducing the maximum transfer data number of the channel; transitioning to state B;
and a state E: state E is a read state and the operations performed include: reading a cache address in a read address FIFO of the read channel gated by the state B, reading data corresponding to the address from a DDR3 chip through a DDR3 chip controller, and writing the data into the read data FIFO; when the read address FIFO is empty, or the read data FIFO is full or the number of read data is equal to the maximum number of transfer data of the current channel, stopping reading, setting the channel mark as processed, and transferring to the state D.
CN201911373430.7A 2019-12-26 2019-12-26 DDR3 multichannel read-write controller based on FPGA and control method Pending CN111158633A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911373430.7A CN111158633A (en) 2019-12-26 2019-12-26 DDR3 multichannel read-write controller based on FPGA and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911373430.7A CN111158633A (en) 2019-12-26 2019-12-26 DDR3 multichannel read-write controller based on FPGA and control method

Publications (1)

Publication Number Publication Date
CN111158633A true CN111158633A (en) 2020-05-15

Family

ID=70558528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911373430.7A Pending CN111158633A (en) 2019-12-26 2019-12-26 DDR3 multichannel read-write controller based on FPGA and control method

Country Status (1)

Country Link
CN (1) CN111158633A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694775A (en) * 2020-06-09 2020-09-22 电子科技大学 Device for performing read-write control based on time division multiplexing in DDR3
CN112073650A (en) * 2020-09-16 2020-12-11 中航华东光电有限公司 DDR3 video cache control method based on FPGA
CN112148667A (en) * 2020-09-04 2020-12-29 南京信息工程大学 Cache system and method based on FPGA soft core
CN114036085A (en) * 2021-09-24 2022-02-11 北京无线电测量研究所 Multitask read-write scheduling method based on DDR4, computer equipment and storage medium
CN116719485A (en) * 2023-08-09 2023-09-08 苏州浪潮智能科技有限公司 FPGA-based data reading and writing method, reading and writing unit and FPGA

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271335A (en) * 2018-07-24 2019-01-25 上海威固信息技术股份有限公司 A kind of FPGA implementation method of multi-channel data source DDR caching
CN109741774A (en) * 2018-11-23 2019-05-10 成都汇蓉国科微系统技术有限公司 A kind of controller and method based on FPGA on piece RAM simulated implementation DDR3 burst
CN209842608U (en) * 2019-06-13 2019-12-24 成都汇蓉国科微系统技术有限公司 DDR3 memory control based on FPGA FIFO module

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271335A (en) * 2018-07-24 2019-01-25 上海威固信息技术股份有限公司 A kind of FPGA implementation method of multi-channel data source DDR caching
CN109741774A (en) * 2018-11-23 2019-05-10 成都汇蓉国科微系统技术有限公司 A kind of controller and method based on FPGA on piece RAM simulated implementation DDR3 burst
CN209842608U (en) * 2019-06-13 2019-12-24 成都汇蓉国科微系统技术有限公司 DDR3 memory control based on FPGA FIFO module

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JIAO S: "Design of DDR3 controller based on FPGA" *
宗凯: "基于FPGA的DDR3控制器设计" *
张凤麒: "基于FPGA的DDR3六通道读写防冲突设计" *
隋旭阳: "基于FPGA的DDR3 SDRAM高速图像数据采集方法" *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694775A (en) * 2020-06-09 2020-09-22 电子科技大学 Device for performing read-write control based on time division multiplexing in DDR3
CN112148667A (en) * 2020-09-04 2020-12-29 南京信息工程大学 Cache system and method based on FPGA soft core
CN112148667B (en) * 2020-09-04 2023-12-19 南京信息工程大学 Cache system and method based on FPGA soft core
CN112073650A (en) * 2020-09-16 2020-12-11 中航华东光电有限公司 DDR3 video cache control method based on FPGA
CN114036085A (en) * 2021-09-24 2022-02-11 北京无线电测量研究所 Multitask read-write scheduling method based on DDR4, computer equipment and storage medium
CN114036085B (en) * 2021-09-24 2024-04-12 北京无线电测量研究所 DDR 4-based multitasking read-write scheduling method, computer equipment and storage medium
CN116719485A (en) * 2023-08-09 2023-09-08 苏州浪潮智能科技有限公司 FPGA-based data reading and writing method, reading and writing unit and FPGA
CN116719485B (en) * 2023-08-09 2023-11-03 苏州浪潮智能科技有限公司 FPGA-based data reading and writing method, reading and writing unit and FPGA

Similar Documents

Publication Publication Date Title
CN111158633A (en) DDR3 multichannel read-write controller based on FPGA and control method
TWI590255B (en) Memory device power managers and methods
CN101930798B (en) Flash memory device, memory device and method for controlling flash memory device
JP6408712B2 (en) Memory access method, storage class memory, and computer system
KR20040054936A (en) Composite memory device
US10032494B2 (en) Data processing systems and a plurality of memory modules
KR102523327B1 (en) Memory controller and memory system having the same
CN105518784A (en) Data processor with memory controller for high reliability operation and method
CN103207846A (en) Memory controller and method thereof
US20170236566A1 (en) Data transfer for multi-loaded source synchrous signal groups
US20110035537A1 (en) Multiprocessor system having multi-command set operation and priority command operation
CN109891397A (en) Device and method for the operating system cache memory in solid-state device
US9390017B2 (en) Write and read collision avoidance in single port memory devices
CN102789424B (en) External extended DDR2 (Double Data Rate 2) read-write method on basis of FPGA (Field Programmable Gate Array) and external extended DDR2 particle storage on basis of FPGA
US10963404B2 (en) High bandwidth DIMM
CN206331414U (en) A kind of solid state hard disc
US10978131B2 (en) Mobile device and operation method thereof
US10452574B2 (en) Read performance on a SATA storage device behind a host bus adapter
US20220108743A1 (en) Per bank refresh hazard avoidance for large scale memory
US11620088B2 (en) Dual speed memory
JP2007172129A (en) Nonvolatile memory access control device and nonvolatile memory control system
TW202213331A (en) Method for managing flash memory module, flash memory controller, and electronic device
JP2004127305A (en) Memory controller
CN114667509A (en) Memory, network equipment and data access method
CN104834482A (en) Hybrid buffer

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200515

WD01 Invention patent application deemed withdrawn after publication