= Functional Description = [[Image(VciLocks.png, align=right)]] This VCI target is an hardware locks controller. 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 = CABA Implementations = 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 == Constructor parameters == * Name * Target index * MappingTable reference == Ports == * p_vci: the VCI port * p_resetn: Global system reset * p_clk: Global system clock