| | 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 |