= Description = [[Image(VciLocks.png, align=right)]] This VCI target is an hardware semaphore helper. VCI-based systems may have some difficulties implementing proper locking of target components as this can be done on buses. As a side-effect, locks and other atomic-access-based software resources can't be used. This component solves this problem implementing the atomic-access-like features on target side. This components has one bit of information stored on each 32-bit addressable word: * When read, its current value is returned, and it is implicitly set to 1 * When written to, it is reset to 0. This way: * A spin lock is a simple loop waiting to read 0 * Releasing the lock is a simple write operation = Implementations = == Caba implementation == The caba implementation is in * source:trunk/soclib/systemc/include/caba/target/vci_locks.h * source:trunk/soclib/systemc/src/caba/target/vci_locks.cc Template parameters: * The VCI parameters Instanciation parameters * Name * Target's index * MappingTable reference Ports * p_vci: the VCI port * p_resetn: Global system reset * p_clk: Global system clock