Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Super Contributor
eschabor
Posts: 100
Registered: ‎08-12-2011
0

Re: Spartan6 -> MCB Performance

Bob, your analysis is good - but I think there's two of us providing answers and no further questions from Pieter!

Stephen

 

Expert Contributor
eteam00
Posts: 7,505
Registered: ‎07-21-2009
0

Re: Spartan6 -> MCB Performance


eschabor wrote:

Bob, your analysis is good - but I think there's two of us providing answers and no further questions from Pieter!

Stephen

 


Stephen, I concur with your analysis of the analyses!

 

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
Contributor
rifo
Posts: 55
Registered: ‎09-20-2010
0

Re: Spartan6 -> MCB Performance


eschabor wrote:

"16bit DDR2 and the MCB interface is 32bit. So should be perfect I think."

No, DDR2 has a minimum burst of 4, so the minimum efficient transfer size is 64 bits.  The use of 32 bit transfers immediately throws away 50% of your bandwidth.



Hello,

 

Shouldn't the internal mechanics of the MCB handle this so that bandwidth is not wasted? For example if I completely  fill a MCB port Fifo (configured in 32 bit) do I automatically lose half of my bandwidth?

 

thanks a lot for your help

rifo



Expert Contributor
eteam00
Posts: 7,505
Registered: ‎07-21-2009
0

Re: Spartan6 -> MCB Performance

[ Edited ]

@rifo

 

Shouldn't the internal mechanics of the MCB handle this so that bandwidth is not wasted? For example if I completely  fill a MCB port Fifo (configured in 32 bit) do I automatically lose half of my bandwidth?

 

For example, Stephen (eschabor) is saying:  'For maximum efficiency, request data transactions which are a multiple of the fundamental DRAM transaction (e.g. 64 bits in the case or 16-bit DDR2 with DRAM burst length of 4).'

 

Even if you fill a MCB port FIFO, you must tell the MCB how much of the FIFO data to use for each memory transaction from one of the MCB user (fabric) ports.  You explicitly convey this information by way of the pX_cmd_bl[5:0] user-interface MCB signal port.  See UG388, seach for 'cmd_bl' for additional information.

 

Make sure you understand the difference between user-port 'burst length' (how many FIFO words are to be read or written) and DRAM device-level 'burst length'.  These are two very different attributes which sound deceptively alike.  One is described in UG388 as a part of the MCB interface.  The other is described in the DRAM device datasheet.

 

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
Contributor
rifo
Posts: 55
Registered: ‎09-20-2010
0

Re: Spartan6 -> MCB Performance

thanks a lot Bob,

 

I misunderstood what Stephen was sayin but it's clear now.

Newbie
rabidfruitbat
Posts: 1
Registered: ‎05-15-2012
0

Re: Spartan6 -> MCB Performance

Hi all,

 

I am testing a Spartan6 design using x16 DDR2 SDRAM and it appears to have very poor performance.

 

I'm issuing write command  bursts 16 x 32bit data word and read commands of 16 x 32bit words. My data access pattern is sequential.  i.e. I'm using the SDRAM as a really deep FIFO, so reads and writes are to different pages.  

 

The sustained data throughput is 43% of peak data throughput. i.e. for 400MHz DDR I can not read and write data at 100MHz x 32 bits.

 

This seems to be very poor performance.

 

Does anyone have any idea if this is typical performance for the MCB? Do I have to change my interface to use the 64bit or 128bit interfaces to the MCB?  Is there any other way to improve this?

 

 

Best Regards, Thomas D.

--


Regular Contributor
jliu83
Posts: 68
Registered: ‎06-26-2008
0

Re: Spartan6 -> MCB Performance

I'd like to see if anyone out there has some measurable data on this.

 

For example, on a single DDR2 16bit width chip, using a 32 bit write MCB port.  If I fill the fifo of the MCB write port and send a command to the MCB with a user burst length of 64 (the max length), then I automatically lose half of my bandwidth on that transaction based solely on my configured port width?  It sounds like a terrible design if this is true!  I would think that since the transaction is on a continuous stretch of address, the MCB controller would optimize it so that the DRAM bursts would not waste bandwidth.

 

Did I miss understood something, or was the optimization implied in the response?

 

I have having trouble achieving write bandwith (read is perfectly fine).  Has anyone seen an improvement in performance by increasing the port clocks (ie. p0_wr_clk, p1_rd_clk ... etc).

 

Thanks,

-J

Expert Contributor
eteam00
Posts: 7,505
Registered: ‎07-21-2009
0

Re: Spartan6 -> MCB Performance

J,

 

Please start a new thread for this discussion subject.

 

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
Regular Contributor
jliu83
Posts: 68
Registered: ‎06-26-2008
0

Re: Spartan6 -> MCB Performance