Honeywell PML:

Request State

-- Notes Page --


If the current_state of the bus is request, execution of the BRF takes place in CASE statement. The "WHEN idle =>" line is left blank because a token can not be idle in this CASE block. Note that VHDL requires that all values in the range of an object be present in a CASE block (a "WHEN OTHERS =>" statement could have been used here instead to satisfy this requirement).

If the current token in the s vector is a request, the BRF checks this token's priority with that of the token that is the current_driver of the bus. If the new token has a higher priority, the new token becomes the current_driver. Note that the "<" operator has been overloaded to check for priority among tokens.

Finally, if the new token in the vector is an ack or busy token, this token is returned by the BRF and the current_driver and current_state variables are set accordingly.

[Honeywell95]

Copyright Honeywell, Inc. Reprinted with permission.