CN109933303B - Multi-user high-speed pseudo-random sequence generator circuit and working method thereof - Google Patents

Multi-user high-speed pseudo-random sequence generator circuit and working method thereof Download PDF

Info

Publication number
CN109933303B
CN109933303B CN201910149077.8A CN201910149077A CN109933303B CN 109933303 B CN109933303 B CN 109933303B CN 201910149077 A CN201910149077 A CN 201910149077A CN 109933303 B CN109933303 B CN 109933303B
Authority
CN
China
Prior art keywords
user
queue
ddr
pseudo
random sequence
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.)
Active
Application number
CN201910149077.8A
Other languages
Chinese (zh)
Other versions
CN109933303A (en
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.)
Army Engineering University of PLA
Original Assignee
Army Engineering University of PLA
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 Army Engineering University of PLA filed Critical Army Engineering University of PLA
Priority to CN201910149077.8A priority Critical patent/CN109933303B/en
Publication of CN109933303A publication Critical patent/CN109933303A/en
Application granted granted Critical
Publication of CN109933303B publication Critical patent/CN109933303B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a multi-user high-speed pseudo-random sequence generator circuit and a working method thereof. The circuit comprises a DDR and an FPGA; the DDR is used for storing respective random number sequences for a large number of users in a queue mode in advance, the FPGA is used for managing the random number queues in the DDR, and length values in the queues are read circularly for different users in sequence. The method comprises the following steps: aiming at each queue in the DDR, establishing a high-speed sub-queue in the FPGA, wherein the high-speed sub-queue is used for caching partial numerical values read from the DDR in a burst mode for a user circuit in the FPGA to read at a high speed; when the depth of the cache data in a certain sub-queue is lower than the threshold, the queue manager reads the length values of the set number from the queue corresponding to the DDR according to the storage position sequence read last time, and writes the length values into the corresponding sub-queue. The pseudo-random sequence provided by the invention has the advantages of large length, low hardware cost and strong real-time property, and can provide pseudo-random length sequences for a large number of users at the same time.

Description

Multi-user high-speed pseudo-random sequence generator circuit and working method thereof
Technical Field
The invention belongs to the technical field of electronic circuits, and particularly relates to a multi-user high-speed pseudo-random sequence generator circuit and a working method thereof.
Background
The pseudo-random number generation circuit can be widely applied to various communication test equipment and encryption and decryption technologies. The current pseudo-random number generation technology is mature, and typically comprises a linear feedback shift register, a pseudo-random number generator based on a linear congruence algorithm and the like. When applied to communication test equipment such as a network protocol tester, it is generally necessary to simultaneously generate required random data packet length sequences for up to thousands of test service flows, and the length sequences are independent from each other and randomly distributed within a certain value range. If a large number of separate conventional pseudo-random sequence generation circuits are used at this time, hardware resource consumption is very large.
Disclosure of Invention
The invention aims to provide a multi-user high-speed pseudo-random sequence generator circuit with low hardware cost and strong real-time property and a working method thereof, which can provide pseudo-random length sequences for a large number of users at the same time, and the length of the pseudo-random sequences is large.
The technical solution for realizing the purpose of the invention is as follows: a multi-user high-speed pseudo-random sequence generator circuit comprises a DDR memory and an FPGA, wherein:
the DDR memory is used for storing respective random number sequences for users in a queue mode in advance; a user carries out test configuration through a configuration interface of a network tester, test software generates test data packet length sequences for different service flows and writes the test data packet length sequences into the DDR, each test service flow corresponds to a queue storing a data packet length value in the DDR, and the length of each queue is a period of distribution of the test sequence length value;
the FPGA is used for managing a random number queue in the DDR memory and circularly reading length values in the queue for different users in sequence; in the FPGA, aiming at each queue in the DDR, establishing a corresponding sub-queue, and storing corresponding queue data from the DDR; the FPGA is provided with a queue management circuit which is used for managing the establishment and reading of each queue in the DDR and managing the establishment and reading of each sub-queue in the FPGA; when the depth of the cache data in the sub-queues is reduced to a set threshold, the queue management circuit sequentially reads the length values of a set number from the queues corresponding to the DDR according to the storage positions read last time, and writes the length values into the corresponding sub-queues.
Furthermore, the queue management circuit in the FPGA comprises a DDR multi-user pseudo-random sequence management circuit and an on-chip multi-user pseudo-random sequence management circuit, the interior of the FPGA also comprises a multi-user local pseudo-random sequence buffer area maintained by the on-chip multi-user pseudo-random sequence management circuit, a head and tail pointer memory and a read-write pointer memory which are corresponding to the multi-queues in the DDR, and a head and tail pointer memory and a read-write pointer memory which are maintained by the DDR multi-user pseudo-random sequence management circuit and correspond to the multi-queues in the DDR;
after receiving the request of the port user frame generating circuit, the on-chip multi-user pseudo-random sequence management circuit reads out a random number according to the number of the user and the corresponding current internal queue read pointer and sends the random number to the user; when the number of random numbers locally buffered by a user is less than a given threshold, a request is sent to a DDR multi-user pseudo-random sequence management circuit, and the request is to read data from the DDR in a burst mode according to a sequence;
after receiving the request, the DDR multi-user pseudo-random sequence management circuit reads out corresponding queue information including a head pointer, a tail pointer and a current read pointer according to the number of the user, reads out a group of data from the DDR in a burst mode from the position of the current read pointer according to the read-out information, sends the data to the on-chip multi-user pseudo-random sequence management circuit, and sequentially writes the data into a local pseudo-random sequence buffer area according to a write pointer of a local queue of the user.
Furthermore, the FPGA also comprises user frame generating circuits which belong to different ports respectively, length information of data frames to be generated is read from the on-chip multi-user pseudo-random sequence management circuit to generate required test frames, and one user frame generating circuit can simulate a plurality of user service flows simultaneously.
Further, the test software generates test data packet length sequences for different service flows and writes the test data packet length sequences into the DDR as follows:
establishing a test data packet length sequence for each service flow in the DDR, wherein the specific length value distribution is obtained by test software according to user configuration, different service flows have mutually independent test packet length distribution, and the longer the queue length is, the longer the period of the test length sequence is;
and managing queues in the FPGA, namely establishing queues in the DDR according to the configuration of test software, wherein the number of the queues in the DDR is the same as the number of test service flows, and the length of each queue is related to the specific test configuration.
A working method of a multi-user high-speed pseudo-random sequence generator circuit comprises the following steps:
step 1, after each user generates a corresponding random length sequence, distributing continuous storage space for each sequence in the DDR, and writing the random sequence into the DDR to form a storage queue;
step 2, writing the head and tail addresses stored in each queue into a head and tail pointer storage area maintained by a DDR multi-user pseudo-random sequence management circuit in the FPGA, wherein the read pointer of each queue is the same as the head pointer at the beginning; the CPU distributes buffer areas in the FPGA to form a local random number queue of each user;
step 3, the CPU writes the head and tail pointer and the read-write pointer of each local random number queue into a head and tail pointer and read-write pointer storage area maintained by the on-chip multi-user pseudo random sequence management circuit; in the initial state, the read-write pointer of each queue is the same as the head pointer of the queue;
step 4, when the user circuit needs to generate a test frame, the user frame generating circuit sends a request to the on-chip multi-user pseudo-random sequence management circuit, and the on-chip multi-user pseudo-random sequence management circuit reads out a corresponding head pointer and a corresponding tail pointer and a corresponding read-write pointer according to the user number:
if the current read-write pointers are different, the on-chip multi-user pseudo-random sequence management circuit sends the random number in the storage space pointed by the current read pointer to the current user, then adds 1 to the read pointer, and ends the operation;
if the current read pointer is the same as the tail pointer, jumping to a head pointer; meanwhile, the on-chip multi-user pseudo random sequence management circuit checks the number of the current remaining random numbers: if the number of the data is lower than the request threshold, sending a read-in request to a DDR multi-user pseudo-random sequence management circuit, and then entering the step 5; otherwise, ending the operation;
step 5, after the DDR multi-user pseudo-random sequence management circuit receives the request, reading a head pointer, a tail pointer and a read pointer in a corresponding DDR queue according to the user number, sequentially reading a data block in a burst mode, then sending the request to the on-chip multi-user pseudo-random sequence management circuit, and writing the data into a local buffer area; and then the DDR multi-user pseudo-random sequence management circuit modifies the read pointer, and the operation is finished after the current queue state is stored.
Compared with the prior art, the invention has the following remarkable advantages: (1) the pseudo-random sequence is stored by using the off-chip DDR storage area, and the length of the pseudo-random sequence is large, so that the requirement on randomness can be met; (2) the double-queue circuit structure fully utilizes the characteristics of large capacity and long storable sequence period of the DDR memory, can adapt to the characteristic of DDR burst operation and overcome the problem of large DDR read operation delay; (3) the high-speed buffer area in the chip can be read and written quickly, has strong real-time performance, can meet the requirements of multiple users, and simultaneously provides a pseudo-random length sequence for a large number of users at high speed; (4) DDR is low in price, and hardware cost is reduced.
Drawings
FIG. 1 is a schematic diagram of an applied network structure of a multi-user high-speed pseudo-random sequence generator circuit according to the present invention.
Fig. 2 is a schematic structural diagram of a pseudo-random sequence required by a user in the embodiment of the present invention.
Fig. 3 is a schematic diagram of a queue structure according to an embodiment of the present invention.
Fig. 4 is a schematic structural diagram of a multi-user high-speed pseudo-random sequence generator circuit according to an embodiment of the present invention.
Detailed Description
The invention is described in further detail below with reference to the figures and the embodiments.
The main implementation carrier of the multi-user high-speed pseudo-random sequence generator circuit is a programmable device such as an FPGA and a common peripheral device DDR memory matched with the FPGA. The circuit function described by the invention can be realized by using a hardware description language and adopting an FPGA design flow. In conjunction with fig. 1, the circuit of the present invention needs to be used with other test circuits. When the tester simulates a large number of service flows with different characteristics to test the network to be tested at the same time, the multi-user high-speed pseudo-random sequence generator circuit can generate the length sequences required by test data packets for different users in a full hardware mode at high speed in real time under the conditions of less consumption of FPGA hardware resources and more convenient use.
The invention discloses a multi-user high-speed pseudo-random sequence generator circuit, which comprises a DDR memory and an FPGA, wherein:
the DDR memory is used for storing respective random number sequences for users in a queue mode in advance; a user carries out test configuration through a configuration interface of a network tester, test software generates test data packet length sequences for different service flows and writes the test data packet length sequences into the DDR, each test service flow corresponds to a queue storing a data packet length value in the DDR, and the length of each queue is a period of distribution of the test sequence length value;
the FPGA is used for managing a random number queue in the DDR memory and circularly reading length values in the queue for different users in sequence; in the FPGA, aiming at each queue in the DDR, establishing a corresponding sub-queue, and storing corresponding queue data from the DDR; the FPGA is provided with a queue management circuit which is used for managing the establishment and reading of each queue in the DDR and managing the establishment and reading of each sub-queue in the FPGA; when the depth of the cache data in the sub-queues is reduced to a set threshold, the queue management circuit sequentially reads the length values of a set number from the queues corresponding to the DDR according to the storage positions read last time, and writes the length values into the corresponding sub-queues.
Furthermore, the queue management circuit in the FPGA comprises a DDR multi-user pseudo-random sequence management circuit and an on-chip multi-user pseudo-random sequence management circuit, the interior of the FPGA also comprises a multi-user local pseudo-random sequence buffer area maintained by the on-chip multi-user pseudo-random sequence management circuit, a head and tail pointer memory and a read-write pointer memory which are corresponding to the multi-queues in the DDR, and a head and tail pointer memory and a read-write pointer memory which are maintained by the DDR multi-user pseudo-random sequence management circuit and correspond to the multi-queues in the DDR;
after receiving the request of the port user frame generating circuit, the on-chip multi-user pseudo-random sequence management circuit reads out a random number according to the number of the user and the corresponding current internal queue read pointer and sends the random number to the user; when the number of random numbers locally buffered by a user is less than a given threshold, a request is sent to a DDR multi-user pseudo-random sequence management circuit, and the request is to read data from the DDR in a burst mode according to a sequence;
after receiving the request, the DDR multi-user pseudo-random sequence management circuit reads out corresponding queue information including a head pointer, a tail pointer and a current read pointer according to the number of the user, reads out a group of data from the DDR in a burst mode from the position of the current read pointer according to the read-out information, sends the data to the on-chip multi-user pseudo-random sequence management circuit, and sequentially writes the data into a local pseudo-random sequence buffer area according to a write pointer of a local queue of the user.
Furthermore, the FPGA also comprises user frame generating circuits which belong to different ports respectively, length information of data frames to be generated is read from the on-chip multi-user pseudo-random sequence management circuit to generate required test frames, and one user frame generating circuit can simulate a plurality of user service flows simultaneously.
Further, the test software generates test data packet length sequences for different service flows and writes the test data packet length sequences into the DDR as follows:
establishing a test data packet length sequence for each service flow in the DDR, wherein the specific length value distribution is obtained by test software according to user configuration, different service flows have mutually independent test packet length distribution, and the longer the queue length is, the longer the period of the test length sequence is;
and managing queues in the FPGA, namely establishing queues in the DDR according to the configuration of test software, wherein the number of the queues in the DDR is the same as the number of test service flows, and the length of each queue is related to the specific test configuration.
The invention relates to a working method of a multi-user high-speed pseudo-random sequence generator circuit, which comprises the following steps:
step 1, after each user generates a corresponding random length sequence, distributing continuous storage space for each sequence in the DDR, and writing the random sequence into the DDR to form a storage queue;
step 2, writing the head and tail addresses stored in each queue into a head and tail pointer storage area maintained by a DDR multi-user pseudo-random sequence management circuit in the FPGA, wherein the read pointer of each queue is the same as the head pointer at the beginning; the CPU distributes buffer areas in the FPGA to form a local random number queue of each user;
step 3, the CPU writes the head and tail pointer and the read-write pointer of each local random number queue into a head and tail pointer and read-write pointer storage area maintained by the on-chip multi-user pseudo random sequence management circuit; in the initial state, the read-write pointer of each queue is the same as the head pointer of the queue;
step 4, when the user circuit needs to generate a test frame, the user frame generating circuit sends a request to the on-chip multi-user pseudo-random sequence management circuit, and the on-chip multi-user pseudo-random sequence management circuit reads out a corresponding head pointer and a corresponding tail pointer and a corresponding read-write pointer according to the user number:
if the current read-write pointers are different, the on-chip multi-user pseudo-random sequence management circuit sends the random number in the storage space pointed by the current read pointer to the current user, then adds 1 to the read pointer, and ends the operation;
if the current read pointer is the same as the tail pointer, jumping to a head pointer; meanwhile, the on-chip multi-user pseudo random sequence management circuit checks the number of the current remaining random numbers: if the number of the data is lower than the request threshold, sending a read-in request to a DDR multi-user pseudo-random sequence management circuit, and then entering the step 5; otherwise, ending the operation;
step 5, after the DDR multi-user pseudo-random sequence management circuit receives the request, reading a head pointer, a tail pointer and a read pointer in a corresponding DDR queue according to the user number, sequentially reading a data block in a burst mode, then sending the request to the on-chip multi-user pseudo-random sequence management circuit, and writing the data into a local buffer area; and then the DDR multi-user pseudo-random sequence management circuit modifies the read pointer, and the operation is finished after the current queue state is stored.
As a specific example, first, a CPU inside a tester needs to generate required pseudo-random sequences according to different test traffic flows configured by a user. The generated pseudo-random sequence is then written into the storage area of the DDR3 with the depth of 128M, and in this way, a large number of pseudo-random sequences with different distribution characteristics can be generated and stored. Double queue management circuits are designed in the FPGA, and the names of the two queue management circuits are a DDR3 multi-user pseudo-random sequence management circuit and an on-chip multi-user pseudo-random sequence management circuit respectively. After receiving the request of the port user frame generating circuit, the on-chip multi-user pseudo-random sequence management circuit reads out a random number according to the number of the user and the current internal queue reading pointer of the user and delivers the random number to the user. When the number of random numbers locally buffered by one user is less than a given threshold, a request is sent to the DDR3 multi-user pseudo-random sequence management circuit to read in a part of data in a burst mode according to the sequence from the DDR 3. After receiving the request, the DDR3 multi-user pseudo-random sequence management circuit reads out the corresponding queue information including the head pointer, the tail pointer and the current read pointer according to the number of the user, and reads out a group of data from the DDR3 in a burst mode from the position of the current read pointer according to the information and delivers the data to the on-chip multi-user pseudo-random sequence management circuit, and the circuit writes the data in sequence according to the write pointer of the local queue of the user. The DDR3 operates in a burst mode, and is fast but has a certain operation delay, so that it cannot wait until the corresponding internal queue of the FPGA is empty to request to read data, and the read data is requested to be read in advance. The user local queue in the chip has high reading and writing speed, and can simultaneously meet the high-speed reading requirements of a plurality of users. A complete pseudo-random sequence is stored for each user in the DDR3, the length of the sequence is the period of the pseudo-random sequence, pseudo-random sequence segments which are read in sequentially are stored in the FPGA, and the double-queue structure can effectively combine the large storage capacity of the DDR3 with high-speed reading and writing in the chip, so that the requirement of multi-user random test is met.
Examples
With reference to fig. 1, the multi-user high-speed pseudo-random sequence generator circuit applied to the network tester of the invention is composed of a DDR3 memory and an FPGA for realizing the test function.
The DDR3 memory is used for storing respective random number sequences in a queue manner for a large number of users in advance, the users perform test configuration through a configuration interface of the tester, test data packet length sequences are generated for different service flows and written into the DDR3, each test service flow corresponds to one queue storing a data packet length value in the DDR3, and the length of each queue is a period of distribution of the test sequence length value; for a test port, establishing a corresponding queue according to the number of test service flows simulated by a tester;
the FPGA internally comprises a multi-user local pseudo-random sequence buffer area, a head-tail pointer memory, a read-write pointer memory, a head-tail pointer memory and a read pointer memory which correspond to a plurality of queues in the DDR3, and a user frame generating circuit which belongs to different ports; the multi-user local pseudo-random sequence buffer area and the corresponding head-tail pointer memory and read-write pointer memory are maintained by the on-chip multi-user pseudo-random sequence management circuit, the head-tail pointer memory and the read pointer memory corresponding to the multiple queues in the DDR3 are maintained and managed by the DDR3 multi-user pseudo-random sequence management circuit, the user frame generation circuit reads length information of data frames to be generated from the on-chip multi-user pseudo-random sequence management circuit to generate required test frames, and one user frame generation circuit can simulate a plurality of user service flows at the same time.
Specifically, the FPGA internally includes a multi-user local pseudo random sequence buffer maintained by an on-chip multi-user pseudo random sequence management circuit, and a head-to-tail pointer memory and a read-write pointer memory corresponding to the multi-user local pseudo random sequence buffer. The FPGA also comprises a head-tail pointer memory and a read pointer memory which correspond to a plurality of queues in the DDR3, and the head-tail pointer memory and the read pointer memory are maintained and managed by a DDR3 multi-user pseudo-random sequence management circuit. The FPGA also comprises user frame generating circuits belonging to different ports, the user frame generating circuits read length information of data frames to be generated from the on-chip multi-user pseudo-random sequence management circuit and generate required test frames, and one user frame generating circuit can simulate a plurality of user service flows at the same time.
During testing, a CPU inside the tester first needs to generate a required pseudo-random sequence according to different test traffic configured by a user, as shown in fig. 2. The generated pseudo-random sequences have different distribution characteristics and periodicity, and the randomness of the length of the test frame generated by one user depends on the length sequence generated by the CPU for the user; because the typical length of the Ethernet frame is 64-1518 bytes during actual test, the distribution range is small, the length of the test frame of different users is usually a subset of the Ethernet frame, and the distribution range is small, the sequence period required by meeting the randomness requirement does not need to be too long.
FIG. 3 shows the queue structure of the whole circuit, after the CPU generates a corresponding random length sequence for each user, it needs to allocate continuous storage space for each sequence in DDR3, and write the random sequence into DDR3 to form a storage queue; then, the CPU writes the head and tail addresses stored in each queue into a head and tail pointer storage area (SRAM) maintained by a DDR3 multi-user pseudo-random sequence management circuit in the FPGA, and initially, a read pointer of each queue is the same as a head pointer; then, the CPU distributes the buffer area in the FPGA to form a local random number queue of each user; the CPU writes the head and tail pointer and the read-write pointer of each local queue into a head and tail pointer and read-write pointer storage area (SRAM) maintained by the on-chip multi-user pseudo-random sequence management circuit, and in an initial state, the read-write pointer of each queue is the same as the head pointer of the queue. When the system is initialized, in order to avoid that a local queue inside the FPGA is empty, the CPU directly writes a part of data in the DDR3 into the corresponding internal queue and modifies a queue read pointer of the DDR3, so that the phenomenon that the work speed of the system is influenced because a local buffer is empty initially is avoided.
Fig. 4 is a block diagram of the circuit. When a user circuit needs to generate a test frame, a request is sent to an on-chip multi-user pseudo-random sequence management circuit, the on-chip multi-user pseudo-random sequence management circuit reads a head-tail pointer and a read-write pointer of the on-chip multi-user pseudo-random sequence management circuit according to a user number, if the current read-write pointer is different, an available pseudo-random number exists, at the moment, the on-chip multi-user pseudo-random sequence management circuit gives a random number in a storage space pointed by the current read pointer to a current user, then the read pointer is added with 1, if the current read pointer is the same as the tail pointer, the head pointer is jumped to, then the on-chip multi-user pseudo-random sequence management circuit checks the number of the current residual random number, if the number is lower than a request; after receiving the request, the DDR3 multi-user pseudo-random sequence management circuit reads a head pointer, a tail pointer and a read pointer in a corresponding DDR3 queue according to the user number, sequentially reads a data block in a burst mode, then sends a request to the on-chip multi-user pseudo-random sequence management circuit, and writes data into a local buffer area; and then the DDR3 multi-user pseudo-random sequence management circuit modifies the read pointer, saves the current queue state and then ends the operation.
In summary, the off-chip DDR3 realizes the expansion of the circuit memory space, and the FPGA can access the memory space in the DDR3 and can generate the required pseudo-random length value sequence at high speed for up to thousands of users in real time.

Claims (5)

1. A multi-user high-speed pseudo-random sequence generator circuit is characterized by comprising a DDR memory and an FPGA, wherein:
the DDR memory is used for storing respective random number sequences for users in a queue mode in advance; a user carries out test configuration through a configuration interface of a network tester, test software generates test data packet length sequences for different service flows and writes the test data packet length sequences into the DDR, each test service flow corresponds to a queue storing a data packet length value in the DDR, and the length of each queue is a period of distribution of the test sequence length values;
the FPGA is used for managing a random number queue in the DDR memory and circularly reading length values in the queue for different users in sequence; in the FPGA, aiming at each queue in the DDR, establishing a corresponding sub-queue, and storing corresponding queue data from the DDR; the FPGA is provided with a queue management circuit which is used for managing the establishment and reading of each queue in the DDR and managing the establishment and reading of each sub-queue in the FPGA; when the depth of the cache data in the sub-queues is reduced to a set threshold, the queue management circuit sequentially reads the length values of a set number from the queues corresponding to the DDR according to the storage positions read last time, and writes the length values into the corresponding sub-queues.
2. The multi-user high-speed pseudo-random sequence generator circuit according to claim 1, wherein the queue management circuit in the FPGA comprises a DDR multi-user pseudo-random sequence management circuit and an on-chip multi-user pseudo-random sequence management circuit, the FPGA further comprises a multi-user local pseudo-random sequence buffer area maintained by the on-chip multi-user pseudo-random sequence management circuit and a corresponding head and tail pointer memory and a read and write pointer memory, and the DDR multi-user pseudo-random sequence management circuit maintains a head and tail pointer memory and a read pointer memory corresponding to a plurality of queues in the DDR;
after receiving the request of the port user frame generating circuit, the on-chip multi-user pseudo-random sequence management circuit reads out a random number according to the number of the user and the corresponding current internal queue read pointer and sends the random number to the user; when the number of random numbers locally buffered by a user is less than a given threshold, a request is sent to a DDR multi-user pseudo-random sequence management circuit, and the request is to read data from the DDR in a burst mode according to a sequence;
after receiving the request, the DDR multi-user pseudo-random sequence management circuit reads out corresponding queue information including a head pointer, a tail pointer and a current read pointer according to the number of the user, reads out a group of data from the DDR in a burst mode from the position of the current read pointer according to the read-out information, sends the data to the on-chip multi-user pseudo-random sequence management circuit, and sequentially writes the data into a local pseudo-random sequence buffer area according to a write pointer of a local queue of the user.
3. The multi-user high-speed pseudo-random sequence generator circuit according to claim 2, wherein the FPGA further comprises user frame generating circuits respectively belonging to different ports, length information of data frames to be generated is read from the on-chip multi-user pseudo-random sequence management circuit to generate required test frames, and one user frame generating circuit can simultaneously simulate a plurality of user traffic streams.
4. The multi-user high-speed pseudorandom sequence generator circuit of claim 1, 2 or 3, wherein said test software generates test packet length sequences for different traffic streams and writes into the DDR as follows:
establishing a test data packet length sequence for each service flow in the DDR, wherein the specific length value distribution is obtained by test software according to user configuration, different service flows have mutually independent test packet length distribution, and the longer the queue length is, the longer the period of the test length sequence is;
and managing queues in the FPGA, namely establishing queues in the DDR according to the configuration of test software, wherein the number of the queues in the DDR is the same as the number of test service flows, and the length of each queue is related to the specific test configuration.
5. A working method of a multi-user high-speed pseudo-random sequence generator circuit is characterized by comprising the following steps:
step 1, after each user generates a corresponding random length sequence, distributing continuous storage space for each sequence in the DDR, and writing the random sequence into the DDR to form a storage queue;
step 2, writing the head and tail addresses stored in each queue into a head and tail pointer storage area maintained by a DDR multi-user pseudo-random sequence management circuit in the FPGA, wherein the read pointer of each queue is the same as the head pointer at the beginning; the CPU distributes buffer areas in the FPGA to form a local random number queue of each user;
step 3, the CPU writes the head and tail pointer and the read-write pointer of each local random number queue into a head and tail pointer and read-write pointer storage area maintained by the on-chip multi-user pseudo random sequence management circuit; in the initial state, the read-write pointer of each queue is the same as the head pointer of the queue;
step 4, when the user circuit needs to generate a test frame, the user frame generating circuit sends a request to the on-chip multi-user pseudo-random sequence management circuit, and the on-chip multi-user pseudo-random sequence management circuit reads out a corresponding head pointer and a corresponding tail pointer and a corresponding read-write pointer according to the user number:
if the current read-write pointers are different, the on-chip multi-user pseudo-random sequence management circuit sends the random number in the storage space pointed by the current read pointer to the current user, then adds 1 to the read pointer, and ends the operation;
if the current read pointer is the same as the tail pointer, jumping to a head pointer; meanwhile, the on-chip multi-user pseudo random sequence management circuit checks the number of the current remaining random numbers: if the number of the data is lower than the request threshold, sending a read-in request to a DDR multi-user pseudo-random sequence management circuit, and then entering the step 5; otherwise, ending the operation;
step 5, after the DDR multi-user pseudo-random sequence management circuit receives the request, reading a head pointer, a tail pointer and a read pointer in a corresponding DDR queue according to the user number, sequentially reading a data block in a burst mode, then sending the request to the on-chip multi-user pseudo-random sequence management circuit, and writing the data into a local buffer area; and then the DDR multi-user pseudo-random sequence management circuit modifies the read pointer, and the operation is finished after the current queue state is stored.
CN201910149077.8A 2019-02-28 2019-02-28 Multi-user high-speed pseudo-random sequence generator circuit and working method thereof Active CN109933303B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910149077.8A CN109933303B (en) 2019-02-28 2019-02-28 Multi-user high-speed pseudo-random sequence generator circuit and working method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910149077.8A CN109933303B (en) 2019-02-28 2019-02-28 Multi-user high-speed pseudo-random sequence generator circuit and working method thereof

Publications (2)

Publication Number Publication Date
CN109933303A CN109933303A (en) 2019-06-25
CN109933303B true CN109933303B (en) 2020-09-18

Family

ID=66986014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910149077.8A Active CN109933303B (en) 2019-02-28 2019-02-28 Multi-user high-speed pseudo-random sequence generator circuit and working method thereof

Country Status (1)

Country Link
CN (1) CN109933303B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110362516B (en) * 2019-07-23 2020-11-10 南京凯鼎电子科技有限公司 Method and device for improving DDR memory bus utilization rate
CN113760187B (en) * 2021-07-29 2023-08-18 苏州浪潮智能科技有限公司 Method, system, terminal and storage medium for generating deduplication IO thread
WO2023211314A1 (en) * 2022-04-29 2023-11-02 Общество с ограниченной ответственностью "Бора" (ООО "Бора") Pseudorandom sequence generator for a global navigation satellite system signal receiver

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101594299A (en) * 2009-05-20 2009-12-02 清华大学 Based on formation amortization management method in the switching network of chained list
US7782782B1 (en) * 2002-04-12 2010-08-24 Juniper Networks, Inc. Packet spraying for load balancing across multiple packet processors
CN103034559A (en) * 2012-12-18 2013-04-10 无锡众志和达存储技术股份有限公司 PQ (Parity Qualification) inspection module and inspection method based on RDMA (Remote Direct Memory Access) architecture design
CN104363425A (en) * 2014-11-24 2015-02-18 浙江金之路信息科技有限公司 Railway kilometer post recognition system based on video analysis
CN105630619A (en) * 2014-12-30 2016-06-01 航天恒星科技有限公司 Frame sequence processing method and system
CN106330764A (en) * 2016-08-15 2017-01-11 北京蓝海讯通科技股份有限公司 Method for managing data buffering, application for managing data buffering and computing device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128755B2 (en) * 2011-09-19 2015-09-08 Tejas Networks Limited Method and apparatus for scheduling resources in system architecture

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7782782B1 (en) * 2002-04-12 2010-08-24 Juniper Networks, Inc. Packet spraying for load balancing across multiple packet processors
CN101594299A (en) * 2009-05-20 2009-12-02 清华大学 Based on formation amortization management method in the switching network of chained list
CN103034559A (en) * 2012-12-18 2013-04-10 无锡众志和达存储技术股份有限公司 PQ (Parity Qualification) inspection module and inspection method based on RDMA (Remote Direct Memory Access) architecture design
CN104363425A (en) * 2014-11-24 2015-02-18 浙江金之路信息科技有限公司 Railway kilometer post recognition system based on video analysis
CN105630619A (en) * 2014-12-30 2016-06-01 航天恒星科技有限公司 Frame sequence processing method and system
CN106330764A (en) * 2016-08-15 2017-01-11 北京蓝海讯通科技股份有限公司 Method for managing data buffering, application for managing data buffering and computing device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于FPGA和ARM的多用户测试系统;张文婷,张曙光,乔庐峰,陈庆华;《计算机工程》;20111130;第37卷(第22期);212-214 *
基于FPGA的DDR3协议解析逻辑设计;谭海清,陈正国等;《计算机应用》;20170510;第37卷(第5期);1224-1256 *

Also Published As

Publication number Publication date
CN109933303A (en) 2019-06-25

Similar Documents

Publication Publication Date Title
CN109933303B (en) Multi-user high-speed pseudo-random sequence generator circuit and working method thereof
WO2021088466A1 (en) Method for improving message storage efficiency of network chip, device, and storage medium
US8225027B2 (en) Mapping address bits to improve spread of banks
KR101974238B1 (en) System And Method To Reduce Memory Access Latencies Using Selective Replication Across Multiple Memory Ports
US7536488B2 (en) Buffer controller and management method thereof
US9584332B2 (en) Message processing method and device
US10248350B2 (en) Queue management method and apparatus
CN109308280A (en) Data processing method and relevant device
CN103838859B (en) A method of data copy between multi-process under reduction linux
CN106325758B (en) A kind of queue storage space management method and device
US11425057B2 (en) Packet processing
CN110058816B (en) DDR-based high-speed multi-user queue manager and method
US8943240B1 (en) Direct memory access and relative addressing
CN109564502A (en) Treating method and apparatus applied to the access request in storage equipment
CN106951182A (en) A kind of block device caching method and device
CN103605833B (en) A kind of method and device that the performance of memory array system is emulated
CN111181874B (en) Message processing method, device and storage medium
CN108958848A (en) Nearly memory counting system structure
CN105335323A (en) Buffering device and method of data burst
CN105094742B (en) A kind of method and apparatus for writing data
CN111259014B (en) Method and system for storing data of one-way linked list of FPGA (field programmable Gate array)
CN102170401B (en) Method and device of data processing
US9491081B2 (en) Methods, systems, and computer readable media for generating test packets in a network test device using value list caching
CN113590408A (en) Data access method, data access device, simulation device and simulation TCAM chip
US6728861B1 (en) Queuing fibre channel receive frames

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
GR01 Patent grant
GR01 Patent grant