© Copyright 2010-2014 Xilinx
.
Page 5
Welcome to KCPSM6
Welcome to the KCPSM6; the PicoBlaze optimised for use in Spartan-6, Virtex-6 and 7-Series devices. PicoBlaze has been very popular for more than 10
years and it continues to be used and adopted by thousands of engineers around the world. So either you are new to PicoBlaze or one of its existing users....
Why use KCPSM6?
KCPSM6 is a soft macro which defines an 8-bit micro controller which can be
included one or more times in any Spartan-6, Virtex-6, 7-Series, Zynq or
UltraScale design. Probably its greatest strengths are that it is 100%
embedded and requires only 26 logic Slices and a Block Memory which
equates to 4.3% of the smallest XC6SLX4 and just 0.11% of the
XC6SLX150T. This combination means that you can decide when and where
to insert KCPSM6 in your design as it develops rather than requiring any pre-
planning. Insertion only requires the most fundamental HDL coding and
design techniques making it a simple task for any competent hardware
engineer and nothing too challenging for a novice. PicoBlaze has been used
in many student projects so just follow the steps and examples and you will
have it working before lunch time.
But why embed a small processor in an FPGA design?
In simple terms, hardware is parallel and processors are sequential. So
converting a small amount of hardware into a processor is often a more
efficient way to implement sequential functions such as state machines
(especially complex ones) or to time-share hardware resources when there
are several slower tasks to be performed. It is also more natural to describe
sequential tasks in software whereas HDL is best at describing parallel
hardware. Don’t worry about this theory; it will just make sense when you
start using KCPSM6 and see for yourself what it can do well (and can’t do).
Please carefully follow pages 6 to 30. It sounds a lot but it is a step by step
guide and it shouldn’t take long to get your first KCPSM6 running. The rest
of this document is for reference including examples, suggestions and more
advanced techniques which you can look at more later. Most of all, have fun!
I’m new to PicoBlaze.... I’ve used PicoBlaze before....
What is KCPSM6?
The most important thing is that KCPSM6 will look very familiar to you.
There are some minor changes to the hardware ports associated with
enhancements but it is a drop in replacement for KCPSM3 in most
respects. Likewise, the instruction set has expanded but you should be
able to assemble KCPSM3 code to begin with and have it running in your
first KCPSM6 design before looking at what you can now do better.
KCPSM6 is bigger smaller and better!
The architectural differences between Generation-3 and Generation-6 and
later devices does not make comparison of size obvious, but at only 26
Slices, KCPSM6 really is 25% smaller in real terms. This equates to 4.3%
of the smallest XC6SLX4 and just 0.11% of the XC6SLX150T so how
many will you be putting in your next design? By the way, the current
record stands at 3,602 in an XC7V2000T and it wasn’t full .
KCPSM6 has quite a few additional features for you to discover but the
principle enhancements are support for programs up to 4K instructions,
an additional bank of 16 registers, dynamic JUMP and CALL, user
defined interrupt vector and constant-optimised output ports.
A special section called ‘Notes for KCPSM3 Users’ is provided starting on
page 102 and you are advised to start with pages 102 and 103 which will
refer you to the relevant sections in the main document. Alternatively,
have a quick look through the following pages (6 to 29) where you should
quickly notice the differences amongst all that seems to be familiar! Of
course you could just dive in and start playing