HOME   PREV   NEXT (Formal Specification of the TLM Call with one argument)

Formal Specification of the Four Phase Handshake

let four_phase_handshake_nets = 
  [ ("Strobe", Output, Concrete_enum ["true"; "false"]); 
    ("Ack",    Input,  Concrete_enum ["true"; "false"]); 
    ("DL",     Output, Symbolic_bitvec (8) )
  ]


let four_phase_handshake_idle =  
 [
  ("dead", "DL");
  ("false", "Strobe");
  ("false", "Ack")
 ]
;

let four_phase_handshake_protocol =  
 Seq[
  Set("live", "DL");
  Set("true", "Strobe");
  Set("true", "Ack");
  Set("dead", "DL");
  Set("false", "Strobe");
  Set("false", "Ack")
  ]
;

(* Overall composition of the protocol in a direction-agnostic form *)
let fourphase = ("4P", four_phase_handshake_nets, four_phase_handshake_idle, four_phase_handshake_protocol)