Semaphores
Semaphore is a SystemVerilog built-in class, used for access control to shared resources, & for basic synchronization.
A semaphore is like a bucket with the number of keys. processes using semaphores must first procure a key
from the bucket before they can continue to execute, All other processes must wait until enough keys are returned
to the bucket.
Example: Three brothers in a house with a single bike.
Semaphore is a built-in class that provides the following methods:
new(); Create a semaphore with a specified number of keys as argument (default: 1 key)
get(); Obtain one or more keys from the bucket
put(); Return one or more keys into the bucket
try_get(); Try to obtain one or more keys without blocking
1.Example -Semaphores
https://edaplayground.com/x/5prd
1.Example -Semaphores
https://edaplayground.com/x/5prd
1.Example -Semaphores https://edaplayground.com/x/5prd
2.Example – Semaphores with Tasks
https://edaplayground.com/x/26mv
2.Example – Semaphores with Tasks
https://edaplayground.com/x/26mv