annotate core/sim/bdir_dut/Processor.bi @ 51:9fe5ed4af92d pygar svn.52

[svn r52] tested having multiple cores
author punk
date Wed, 05 May 2010 17:01:04 -0400
parents 91a1f76ddd62
children
rev   line source
punk@1 1 signature Processor where {
punk@1 2 import ¶Assert®¶;
punk@1 3
punk@1 4 import ¶ConfigReg®¶;
punk@1 5
punk@1 6 import ¶Counter®¶;
punk@1 7
punk@1 8 import ¶FIFOF_®¶;
punk@1 9
punk@1 10 import ¶FIFOF®¶;
punk@1 11
punk@1 12 import ¶FIFO®¶;
punk@1 13
punk@1 14 import ¶Inout®¶;
punk@1 15
punk@1 16 import ¶List®¶;
punk@1 17
punk@1 18 import BFIFO;
punk@1 19
punk@1 20 import ¶Clocks®¶;
punk@1 21
punk@1 22 import ¶ListN®¶;
punk@1 23
punk@1 24 import ¶Monad®¶;
punk@1 25
punk@1 26 import ¶PrimArray®¶;
punk@1 27
punk@1 28 import ¶RWire®¶;
punk@1 29
punk@1 30 import ¶RegFile®¶;
punk@1 31
punk@1 32 import SFIFO;
punk@1 33
punk@1 34 import ¶Vector®¶;
punk@1 35
punk@1 36 import ¶Connectable®¶;
punk@1 37
punk@1 38 import ¶GetPut®¶;
punk@1 39
punk@1 40 import ¶ClientServer®¶;
punk@1 41
punk@1 42 import Trace;
punk@1 43
punk@1 44 import MemTypes;
punk@1 45
punk@1 46 import ProcTypes;
punk@1 47
punk@1 48 import BRegFile;
punk@1 49
punk@1 50 import BranchPred;
punk@1 51
punk@1 52 interface (Processor.ProcStats :: *) = {
punk@1 53 Processor.num_cycles :: ¶GetPut®¶.¶Get®¶ ProcTypes.Stat;
punk@1 54 Processor.num_inst :: ¶GetPut®¶.¶Get®¶ ProcTypes.Stat
punk@1 55 };
punk@1 56
punk@1 57 instance Processor ¶Prelude®¶.¶PrimMakeUndefined®¶ Processor.ProcStats;
punk@1 58
punk@1 59 instance Processor ¶Prelude®¶.¶PrimDeepSeqCond®¶ Processor.ProcStats;
punk@1 60
punk@1 61 instance Processor ¶Prelude®¶.¶PrimMakeUninitialized®¶ Processor.ProcStats;
punk@1 62
punk@1 63 interface (Processor.CPUToHost :: *) = {
punk@1 64 Processor.cpuToHost :: ¶Prelude®¶.¶Int®¶ 32 -> ¶Prelude®¶.¶Bit®¶ 32 {-# arg_names = [req] #-}
punk@1 65 };
punk@1 66
punk@1 67 instance Processor ¶Prelude®¶.¶PrimMakeUndefined®¶ Processor.CPUToHost;
punk@1 68
punk@1 69 instance Processor ¶Prelude®¶.¶PrimDeepSeqCond®¶ Processor.CPUToHost;
punk@1 70
punk@1 71 instance Processor ¶Prelude®¶.¶PrimMakeUninitialized®¶ Processor.CPUToHost;
punk@1 72
punk@1 73 interface (Processor.Proc :: *) = {
punk@1 74 Processor.dmem_client :: ¶ClientServer®¶.¶Client®¶ MemTypes.DataReq MemTypes.DataResp;
punk@1 75 Processor.imem_client :: ¶ClientServer®¶.¶Client®¶ MemTypes.InstReq MemTypes.InstResp;
punk@1 76 Processor.statsEn_get :: ¶GetPut®¶.¶Get®¶ ¶Prelude®¶.¶Bool®¶;
punk@1 77 Processor.stats :: Processor.ProcStats;
punk@1 78 Processor.tohost :: Processor.CPUToHost
punk@1 79 };
punk@1 80
punk@1 81 instance Processor ¶Prelude®¶.¶PrimMakeUndefined®¶ Processor.Proc;
punk@1 82
punk@1 83 instance Processor ¶Prelude®¶.¶PrimDeepSeqCond®¶ Processor.Proc;
punk@1 84
punk@1 85 instance Processor ¶Prelude®¶.¶PrimMakeUninitialized®¶ Processor.Proc;
punk@1 86
punk@1 87 data (Processor.Stage :: *) = Processor.PCgen () | Processor.Exec () | Processor.Writeback ();
punk@1 88
punk@1 89 instance Processor ¶Prelude®¶.¶PrimMakeUndefined®¶ Processor.Stage;
punk@1 90
punk@1 91 instance Processor ¶Prelude®¶.¶PrimDeepSeqCond®¶ Processor.Stage;
punk@1 92
punk@1 93 instance Processor ¶Prelude®¶.¶PrimMakeUninitialized®¶ Processor.Stage;
punk@1 94
punk@1 95 instance Processor ¶Prelude®¶.¶Eq®¶ Processor.Stage;
punk@1 96
punk@1 97 instance Processor ¶Prelude®¶.¶Bits®¶ Processor.Stage 2;
punk@1 98
punk@1 99 interface (Processor.BRFile :: *) = {
punk@1 100 Processor.wr :: ProcTypes.Rindx ->
punk@1 101 ¶Prelude®¶.¶Bit®¶ 32 -> ¶Prelude®¶.¶Action®¶ {-# arg_names = [rindx, ¡data¡] #-};
punk@1 102 Processor.rd1 :: ProcTypes.Rindx -> ¶Prelude®¶.¶Bit®¶ 32 {-# arg_names = [rindx] #-};
punk@1 103 Processor.rd2 :: ProcTypes.Rindx -> ¶Prelude®¶.¶Bit®¶ 32 {-# arg_names = [rindx] #-}
punk@1 104 };
punk@1 105
punk@1 106 instance Processor ¶Prelude®¶.¶PrimMakeUndefined®¶ Processor.BRFile;
punk@1 107
punk@1 108 instance Processor ¶Prelude®¶.¶PrimDeepSeqCond®¶ Processor.BRFile;
punk@1 109
punk@1 110 instance Processor ¶Prelude®¶.¶PrimMakeUninitialized®¶ Processor.BRFile;
punk@1 111
punk@1 112 Processor.mkBRFile :: (¶Prelude®¶.¶IsModule®¶ _m__ _c__) => _m__ Processor.BRFile;
punk@1 113
punk@1 114 Processor.slt :: ¶Prelude®¶.¶Bit®¶ 32 -> ¶Prelude®¶.¶Bit®¶ 32 -> ¶Prelude®¶.¶Bit®¶ 32;
punk@1 115
punk@1 116 Processor.sltu :: ¶Prelude®¶.¶Bit®¶ 32 -> ¶Prelude®¶.¶Bit®¶ 32 -> ¶Prelude®¶.¶Bit®¶ 32;
punk@1 117
punk@1 118 Processor.rshft :: ¶Prelude®¶.¶Bit®¶ 32 -> ¶Prelude®¶.¶Bit®¶ 32;
punk@1 119
punk@1 120 Processor.findwbf :: ProcTypes.Rindx -> ProcTypes.WBResult -> ¶Prelude®¶.¶Bool®¶;
punk@1 121
punk@1 122 Processor.stall :: ProcTypes.Instr ->
punk@1 123 SFIFO.SFIFO ProcTypes.WBResult ProcTypes.Rindx -> ¶Prelude®¶.¶Bool®¶;
punk@1 124
punk@1 125 Processor.mkProc :: (¶Prelude®¶.¶IsModule®¶ _m__ _c__) => _m__ Processor.Proc
punk@1 126 }