!!!!    6    0    1  990466065  Vc800                                         

! Device           : dm85s68
! Function         : 16 x 4 Edge Triggered Registers
! revision         : B.01.00
! safeguard        : standard_ttl
! Modifications    : Modified for AwareTest xi
!
  warning           "This library has not been verified with hardware."

!warning  " This device has outputs that can be set in the high   "
!warning  "   impedance state.  In order to test Output Disable   "
!warning  "   (pin 12) pullups are needed on Data Outputs.        "

sequential

! safeguard    standard_ttl

vector cycle  500n
receive delay 400n

! TTL
assign   VCC         to pins 18
assign   GND         to pins 9

! Inputs

assign   Data_Inputs          to pins 16,17,1,2
assign   D0_I                 to pins 2         !AT Added for minimum pin test.
assign   D1_I                 to pins 1         !AT Added for minimum pin test.
assign   D2_I                 to pins 17        !AT Added for minimum pin test.
assign   D3_I                 to pins 16        !AT Added for minimum pin test.

assign   Address              to pins 5,4,6,3
assign   Write_Enable_bar     to pins 15

assign   Clock                to pins 14
assign   Output_Store_bar     to pins 13
assign   Output_Disable       to pins 12

! Outputs

assign   Data_Outputs         to pins 11,10,8,7
assign   D0_O                 to pins 7         !AT Added for minimum pin test.
assign   D1_O                 to pins 8         !AT Added for minimum pin test.
assign   D2_O                 to pins 10        !AT Added for minimum pin test.
assign   D3_O                 to pins 11        !AT Added for minimum pin test.

family   TTL

! TTL
power    VCC,GND

inputs    Data_Inputs,Address,Write_Enable_bar
inputs    Clock,Output_Store_bar,Output_Disable
inputs    D0_I, D1_I, D2_I, D3_I  !AT Added for minimum pin test.

outputs   Data_Outputs
outputs   D0_O, D1_O, D2_O, D3_O  !AT Added for minimum pin test.

when Output_disable is "1" inactive Data_outputs

! NOTE: the default trace specification is used

disable   Data_Outputs   with  Output_Disable  to  "1"


set load on groups  Data_Outputs  to pull up

!***************************************************************
!***************************************************************

vector  Initialize_Inputs
   set   Data_Inputs          to "0000"
   set   Address              to "0000"
   set   Write_Enable_bar     to "1"

   set   Clock                to "0"
   set   Output_Store_bar     to "1"
   set   Output_Disable       to "0"
end vector

vector  Keep_Inputs
   set   Data_Inputs          to "kkkk"
   set   Address              to "kkkk"
   set   Write_Enable_bar     to "k"

   set   Clock                to "k"
   set   Output_Store_bar     to "k"
   set   Output_Disable       to "k"
end vector

! Inputs

vector Data_Inputs_0000
   initialize  to Keep_Inputs
   set   Data_Inputs          to "0000"
end vector

vector Data_Inputs_0001
   initialize  to Keep_Inputs
   set   Data_Inputs          to "0001"
end vector

vector Data_Inputs_0010
   initialize  to Keep_Inputs
   set   Data_Inputs          to "0010"
end vector

vector Data_Inputs_0011
   initialize  to Keep_Inputs
   set   Data_Inputs          to "0011"
end vector

vector Data_Inputs_0100
   initialize  to Keep_Inputs
   set   Data_Inputs          to "0100"
end vector

vector Data_Inputs_0101
   initialize  to Keep_Inputs
   set   Data_Inputs          to "0101"
end vector

vector Data_Inputs_0110
   initialize  to Keep_Inputs
   set   Data_Inputs          to "0110"
end vector

vector Data_Inputs_0111
   initialize  to Keep_Inputs
   set   Data_Inputs          to "0111"
end vector

vector Data_Inputs_1000
   initialize  to Keep_Inputs
   set   Data_Inputs          to "1000"
end vector

vector Data_Inputs_1001
   initialize  to Keep_Inputs
   set   Data_Inputs          to "1001"
end vector

vector Data_Inputs_1010
   initialize  to Keep_Inputs
   set   Data_Inputs          to "1010"
end vector

vector Data_Inputs_1011
   initialize  to Keep_Inputs
   set   Data_Inputs          to "1011"
end vector

vector Data_Inputs_1100
   initialize  to Keep_Inputs
   set   Data_Inputs          to "1100"
end vector

vector Data_Inputs_1101
   initialize  to Keep_Inputs
   set   Data_Inputs          to "1101"
end vector

vector Data_Inputs_1110
   initialize  to Keep_Inputs
   set   Data_Inputs          to "1110"
end vector

vector Data_Inputs_1111
   initialize  to Keep_Inputs
   set   Data_Inputs          to "1111"
end vector

vector Address_0000
   initialize  to Keep_Inputs
   set   Address              to "0000"
end vector

vector Address_0001
   initialize  to Keep_Inputs
   set   Address              to "0001"
end vector

vector Address_0010
   initialize  to Keep_Inputs
   set   Address              to "0010"
end vector

vector Address_0011
   initialize  to Keep_Inputs
   set   Address              to "0011"
end vector

vector Address_0100
   initialize  to Keep_Inputs
   set   Address              to "0100"
end vector

vector Address_0101
   initialize  to Keep_Inputs
   set   Address              to "0101"
end vector

vector Address_0110
   initialize  to Keep_Inputs
   set   Address              to "0110"
end vector

vector Address_0111
   initialize  to Keep_Inputs
   set   Address              to "0111"
end vector

vector Address_1000
   initialize  to Keep_Inputs
   set   Address              to "1000"
end vector

vector Address_1001
   initialize  to Keep_Inputs
   set   Address              to "1001"
end vector

vector Address_1010
   initialize  to Keep_Inputs
   set   Address              to "1010"
end vector

vector Address_1011
   initialize  to Keep_Inputs
   set   Address              to "1011"
end vector

vector Address_1100
   initialize  to Keep_Inputs
   set   Address              to "1100"
end vector

vector Address_1101
   initialize  to Keep_Inputs
   set   Address              to "1101"
end vector

vector Address_1110
   initialize  to Keep_Inputs
   set   Address              to "1110"
end vector

vector Address_1111
   initialize  to Keep_Inputs
   set   Address              to "1111"
end vector

vector Write_Enable_true
   initialize  to Keep_Inputs
   set   Write_Enable_bar     to "0"
end vector

vector Write_Enable_false
   initialize  to Keep_Inputs
   set   Clock                to "0"
   set   Write_Enable_bar     to "1"
end vector

vector Clock_1
   initialize  to Keep_Inputs
   set   Clock                to "1"
end vector

vector Clock_0
   initialize  to Keep_Inputs
   set   Clock                to "0"
end vector

vector Output_Store_true
   initialize  to Keep_Inputs
   set   Output_Store_bar     to "1"
end vector

vector Output_Store_false
   initialize  to Keep_Inputs
   set   Output_Store_bar     to "0"
end vector

vector Output_Disable_true
   initialize  to Keep_Inputs
   set   Output_Disable       to "1"
end vector

vector Output_Disable_false
   initialize  to Keep_Inputs
   set   Output_Disable       to "0"
end vector

! Outputs

vector Data_Outputs_0000
   initialize  to Keep_Inputs
   set   Data_Outputs          to "0000"
end vector

vector Data_Outputs_0001
   initialize  to Keep_Inputs
   set   Data_Outputs          to "0001"
end vector

vector Data_Outputs_0010
   initialize  to Keep_Inputs
   set   Data_Outputs          to "0010"
end vector

vector Data_Outputs_0011
   initialize  to Keep_Inputs
   set   Data_Outputs          to "0011"
end vector

vector Data_Outputs_0100
   initialize  to Keep_Inputs
   set   Data_Outputs          to "0100"
end vector

vector Data_Outputs_0101
   initialize  to Keep_Inputs
   set   Data_Outputs          to "0101"
end vector

vector Data_Outputs_0110
   initialize  to Keep_Inputs
   set   Data_Outputs          to "0110"
end vector

vector Data_Outputs_0111
   initialize  to Keep_Inputs
   set   Data_Outputs          to "0111"
end vector

vector Data_Outputs_1000
   initialize  to Keep_Inputs
   set   Data_Outputs          to "1000"
end vector

vector Data_Outputs_1001
   initialize  to Keep_Inputs
   set   Data_Outputs          to "1001"
end vector

vector Data_Outputs_1010
   initialize  to Keep_Inputs
   set   Data_Outputs          to "1010"
end vector

vector Data_Outputs_1011
   initialize  to Keep_Inputs
   set   Data_Outputs          to "1011"
end vector

vector Data_Outputs_1100
   initialize  to Keep_Inputs
   set   Data_Outputs          to "1100"
end vector

vector Data_Outputs_1101
   initialize  to Keep_Inputs
   set   Data_Outputs          to "1101"
end vector

vector Data_Outputs_1110
   initialize  to Keep_Inputs
   set   Data_Outputs          to "1110"
end vector

vector Data_Outputs_1111
   initialize  to Keep_Inputs
   set   Data_Outputs          to "1111"
end vector

vector Data_Outputs_HIZ
   initialize  to Keep_Inputs
   set   Data_Outputs          to "1111"
end vector

!AT The following vectors have been added for a minimum pins test. Any
!AT vectors that references the data bus was copied and modified to reference
!AT only a single pin of the data bus.

vector  Initialize_Inputs_D0
   set   D0_I                 to "0"
   set   Address              to "0000"
   set   Write_Enable_bar     to "1"

   set   Clock                to "0"
   set   Output_Store_bar     to "1"
   set   Output_Disable       to "0"
end vector

vector  Keep_Inputs_D0
   set   D0_I                 to "k"
   set   Address              to "kkkk"
   set   Write_Enable_bar     to "k"

   set   Clock                to "k"
   set   Output_Store_bar     to "k"
   set   Output_Disable       to "k"
end vector

! Inputs

vector D0_I_0
   initialize  to Keep_Inputs_D0
   set   D0_I                 to "0"
end vector

vector D0_I_1
   initialize  to Keep_Inputs_D0
   set   D0_I                 to "1"
end vector

vector Address_0000_D0
   initialize  to Keep_Inputs_D0
   set   Address              to "0000"
end vector

vector WE_t_D0
   initialize  to Keep_Inputs_D0
   set   Write_Enable_bar     to "0"
end vector

vector WE_f_D0
   initialize  to Keep_Inputs_D0
   set   Clock                to "0"
   set   Write_Enable_bar     to "1"
end vector

vector Clk1_D0
   initialize  to Keep_Inputs_D0
   set   Clock                to "1"
end vector

vector OS_t_D0
   initialize  to Keep_Inputs_D0
   set   Output_Store_bar     to "1"
end vector

vector OS_f_D0
   initialize  to Keep_Inputs_D0
   set   Output_Store_bar     to "0"
end vector

vector D0_O_0
   initialize  to Keep_Inputs_D0
   set   D0_O                  to "0"
end vector

vector D0_O_1
   initialize  to Keep_Inputs_D0
   set   D0_O                  to "1"
end vector

vector  Initialize_Inputs_D1
   set   D1_I                 to "0"
   set   Address              to "0000"
   set   Write_Enable_bar     to "1"

   set   Clock                to "0"
   set   Output_Store_bar     to "1"
   set   Output_Disable       to "0"
end vector

vector  Keep_Inputs_D1
   set   D1_I                 to "k"
   set   Address              to "kkkk"
   set   Write_Enable_bar     to "k"

   set   Clock                to "k"
   set   Output_Store_bar     to "k"
   set   Output_Disable       to "k"
end vector

! Inputs

vector D1_I_0
   initialize  to Keep_Inputs_D1
   set   D1_I                 to "0"
end vector

vector D1_I_1
   initialize  to Keep_Inputs_D1
   set   D1_I                 to "1"
end vector

vector Address_0000_D1
   initialize  to Keep_Inputs_D1
   set   Address              to "0000"
end vector

vector WE_t_D1
   initialize  to Keep_Inputs_D1
   set   Write_Enable_bar     to "0"
end vector

vector WE_f_D1
   initialize  to Keep_Inputs_D1
   set   Clock                to "0"
   set   Write_Enable_bar     to "1"
end vector

vector Clk1_D1
   initialize  to Keep_Inputs_D1
   set   Clock                to "1"
end vector

vector OS_t_D1
   initialize  to Keep_Inputs_D1
   set   Output_Store_bar     to "1"
end vector

vector OS_f_D1
   initialize  to Keep_Inputs_D1
   set   Output_Store_bar     to "0"
end vector

vector D1_O_0
   initialize  to Keep_Inputs_D1
   set   D1_O                  to "0"
end vector

vector D1_O_1
   initialize  to Keep_Inputs_D1
   set   D1_O                  to "1"
end vector

vector  Initialize_Inputs_D2
   set   D2_I                 to "0"
   set   Address              to "0000"
   set   Write_Enable_bar     to "1"

   set   Clock                to "0"
   set   Output_Store_bar     to "1"
   set   Output_Disable       to "0"
end vector

vector  Keep_Inputs_D2
   set   D2_I                 to "k"
   set   Address              to "kkkk"
   set   Write_Enable_bar     to "k"

   set   Clock                to "k"
   set   Output_Store_bar     to "k"
   set   Output_Disable       to "k"
end vector

! Inputs

vector D2_I_0
   initialize  to Keep_Inputs_D2
   set   D2_I                 to "0"
end vector

vector D2_I_1
   initialize  to Keep_Inputs_D2
   set   D2_I                 to "1"
end vector

vector Address_0000_D2
   initialize  to Keep_Inputs_D2
   set   Address              to "0000"
end vector

vector WE_t_D2
   initialize  to Keep_Inputs_D2
   set   Write_Enable_bar     to "0"
end vector

vector WE_f_D2
   initialize  to Keep_Inputs_D2
   set   Clock                to "0"
   set   Write_Enable_bar     to "1"
end vector

vector Clk1_D2
   initialize  to Keep_Inputs_D2
   set   Clock                to "1"
end vector

vector OS_t_D2
   initialize  to Keep_Inputs_D2
   set   Output_Store_bar     to "1"
end vector

vector OS_f_D2
   initialize  to Keep_Inputs_D2
   set   Output_Store_bar     to "0"
end vector

vector D2_O_0
   initialize  to Keep_Inputs_D2
   set   D2_O                  to "0"
end vector

vector D2_O_1
   initialize  to Keep_Inputs_D2
   set   D2_O                  to "1"
end vector

vector  Initialize_Inputs_D3
   set   D3_I                 to "0"
   set   Address              to "0000"
   set   Write_Enable_bar     to "1"

   set   Clock                to "0"
   set   Output_Store_bar     to "1"
   set   Output_Disable       to "0"
end vector

vector  Keep_Inputs_D3
   set   D3_I                 to "k"
   set   Address              to "kkkk"
   set   Write_Enable_bar     to "k"

   set   Clock                to "k"
   set   Output_Store_bar     to "k"
   set   Output_Disable       to "k"
end vector

! Inputs

vector D3_I_0
   initialize  to Keep_Inputs_D3
   set   D3_I                 to "0"
end vector

vector D3_I_1
   initialize  to Keep_Inputs_D3
   set   D3_I                 to "1"
end vector

vector Address_0000_D3
   initialize  to Keep_Inputs_D3
   set   Address              to "0000"
end vector

vector WE_t_D3
   initialize  to Keep_Inputs_D3
   set   Write_Enable_bar     to "0"
end vector

vector WE_f_D3
   initialize  to Keep_Inputs_D3
   set   Clock                to "0"
   set   Write_Enable_bar     to "1"
end vector

vector Clk1_D3
   initialize  to Keep_Inputs_D3
   set   Clock                to "1"
end vector

vector OS_t_D3
   initialize  to Keep_Inputs_D3
   set   Output_Store_bar     to "1"
end vector

vector OS_f_D3
   initialize  to Keep_Inputs_D3
   set   Output_Store_bar     to "0"
end vector

vector D3_O_0
   initialize  to Keep_Inputs_D3
   set   D3_O                  to "0"
end vector

vector D3_O_1
   initialize  to Keep_Inputs_D3
   set   D3_O                  to "1"
end vector

!***************************************************************
!***************************************************************

sub   Write (Address,Data)
   execute  Address
   execute  Data
   execute  Write_Enable_true
   execute  Clock_1
   execute  Write_Enable_false
end sub

sub   Write_false (Address,Data)
   execute  Address
   execute  Data
   execute  Write_Enable_false
   execute  Clock_1
   execute  Write_Enable_false
end sub

sub   Read  (Address,Data)
   execute  Address
   execute  Output_Store_true
   execute  Data
   execute  Output_Store_false
end sub

sub   Read_Store_false  (Address,Data)
   execute  Address
   execute  Output_Store_false
   execute  Data
   execute  Output_Store_false
end sub

sub   Read_Output_Disabled (Address,Data)
   execute  Address
   execute Output_Disable_True
   execute  Output_Store_true
   execute  Data
   execute  Output_Store_false
end sub

!AT The following subroutines have been added for a minimum pins test.
!AT Vectors in the subroutines reference the entire data bus.
!AT Therefore the subroutines were copied and modified to reference only
!AT a single pin of the data bus.

sub   Write_Dx (Address,Data,WE_t_Dx,Clk1_Dx,WE_f_Dx)
   execute  Address
   execute  Data
   execute  WE_t_Dx
   execute  Clk1_Dx
   execute  WE_f_Dx
end sub

sub   Read_Dx  (Address,Data,OS_t_Dx,OS_f_Dx)
   execute  Address
   execute  OS_t_Dx
   execute  Data
   execute  OS_f_Dx
end sub

!****************************************************************

!AT The following AwareTest units have been added for minimum pins tests. Each
!AT unit tests a separate data pin starting with D0.

unit   "awaretest D0 Test"
   execute Initialize_Inputs_D0
   call Write_Dx (Address_0000_D0, D0_I_0, WE_t_D0, Clk1_D0, WE_f_D0)
   call Read_Dx (Address_0000_D0, D0_O_0, OS_t_D0, OS_f_D0)

   call Write_Dx (Address_0000_D0, D0_I_1, WE_t_D0, Clk1_D0, WE_f_D0)
   call Read_Dx (Address_0000_D0, D0_O_1, OS_t_D0, OS_f_D0)
end unit

unit   "awaretest D1 Test"
   execute Initialize_Inputs_D1
   call Write_Dx (Address_0000_D1, D1_I_0, WE_t_D1, Clk1_D1, WE_f_D1)
   call Read_Dx (Address_0000_D1, D1_O_0, OS_t_D1, OS_f_D1)

   call Write_Dx (Address_0000_D1, D1_I_1, WE_t_D1, Clk1_D1, WE_f_D1)
   call Read_Dx (Address_0000_D1, D1_O_1, OS_t_D1, OS_f_D1)
end unit

unit   "awaretest D2 Test"
   execute Initialize_Inputs_D2
   call Write_Dx (Address_0000_D2, D2_I_0, WE_t_D2, Clk1_D2, WE_f_D2)
   call Read_Dx (Address_0000_D2, D2_O_0, OS_t_D2, OS_f_D2)

   call Write_Dx (Address_0000_D2, D2_I_1, WE_t_D2, Clk1_D2, WE_f_D2)
   call Read_Dx (Address_0000_D2, D2_O_1, OS_t_D2, OS_f_D2)
end unit

unit   "awaretest D3 Test"
   execute Initialize_Inputs_D3
   call Write_Dx (Address_0000_D3, D3_I_0, WE_t_D3, Clk1_D3, WE_f_D3)
   call Read_Dx (Address_0000_D3, D3_O_0, OS_t_D3, OS_f_D3)

   call Write_Dx (Address_0000_D3, D3_I_1, WE_t_D3, Clk1_D3, WE_f_D3)
   call Read_Dx (Address_0000_D3, D3_O_1, OS_t_D3, OS_f_D3)
end unit

unit  "Test Inputs"
   execute Initialize_Inputs
   call Write (Address_0000,Data_Inputs_0001)
   call Write (Address_0001,Data_Inputs_0010)
   call Write (Address_0010,Data_Inputs_0011)
   call Write (Address_0011,Data_Inputs_0100)
   call Write (Address_0100,Data_Inputs_0101)
   call Write (Address_0101,Data_Inputs_0101)
   call Write (Address_0110,Data_Inputs_0110)
   call Write (Address_0111,Data_Inputs_0111)
   call Write (Address_1000,Data_Inputs_1001)
   call Write (Address_1001,Data_Inputs_1010)
   call Write (Address_1010,Data_Inputs_1011)
   call Write (Address_1011,Data_Inputs_1100)
   call Write (Address_1100,Data_Inputs_1101)
   call Write (Address_1101,Data_Inputs_1101)
   call Write (Address_1110,Data_Inputs_1110)
   call Write (Address_1111,Data_Inputs_1111)

   call Read (Address_0000,Data_Outputs_0001)
   call Read (Address_0001,Data_Outputs_0010)
   call Read (Address_0010,Data_Outputs_0011)
   call Read (Address_0011,Data_Outputs_0100)
   call Read (Address_0100,Data_Outputs_0101)
   call Read (Address_0101,Data_Outputs_0101)
   call Read (Address_0110,Data_Outputs_0110)
   call Read (Address_0111,Data_Outputs_0111)
   call Read (Address_1000,Data_Outputs_1001)
   call Read (Address_1001,Data_Outputs_1010)
   call Read (Address_1010,Data_Outputs_1011)
   call Read (Address_1011,Data_Outputs_1100)
   call Read (Address_1100,Data_Outputs_1101)
   call Read (Address_1101,Data_Outputs_1101)
   call Read (Address_1110,Data_Outputs_1110)
   call Read (Address_1111,Data_Outputs_1111)
end unit

unit  "Test Write Enable "
   execute Initialize_Inputs
   call Write (Address_0000,Data_Inputs_0001)
   call Read (Address_0000,Data_Outputs_0001)
   call Write_false (Address_0000,Data_Inputs_1110)
   call Read (Address_0000,Data_Outputs_0001)
end unit

unit  "Test Output Store "
   execute Initialize_Inputs
   call Write (Address_0000,Data_Inputs_0001)
   call Read (Address_0000,Data_Outputs_0001)
   call Write (Address_0000,Data_Inputs_1110)
   call Read_Store_false (Address_0000,Data_Outputs_0001)
end unit

unit  "Test Output Disable"
   execute Initialize_Inputs
   call Write (Address_0000,Data_Inputs_0001)
   call Read_Output_Disabled (Address_0000,Data_Outputs_HIZ)
end unit


!End of test




