# addressing.do # # The function of this stimulis file is to test address decoding # in the Board Control PAL. The inputs for this simulation are # VME_GEO_B, OCB_ADRS, and LTCHD_IACK_B. The outputs are VALID_CYCLE. # # Valid_AM, This_Card, and Valid_Cycle are not synchronous signals # so the Cycle labels below are just an approximate time reference. # VALID_AM # ======== # The Addrees Modifier (AM) is first tested. # # Cycle 0 # ------- # A AM other than Standard Non-Privileged Data Access or Standard # Supervisory Data Access. VALID_AM should be deasserted. # # Cycle 1 # ------- # The AM is set to Standard Non-Privileged Data Access. VALID_AM # should be asserted. # # Cycle 2 # ------- # The AM is set to another value other than Non-Privileged Data # Access or Standard Supervisory Data Access. VALID_AM should be # deasserted. # # Cycle 3 # ------- # The AM is set to Standard Supervisory Data Access. VALID_AM should # be asserted. # # THIS_CARD # ========= # Cycles 0-3 # ---------- # While testing VALID_AM VME_GEO_B is set to 0s, so VME_GEO is all 1s. # OCB_ADRS is set to all 0s. Since VME_GEO_B and OCB_ADRS(18:22) are # equal, THIS_CARD should be 0. # # Cycle 4 # ------- # After the VALID_AM test, VME_GEO_B is set to all 1s, so VME_GEO is # all 0s, which is the same as OCB_ADRS(18:22) so THIS_CARD should be # asserted. # # Cycle 6 # ------- # VME_GEO_B is set to 10000 and VME_GEO is 01111. OCB_ADRS(18:22) is # still 00000 so THIS_CARD should be 0. # # Cycle 7 # ------- # OCB_ADRS(18:22) is set to 01111 and VME_GEO is still 01111 so # THIS_CARD should be asserted. # # VALID_CYCLE # =========== # Cycles 0-7 # ---------- # IACK_B is 1 so IACK is 0 during VALID_AM and THIS_CARD testing # so VALID_CYCLE should always be deasserted. # # Cycle 8 # ------- # After THIS_CARD testing both VALID_AM and THIS card are asserted. # IACK_B is set to 0 so IACK is 1 and VALID_CYCLE should be asserted. # # Cycle 9 # ------- # LTCHD_AM is set so that VALID_AM is deasserted. VALID_CYCLE should # be 0. # # Cycle 10 # -------- # LTCHD_AM is set so that VALID_AM is asserted. VALID_CYCLE should be # 1. # # Cycle 12 # -------- # VME_GEO_B is set so that THIS_CARD is deasserted. VALID_CYCLE should # be deasserted. # restart simulation without confirming and clearing wave window. restart -force -nowave force /bcp/vme_sysreset_b_in_stdl 1 # Add signals to wave window. do address_waves.do # Set run step sizes set AM_step 160ns set GEO_step 160ns set VALID_CYCLE_step 160ns # Clock definition # 132ns 1/2 duty cycle wave. force /bcp/pal_bx_clock_in_stdl 0 force /bcp/pal_bx_clock_in_stdl 1 66ns, 0 132ns -r 132ns # Set VME_AM(0:5) to something other than: # AM BIT # 012345 # Standard Non-Privileged Data Access = 100111 # Standard Supervisory Data Access = 101111 # # VALID_AM should be 0 force /bcp/ltchd_am_in_stdlv 000000 # Set VME_GEO_B to all 0s force /bcp/vme_geo_b_in_stdlv 16#0 # Set OCB_ADRS to all 0s force /bcp/ocb_adrs_in_stdlv 16#0 # Set ltchd_iack_b to 1 force /bcp/ltchd_iack_b_in_stdl 1 run $AM_step # Set VME_AM(0:5) to Standard Non-Privileged Data Access # VALID_AM should be 1 force /bcp/ltchd_am_in_stdlv 100111 run $AM_step # Set VME_AM(0:5) to NOT Standard Non-Privileged Data Access or # Standard Supervisory Data Access. VALID_AM should be 0 force /bcp/ltchd_am_in_stdlv 000111 run $AM_step # Set VME_AM(0:5) to Standard Supervisory Data Access # VALID_AM should be 1. force /bcp/ltchd_am_in_stdlv 101111 run $AM_step # Set VME_GEO_B to all 1s (HEX 1F). # since OCB_ADRS is all 0s, THIS_CARD should be 1. force /bcp/vme_geo_b_in_stdlv 16#1F run $GEO_step # Set VME_GEO_B to 10000. # THIS_CARD should be 0. force /bcp/vme_geo_b_in_stdlv 10000 run $GEO_step # Set OCB_ADRS(18:22) to 01111. # THIS_CARD should be 1 since VME_GEO(0:4) = OCB_ADRS(18:22). force /bcp/ocb_adrs_in_stdlv(18:22) 01111 run $GEO_step # Set ltchd_iack_b to 0. # VALID_CYCLE should be 1 because THIS_CARD, VALID_AM and IACK are all # asserted. force /bcp/ltchd_iack_b_in_stdl 0 run $VALID_CYCLE_step # Set LTCHD_AM to 000000 # VALID_CYCLE should be 0 because VALID_AM is 0. force /bcp/ltchd_am_in_stdlv 16#0 run $VALID_CYCLE_step # Set LTCHD_AM to 100111 # VALID_CYCLE should be 1 because VALID_AM, THIS_CARD and IACK are 1. force /bcp/ltchd_am_in_stdlv 100111 run $VALID_CYCLE_step # Set GEO_B to 11111 (HEX 1F) # VALID_CYCLE should be 0 because THIS_CARD is 0. force /bcp/vme_geo_b_in_stdlv 16#1F run $VALID_CYCLE_step