!!!! 6 0 1 991779533 Vc5b0 ! Device : 74hc195 ! Function : shift_register, 4-bit_parallel-in/out ! 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 4,5,6,7 assign Serial_inputs to pins 2,3 assign Outputs to pins 15,14,13,12,11 assign D0 to pins 11 !AT Added for minimum pin test. assign D1 to pins 12 !AT Added for minimum pin test. assign D2 to pins 13 !AT Added for minimum pin test. assign D3 to pins 14 !AT Added for minimum pin test. assign D4 to pins 15 !AT Added for minimum pin test. assign QD_output to pins 12 assign QD_bar_out to pins 11 assign Clock to pins 10 assign Shift_load to pins 9 assign Clear_bar to pins 1 family CMOS power VCC, GND inputs Parallel_inputs, Serial_inputs, Clock, Shift_load, Clear_bar outputs Outputs, QD_output, QD_bar_out outputs D0, D1, D2, D3, D4 !AT Added for minimum pin test. trace Outputs to Parallel_inputs, Serial_inputs, Clock, Shift_load, Clear_bar !********************************************************************* !********************************************************************* vector Clear_low set Clock to "0" set Clear_bar to "0" set Outputs to "00001" end vector vector Clock_high__load set Clear_bar to "1" set Shift_load to "0" set Parallel_inputs to "kkkk" set Clock to "1" end vector vector Clock_high__serial set Clear_bar to "1" set Shift_load to "1" set Serial_inputs to "kk" set Clock to "1" end vector vector Clock_high__shift set Clear_bar to "1" set Shift_load to "1" set Clock to "1" end vector vector Clock_low set Clear_bar to "1" set Shift_load to "k" set Clock to "0" end vector vector Outputs_00001 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "00001" end vector vector Outputs_00001_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set Outputs to "00001" end vector vector Outputs_00101 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "00101" end vector vector Outputs_01010 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "01010" end vector vector Outputs_01101 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "01101" end vector vector Outputs_10010 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "10010" end vector vector Outputs_10101 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "10101" end vector vector Outputs_11010 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "11010" end vector vector Outputs_11110 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "11110" end vector vector Outputs_11110_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "11" set Outputs to "11110" end vector vector Outputs_X0101 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "X0101" end vector vector Outputs_X1010 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "X1010" end vector vector Outputs_XX010 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "XX010" end vector vector Outputs_XX101 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "XX101" end vector vector Outputs_XXX01 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "XXX01" end vector vector Outputs_XXX10 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Outputs to "XXX10" end vector vector Parallel_inputs_0000 set Clear_bar to "1" set Clock to "0" set Shift_load to "0" set Parallel_inputs to "0000" end vector vector Parallel_inputs_0101 set Clear_bar to "1" set Clock to "0" set Shift_load to "0" set Parallel_inputs to "0101" end vector vector Parallel_inputs_1010 set Clear_bar to "1" set Clock to "0" set Shift_load to "0" set Parallel_inputs to "1010" end vector vector Parallel_inputs_1111 set Clear_bar to "1" set Clock to "0" set Shift_load to "0" set Parallel_inputs to "1111" end vector vector Serial_inputs_00 set Clear_bar to "1" set Clock to "0" set Shift_load to "1" set Serial_inputs to "00" end vector vector Serial_inputs_11 set Clear_bar to "1" set Clock to "0" set Shift_load to "1" set Serial_inputs to "11" 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 Shift_load to "1" set Clock to "0" set D0 to "0" end vector vector D0_1 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set D0 to "1" end vector vector D1_0 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set D1 to "0" end vector vector D1_1 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set D1 to "1" end vector vector D2_0 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set D2 to "0" end vector vector D2_1 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set D2 to "1" end vector vector D3_0 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set D3 to "0" end vector vector D3_1 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set D3 to "1" end vector vector D4_0 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set D4 to "0" end vector vector D4_1 set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set D4 to "1" end vector vector D0_0_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set D0 to "0" end vector vector D0_1_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set D0 to "1" end vector vector D1_0_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set D1 to "0" end vector vector D1_1_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set D1 to "1" end vector vector D2_0_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set D2 to "0" end vector vector D2_1_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set D2 to "1" end vector vector D3_0_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set D3 to "0" end vector vector D3_1_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set D3 to "1" end vector vector D4_0_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set D4 to "0" end vector vector D4_1_ksd set Clear_bar to "1" set Shift_load to "1" set Clock to "0" set Serial_inputs to "kk" set D4 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 Test" repeat 4 times execute Serial_inputs_00 call Clock_cycle (Clock_high__serial) end repeat execute D0_1_ksd repeat 4 times execute Serial_inputs_11 call Clock_cycle (Clock_high__serial) end repeat execute D0_0_ksd end unit unit "awaretest D1 shift Test" repeat 4 times execute Serial_inputs_00 call Clock_cycle (Clock_high__serial) end repeat execute D1_0_ksd repeat 4 times execute Serial_inputs_11 call Clock_cycle (Clock_high__serial) end repeat execute D1_1_ksd end unit unit "awaretest D2 shift Test" repeat 4 times execute Serial_inputs_00 call Clock_cycle (Clock_high__serial) end repeat execute D2_0_ksd repeat 4 times execute Serial_inputs_11 call Clock_cycle (Clock_high__serial) end repeat execute D2_1_ksd end unit unit "awaretest D3 shift Test" repeat 4 times execute Serial_inputs_00 call Clock_cycle (Clock_high__serial) end repeat execute D3_0_ksd repeat 4 times execute Serial_inputs_11 call Clock_cycle (Clock_high__serial) end repeat execute D3_1_ksd end unit unit "awaretest D4 shift Test" repeat 4 times execute Serial_inputs_00 call Clock_cycle (Clock_high__serial) end repeat execute D4_0_ksd repeat 4 times execute Serial_inputs_11 call Clock_cycle (Clock_high__serial) end repeat execute D4_1_ksd end unit unit "awaretest D0 parallel load Test" execute Parallel_inputs_0000 call Clock_cycle (Clock_high__load) execute D0_1 execute Parallel_inputs_1111 call Clock_cycle (Clock_high__load) execute D0_0 end unit unit "awaretest D1 parallel load Test" execute Parallel_inputs_0000 call Clock_cycle (Clock_high__load) execute D1_0 execute Parallel_inputs_1111 call Clock_cycle (Clock_high__load) execute D1_1 end unit unit "awaretest D2 parallel load Test" execute Parallel_inputs_0000 call Clock_cycle (Clock_high__load) execute D2_0 execute Parallel_inputs_1111 call Clock_cycle (Clock_high__load) execute D2_1 end unit unit "awaretest D3 parallel load Test" execute Parallel_inputs_0000 call Clock_cycle (Clock_high__load) execute D3_0 execute Parallel_inputs_1111 call Clock_cycle (Clock_high__load) execute D3_1 end unit unit "awaretest D4 parallel load Test" execute Parallel_inputs_0000 call Clock_cycle (Clock_high__load) execute D4_0 execute Parallel_inputs_1111 call Clock_cycle (Clock_high__load) execute D4_1 end unit !**************************************************************** ! This test assumes that both the J and K_bar inputs are ! controllable. unit "shift only, no clear" repeat 4 times execute Serial_inputs_00 call Clock_cycle (Clock_high__serial) end repeat execute Outputs_00001_ksd repeat 4 times execute Serial_inputs_11 call Clock_cycle (Clock_high__serial) end repeat execute Outputs_11110_ksd repeat 4 times execute Serial_inputs_00 call Clock_cycle (Clock_high__serial) end repeat execute Outputs_00001_ksd end unit unit "parallel load" execute Parallel_inputs_0000 call Clock_cycle (Clock_high__load) execute Outputs_00001 execute Parallel_inputs_1111 call Clock_cycle (Clock_high__load) execute Outputs_11110 execute Parallel_inputs_0000 call Clock_cycle (Clock_high__load) execute Outputs_00001 end unit unit "parallel input, shift output" execute Parallel_inputs_1010 call Clock_cycle (Clock_high__load) execute Outputs_10101 call Clock_cycle (Clock_high__shift) execute Outputs_X1010 call Clock_cycle (Clock_high__shift) execute Outputs_XX101 call Clock_cycle (Clock_high__shift) execute Outputs_XXX10 execute Parallel_inputs_0101 call Clock_cycle (Clock_high__load) execute Outputs_01010 call Clock_cycle (Clock_high__shift) execute Outputs_X0101 call Clock_cycle (Clock_high__shift) execute Outputs_XX010 call Clock_cycle (Clock_high__shift) execute Outputs_XXX01 end unit unit "test clear, parallel input" execute Clear_low execute Parallel_inputs_1111 call Clock_cycle (Clock_high__load) execute Outputs_11110 execute Clear_low end unit unit "test clear, serial inputs" execute Clear_low repeat 4 times execute Serial_inputs_11 call Clock_cycle (Clock_high__serial) end repeat execute Outputs_11110_ksd execute Clear_low end unit unit "circular shift, QD tied to J and K_bar" tied Serial_inputs, QD_output execute Parallel_inputs_1010 call Clock_cycle (Clock_high__load) execute Outputs_10101 call Clock_cycle (Clock_high__shift) execute Outputs_01010 execute Parallel_inputs_0101 call Clock_cycle (Clock_high__load) execute Outputs_01010 call Clock_cycle (Clock_high__shift) execute Outputs_10101 end unit unit "circular shift, QD_bar tied to J and K_bar" tied Serial_inputs, QD_bar_out execute Parallel_inputs_1010 call Clock_cycle (Clock_high__load) execute Outputs_10101 call Clock_cycle (Clock_high__shift) execute Outputs_11010 call Clock_cycle (Clock_high__shift) execute Outputs_01101 execute Parallel_inputs_0101 call Clock_cycle (Clock_high__load) execute Outputs_01010 call Clock_cycle (Clock_high__shift) execute Outputs_00101 call Clock_cycle (Clock_high__shift) execute Outputs_10010 end unit ! End of test