Changes between Version 23 and Version 24 of Writing Rules/Caba


Ignore:
Timestamp:
Apr 8, 2009, 2:34:53 PM (15 years ago)
Author:
Nicolas Pouillon
Comment:

Fix links

Legend:

Unmodified
Added
Removed
Modified
  • Writing Rules/Caba

    v23 v24  
    4444Any SoCLib hardware components having a VCI interface is called a ''VCI component'', and must include
    4545at least one of the the two following files, defining the VCI advanced ports :
    46  * [source:trunk/soclib/systemc/include/caba/interface/vci_target.h caba/interface/vci_target.h]
    47  * [source:trunk/soclib/systemc/include/caba/interface/vci_initiator.h caba/interface/vci_initiator.h]
    48 
    49 As VCI signals can have variable widths, all VCI components must be defined with templates. The [source:trunk/soclib/systemc/include/caba/interface/vci_param.h caba/interface/vci_param.h] file contains the definition of the VCI parameters object. This object must be passed as a template parameter to the component.
     46 * [source:trunk/soclib/soclib/communication/vci/caba/source/include/vci_target.h]
     47 * [source:trunk/soclib/soclib/communication/vci/caba/source/include/vci_initiator.h]
     48
     49As VCI signals can have variable widths, all VCI components must be defined with templates. The [source:trunk/soclib/soclib/communication/vci/caba/source/include/vci_param.h] file contains the definition of the VCI parameters object. This object must be passed as a template parameter to the component.
    5050
    5151A typical VCI component declaration is:
    5252{{{
    53 #include "caba/util/base_module.h"
    54 #include "caba/interface/vci_target.h"
     53#include "base_module.h"
     54#include "vci_target.h"
    5555
    5656namespace soclib { namespace caba {
     
    6262
    6363};
     64
    6465}}
    6566}}}
    6667
    6768The SystemC top cell defining the system architecture must include the following file, defining the advanced VCI signals :
    68  * [source:trunk/soclib/systemc/include/caba/interface/vci_signals.h caba/interface/vci_signals.h].
     69 * [source:trunk/soclib/soclib/communication/vci/caba/source/include/vci_signals.h].
    6970
    7071A SoCLib hardware component that has no VCI interface should use a dedicated VCI  wrapper in order to be connected to the VCI interconnect.
     
    8687In order to simplify the memory map definition, and the hardware component configuration, a
    8788generic object, called ''mapping table'' has been defined in
    88 [source:trunk/soclib/systemc/include/common/mapping_table.h common/mapping_table.h].
     89[source:trunk/soclib/soclib/lib/mapping_table/include/mapping_table.h mapping_table.h].
    8990This is an associative table of memory segments. Any segment must be allocated to one single
    9091VCI target. The segment object is defined in
    91 [source:trunk/soclib/systemc/include/common/segment.h common/segment.h],
     92[source:trunk/soclib/soclib/lib/segment/include/segment.h segment.h],
    9293and contains five attributes:
    9394{{{
     
    136137
    137138All structural parameters should be be defined as member variables. The values are generally defined by a constructor argument.
    138 Instance name is stored in [source:trunk/soclib/systemc/include/common/base_module.h soclib::common::BaseModule], inherited by
    139 [source:trunk/soclib/systemc/include/caba/util/base_module.h soclib::caba::BaseModule].
     139Instance name is stored in [source:trunk/soclib/soclib/lib/base_module/include/base_module.h soclib::common::BaseModule], inherited by
     140[source:trunk/soclib/soclib/lib/base_module/include/caba/caba_base_module.h soclib::caba::BaseModule].
    140141For example, a VCI target will contain a reference to the the assigned segment, in order to check
    141142possible segmentation errors during execution.
     
    150151a VCI index. Moreover, generic simulation models can have structural parameters. The parameter
    151152values must be defined as constructor arguments, and used by the constructor to configure the hardware ressources. A constructor  argument frequently
    152 used is a reference on the [source:trunk/soclib/systemc/include/common/mapping_table.h soclib::common::MappingTable], that defines the segmentation of the system address space.
     153used is a reference on the [source:trunk/soclib/soclib/lib/mapping_table/include/mapping_table.h soclib::common::MappingTable], that defines the segmentation of the system address space.
    153154A typical VCI component will have the following constructor arguments:
    154155
     
    201202== C1) Component definition ==
    202203
    203 Let's take the [source:trunk/soclib/systemc/include/caba/target/vci_locks.h soclib::caba::VciLocks]
     204Let's take the [source:trunk/soclib/soclib/module/internal_component/vci_locks/caba/source/include/vci_locks.h soclib::caba::VciLocks]
    204205component definition and comment it.
    205206
     
    274275== C2) Component implementation ==
    275276
    276 Here is the [source:trunk/soclib/systemc/src/caba/target/vci_locks.cc soclib::caba::VciLocks] component implementation:
     277Here is the [source:trunk/soclib/soclib/module/internal_component/vci_locks/caba/source/src/vci_locks.cc soclib::caba::VciLocks] component implementation:
    277278
    278279{{{