| 1 | [wiki:Component SocLib Components General Index] |
| 2 | |
| 3 | = Mips Processor Functional Description = |
| 4 | |
| 5 | This hardware component is a Mips R3000 processor core. |
| 6 | This uses the generic [wiki:Components/VciXcache VciXcache] component to interface |
| 7 | a VCI advanced interconnect. |
| 8 | |
| 9 | The simulation model is actually an instruction set simulator (ISS), |
| 10 | organised as a two-stage pipeline: |
| 11 | * The first pipeline stage is the instruction fetch, with access to the external instruction cache |
| 12 | * The second pipeline stage is the instruction execution; with a possible access to the external data cache |
| 13 | * The "delayed branch" is accurately modelized, but not the "delayed load". |
| 14 | The main functional specifications are the following: |
| 15 | * The floating point instructions are not supported |
| 16 | * There is no TLB : no hardware support for virtual memory |
| 17 | * All Mips R3000 exceptions are handled, including the memory addressing X_IBE and X_DBE, but the write errors are not precise, due to the posted write buffer in the cache controller. |
| 18 | * Five "system registers" are defined : |
| 19 | |
| 20 | |
| 21 | = Mips Processor CABA Implementation = |
| 22 | |
| 23 | The caba implementation is in |
| 24 | * source:trunk/soclib/systemc/include/caba/interconnect/pibus_bcu.h |
| 25 | * source:trunk/soclib/systemc/src/caba/interconnect/pibus_bcu.cc |
| 26 | |
| 27 | == Template parameters == |
| 28 | |
| 29 | template<typename vci_param> |
| 30 | |
| 31 | == Constructor parameters == |
| 32 | {{{ |
| 33 | PiBcu( |
| 34 | sc_module_name name, // Instance Name |
| 35 | const soclib::common::MappingTable &mp, // Mapping Table |
| 36 | size_t nb_master, // Number of initiators |
| 37 | size_t nb-slave, // Number of targets |
| 38 | uint32_t time_out); // Time-out (number of cycles) |
| 39 | }}} |
| 40 | |
| 41 | == Ports == |
| 42 | |
| 43 | * sc_in<bool> '''p_resetn''' : Global system reset |
| 44 | * sc_in<bool> '''p_clk''' : Global system clock |
| 45 | * sc_in<bool> '''*p_irq[6]''' : The six interrupt requests |
| 46 | * soclib::caba::!IcacheProcesssorPort '''p_icache''' : Instruction cache interface to the VciXcache |
| 47 | * soclib::caba::!DcacheProcesssorPort '''p_dcache''' : Data cache interface to the VciXcache |