Il circuito che vogliamo realizzare puo' essere schematizzato come segue:


I tre device collegati al bus invieranno un segnale di request all'arbitro per chiedere di poter utilizzare il bus e riceveranno dall'arbitro un segnale di grant se autorizzati all'uso del bus. L'arbitro che vogliamo realizzare sara' descritto dal seguente automa a stati finiti: Indicando con REQ1, REQ2, e REQ3 i segnali di richiesta rispettivamente dei devices 1 2 e 3 come input possiamo considerare le stringhe nella forma: REQ3 REQ2 REQ1 e adottando la convenzione: REQ=0 il device non fa richiesta di usare il bus REQ=1 il device fa richiesta di usare il bus gli input saranno: X = {000, 001, 010, 011, 100, 101, 110, 111} L'INPUT 000 significa dunque che nessun device ha fatto richiesta di usare il bus, 011 che il device 2 ed il device 1 hanno fatto richiesta di usare entrambe il bus. Nel caso di richiesta contemporanea dell'uso del bus di piu' devices adotteremo la convenzione di autorizzare il device rappresentato nell'input dal bit piu' significativo (bit piu' a sinistra nella stringa). Quindi nel caso dell'input 011 l'arbitro autorizzera' il device 2 ad usare il bus. Per le uscite, adottando poi la convenzione che l'arbitro invia 0 al GRANT di un device se non lo autorizza all'uso del bus ed 1 se lo autorizza e considerando le stringhe di output nella forma: GRANT3 GRANT2 GRANT1 le uscite saranno: Z = {000, 001, 010, 100} Infine come stati interni abbiamo: S = {A, B, C, D} essendo: A = Nessuno usa il bus B = DEV1 usa il bus C = DEV2 usa il bus D = DEV3 usa il bus Naturalmente stiamo supponendo anche che un DEVICE riporta a 0 il segnale di REQ dopo aver terminato di utilizzare il bus in modo da segnalare all'arbitro che ha terminato. Il diagramma di flusso sara' il seguente:


da cui si ottiene la seguente tabella delle transazioni:


L'automa puo' essere sempificando ottenendo l'automa minimo: