Jack Gassett

Papilio Pro User Guide!

Recommended Posts

(Being a little coy here) I have ported my Mandelbrot Fractal generator to a Zedboard from the Papillio Plus and it clocks at 360MHz on the Zynq (vs 240MHz on the Pap+).

The Zynq has 220 DSP blocks, and I was only using 12, so I chained four calculation blocks together and got 1,280,000,000 "loop iterations" per second (I had to run at 320MHz). As each iteration has about 14 or so operations, this get about 18 Giga-ops of mixed integer and 36 bit fixed point.

Here's the C code for the loop iteration

unsigned char mandelbrot(double cx, double cy) {

int i = 0;

double x = cx, y = cy;

while(i < 255 && x*x+y*y < 4.0) {

double t = x;

x = x*x-y*y+cx;

y = 2*t*y+cy;

i++;

}

return i;

}

Once I get the frame buffer moved into the DDR RAM and out of block RAM I am going to try to use 16 stages, or 72 giga-ops.

Oh, I have also booted Xillinux (http://xillybus.com/xillinux) on a Zedboard the other night, and it makes the Raspberry Pi look very shabby - dual 1.3 core + DDR3 rmem slays the Pi's single 0.7GHz core + LPDDR.

However it is not all shiny goodness. Place and route takes an absolute age, even when it is exactly the same design size.

- On big projects P+R has gone from "make a cup of tea" to "make dinner, and eat it, and maybe do the dishes too"..

- The board is too big and requires too much stuff carry around in my bag

- It requires a separate power pack, so you can't work on the sofa

- It would not be a good choice to learn on - apart from LEDs + Switches everything else is way too complex

- It is yet another huge learning curve, even when you are comfortable with FPGAs.

I'll still be hacking on my Papilio (and soon on a Papilio Pro) for a while yet!

Share this post


Link to post
Share on other sites

Before Alvie finished the SDRAM controller for the ZPUino I tried to test the SDRAM of the Papilio Pro using an evaluation version of the EDK and microblaze. What I ran into was that there is no soft SDRAM controller for the Spartan 6... Hopefully that is something that Xilinx will make available soon, then microblaze will work with the Papilio Pro.

Jack.

Share this post


Link to post
Share on other sites

I don't quite follow your comment re soft SDRAM controller. For starters I think you're supposed to use the MCB on Spartan 6 but if you want a soft controller, these have been done before including by ours truly, Mike as per his SDRAM_Memory_Controller not sure why that wouldn't work on a Spartan 6.

Share this post


Link to post
Share on other sites

I've ordered myself one of these...

Slightly concerned though about the comments about the SDRAM. My understanding is that it's not too difficult to use with your own controller, as long as you're not looking to get every last bit of speed out of it, is that correct?

Share this post


Link to post
Share on other sites

Hi, I'm really new at Papilio Pro, though already very excited about it, congratulations for such a nice board!

And, not really a HW board design expert, thus my apologies in advance if this is a silly question...I was just wondering, to what extent, and how difficult it would be to reuse the board design and upgrade it with more powerful Spartan 6 FPGAs devices? And if so, up to which one, say X45, X75 or even beyond???

Thanks!

Share this post


Link to post
Share on other sites

I don't quite follow your comment re soft SDRAM controller. For starters I think you're supposed to use the MCB on Spartan 6 but if you want a soft controller, these have been done before including by ours truly, Mike as per his SDRAM_Memory_Controller not sure why that wouldn't work on a Spartan 6.

The EDK has a system builder that lets you add a memory controller to your automatically generated microblaze system. For the Papilio Plus, with SRAM, I was able to use the system builder to generate a microblaze system that included a SRAM memory controller and a memory test program. I tried to do the same thing for the Papilio Pro but there is no option in the system builder for SDRAM when you use the Spartan 6, there are options for SRAM and DDR SDRAM, but there is no support for SDRAM in the system builder. It's weird because there is definitely a xilinx SDRAM controller... If you change the chip to a Spartan 3E you then have the option to include a SDRAM controller. I did a search through Xilinx's forums and there was confirmation that there is no SDRAM controller for the Spartan 6 in the EDK. We can of course add our own, but that's not as easy as using their system builder... So there is no technical reason that a SDRAM controller doesn't work with Spartan 6 microblaze. For some unfathomable reason there is just not one included in the EDK system builder for the Spartan 6...

Share this post


Link to post
Share on other sites

Hi, I'm really new at Papilio Pro, though already very excited about it, congratulations for such a nice board!

And, not really a HW board design expert, thus my apologies in advance if this is a silly question...I was just wondering, to what extent, and how difficult it would be to reuse the board design and upgrade it with more powerful Spartan 6 FPGAs devices? And if so, up to which one, say X45, X75 or even beyond???

Thanks!

Hello Stefano,

Unfortunately there is no option for a more powerful chip, the Papilio Pro is already using the most powerful chip available in the tqfp footprint... In order to use the next step up beyond the LX9 we would need to use a BGA footprint, and I've been burned on bringing BGA based designs to the market in the past. I might make another attempt this year, but it would be a ZYNQ board.

Jack.

Share this post


Link to post
Share on other sites

Hello Stefano,

Unfortunately there is no option for a more powerful chip, the Papilio Pro is already using the most powerful chip available in the tqfp footprint... In order to use the next step up beyond the LX9 we would need to use a BGA footprint, and I've been burned on bringing BGA based designs to the market in the past. I might make another attempt this year, but it would be a ZYNQ board.

Jack.

Thanks Jack for your prompt answer. I would be definitely interested in your attempt with ZYNQ. The reason is that I've developed a guitar synth on prototyping hardware which I'm very excited about. It actually requires more computational power compared to LX9, but for sure ZYNQ would be more than enough!

It looks like a ZYNQ based Papilio-like board would provide the best match with my system requirements in terms of flexibility, customization/configurability, computational power and hopefully costs.

Just let me know if you're interested in getting more details.

Thanks again!

Stefano

Share this post


Link to post
Share on other sites

Thanks Jack for your prompt answer. I would be definitely interested in your attempt with ZYNQ. The reason is that I've developed a guitar synth on prototyping hardware which I'm very excited about. It actually requires more computational power compared to LX9, but for sure ZYNQ would be more than enough!

It looks like a ZYNQ based Papilio-like board would provide the best match with my system requirements in terms of flexibility, customization/configurability, computational power and hopefully costs.

Just let me know if you're interested in getting more details.

Thanks again!

Stefano

Hi Stefano,

Why you say you require more computational power than Spartan6 LX9 ? What are your exact requirements ? The DSP slices on S6 can go up to 100MHz, so it can be a pretty good DSP option.

Alvie

Share this post


Link to post
Share on other sites

Stefano,

I would definitely love to hear more details about your guitar synth, I'm a guitar player myself so I'd be excited to hear about it.

Jack.

Hi Jack,

that's great! I would actually be more than happy to discuss that with you into deeper details. If you don't mind, feel free to contact me at stefano@bentidigital.com so that we can see how we could do that.

Thanks,

Stefano

Share this post


Link to post
Share on other sites

Hi Stefano,

Why you say you require more computational power than Spartan6 LX9 ? What are your exact requirements ? The DSP slices on S6 can go up to 100MHz, so it can be a pretty good DSP option.

Alvie

Hi Alvie,

fitting my current synth design into the 16 DSP48 slices available from LX9 would require significant architecture elaboration and algorithm complexity reduction, which at the end might result in affecting the sound quality quite significantly.

I roughly estimate it would currently require the resources provided by something in between x45 and x75. That's why I was asking about upgrading the Papilio board with those devices.

Anyhow, I agree with you DSP slices working at 100MHz are a very good DSP option, and indeed I plan to explore carefully what the actual resource optimization opportunities would be. To this respect, any suggestions are more than welcome!

Thanks,

Stefano

Share this post


Link to post
Share on other sites

Hello Stefano,

Unfortunately there is no option for a more powerful chip, the Papilio Pro is already using the most powerful chip available in the tqfp footprint... In order to use the next step up beyond the LX9 we would need to use a BGA footprint, and I've been burned on bringing BGA based designs to the market in the past. I might make another attempt this year, but it would be a ZYNQ board.

Jack.

A zynq board would be really cool! Wow!

Share this post


Link to post
Share on other sites

Hi Alvie,

fitting my current synth design into the 16 DSP48 slices available from LX9 would require significant architecture elaboration and algorithm complexity reduction, which at the end might result in affecting the sound quality quite significantly.

I roughly estimate it would currently require the resources provided by something in between x45 and x75. That's why I was asking about upgrading the Papilio board with those devices.

Anyhow, I agree with you DSP slices working at 100MHz are a very good DSP option, and indeed I plan to explore carefully what the actual resource optimization opportunities would be. To this respect, any suggestions are more than welcome!

Thanks,

Stefano

The trick here is often to pipeline as much as you can. Unless of course your design is very sensitive to jitter, or if you're already using the full bandwidth.

Alvie

Share this post


Link to post
Share on other sites

received my ppro today :)

And I got mine today, with the retrocade, awesome looking stuff, just trying to find my audioplugs now.. I have plenty of these 6.3mm plugs, but of course I cannot find them now .)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now