Techniques for functional test pattern execution

Functional debugging of application specific integrated circuits (ASICs) has been recognized as a very labor-intensive and expensive process. We propose a new approach based on the divide and conquer optimization paradigm for the functional test pattern execution. The goal is to maximize the simultaneous controllability of an arbitrary set of the user selected variables in the design at the debugging time for facilitating the functional test pattern execution while minimizing the hardware overhead. The approach imposes minimal restriction on register sharing so that the synthesized designs will have the desired characteristic while minimizing the additional hardware overhead and minimizing the disruption of the optimization potential when scheduling, allocation and binding tasks in high-level synthesis are performed. The effectiveness of the proposed approach is demonstrated on a number of designs.

[1]  Fumio Arakawa,et al.  Design methodology for GMICRO/500 TRON microprocessor , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[2]  Miodrag Potkonjak,et al.  Design-for-Debugging of application specific designs , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[3]  Reinaldo A. Bergamaschi,et al.  Data-path synthesis using path analysis , 1991, 28th ACM/IEEE Design Automation Conference.

[4]  Elizabeth M. Rudnick,et al.  Enhancing high-level control-flow for improved testability , 1996, ICCAD 1996.

[5]  Christos A. Papachristou,et al.  Test synthesis in the behavioral domain , 1995, Proceedings of 1995 IEEE International Test Conference (ITC).

[6]  Daniel P. Siewiorek,et al.  Automated Synthesis of Data Paths in Digital Systems , 1986, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[7]  Fadi J. Kurdahi,et al.  REAL: A Program for REgister ALlocation , 1987, 24th ACM/IEEE Design Automation Conference.

[8]  Taewhan Kim,et al.  Register allocation for data flow graphs with conditional branches and loops , 1993, Proceedings of EURO-DAC 93 and EURO-VHDL 93- European Design Automation Conference.

[9]  Yu-Chin Hsu,et al.  Data path allocation based on bipartite weighted matching , 1990, 27th ACM/IEEE Design Automation Conference.

[10]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[11]  Carlos Urias Munoz,et al.  Automatic Generation of Random Self-Checking Test Cases , 1983, IBM Syst. J..

[12]  Kunle Olukotun,et al.  A software-hardware cosynthesis approach to digital system simulation , 1994, IEEE Micro.

[13]  A. Fettweis Wave digital filters: Theory and practice , 1986, Proceedings of the IEEE.

[14]  Pierre G. Paulin,et al.  Force-directed scheduling for the behavioral synthesis of ASICs , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[15]  G. Brown,et al.  Automatic test generation for functional verification of microprocessors , 1994, Proceedings of IEEE 3rd Asian Test Symposium (ATS).

[16]  Audra E. Kosh,et al.  Linear Algebra and its Applications , 1992 .

[17]  Niraj K. Jha,et al.  Behavioral synthesis for easy testability in data path scheduling , 1992, ICCAD.

[18]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[19]  Miodrag Potkonjak,et al.  Design-for-debugging of application specific designs , 1995, ICCAD.

[20]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[21]  K. D. Jones,et al.  The automatic generation of functional test vectors for Rambus designs , 1996, DAC '96.

[22]  Miodrag Potkonjak,et al.  Fast prototyping of datapath-intensive architectures , 1991, IEEE Design & Test of Computers.

[23]  L. Stok Transfer free register allocation in cyclic data flow graphs , 1992, [1992] Proceedings The European Conference on Design Automation.

[24]  Daniel P. Siewiorek,et al.  Functional test generation for pipelined computer implementations , 1991, [1991] Digest of Papers. Fault-Tolerant Computing: The Twenty-First International Symposium.

[25]  Wen-Jong Fang,et al.  A real-time RTL engineering-change method supporting on-line debugging for logic-emulation applications , 1997, DAC.

[26]  Wolfgang Rosenstiel,et al.  Breakpoints and Breakpoint Detection in Source Level Emulation , 1996, TODE.

[27]  Randy H. Katz,et al.  Verifying a multiprocessor cache controller using random test generation , 1990, IEEE Design & Test of Computers.

[28]  A. W. M. van den Enden,et al.  Discrete Time Signal Processing , 1989 .

[29]  Wolfgang Rosenstiel,et al.  Debugging of behavioral VHDL specifications by source level emulation , 1995, Proceedings of EURO-DAC. European Design Automation Conference.

[30]  Elizabeth M. Rudnick,et al.  Enhancing high-level control-flow for improved testability , 1996, Proceedings of International Conference on Computer Aided Design.

[31]  Bogdan Korel,et al.  Dynamic method for software test data generation , 1992, Softw. Test. Verification Reliab..

[32]  Takeshi Ogura,et al.  High-level design validation using algorithmic debugging , 1994, Proceedings of European Design and Test Conference EDAC-ETC-EUROASIC.

[33]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[34]  A.V. Oppenheim,et al.  Analysis of linear digital networks , 1975, Proceedings of the IEEE.

[35]  J.E. DeGroat,et al.  Experiences in testing and debugging the i960 MX VHDL model , 1994, Proceedings of VHDL International Users Forum.

[36]  Aharon Aharon,et al.  Test Program Generation for Functional Verification of PowePC Processors in IBM , 1995, 32nd Design Automation Conference.

[37]  Frank Vahid,et al.  System specification with the SpecCharts language , 1992, IEEE Design & Test of Computers.

[38]  Jen-Tien Yen,et al.  Multiprocessor design verification for the PowerPC 620 microprocessor , 1995, Proceedings of ICCD '95 International Conference on Computer Design. VLSI in Computers and Processors.

[39]  Alice C. Parker,et al.  The high-level synthesis of digital systems , 1990, Proc. IEEE.

[40]  Niraj K. Jha,et al.  Behavioral synthesis for easy testability in data path scheduling , 1992, 1992 IEEE/ACM International Conference on Computer-Aided Design.

[41]  Ahmed Amine Jerraya,et al.  Automatic generation of interfaces for distributed C-VHDL cosimulation of embedded systems: an industrial experience , 1996, Proceedings Seventh IEEE International Workshop on Rapid System Prototyping. Shortening the Path from Specification to Prototype.

[42]  Ingo Könenkamp,et al.  A prototyping system for verification and evaluation in hardware-software cosynthesis , 1995, Proceedings Sixth IEEE International Workshop on Rapid System Prototyping. Shortening the Path from Specification to Prototype.