Pattern Generation for Coding Error Detection in VHDL Behavioral-Level Designs

VHDL 행위-레벨 설계의 코딩오류 검출을 위한 패턴 생성

  • 김종현 (광원대학교 전자재료공학과) ;
  • 박승규 (광원대학교 전자재료공학과) ;
  • 서영호 (광원대학교 전자재료공학과) ;
  • 김동욱 (광원대학교 전자재료공학과)
  • Published : 2001.03.01

Abstract

Recently, the design method by VHDL coding and synthesis has been used widely. As the integration ratio increases, the amount design by VHDL at a time also increases so many coding errors occur in a design. Thus, lots of time and effort is dissipated to detect those coding errors. This paper proposed a method to verify the coding errors in VHDL behavioral-level designs. As the methodology, we chose the method to detect the coding error by applying the generated set of verifying patterns and comparing the responses from the error-free case(gold unit) and the real design. Thus, we proposed an algorithm to generate the verifying pattern set for the coding errors. Verifying pattern generation is peformed for each code and the coding errors are classified as two kind: condition errors and assignment errors. To generate the patterns, VHDL design is first converted into the corresponding CDFG(Control & Data Flow Graph) and the necessary information is extracted by searching the paths in CDFG. Path searching method consists of forward searching and backward searching from the site where it is assumed that coding error occurred. The proposed algorithm was implemented with C-language. We have applied the proposed algorithm to several example VHDL behavioral-level designs. From the results, all the patterns for all the considered coding errors in each design could be generated and all the coding errors were detectable. For the time to generate the verifying patterns, all the considered designed took less than 1 [sec] of CPU time in Pentium-II 400MHz environments. Consequently, the verification method proposed in this paper is expected to reduce the time and effort to verify the VHDL behavioral-level designs very much.

최근 VHDL 코딩 및 합성방법에 의한 설계가 널리 사용되고 있다. 집적도가 증가함에 따라 VHDL에 의한 설계 또한 그 분량이 증가하여 많은 코딩오류가 발생하고 있으며, 이를 검색하는데 많은 시간과 노력이 소요되고 있다. 본 논문에서는 VHDL 행위-레벨 설계를 대상으로 코딩오류를 검색하는 방법을 제안하였다. 그 방법에 있어서는 검색패턴을 생성하여 오류가 없는 응답과 설계의 응답을 비교함으로써 설계오류를 찾는 방법을 택하였다. 따라서 본 논문에서는 코딩오류를 검색하기 위한 검색패턴을 생성하는 알고리듬을 제안하였다. 검색패턴 생성은 각 코드에 대해 수행하며, 할당오류와 조건오류를 구분하여 수행하였다. 패턴생성을 위해 VHDL 코드를 CDFG로 변환하여 사용하며, CDFG상의 경로를 탐색하여 패턴생성에 필요한 정보를 추출한다. 경로탐색은 오류가 발생하였다고 가정한 지점으로부터 역방향 탐색과 정방향 탐색을 수행하여 패턴을 생성한다. 제안한 알고리듬은 C-언어로 구현하였다. 펜티엄-Ⅱ 400MHz의 환경에서 여러 가지 VHDL 행위-레벨 설계를 대상으로 제안한 알고리듬을 적용하였다. 그 결과, 고려한 모든 설계의 모든 코드에 대한 검색패턴을 생성할 수 있었으며, 가정한 모든 오류를 검색할 수 있었다. 검색패턴 생성에 소요되는 시간은 고려한 모든 대상 설계에서 1초 미만의 CPU 시간을 보여 속도면에서도 매우 우수함을 나타내었다. 따라서 본 논문에서 제안한 검색방법은 VHDL에 의한 설계에서 설계검증에 필요한 시간과 노력을 상당히 감소시킬 것으로 기대된다.

Keywords

References

  1. IEEE Standard VHDL Language Reference Manual, IEEE, NY, 1987
  2. 손진우 외 3명, '고속 ASIC 설계기술 동향', 한국전자통신기술연구소 주간기술동향, 제745호, pp.1-11, 1996년 5월
  3. 유영욱, 'System IC의 기술 동향', 대한전자공학회 학회지, 제25권, 제5호, pp.416-424, 1998. 5
  4. IEEE, IEEE Standard Harduxire Description Language Based on the Verilog Harduxire Description Language, IEEE Computer Society, 1995
  5. K Skahill, '프로그래머블 로직을 위한 VHDL 디자인의 최적화', Electronic Engineering, pp.58-64, 1998년 3월
  6. J. R. Burch, et al., 'Symbolic Model Checking for Sequential Circuit Verification', IEEE Trans. CAD, Vol.13, No.4, pp.401-424, April 1994 https://doi.org/10.1109/43.275352
  7. M. C. McFarland, 'Formal Verification of Sequential Hardware: a Tutorial', IEEE Trans. CAD, Vol.12, Vo.5, pp.633-654, May 1993 https://doi.org/10.1109/43.277609
  8. W. Ecker, 'Verification Methods for VHDL RTL-Subroutines', J. Systems Architecture, Vol. 42, pp.117-128, 1996 https://doi.org/10.1016/1383-7621(96)00018-5
  9. Formality, Synopsys, 1998
  10. Affuma, Cadence, 1998
  11. Y. V. Hoskote, et al., 'Automated Verification of Implementations of Large Circuits Against HDL Specifications', IEEE Trans. CAD, Vol.16, No.3, pp.217~228, March 1997 https://doi.org/10.1109/43.594828
  12. Fazan Fallah, Srinivas Devadas, and Kurt Keutzer, 'OCCOM: Efficient Computation of Observability-Based Code Coverage Materics for Functional Verification', IEEE DAG98, pp. 152-157, 1998
  13. R. Vermrri and R Kalyanaraman, 'Generation of Design Verification Tests from Behavior VHDL Programs using Path Enumeration and Constraint Programming', IEEE Trans. on VLSI Systems, Vol. 3, No.2, pp. 201-214, June 1995 https://doi.org/10.1109/92.386221
  14. J. P. Roth, 'Diagnosis of Automata Failures: A Calculus and a Metho', IBM J. Res. Dev., Vol.10, No.4, pp.278-291, July 1966
  15. C. Benrrehrez and I. F. McDonald, ''Measured Performance of a Programmed Implementation of the Subscribed Dr-Algorithm', Proc, 20th DA Conf., pp.308-315, 1983
  16. P. Gael, 'An Implicit Enumeration Algorithm to Generate Tests for Combinational Logic Circuits', IEEE Trans. Computers, Vol.C-20, No.12, pp.1496-1506, Dec.1971
  17. J. J. Thomas, 'Automated Diagnostic Test Programs for Digital Networks', Computer Designs, pp.63-67, Aug. 1971