"Simple ARM arch model"
include "armfences.cat"
show isb,ctrlisb
include "cos.cat"
acyclic po-loc | fr | rf | co
as uniproc
let RW = R * W
and WW = W * W
and RR = R * R
let ppo =
addr & RW |
data & RW |
addr & RR |
ctrl & RW |
ctrlisb
let dmb.st=dmb.st & WW
let dsb.st=dsb.st & WW
show dmb, dsb, dmb.st, dsb.st
let fence = dsb.st | dmb.st | dsb | dmb
let visible = ppo | fence | rfe
let F = ((fr|rf|co)*;fence)
acyclic (F | visible)
as order