wiki:Component/Mips

Version 5 (modified by alain, 17 years ago) (diff)

--

SocLib Components General Index

Mips Processor Functional Description

This hardware component is a Mips R3000 processor core. This uses the generic VciXcache? component to interface a VCI advanced interconnect.

The simulation model is actually an instruction set simulator (ISS), organised as a two-stage pipeline:

  • In the first cycle, the instruction fetch, with access to the external instruction cache.
  • In the second cycle, the instruction is executed with a possible access to the external data cache.

The main functional specifications are the following:

  • The floating point instructions are not supported
  • There is no TLB, and no hardware support for virtual memory
  • 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.
  • A data cache line invalidation mechanism is supported : when a lw instruction is executed with the GR[0] destination register, a cache line invalidation request is sent to the data cache.

Mips Processor CABA Implementation

The caba implementation is in

Template parameters

This component has no template parameters.

Constructor parameters

Mips( 
     sc_module_name name,   //  Instance Name
     int  ident);   // processor id

Visible registers

The following internal registers define the processor internal state, and can be inspected:

  • PC : program counter
  • IR : Instruction register
  • GR[i] : General registers ( 0 < i < 32)
  • HI & LO : intermediate registers for multiply / divide instructions
  • IDENT : processor id register = CP0[0]
  • BAR : Bad address register = CP0[8]
  • SR : Status register = CP0[12]
  • CR : Cause register = CP0[13]
  • EPC : Exception PC register = CP0[14]

Ports

  • sc_in<bool> p_resetn : Global system reset
  • sc_in<bool> p_clk : Global system clock
  • sc_in<bool> *p_irq[6] : The six interrupt requests
  • soclib::caba::IcacheProcesssorPort p_icache : Instruction cache interface to the Vci Xcache
  • soclib::caba::DcacheProcesssorPort p_dcache : Data cache interface to the Vci Xcache