-- File: [Indigo]<Sakura>Dragon>DragonImpl.sak -- 4-Mar-82 13:46:21 DIRECTORY DragonArbiter, DragonCache, DragonClock, DragonMap, DragonMemory, DragonProcessor, SakuraRT, SimIO; DragonImpl: MONITOR IMPORTS DragonArbiter, DragonCache, DragonClock, DragonMap, DragonMemory, DragonProcessor, SakuraRT, SimIO = { SimIO.Start[]; CIRCUIT { COMPONENTS proc: DragonProcessor.Processor, cache: DragonCache.Cache, arbiter: DragonArbiter.Arbiter, clock: DragonClock.ClockGenerator, map: DragonMap.MapProcessor, memory: DragonMemory.Memory NODES op, pcdata, pcexception, pcreject, pcreq, cmshared, cmd, cmdata, clockA, clockB, arqp1, agrp1: NODE REPRESENTATION CONNECTIONS clock[ClockA: clockA, ClockB: clockB], proc[ClockA: clockA, ClockB: clockB, Op: op, Fault: pcexception, Reject: pcreject, InData: pcdata, RQ: pcreq, OutData: pcdata], cache[Op: op, PDataIn: pcdata, MDataIn: cmdata, ClockA: clockA, ClockB: clockB, CMDIn: cmd, RQ: pcreq, SharedIn: cmshared, Grant: agrp1, Exception: pcexception, Reject: pcreject, SharedOut: cmshared, CMDOut: cmd, Rq: arqp1, PDataOut: pcdata, MDataOut: cmdata], arbiter[ClockA: clockA, ClockB: clockB, Proc1Rq: arqp1, Proc1Gr: agrp1], 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[]; }.