!3 3 2
!#vti pla code/lg to asim sidpla convertor <rclk>
!# 3 inputs, 3 outputs, 2 terms
!#
!#VTI STATE MACHINE
!###############################################################
!###############################################################
!###                                                         ###
!###  IOMD IORCLKSM : IO and R-CLOCK DEFAULT STATE MACHINE   ###
!###                                                         ###
!###  Created 22/8/92: David Flynn                           ###
!###                                                         ###
!###                                                         ###
!###############################################################
!###############################################################
!###  Revision History:                                      ###
!###   26/8/92: DWF : Revised for ramgo/romgo naming         ###
!###   27/8/92: DWF : new ARMBUS and DEFRCLK handshake       ###
!###   15/9/92: DWF : IO clocks and new synchronous RCLK merge #
!###############################################################
!sm clksm;
!clock ck 32;
!
!reset init --> IDLE;
!
!inputs defrclk;
!
!outputs rclkdef=0;
!
!# state output = default RCLK
!state IDLE=0
!    defrclk --> CLOCK rclkdef=1,
!    --> IDLE;
!
!state CLOCK=1
!    --> IDLE;
!
!end
!---------------|-----
!             p |
!       d r r r |  c
!       e a o o | clr
!   c   f m m g | lkc
! c l r r r r r | k1l
! l k c c c c c | 86k
! k 1 l l l l l | ___
! 8 6 k k k k k | ddd
!---------------|-----
!---------------|-+++-
! x x 0 1 x x x | ..1
! x x x x 1 x x | ..1
! x x x x x 1 x | ..1
! x x x x x x 1 | ..1
! x 0 x x x x x | .1.
! 0 0 x x x x x | 1..
! 1 1 x x x x x | 1..
!---------------|-----
!#SIDLE PROTOTYPE

 FROM STDParts.PLAs  IMPORT $PLA
 FROM STDParts.Misc  IMPORT $Sink,$BDTFF


 BLOCK rclksm(
     ck,
     Ninit,
     defrclk,
     rclkramUS,
     rclkromUS,
     rclkprogUS
   )
   =>  (
     clk8,
     clk16,
     rclk
   )
 
   pla = $PLA(Vdd,Vdd,
     in(
     clk8,
     clk16,
     rclk,
     defrclk,
     rclkramUS,
     rclkromUS,
     rclkprogUS
    )
   )
   =>  out(
     clk8_d,
     clk16_d,
     rclk_d
   )
   WITH (delay=ns_3,override=1,filename=iomd/sid/rclksm)
 
   reg = $BDTFF(
    ck,
     d(
       clk8_d,
       clk16_d,
       rclk_d
     ),
     Vdd,Ninit)
   =>  (q(
     clk8,
     clk16,
     rclk
   ),_qbar[2:0])
   WITH (delay=ns_5, edge=+ve)
 
   snk = $Sink(_qbar[2:0])
 
 END {rclksm}
