Changes between Initial Version and Version 1 of Component/ST231


Ignore:
Timestamp:
Feb 25, 2010, 10:30:05 AM (14 years ago)
Author:
sylvain.girbal@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/ST231

    v1 v1  
     1[wiki:Component SocLib Components General Index]
     2
     3!!!! UNDER CONSTRUCTION !!!!
     4
     5= ST231 Processor Functional Description =
     6
     7This hardware component is a MicroBlaze processor core as described in [www.xilinx.com/ise/embedded/mb_ref_guide.pdf the Xilinx documentation].
     8Note that the 9.2 version of ISE contains a pretty major evolution of the MicroBlaze that integrates a MMU, but this is not the version available within SoCLib (at least yet!).
     9This component is an ISS, which should be wrapped with an [wiki:Component/IssWrapper IssWrapper] for integration into a complete platform.
     10
     11This instruction set simulator acts as a slave to the IssWrapper and is organised identically to the
     12other Isses available within the library.
     13Currently, the execution timings are pretty rough, and are typically one cycle per instruction.
     14
     15The support for symetric and asymetric multiprocessing is hardwired using the `fsl` feature of the MicroBlaze.
     16The processor number is given at instanciation time, and accessible through `get` on `fsl0`.
     17Using other `fsl`s will lead to an abort.
     18
     19= Component definition =
     20
     21Available in source:trunk/soclib/soclib/lib/metadata/microblaze.sd
     22
     23== Usage ==
     24
     25MicroBlaze has no parameters.
     26{{{
     27Uses( 'microblaze')
     28}}}
     29
     30= Microblaze Processor ISS  Implementation =
     31
     32The implementation is in
     33 * source:trunk/soclib/soclib/lib/src/iss/microblaze.h
     34   This defines the resources associated to the MicroBlaze along with a few
     35   minimal helper functions (or methods, as they call them)
     36 * source:trunk/soclib/soclib/lib/src/iss/microblaze.cpp
     37   This is a large switch (as opposed to calling insn execution through
     38   pointers to functions) and a few macros, as it is overall not worse to
     39   traverse a switch than to move from tag to tag, seen the context necessary
     40   to the execution of one instruction (at least in the MicroBlaze case).
     41
     42It is possible to compile a version of the MicroBlaze that issues the instruction
     43address along with the instruction being executed by defining `MBDEBUG` at `1` line
     4435 of source:trunk/soclib/soclib/lib/src/iss/microblaze.cpp
     45This is quite useful to check that the processor is really interpreting correctly a
     46sequence of instructions.
     47The MicroBlaze model is now able to connect to the GDB stub, so it is possible to
     48use GDB for debugging software running on it.
     49
     50== Template parameters ==
     51 
     52This component has no template parameters.
     53
     54== Constructor parameters ==
     55
     56{{{
     57MicroblazeIss(
     58     sc_module_name name,   //  Instance Name
     59     int  ident);   // processor id
     60}}}
     61
     62== Visible registers ==
     63
     64I'm not sure to understand what this means, ...
     65
     66== Interrupts ==
     67
     68There is a single interrupt line on the MicroBlaze, so all the handling is
     69software based.
     70
     71== Ports ==
     72
     73None, They are provided by the `IssWrapper`.