当前位置:网站首页>Use of DDR3 (axi4) in Xilinx vivado (5) board test
Use of DDR3 (axi4) in Xilinx vivado (5) board test
2022-07-28 20:31:00 【chylinne】
1、 Test target
(1) verification DDR3 Whether the chip is initialized successfully ;
(2) verification DDR3 Whether the function of writing data is normal ;
(3) verification DDR3 Whether the data reading function is normal ;
(4) Verify whether the written and read data are consistent , Verify the correctness of reading and writing .
2、 Test ideas
(1) see DDR3 Whether the output initialization completion signal is pulled high after the board is powered on , And before the read-write operation ready Whether the signal is normally pulled high ;
(2) Check whether the data can be written continuously ;
(3) Check whether the data can be read continuously ;
(4) Randomly select a written data , Find the corresponding read data , Is the comparison consistent .
3、 Expect signal waveform
(1)init_calib_complete: When the machine is powered on, it will be automatically raised for a period of time .
(2)ddr_user_wr_en: The state machine controls the reading and writing operation cycle to pull up .
(3)ddr_user_wr_datalen: Constant value 32'h0080000.
(4)ddr_user_wr_busy: After the state machine pulls up the write enable ,busy The signal is pulled high .
(5)ddr_user_wr_data:32'h1 To 32'hffffffff loop ,8 individual 32 Bit rounding 256 The bit .
(6)ddr_user_wr_last: A round of write operation ends ,last pull up .
(7)ddr_user_wr_valid: When writing valid data ,valid pull up .
(8)ddr_user_wr_ready: During the write operation ,ready pull up .
(9)ddr_user_rd_en: The state machine controls the reading and writing operation cycle to pull up .
(10)ddr_user_rd_datalen: Constant value 32'h0080000.
(11)ddr_user_rd_busy: After the state machine pulls up the read enable ,busy The signal is pulled high .
(12)ddr_user_rd_data: read out 32'h1 To 32'hffffffff loop ,8 individual 32 Bit rounding 256 The bit .
(13)ddr_user_rd_last: A round of read operation ends ,last pull up .
(14)ddr_user_rd_valid: When reading valid data is successful ,valid pull up .
(15)ddr_user_rd_ready: During the read operation ,ready pull up .
4、 Test condition setting
Because the state machine setting is : Write in succession WRITE_NUM Number , After a delay , Read all numbers consecutively , Repeat the next round of writing and reading . therefore , Need to be in VIVADO Set the trigger condition for raising the crawl read-write enable , And configure to display multiple windows (windows), To find and check whether the numbers written and read are the same . The setting of the counting tool is shown in the following figure .

5、 Analysis of test results
The following figure shows the captured 6 The overall waveform of signals read and written alternately by windows . From the signal in the figure (init_calib_complete) so :DDR3 The initialization success signal output by the chip (init_calib_complete) It has been automatically raised after power on , And always .


The following two figures show the waveform of the starting position of a round of writing and reading respectively . Before the write operation starts , It happens to be the end of the last reading operation , As shown in the figure ,ddr_user_rd_last Be pulled high , then ddr_user_rd_busy Pulled down , Indicates the end of the read operation .
The position shown by the yellow line in the previous figure indicates write enable ddr_user_wr_en Be pulled high , Start a new round of write operation . In a new round of write operations , Data is written continuously (ddr_user_wr_data), one by one clk Add 1.
The position shown by the yellow line in the following figure indicates that reading is enabled ddr_user_rd_en Be pulled high , Start a new round of read operation . In a new round of read operations , Data is read out continuously (ddr_user_rd_data), Read out data of waveform display one by one clk increase 1.


We randomly record a written data , Find and compare whether the read data is consistent . The figure below shows , Valid in writing (ddr_user_wr_valid) The first data written when pulling up is 256 Bit 37fc56fa … 37fc56fa.

In the next reading operation , Find the read data , namely 256 Bit 37fc56fa … 37fc56fa, As shown in the figure below .

Record a written data randomly again , Find and compare whether the read data is consistent . The figure below shows , Valid in writing (ddr_user_wr_valid) The first data written when pulling up is 256 Bit 39fc5630 … 39fc5630.

In the next reading operation , Find the read data , namely 256 Bit 39fc5630 … 39fc5630, As shown in the figure below .

Here we are , The verification results of the upper plate can preliminarily explain DDR3 Correctness of chip reading and writing .
边栏推荐
- Torch. NN. Linear() function
- 1、 Relationship among CPU, memory and hard disk
- Extract China map from global.Nc data and calculate regional CO2 value based on acgis
- Raspberry pie uses the command line to configure WiFi connections
- Raspberrypico serial communication
- Solve the cookie splitting problem (DP)
- Teach you how to draw a map with ArcGIS [thermal map]
- Solve the kangaroo crossing problem (DP)
- Linux Installation MySQL (pit filling version)
- Gru neural network
猜你喜欢

WUST-CTF2021-re校赛wp

How can Plato obtain premium income through elephant swap in a bear market?

Solutions to the environment created by Anaconda that cannot be displayed in pycharm

Install keras, tensorflow, and add the virtual environment to the Jupiter notebook
![Maximum exchange [greedy thought & monotonic stack implementation]](/img/ad/8f0914f23648f37e1d1ce69086fd2e.png)
Maximum exchange [greedy thought & monotonic stack implementation]

One article makes you understand what typescript is

Who cares about the safety of the battery when it ignites in a collision? SAIC GM has something to say

4. Const and difine and the problem of initializing arrays with const and define

Dsactf July re

Residual network RESNET source code analysis - pytoch version
随机推荐
7. Functions of C language, function definitions and the order of function calls, how to declare functions, prime examples, formal parameters and arguments, and how to write a function well
Vivado design single cycle CPU
Character device drive structure
Array out of bounds
WUST-CTF2021-re校赛wp
Music says
Storage of C language data in memory (1)
C language - data storage
Multi-Modal Knowledge Graph Construction and Application: A Survey
Solve the problem of adding the least number of parentheses (interval DP)
Vivado designs PC and ram
Tree row expression
读取json配置文件,实现数据驱动测试
Raspberry pie 4B ffmpeg RTMP streaming
File lookup and file permissions
DSACTF7月re
1. C language variable type, global variable, local variable
产品力大幅提升 新款福特探险者发布
Torch. NN. Linear() function
LeetCode_ Bit operation_ Medium_ 260. Number III that appears only once