Changes between Initial Version and Version 1 of Component/ARM7TDMI


Ignore:
Timestamp:
Jun 13, 2008, 12:00:28 PM (16 years ago)
Author:
gracia
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/ARM7TDMI

    v1 v1  
     1[wiki:Component SocLib Components General Index]
     2
     3'''UNDER DEVELOPMENT'''
     4
     5= ARM7TDMI Processor Functional Description =
     6
     7This hardware component is a ARM7TDMI processor core. This is only an ISS, which should be wrapped with an [wiki:Component/IssWrapper IssWrapper].
     8
     9The simulation model is actually an instruction set simulator with an ARM7TDMI pipeline.
     10
     11Currently it only exists in bigendian form.
     12
     13= Component definition =
     14
     15Available in source:trunk/soclib/soclib/lib/arm7tdmi/metadata/arm7tdmi.sd
     16
     17== Usage ==
     18
     19ARM7TDMI has no parameters.
     20{{{
     21Uses('iss_wrapper', iss_t = 'common:arm7tdmi')
     22}}}
     23
     24Before compiling any SoClib simulator using the ARM7TDMI you will need to download the UNISIM ([http:\\www.unisim.org]) library.
     25To do so just download it using svn from [https://unisim.org/svn/devel/unisim_lib] with the following command:
     26  svn import https://unisim.org/svn/devel/unisim_lib
     27You will have to enter a username and password. If you do not have access to the UNISIM development, you can simply use 'guest'/'guest' for username and password respectively.
     28
     29= ARM7TDMI Processor  ISS  Implementation =
     30
     31The implementation is in
     32 * source:trunk/soclib/lib/arm7tdmi/include/iss/arm7tdmi.h
     33 * source:trunk/soclib/lib/arm7tdmi/src/iss/arm7tdmi.cpp
     34
     35The previous files use the ARM7TDMI implementation provided in the UNISIM library.
     36
     37
     38== Template parameters ==
     39 
     40This component has no template parameters.
     41
     42== Constructor parameters ==
     43
     44{{{
     45MipsElIss(
     46     sc_module_name name,   //  Instance Name
     47     int  ident);   // processor id
     48}}}
     49or
     50{{{
     51MipsEbIss( name, ident);
     52}}}
     53
     54== Visible registers ==
     55
     56 The following internal registers define the processor internal state, and can be inspected:
     57 * r_pc : Program counter
     58 * m_ins : Instruction register
     59 * r_gpr[i] : General registers ( 0 < i < 32)
     60 * r_hi & r_lo : Intermediate registers for multiply / divide instructions
     61 * r_cp0[i] : Coprocessor 0 registers (0<=i<32). Implemented values:
     62  *  8: BAR : Bad address register
     63  * 12: SR : Status register
     64  * 13: CR : Cause register
     65  * 14: EPC : Exception PC register
     66  * 15: INFOS : CPU identification number on bits ![9:0]
     67
     68== Interrupts ==
     69
     70Mips defines 6 interrupts lines. ~~Le lowest number has the hiest priority.~~
     71The handling and prioritization of the interrupts is deferred to software.
     72
     73== Ports ==
     74
     75None, it is to the wrapper to provide them.