!!!! 6 0 1 991775628 Veeee ! Device : 74194 ! Function : shift_register, 4-bit_bidirectional_universal ! revision : B.01.00 ! safeguard : standard_hcmos ! Modifications : Modified for AwareTest xi ! warning "This library has not been verified with hardware." sequential assign VCC to pins 16 assign GND to pins 8 assign Parallel_inputs to pins 3,4,5,6 assign Serial_right to pins 2 assign Serial_left to pins 7 assign Outputs to pins 15,14,13,12 assign D0 to pins 12 !AT Added for minimum pin test. assign D1 to pins 13 !AT Added for minimum pin test. assign D2 to pins 14 !AT Added for minimum pin test. assign D3 to pins 15 !AT Added for minimum pin test. assign QD_output to pins 12 assign QA_output to pins 15 assign Clock to pins 11 assign Clear_bar to pins 1 assign Mode_inputs to pins 10,9 family CMOS power VCC, GND inputs Parallel_inputs, Serial_right, Serial_left, Clock inputs Clear_bar, Mode_inputs outputs Outputs, QD_output, QA_output outputs D0, D1, D2, D3 !AT Added for minimum pin test. trace Outputs to Parallel_inputs, Serial_right, Serial_left trace Outputs to Clock, Clear_bar, Mode_inputs !********************************************************************* !********************************************************************* vector Clear_low set Clock to "0" set Clear_bar to "0" set Outputs to "0000" end vector vector Clock_high__hold set Clear_bar to "1" set Parallel_inputs to "kkkk" set Mode_inputs to "00" set Clock to "1" end vector vector Clock_high__left set Clear_bar to "1" set Mode_inputs to "10" set Serial_left to "k" set Clock to "1" end vector vector Clock_high__load set Clear_bar to "1" set Mode_inputs to "11" set Parallel_inputs to "kkkk" set Clock to "1" end vector vector Clock_high__right set Clear_bar to "1" set Mode_inputs to "01" set Serial_right to "k" set Clock to "1" end vector vector Clock_high__shift set Clear_bar to "1" set Mode_inputs to "kk" set Clock to "1" end vector vector Clock_low set Clear_bar to "1" set Mode_inputs to "kk" set Clock to "0" end vector vector Inputs_0000 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "11" set Parallel_inputs to "0000" end vector vector Inputs_0000__hold set Clear_bar to "1" set Clock to "0" set Mode_inputs to "00" set Parallel_inputs to "0000" end vector vector Inputs_0101 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "11" set Parallel_inputs to "0101" end vector vector Inputs_1010 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "11" set Parallel_inputs to "1010" end vector vector Inputs_1111 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "11" set Parallel_inputs to "1111" end vector vector Mode_shift_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "10" end vector vector Mode_shift_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "01" end vector vector Outputs_0000 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "0000" end vector vector Outputs_0101 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "0101" end vector vector Outputs_0101_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set Outputs to "0101" end vector vector Outputs_0101_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set Outputs to "0101" end vector vector Outputs_010X set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "010X" end vector vector Outputs_01XX set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "01XX" end vector vector Outputs_0XXX set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "0XXX" end vector vector Outputs_1010 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "1010" end vector vector Outputs_1010_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set Outputs to "1010" end vector vector Outputs_1010_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set Outputs to "1010" end vector vector Outputs_101X set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "101X" end vector vector Outputs_10XX set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "10XX" end vector vector Outputs_1111 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "1111" end vector vector Outputs_1111_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set Outputs to "1111" end vector vector Outputs_1111_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set Outputs to "1111" end vector vector Outputs_1XXX set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "1XXX" end vector vector Outputs_X010 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "X010" end vector vector Outputs_X101 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "X101" end vector vector Outputs_XX01 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "XX01" end vector vector Outputs_XX10 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "XX10" end vector vector Outputs_XXX0 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "XXX0" end vector vector Outputs_XXX1 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Outputs to "XXX1" end vector vector Serial_left_high set Clear_bar to "1" set Clock to "0" set Mode_inputs to "10" set Serial_left to "1" end vector vector Serial_left_low set Clear_bar to "1" set Clock to "0" set Mode_inputs to "10" set Serial_left to "0" end vector vector Serial_right_high set Clear_bar to "1" set Clock to "0" set Mode_inputs to "01" set Serial_right to "1" end vector vector Serial_right_low set Clear_bar to "1" set Clock to "0" set Mode_inputs to "01" set Serial_right to "0" 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 D0_0 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set D0 to "0" end vector vector D0_1 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set D0 to "1" end vector vector D1_0 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set D1 to "0" end vector vector D1_1 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set D1 to "1" end vector vector D2_0 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set D2 to "0" end vector vector D2_1 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set D2 to "1" end vector vector D3_0 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set D3 to "0" end vector vector D3_1 set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set D3 to "1" end vector vector D0_0_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set D0 to "0" end vector vector D0_1_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set D0 to "1" end vector vector D1_0_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set D1 to "0" end vector vector D1_1_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set D1 to "1" end vector vector D2_0_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set D2 to "0" end vector vector D2_1_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set D2 to "1" end vector vector D3_0_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set D3 to "0" end vector vector D3_1_ksd_right set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_right to "k" set D3 to "1" end vector vector D0_0_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set D0 to "0" end vector vector D0_1_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set D0 to "1" end vector vector D1_0_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set D1 to "0" end vector vector D1_1_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set D1 to "1" end vector vector D2_0_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set D2 to "0" end vector vector D2_1_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set D2 to "1" end vector vector D3_0_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set D3 to "0" end vector vector D3_1_ksd_left set Clear_bar to "1" set Clock to "0" set Mode_inputs to "kk" set Serial_left to "k" set D3 to "1" end vector !********************************************************************* !********************************************************************* sub Clock_cycle (Clock_high) execute Clock_high execute Clock_low 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 shift right Test" repeat 4 times execute Serial_right_low call Clock_cycle (Clock_high__right) end repeat execute D0_0_ksd_right repeat 4 times execute Serial_right_high call Clock_cycle (Clock_high__right) end repeat execute D0_1_ksd_right end unit unit "awaretest D1 shift right Test" repeat 4 times execute Serial_right_low call Clock_cycle (Clock_high__right) end repeat execute D1_0_ksd_right repeat 4 times execute Serial_right_high call Clock_cycle (Clock_high__right) end repeat execute D1_1_ksd_right end unit unit "awaretest D2 shift right Test" repeat 4 times execute Serial_right_low call Clock_cycle (Clock_high__right) end repeat execute D2_0_ksd_right repeat 4 times execute Serial_right_high call Clock_cycle (Clock_high__right) end repeat execute D2_1_ksd_right end unit unit "awaretest D3 shift right Test" repeat 4 times execute Serial_right_low call Clock_cycle (Clock_high__right) end repeat execute D3_0_ksd_right repeat 4 times execute Serial_right_high call Clock_cycle (Clock_high__right) end repeat execute D3_1_ksd_right end unit unit "awaretest D0 shift left Test" repeat 4 times execute Serial_left_low call Clock_cycle (Clock_high__left) end repeat execute D0_0_ksd_left repeat 4 times execute Serial_left_high call Clock_cycle (Clock_high__left) end repeat execute D0_1_ksd_left end unit unit "awaretest D1 shift left Test" repeat 4 times execute Serial_left_low call Clock_cycle (Clock_high__left) end repeat execute D1_0_ksd_left repeat 4 times execute Serial_left_high call Clock_cycle (Clock_high__left) end repeat execute D1_1_ksd_left end unit unit "awaretest D2 shift left Test" repeat 4 times execute Serial_left_low call Clock_cycle (Clock_high__left) end repeat execute D2_0_ksd_left repeat 4 times execute Serial_left_high call Clock_cycle (Clock_high__left) end repeat execute D2_1_ksd_left end unit unit "awaretest D3 shift left Test" repeat 4 times execute Serial_left_low call Clock_cycle (Clock_high__left) end repeat execute D3_0_ksd_left repeat 4 times execute Serial_left_high call Clock_cycle (Clock_high__left) end repeat execute D3_1_ksd_left end unit unit "awaretest D0 parallel load Test" execute Inputs_0000 call Clock_cycle (Clock_high__load) execute D0_0 execute Inputs_1111 call Clock_cycle (Clock_high__load) execute D0_1 end unit unit "awaretest D1 parallel load Test" execute Inputs_0000 call Clock_cycle (Clock_high__load) execute D1_0 execute Inputs_1111 call Clock_cycle (Clock_high__load) execute D1_1 end unit unit "awaretest D2 parallel load Test" execute Inputs_0000 call Clock_cycle (Clock_high__load) execute D2_0 execute Inputs_1111 call Clock_cycle (Clock_high__load) execute D2_1 end unit unit "awaretest D3 parallel load Test" execute Inputs_0000 call Clock_cycle (Clock_high__load) execute D3_0 execute Inputs_1111 call Clock_cycle (Clock_high__load) execute D3_1 end unit !**************************************************************** unit "shift right only, no clear" repeat 2 times execute Serial_right_high call Clock_cycle (Clock_high__right) execute Serial_right_low call Clock_cycle (Clock_high__right) end repeat execute Outputs_0101_ksd_right repeat 2 times execute Serial_right_high call Clock_cycle (Clock_high__right) execute Outputs_1010_ksd_right execute Serial_right_low call Clock_cycle (Clock_high__right) execute Outputs_0101_ksd_right end repeat end unit unit "shift left only, no clear" repeat 2 times execute Serial_left_high call Clock_cycle (Clock_high__left) execute Serial_left_low call Clock_cycle (Clock_high__left) end repeat execute Outputs_1010_ksd_left repeat 2 times execute Serial_left_high call Clock_cycle (Clock_high__left) execute Outputs_0101_ksd_left execute Serial_left_low call Clock_cycle (Clock_high__left) execute Outputs_1010_ksd_left end repeat end unit unit "parallel load and hold" execute Inputs_0000 call Clock_cycle (Clock_high__load) execute Outputs_0000 execute Inputs_1111 call Clock_cycle (Clock_high__load) execute Outputs_1111 execute Inputs_0000__hold call Clock_cycle (Clock_high__hold) execute Outputs_1111 end unit unit "parallel input, shift right" execute Inputs_1010 call Clock_cycle (Clock_high__load) execute Outputs_1010 execute Mode_shift_right call Clock_cycle (Clock_high__shift) execute Outputs_X101 call Clock_cycle (Clock_high__shift) execute Outputs_XX10 call Clock_cycle (Clock_high__shift) execute Outputs_XXX1 execute Inputs_0101 call Clock_cycle (Clock_high__load) execute Outputs_0101 execute Mode_shift_right call Clock_cycle (Clock_high__shift) execute Outputs_X010 call Clock_cycle (Clock_high__shift) execute Outputs_XX01 call Clock_cycle (Clock_high__shift) execute Outputs_XXX0 end unit unit "parallel input, shift left" execute Inputs_1010 call Clock_cycle (Clock_high__load) execute Outputs_1010 execute Mode_shift_left call Clock_cycle (Clock_high__shift) execute Outputs_010X call Clock_cycle (Clock_high__shift) execute Outputs_10XX call Clock_cycle (Clock_high__shift) execute Outputs_0XXX execute Inputs_0101 call Clock_cycle (Clock_high__load) execute Outputs_0101 execute Mode_shift_left call Clock_cycle (Clock_high__shift) execute Outputs_101X call Clock_cycle (Clock_high__shift) execute Outputs_01XX call Clock_cycle (Clock_high__shift) execute Outputs_1XXX end unit unit "test clear, parallel input" execute Clear_low execute Inputs_1111 call Clock_cycle (Clock_high__load) execute Outputs_1111 execute Clear_low end unit unit "test clear, serial right input" execute Clear_low repeat 4 times execute Serial_right_high call Clock_cycle (Clock_high__right) end repeat execute Outputs_1111_ksd_right execute Clear_low end unit unit "test clear, serial left input" execute Clear_low repeat 4 times execute Serial_left_high call Clock_cycle (Clock_high__left) end repeat execute Outputs_1111_ksd_left execute Clear_low end unit unit "circular shift right, QD and Serial_right tied" tied Serial_right, QD_output execute Inputs_1111 call Clock_cycle (Clock_high__load) execute Outputs_1111 execute Inputs_1010 call Clock_cycle (Clock_high__load) execute Outputs_1010 execute Mode_shift_right repeat 2 times call Clock_cycle (Clock_high__shift) execute Outputs_0101 call Clock_cycle (Clock_high__shift) execute Outputs_1010 end repeat execute Inputs_0101 call Clock_cycle (Clock_high__load) execute Outputs_0101 execute Mode_shift_right repeat 2 times call Clock_cycle (Clock_high__shift) execute Outputs_1010 call Clock_cycle (Clock_high__shift) execute Outputs_0101 end repeat end unit unit "circular shift left, QA and Serial_left tied" tied Serial_left, QA_output execute Inputs_1111 call Clock_cycle (Clock_high__load) execute Outputs_1111 execute Inputs_1010 call Clock_cycle (Clock_high__load) execute Outputs_1010 execute Mode_shift_left repeat 2 times call Clock_cycle (Clock_high__shift) execute Outputs_0101 call Clock_cycle (Clock_high__shift) execute Outputs_1010 end repeat execute Inputs_0101 call Clock_cycle (Clock_high__load) execute Outputs_0101 execute Mode_shift_left repeat 2 times call Clock_cycle (Clock_high__shift) execute Outputs_1010 call Clock_cycle (Clock_high__shift) execute Outputs_0101 end repeat end unit ! End of test