// ************************************************************************** // // // // eses eses // // eses eses // // eses eseses esesese eses Embedded Systems Group // // ese ese ese ese ese // // ese eseseses eseseses ese Department of Computer Science // // eses eses ese eses // // eses eseses eseseses eses University of Kaiserslautern // // eses eses // // // // ************************************************************************** // import ComputerArchitecture.AsynchronousCircuits.AsyncArbiter.*; module OriginalArbiter (bool usr1_req, usr2_req, tok1_ack, tok2_ack, src_ack, usr1_ack,usr2_ack,tok1_req,tok2_req,src_req, ?del1,?del2,?del3,?del4,?del5,?del6,?del7,?del8,?del9,?del10) { bool ME_in1,ME_in2,ME_out1,ME_out2, OR3_in1,OR3_in2; C1 : C_Element(del1,src_ack,tok1_ack,usr1_ack); || C2 : C_Element(del2,src_ack,tok2_ack,usr2_ack); || OR1 : OrGate(del3,usr1_ack,usr1_req,ME_in1); || OR2 : OrGate(del4,usr2_ack,usr2_req,ME_in2); || ME : ME_Element(del5,ME_in1,ME_in2,ME_out1,ME_out2); || AND1 : AndGate(del6,ME_out1,usr1_req,tok1_req); || AND2 : AndGate(del7,ME_out2,usr2_req,tok2_req); || C3 : C_Element(del8,tok1_ack,usr1_req,OR3_in1); || C4 : C_Element(del9,tok2_ack,usr2_req,OR3_in2); || OR3 : OrGate(del10,OR3_in1,OR3_in2,src_req); }