-------------------------------- AddInt defs for control Wc, MAc
VAL INT  PCPAR    IS   0:
VAL INT  DESTPC   IS   1:
--*************************************
--              CONSTANTS
--*************************************

VAL INT  VALID    IS   2:
VAL INT  OPC      IS   3:
VAL INT  BW       IS   4:
VAL INT  NUSR     IS   5:
VAL INT  WEN      IS   6:
VAL INT  REN      IS   7:
VAL INT  LSM      IS   8:
VAL INT  SP       IS   9:
-------------------------------  AddInt defs for control from Dec1
VAL INT NTRM      IS   0:
VAL INT DPC       IS   1:
------------------------------- Circuit constants
VAL INT IVSS      IS  0:
VAL INT IVDD      IS  1:
VAL BOOL VSS      IS  FALSE:
VAL BOOL VDD      IS  TRUE:
------------------------------  Dec1 defs for RegCpla output
VAL INT  NIMM     IS  24:
VAL INT  MULT     IS  0 :
VAL INT  TON      IS  19:
VAL INT  TOI3     IS  13:
VAL INT  BWEN     IS  5 :
VAL INT  NRDG     IS  23:
VAL INT  NTOX     IS  22:
VAL INT  NALW0    IS  17:
VAL INT  NALW1    IS  18:
VAL INT  LRNP     IS  25:
-----------------------------------  reg bank
VAL INT ABUS IS 0:
VAL INT BBUS IS 1:
VAL INT num.of.reg IS 37:
VAL INT UNDEF IS 60:   --not a valid address
-----------------------------------DatInt
VAL INT ABT IS 0:
-----------------------------------


--*************************************
--             DELAYS
--*************************************

VAL INT REGISTER.DELAY IS 3:

VAL INT REGCPLA  IS 10:
VAL INT XOR
VAL INT TOGGLE
VAL INT NOR
VAL INT XOR 
VAL INT MULLERC
VAL INT SELECT
VAL INT CALL
VAL INT ARBITERX
VAL INT AND       1
VAL INT OR        1
VAL INT EVLATCH
VAL INT SHIFT.DELAY
VAL INT DESWAIT
VAL INT MULT.DELAY
VAL INT WRITE.ENABLE
VAL INT WRITE.COMPLETE
RB.DEC.DELAY     --register bank decode delay

--*************************************
--            PIPE DELAYS
--*************************************

VAL INT DEC2.DELAY      --+3   REGISTER.DELAY
VAL INT ALU.DELAY
VAL INT DEC3.DELAY        +3
VAL INT DEC3.DELAY.INT
VAL INT NGEN.DELAY.INT     --internal

VAL INT NGEN.DELAY   1  --  +3   REGISTER.DELAY
DOUT.DELAY      +3
DOUT.DELAY.INT


--*************************************
--            PIPE SIZES
--*************************************
PCPIPE.SIZE
IPIPE.SIZE    5
DEC1REGB.SIZE  1
DEC2REGA.SIZE  1
DEC3.SIZE   3
CPSR.SIZE   1
OP.SIZE     1
DEC2REGB.SIZE   1
NGENPIPE.SIZE   2
IMMPIPE.SIZE  
RBCTRL2PIPE.SIZE    1  --Out-REGISTER
MEMCPPIPE.SIZE   5
MRRPIPE.SIZE    1
MARPIPE.SIZE    1
DOUT.SIZE       3
RBIREG.SIZE    1
RWIREG.SIZE     1
RBALKFIFO.SIZE   3
RBMLKFIFO.SIZE   4   
--*************************************
--             PIPELINE IDs
--*************************************
IPIPE
PCPIPE
DEC1REGB
DEC2REGA
DEC2REGB
NGENPIPE
RBCTRL2PIPE  
RWIREG
RBIREG
RBALKFIFO
RBMLKFIFO 
DEC3PIPE
CPREG
OPREG
MEMCPPIPE
MRRPIPE
MARPIPE
DOUT.PIPE

--*************************************
--             MEMORY
--*************************************

--VAL INT MEMSIZE IS 16384:       --16K RAM
VAL INT MEMSIZE IS 32768:       --32K RAM
VAL INT READ IS 0:
VAL INT WRITE IS 1:

--*************************************
--             PROTOCOLS
--*************************************
VAL INT MESGLEN IS 4:     --message format
VAL INT TIME.STAMP IS 1:
VAL INT TIME.IN IS 2:
VAL INT STALL IS 3:



VAL INT OCCT.SIZE IS 15:   --occupancy table indices
VAL INT PIPE.SIZE IS 10:
VAL INT MAX.DELAY IS 11:
VAL INT PIPE.ID  IS 12:
VAL INT T.IN  IS 0:
VAL INT T.OUT  IS 1:




VAL INT DEBMESG IS 100:
VAL INT FINISH IS -#FFFF:
VAL INT PREEMPT.SIZE IS 3:

PROTOCOL BUNDLE IS [MESGLEN]INT:

PROTOCOL DEB.MESSAGE
  CASE
    trace; [DEBMESG]BYTE     --trace message
    eval ; [OCCT.SIZE][3]INT        --occupancy table
    preempt ; [PREEMPT.SIZE]INT         --process id, preemption frequency, preemption magnitude
:

PROTOCOL BUNDLE.ON.LINK IS INT;[MESGLEN]INT:
PROTOCOL MONITOR.ON.LINK IS INT;[DEBMESG]BYTE: --this needs to be variant for
                                               --other types of monitoring information

PROTOCOL OUT.CHAR IS BYTE:
PROTOCOL READ.WRITE IS [3]INT:



PROTOCOL LINK.TO.LINK
  CASE
    bundle;INT;[MESGLEN]INT         -- BUNDLE.ON.LINK
    trace ;[DEBMESG]BYTE            --TRACE.ON.LINK
    eval  ; [OCCT.SIZE][3]INT       --OCCUPANCY.TABLE.ON.LINK  
    preempt ; [3]INT  
    out.char; BYTE                  --OUT.CHAR
    read.write; [3]INT              --READ.WRITE
    to.memory; INT
:

--**************************************
--            MONITORING
--**************************************

TYPE OCCUP.TABLE IS [OCCT.SIZE][3]INT:

VAL INT HIST.SIZE IS  300:
VAL INT TIMEOUT IS  1406250 :   -- 2 mins
VAL INT IOTIMEOUT IS  (3515625):  -- 5 mins
VAL INT NUM.OF.BCHANS IS  9:  --# similar chans multiplexed/demultiplexed
VAL INT NUM.OF.DCHANS IS  1:  --# similar chans multiplexed/demultiplexed

VAL INT BUF.SIZE IS 20:  --demultiplexor buffers

VAL INT EVALUATE.TRACE      IS  0:
VAL INT EVALUATE.TRACE.OUT  IS  1:
VAL INT EVALUATE.NO.TRACE   IS  2:

VAL INT NO.EVALUATE.TRACE   IS  3:
VAL INT NO.EVALUATE.TRACE.OUT IS  4:
VAL INT NO.EVALUATE.NO.TRACE  IS  5:



VAL INT MONITOR.OFF IS 0:
VAL INT MONITOR.ON IS 1:
VAL INT SEND.OUT IS 2:

---------------------------------------










