Changes between Initial Version and Version 1 of Component/NIOSII


Ignore:
Timestamp:
Jan 25, 2008, 2:48:45 PM (16 years ago)
Author:
irisa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/NIOSII

    v1 v1  
     1[wiki:Component SocLib Components General Index]
     2
     3= NiosII Processor Functional Description =
     4
     5This hardware component belongs to the NiosII embedded processor family designed for Altera® field programmable gate array (FPGA) devices. The NiosII processor is a configurable soft-core processor, as opposed to a fixed, off-the-shelf processor. “Configurable” means that features can be added or removed on a system-by-system basis to meet performance goals. Altera® offers three NiosII cores:
     6 * NiosII/f. The NiosII/f “fast” core is designed for fast performance.
     7 * NiosII/s. The NiosII/s “standard” core is designed for small size while maintaining performance.
     8 * NiosII/e. The NiosII/e “economy” core is designed to achieve the  smallest possible core size.
     9This hardware component is only an ISS, which should be wrapped with an [wiki:Component/IssWrapper IssWrapper].
     10
     11The simulation model is actually an instruction set simulator, organized as a three-stage pipeline:
     12    * First stage: instruction fetch, with access to the external instruction cache.
     13    * Second stage: instruction is executed with a possible access to the external data cache.
     14    * Third stage: read memory access is written back to registers
     15
     16This component models the NiosII/f “fast” core. Its main functional specifications are the following:
     17    * Hardware multiplication and division are supported
     18    * Floating-point instructions are supported by the way of custom instructions
     19    * dynamic branch prediction is not supported
     20    * optional tightly-coupled memory for instructions and data is not supported
     21    * Load and store I/O instructions are not supported
     22
     23= Component definition =
     24
     25Available in source:trunk/soclib/desc/soclib/nios2_fast.sd
     26
     27= Usage =
     28
     29NiosII has no parameters.
     30{{{
     31Uses( 'nios2_fast')
     32}}}
     33
     34= NiosII Processor ISS Implementation =
     35
     36The implementation is in
     37    * source:trunk/soclib/systemc/include/common/iss/nios2_fast.h
     38    * source:trunk/soclib/systemc/src/common/iss/nios2_fast.cc
     39    * source:trunk/soclib/systemc/src/common/iss/nios2_fast_itype_instructions.cc
     40    * source:trunk/soclib/systemc/src/common/iss/nios2_fast_rtype_instructions.cc
     41    * source:trunk/soclib/systemc/src/common/iss/nios2_fast_custom_instructions.cc
     42
     43== Template parameters ==
     44
     45This component has no template parameters.
     46
     47== Constructor parameters ==
     48{{{
     49Nios2fIss(
     50     sc_module_name name,   //  Instance Name
     51     int  ident);           // processor id
     52}}}
     53
     54== Visible registers ==
     55
     56
     57    The following internal registers define the processor internal state, and can be inspected:
     58    * r_pc : Program counter
     59    * m_instruction : Instruction register
     60    * r_gpr[i] : General-purpose registers ( 0 < i < 32)
     61    * r_ctr[i] : Control registers ( 0 < i < 6)
     62    *
     63    *
     64== Interrupts ==
     65
     66NiosII defines 32 interrupt-request inputs. The lowest number has the highest priority.
     67
     68== Ports ==
     69
     70None, it is to the wrapper to provide them.