Changes between Initial Version and Version 1 of Component/Vci Multi Timer


Ignore:
Timestamp:
May 5, 2007, 2:17:20 PM (17 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/Vci Multi Timer

    v1 v1  
     1= Functional Description =
     2
     3This VCI target is a memory mapped peripheral that can
     4control up to 256 software controlled timers.
     5Each timer can optionally generates an independent periodic interrupt.
     6The memory segment allocated to this component must be aligned
     7on 4K bytes boundary.
     8The timer index i is defined by the ADDRESS[12:4] bits.
     9This hardware component cheks for segmentation violation, and can be used
     10as a default target.
     11
     12Each timer contains 4 memory mapped registers:
     13
     14 * '''TIMER_VALUE'''     : ADDRESS[3:0] = 0x0
     15This 32 bits register is unconditionnally incremented at each cycle.
     16A read request returns the current time contained in this register.
     17A write request sets a new value in this register.
     18
     19 * '''TIMER_RUNNING''' : ADDRESS[3:0] = 0x4
     20When the Boolean value contained in this register is true,
     21the corresponding interrupt is enabled. 
     22A write request of a zero gives resets this register.
     23A write request of a non-zero value sets this registe.
     24
     25 * '''TIMER_PERIOD'''    : ADDRESS[3:0] = 0x8
     26This 32 bits register defines the period between two successive interrupts.
     27A write request writes a new value in this register, and the TIMER_RUNNING
     28register is set to false.
     29A read request returns the current value in this register.
     30
     31 * '''TIMER_RESETIRQ''' : ADDRESS[3:0] = 0xC
     32Any write request in this Boolean register will reset the pending IRQ.
     33A read request returns the zero value when there is no pending interrupt,
     34and returns a non zero value if there is a pending interrupt.
     35
     36= CABA  Implementation =
     37
     38The caba implementation is in
     39 * source:trunk/soclib/systemc/include/caba/target/vci_multi_timer.h
     40 * source:trunk/soclib/systemc/src/caba/target/vci_multi_timer.cc
     41
     42== Template parameters: ==
     43 * The VCI parameters
     44
     45== Constructor parameters ==
     46 * Component Name
     47 * Target index
     48 * MappingTable reference
     49 * Number of available timers
     50
     51== Ports ==
     52 * p_vci: the VCI port
     53 * p_resetn: Global system reset
     54 * p_clk: Global system clock