-- File: [Indigo]Dragon>DragonImpl1.sak -- 11-Mar-82 9:32:43 DIRECTORY DragonArbiter1, DragonCache, DragonClock, DragonMap, DragonMemory, DragonProcessor, SakuraRT, SimIO; DragonImpl1: MONITOR IMPORTS DragonArbiter1, c1: DragonCache, c2: DragonCache, DragonClock, DragonMap, DragonMemory, p1: DragonProcessor, p2: DragonProcessor, SakuraRT, SimIO = { SimIO.Start[]; CIRCUIT { COMPONENTS proc1: p1.Processor, proc2: p2.Processor, cache1: c1.Cache, cache2: c2.Cache, arbiter: DragonArbiter1.Arbiter, clock: DragonClock.ClockGenerator, map: DragonMap.MapProcessor, memory: DragonMemory.Memory NODES op1, pcexception1, pcreject1, pcdata1, pcreq1, op2, pcexception2, pcreject2, pcdata2, pcreq2, cmshared, cmd, cmdata, clockA, clockB, arqp1, agrp1, arqp2, agrp2: NODE REPRESENTATION CONNECTIONS clock[ClockA: clockA, ClockB: clockB], proc1[ClockA: clockA, ClockB: clockB, Op: op1, Fault: pcexception1, Reject: pcreject1, InData: pcdata1, RQ: pcreq1, OutData: pcdata1], proc2[ClockA: clockA, ClockB: clockB, Op: op2, Fault: pcexception2, Reject: pcreject2, InData: pcdata2, RQ: pcreq2, OutData: pcdata2], cache1[Op: op1, PDataIn: pcdata1, MDataIn: cmdata, ClockA: clockA, ClockB: clockB, CMDIn: cmd, RQ: pcreq1, SharedIn: cmshared, Grant: agrp1, Exception: pcexception1, Reject: pcreject1, SharedOut: cmshared, CMDOut: cmd, Rq: arqp1, PDataOut: pcdata1, MDataOut: cmdata], cache2[Op: op2, PDataIn: pcdata2, MDataIn: cmdata, ClockA: clockA, ClockB: clockB, CMDIn: cmd, RQ: pcreq2, SharedIn: cmshared, Grant: agrp2, Exception: pcexception2, Reject: pcreject2, SharedOut: cmshared, CMDOut: cmd, Rq: arqp2, PDataOut: pcdata2, MDataOut: cmdata], arbiter[ClockA: clockA, ClockB: clockB, Proc1Rq: arqp1, Proc1Gr: agrp1, Proc2Rq: arqp2, Proc2Gr: agrp2], map[ClockA: clockA, ClockB: clockB, CMDIn: cmd, MDataIn: cmdata, CMDOut: cmd, MDataOut: cmdata], memory[ClockA: clockA, ClockB: clockB, CMDIn: cmd, SharedIn: cmshared, MDataIn: cmdata, MDataOut: cmdata] }; SimIO.Stop[]; }.