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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 11
- 238000010586 diagram Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
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
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.
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 (8)
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 |
CN114281412A (en) * | 2021-12-24 | 2022-04-05 | 中电信数智科技有限公司 | Message processing method and device, electronic 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 |
CN117527934A (en) * | 2023-11-30 | 2024-02-06 | 江苏新质信息科技有限公司 | Method and device for analyzing tera Ethernet frames, storage medium and electronic equipment |
WO2024124729A1 (en) * | 2022-12-16 | 2024-06-20 | 无锡中微亿芯有限公司 | Fpga for realizing data transmission by means of built-in edge module |
Citations (3)
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 |
-
2019
- 2019-12-26 CN CN201911373430.7A patent/CN111158633A/en active Pending
Patent Citations (3)
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)
Title |
---|
JIAO S: "Design of DDR3 controller based on FPGA" * |
宗凯: "基于FPGA的DDR3控制器设计" * |
张凤麒: "基于FPGA的DDR3六通道读写防冲突设计" * |
隋旭阳: "基于FPGA的DDR3 SDRAM高速图像数据采集方法" * |
Cited By (11)
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 |
CN114281412A (en) * | 2021-12-24 | 2022-04-05 | 中电信数智科技有限公司 | Message processing method and device, electronic equipment and storage medium |
WO2024124729A1 (en) * | 2022-12-16 | 2024-06-20 | 无锡中微亿芯有限公司 | Fpga for realizing data transmission by means of built-in edge module |
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 |
CN117527934A (en) * | 2023-11-30 | 2024-02-06 | 江苏新质信息科技有限公司 | Method and device for analyzing tera Ethernet frames, storage medium and electronic equipment |
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 | |
US10032494B2 (en) | Data processing systems and a plurality of memory modules | |
JP6408712B2 (en) | Memory access method, storage class memory, and computer system | |
CN101930798B (en) | Flash memory device, memory device and method for controlling flash memory device | |
KR20040054936A (en) | Composite memory device | |
CN105518784A (en) | Data processor with memory controller for high reliability operation and method | |
CN101236774B (en) | Device and method for single-port memory to realize the multi-port storage function | |
KR102523327B1 (en) | Memory controller and memory system having the same | |
US20170236566A1 (en) | Data transfer for multi-loaded source synchrous signal groups | |
CN103207846A (en) | Memory controller and method thereof | |
CN109891397A (en) | Device and method for the operating system cache memory in solid-state device | |
US10162522B1 (en) | Architecture of single channel memory controller to support high bandwidth memory of pseudo channel mode or legacy mode | |
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 | |
US20220415380A1 (en) | Independent multi-page read operation enhancement technology | |
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 | |
CN104834482A (en) | Hybrid buffer | |
JP2004127305A (en) | Memory controller | |
CN114667509A (en) | Memory, network equipment and data access method |
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 |