Service Libraries - LEAP-FPGA/leap-documentation GitHub Wiki
There are two types of LEAP services: those which interface to a device, and those which provide a centralized service, multiplexing that service among many clients. Sometimes, for example in the case of memory, both styles are used in the same service may use both paradigms, that is multiplexing a physical device among many clients. This section outlines the construction of a multiplexed service. Virtual devices are discussed here.
LEAP services typically take on a client-server architecture, in which a single, central server handles the requests of many clients. This arrangement is shown below.
To support this distributed client-server model, most services use LEAP Chains. Services that require knowledge of which client is making a request, for example, so that a response may be sent to that client, use addressable rings.
Most LEAP service controllers are instantiated automatically by LEAP, in