! ###############################################################
! ###############################################################
! ###                                                         ###
! ###  IOMD system level block models                         ###
! ###                                                         ###
! ###  Created 18/8/92: David Flynn                           ###
! ###                                                         ###
! ###  ROMCTL - ROM Control                                   ###
! ###                                                         ###
! ###############################################################
! ###############################################################
! ###  Revision History:                                      ###
! ###   07/9/92: DWF : ROMCTL spilt from IOMDSYS file         ###
! ###   15/9/92: DF  : export rclkromUS (unsynchronised)      ###
! ###   16/9/92: DF  : armrq renamed busrq with 2nd proc added ##
! ###  21/12/92: DF  : rclkrom US inverted to RCLKGEN speedup ###
! ###  20/1/93   WO    inverted sense of busrq for speed      ###
! ###############################################################

FROM iomd.romsm            IMPORT  romsm
FROM STDParts.Gates        IMPORT $SGate1


! ###############################################################
! IOMD ROMCTL ROM Controller (rom statemachine)
! ###############################################################

BLOCK ROMCTL(
  {IN}  ck32,
  {IN}  Nreset,
  {IN}  romgo,
  {IN}  Nbusrq,
  {IN}  dmarq,
  {IN}  la[3:2],
  {IN}  romc[4:0],
  {OUT} rclkromUN,
  {OUT} Nromcs
)
  
busrq     = $SGate1(Nbusrq)    => busrq     WITH (OP=INV, delay=1)
rclkromUN = $SGate1(rclkromUS) => rclkromUN WITH (OP=INV, delay=1)

romsm = romsm(
     ck32,
     Nreset,
     romgo,
     busrq,
     dmarq,
     la[3:2],
     romc[4:0]
   )
   =>  (
     Nromcs,
     rclkromUS
   )
 
END {ROMCTL}
