-- 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[];
}.