90 likes | 208 Views
This paper presents techniques for improving testability in digital system synthesis, focusing on controllability, observability, and sequential depth reduction. Through advanced path scheduling methods such as ASAP and ALAP, we aim to enhance the efficiency and effectiveness of test generation. The findings provide insights into the dynamics of primary inputs and their impact on circuit testability, offering methods to manage the complexity of sequential circuits. This work lays a foundation for more robust digital design practices at the Indian Institute of Science, Bangalore, and IIT Kanpur.
E N D
Synthesisfor Test Virendra Singh Indian Institute of Science Bangalore virendra@computer.org IEP on Digital System Synthesis @ IIT Kanpur
Testability • Objective • Improve • Controllability • Observability • Reduction in sequential depth SfT@iitk
Controllability Primary input a Primary input 0 R(a) 0 + + * R(b) 1 1 R(b) - * - 2 R(c) 2 R(c) R = (b,c, …) Not directly controllable R = (a,b,c, …) Directly controllable SfT@iitk
t R1(w) t R1(w) + * + t+1 t+1 * R1(x) - R1(x) R1(y) R2(y) - t+2 t+2 * t+3 * R1(z) t+3 Observability R2(z) R1 = (….,w,x, …) Not directly observable SfT@iitk
t R1(w) *1 t+1 R2(v) R3(s) R1(x) *2 - t+2 R3(u) R2(y) + t+3 R2(z) Sequential Depth Reduction t R1(w) R2(v) *2 *1 t+1 R3(s) R1(x) R2(y) - t+2 R3(u) + t+3 R2(z) SfT@iitk
Mobility Path 1 2 * 6 * * 8 + 10 * TIME 1 * 7 * + 9 < 3 11 TIME 2 - 4 TIME 3 - 5 TIME 4 SfT@iitk
Mobility Path + * * TIME 1 - * TIME 2 - TIME 3 TIME 4 SfT@iitk
Mobility Path Scheduling • Mobility_path_scheduling(G){ • ASAP_scheduling(G); • ALAP_scheduling(G); • Update_op_slack_and_mobility(G); • While (unscheduled_op(G) ≠ 0){ • Pk = next_min_mobility_path(G); • partial scheduling(Pk, G); • testMP(Pk, G); /analyze testability on Pk • } • } SfT@iitk
Mobility Path Scheduling • partial_scheduling(Pk,G){ • For each (operation o on Pk) • if (o.earliest = o.latest) // mobility becomes 0 • o.active = o.earliest // assign schedule • Update_op_slack_and)mobility(G); • While (unscheduled_op (Pk) ≠ 0){ • (o, o.ll_cycles) = next_op_with _least_no_light_load_cycles(Pk, G); • o.active = most_preferred_cycle(o.ll_cycles, G); SfT@iitk