syedshan
Advanced Member level 1
- Joined
- Feb 27, 2012
- Messages
- 463
- Helped
- 27
- Reputation
- 54
- Reaction score
- 26
- Trophy points
- 1,308
- Location
- Jeonju, South Korea
- Activity points
- 5,134
Hello every one,
Please answer my query to resolve the confusion. I will refere to the forumanswers here.
Fist of all same usual complain that ug406 looks make things little confused.
Any ways. I am confused about he BL-8 (or BC-4, but not conerned). My DDR3 is 16-bit DDR3 wide.
Hence its payload width is 16, right. Now according to this forum my burst length should be
8*[PAYLOAD_WIDTH]
(I am using Virtex-6 )
Now according to this message my burst length should be . 16*8 , right i.e. 128 bits, but since datawidth is 4*[PAYLOAD_WIDTH] hence 4*16 = 64 bits, so I have to transfer Two-data W0-W1 (according to write path eye-diagram) page 121 (figure 1-62).
I have following questions as well
1. Hence what increament of address should I do. I have to consecutively write data so for that should it be merely
app_add <= app_add + 1; -- note that orientation is (ROW-Bank-COL)
what if bank-row-col
or what... have no clue at all what so ever!!
2. Why is this burst length actually there at the first place, it seems like waste of (7 bits * datawidth ) per each data transfer. As far as I understand is that copy of the same data is copied to 8 locations. But then I came across this line in datasheet...
after reading this I am thoroughly confused.
3. my data is 16 bit in itself. so should it be (a/c/ to figure 1-62 or 1-63 either) see image below
W0 = d0 & d1 & d2 & d3 ; --where & denote concatenation and dx are the 16 bit datas; Wwidth = PAYLOAD*4 = 64bit
w1 = d4 & d5 & d6 & d7; --ofcourse this is just for here actual implementation is different in proper vhdl style.
Many thanks in advance
Please answer my query to resolve the confusion. I will refere to the forumanswers here.
Fist of all same usual complain that ug406 looks make things little confused.
Any ways. I am confused about he BL-8 (or BC-4, but not conerned). My DDR3 is 16-bit DDR3 wide.
Hence its payload width is 16, right. Now according to this forum my burst length should be
8*[PAYLOAD_WIDTH]
(I am using Virtex-6 )
Now according to this message my burst length should be . 16*8 , right i.e. 128 bits, but since datawidth is 4*[PAYLOAD_WIDTH] hence 4*16 = 64 bits, so I have to transfer Two-data W0-W1 (according to write path eye-diagram) page 121 (figure 1-62).
I have following questions as well
1. Hence what increament of address should I do. I have to consecutively write data so for that should it be merely
app_add <= app_add + 1; -- note that orientation is (ROW-Bank-COL)
what if bank-row-col
or what... have no clue at all what so ever!!
2. Why is this burst length actually there at the first place, it seems like waste of (7 bits * datawidth ) per each data transfer. As far as I understand is that copy of the same data is copied to 8 locations. But then I came across this line in datasheet...
Code:
The burst length determines the maximum number of column locations that can be accessed for a given READ or WRITE command....
When a READ or WRITE command is issued, a block of columns equal to the burst length is effectively selected. All accesses for that burst take place within this block, meaning that the burst will wrap within the block if a boundary is reached. The block is uniquely selected by [I]A[i:2][/I] when the burst length is set to 4 and by [I]A[i:3][/I] when the burst length is set to 8 (where [I]Ai[/I] is the most significant column address bit for a given configuration). The remaining (least significant) address bit(s) is (are) used to select the starting location within the block. The programmed burst length applies to both READ and WRITE bursts.
after reading this I am thoroughly confused.
3. my data is 16 bit in itself. so should it be (a/c/ to figure 1-62 or 1-63 either) see image below
W0 = d0 & d1 & d2 & d3 ; --where & denote concatenation and dx are the 16 bit datas; Wwidth = PAYLOAD*4 = 64bit
w1 = d4 & d5 & d6 & d7; --ofcourse this is just for here actual implementation is different in proper vhdl style.
Many thanks in advance