Home    Bloggers    Messages    Webinars    Resources   
Tw  |  Fb  |  In  |  Rss
Paul Clarke

Why PicoBlaze? Building the Core

Paul Clarke
Page 1 / 2   >   >>
Paul Clarke
Paul Clarke
7/5/2012 11:16:05 AM
User Rank
Blogger
Re: Paving the way
@Max: The issues are a little different than that. The KCPSM3 is designed for the Spartan 3. We know that this is a 'older' product and the work being done on the KCPSM6 is for the newer chips.

I think what Ken is making reference to is that the older tools have not been updated and quite possible that they will not. I have found similar issues in the past with things like the 68HC11 micro which had a fab debug tool 'on the chip' but the PC tools were not updated as the chip was 'not for new designs'.

For me to use the newer tools I should be using the newer chips – However....!

There are a lot of people out there using the Spartan 3 chips, this is the situation we are in and my blogs should reflect this. In a way it's good for me to hit these issues and find a way around it. I'm actually looking forward to accessing extra RAM via the I/O and showing people how to do this.

Also a big welcome to Ken – I'll have to be careful what I say now! Ekk! ;o)

50%
50%
Max Maxfield
Max Maxfield
7/5/2012 10:08:07 AM
User Rank
Blogger
Re: Paving the way
@Ken: Hi Ken - it's wonderful to see you here on All Programmable Planet.

How easy woudl it be for Paul to get the latest and greatest design software - would it work with his existing kit? I have to believe that having access to 256 bytes of RAM (rather than 64) will make his life easier.

50%
50%
Ken_Chapman
Ken_Chapman
7/5/2012 5:45:36 AM
User Rank
Expert
Re: ROM and RAM
PicoBlaze uses BRAM to hold the assembled program and really that is then a ROM. As you'll discover, the fact that it can then be reloaded on-the-fly is very useful during code development and a few have really exploited its potential during design operation (e.g. one user described changing the program 100 times per second).

In terms of 'RAM', then internal to PicoBlaze is a small scratch pad memory; 64-bytes in the KCPSM3 that Paul is using and up to 256-bytes in the newer KCPSM6. This is typically adequate for 'control' applications and you certainly don't need to create and add 'RAM' to a PicoBlaze design before you start using it which helps keep things simple. Of course some applications may require more data storage but in that situation more RAM would be connected to PicoBlaze I/O ports and then 'managed'. Actually that is just the very start of a discussion about appropriate architectures for data processing in FPGA's that I won't start here!

100%
0%
Ken_Chapman
Ken_Chapman
7/5/2012 5:28:06 AM
User Rank
Expert
Re: Paving the way
How could I possibly resist making some comments? It's great that Paul is sharing his experiences of learning and using PicoBlaze with everyone; with well over a hundred new users every month he is not alone and I'm sure many will be following his experiences. On that basis I'd like to make a few general points and observations. What I don't want to do is turn area into another PicoBlaze forum so my first comment has to be to refer to that (http://forums.xilinx.com/t5/PicoBlaze/bd-p/PicoBlaze).

As Paul described, there are different versions of PicoBlaze to correspond with different device architectures. I think it is useful to understand that this is purely the result of history and the evolution of both FPGA architectures and PicoBlaze itself. In an ideal world you would obtain the best PicoBlaze experience today by using the KCPSM6 which is optimised for Spartan-6, Virtex-6 and all 7-Series devices including Zynq. KCPSM6 was released nearly two years ago and all the supplied tools work with Win-7. Clearly Paul is using KCPSM3 which was optimised for Spartan-3 devices and first released back in 2003, and more significantly, hasn't been updated since 2005. So really Paul is having a rather dated experience of PicoBlaze and somewhat missing out on the improved architecture and development tools that have been incorporated into KCPSM6. It is additionally unfortunate that operating systems without backwards compatibility hinder what otherwise made KCPSM3 as easy to use in the past. The good thing is that KCPSM3 has been so widely used that there is all sorts of stuff out there (even the Polish book I am holding in my picture!) and a vast number of people are still using the Spartan-3 Starter Kits. Hence you found a different assembler and you would also have discovered something was available via the PicoBlaze forum too.

A question I would like to pose is when does something become obsolete given that an FPGA is All-ways re-Programmable? My first 'PSM' released in 1993 for the XC4000 devices was a ViewDraw schematic using XBLOX on a DOS platform (any oldies out there remember that?). Believe me, I consider that one obsolete! I can't recall the last time anyone asked me about KCPSM and KCPSM-II so I guess they are pretty obsolete too now. KCPSM3 is the tricky one right now; there's nothing wrong with it but the world changes around it. Your thoughts?

100%
0%
Duane Benson
Duane Benson
7/2/2012 6:01:47 PM
User Rank
Blogger
Re: ROM and RAM
Thanks Paul. I don't need it sooner though. It's a case of my ambition outpacing my learning. Hopefully I'll be ready to give it a try in a few weeks.

50%
50%
Max Maxfield
Max Maxfield
7/2/2012 5:04:58 PM
User Rank
Blogger
I am so excited because...
I am so excited, because I know what Paul has planned for his future blogs and it's going to blow everyone away...

The best thing about having a secret is if everyone knows you know.

All I will say is

50%
50%
Paul Clarke
Paul Clarke
7/2/2012 4:42:17 PM
User Rank
Blogger
Re: ROM and RAM
There is no ROM as such, just RAM you only read. The complier for the picoblaze generates a pre-configured RAM thats included in the design as a VHDL file (for example) this is loaded as part of the 'whole' FPGA configuration and the picoblaze uses it as if it was RAM.

As for RAM, this is quite easy to add, ISE has a tool for generating a block of RAM. The you need a wrapper level of VHDL to link the signals of the picoblaze and the RAM togetter.

This week I am doing this and writting it up, I guess MAX will be happy to post it early if you like. Or i can get it to you if you need it sooner?

I'll also be linking in code from now on for people to look at.

50%
50%
Duane Benson
Duane Benson
7/2/2012 2:24:04 PM
User Rank
Blogger
ROM and RAM
Paul - does Xilinx have a ROM and or RAM module pre-coded on their Pico-Blaze lounge? Hopefully, I'm not that far off from being able to try out a soft processor, but I think that day will be much delayed if I have to, at this point in the learning process, create my own RAM and ROM space.

50%
50%
William Murray
William Murray
6/30/2012 11:55:07 AM
User Rank
Blogger
What are some of the things you see people using PicoBlaze for?
What are some of the things you are seeing people use PicoBlaze for?

50%
50%
Jake
Jake
6/28/2012 8:10:36 PM
User Rank
Expert
Re: Paving the way
I've been using the Picoblaze stuff on a Win7 / 64-bit machine for a couple years now.  The assembler has always worked for me.  The JTAG downloader needed an update which Ken Chapman (the Picoblaze developer at Xilinx) sent directly.  I'm not sure if they have released it officially yet.

My previous Win7 install was in Test Mode for several reasons, but this newer version is not and has been working with Picoblaze just fine.  Are you sure there are still issues?

50%
50%
Page 1 / 2   >   >>
More Blogs from Paul Clarke
Now it's time to look at the memory interface that will supply the information required by our PicoBlaze 8-bit soft processor core.
We've now reached the point where we are ready to start debugging a PicoBlaze-based design using the ISim software simulation tool.
For some reason, my simulation never loads my memory with any contents. Instead, it's left containing undefined ('UUUU...') states. Can you help?
The PicoBlaze does not come with the ability to single step, set breakpoints, and monitor registers and memory, so we need a way to get around these limitations.
As opposed to rebuilding the entire design every time we "tweak" the code we wish to run on the PicoBlaze soft microcontroller core, we can simply use a JTAG tool to load our executable code directly into the FPGA's on-chip memory.
flash poll
follow us on twitter
follow Xilinx on twitter
like us on facebook
like Xilinx on facebook
All Programmable Planet     About Us     Contact Us     Help     Register     Twitter     Facebook     RSS