|
For more information on the directives and opcodes follow the
links at the bottom. Use EQU for just replacing a
symbol for a value. You may replace register names like s3 (or s03)
by say: Count0 with EQU like this:
Count0 EQU s0
Apart from the differences in the directives and opcodes, the
syntax is somewhat enhanced. The literal values are interpreted in
decimal unless they are preceeded by a $ sign. Expressions
are allowed with a syntax similar to C, however, operator precedence
needs to be explicitly specified by brackets:
( ( first
+ 1 ) * 2 ) & $10.
Register names, labels (followed by a colon when defined) and DSed or EQUed values are different items and
can be mixed in expressions when the result is obvious. Things like
sF + 1 make no sense. Assembly errors are reported in the
simulator as the assembly process happens during switching to debug
mode. Lines with errors are
highlighted and a '?hint' is given. If any errors exist, the
simulator will be blocked.
This tool can be used for the PicoBlaze™-I, PicoBlaze™-II, Picoblaze™-3 and
CoolBlaze™
cores as selected by a menu or tool button. Slight differences exist
in the syntax for each, like using s00 for register 0 instead of s0.
As a side effect of assembly a .coe file can be created
with the specification of the required filename with a COE
directive. In the PicoBlaze-I version a width value is required.
This value indicates the width of the A-port of the BlockRam used;
the PicoBlaze™ -II
and -3 modes don't allow a width value, it is always 18. This option
is for compatability with the previous version were 8 was the only
possible width.
Similarly a .vhd file can be generated with a
VHDL directive. Here a source template must be given of
which several are suppled in the download; these are slightly
modified versions of Ken Chapman's and Nial Stewart's. Depending on
this template the structure of the program ROM or ROMs is specified.
See the source of the different templates. Also
see http://www.nialstewart.co.uk/
for details on using PicoBlaze™ -II in
Spartan-II(e)™.
In the simulator, interrupts can be handled as expected, however,
to be able to debug transient interrupts, as you usually have with
acknowledging them, an Edge option is a vailable. This flag will
interrupt only once and will automatically be cleared.
Tip: Try the Format button.
™ PicoBlaze
and Spartan are a trademarks of Xilinx Inc. |