Nothing Special   »   [go: up one dir, main page]

KR19990079355A - Test bench generator and simulation method using the same - Google Patents

Test bench generator and simulation method using the same Download PDF

Info

Publication number
KR19990079355A
KR19990079355A KR1019980011900A KR19980011900A KR19990079355A KR 19990079355 A KR19990079355 A KR 19990079355A KR 1019980011900 A KR1019980011900 A KR 1019980011900A KR 19980011900 A KR19980011900 A KR 19980011900A KR 19990079355 A KR19990079355 A KR 19990079355A
Authority
KR
South Korea
Prior art keywords
submodule
files
simulation
test bench
file
Prior art date
Application number
KR1019980011900A
Other languages
Korean (ko)
Inventor
한성철
Original Assignee
윤종용
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자 주식회사 filed Critical 윤종용
Priority to KR1019980011900A priority Critical patent/KR19990079355A/en
Publication of KR19990079355A publication Critical patent/KR19990079355A/en

Links

Landscapes

  • Tests Of Electronic Circuits (AREA)

Abstract

본 발명은 전자회로 설계를 위한 HDL(Hardware Description Language)에 관한 것으로서, 구체적으로는 HDL을 이용한 전자 회로 설계시 서브모듈(submodule)의 시뮬레이션(simulation)을 위한 테스트벤치(testbench)를 자동으로 생성할 수 있는 테스트벤치 발생기(testbench generator)와 이를 이용하여 서브모듈을 시뮬레이션하는 방법에 관한 것으로, 테스트벤치 발생기(10)는 해당되는 서브모듈의 베릴로그 파일(100)을 취하여 네 개의 테스트벤치 파일들을 자동으로 생성한다. 이들 파일들 중 소정의 두 개의 파일들은 탑모듈 시뮬레이션(20)에서 사용되어져 서브모듈 시뮬레이션(30)에서 사용될 두 개의 파일들을 생성하고, 이들과 상기 테스트벤치 파일들중 나머지 두 개의 파일들은 서브모듈 시뮬레이션(30)에 사용되어져 최종적인 결과 파일이 생성된다.The present invention relates to a hardware description language (HDL) for electronic circuit design, and more particularly, to automatically generate a testbench for simulation of a submodule when designing an electronic circuit using HDL. The testbench generator and a method for simulating a submodule using the testbench generator, the testbench generator 10 takes the beryllog file 100 of the corresponding submodule and automatically generates four testbench files. To create. Any two of these files are used in the top module simulation 20 to generate two files to be used in the submodule simulation 30, and these and the other two of the testbench files are submodule simulations. It is used at 30 to produce the final result file.

Description

테스트벤치 발생기 및 이를 이용한 시뮬레이션 방법(TESTBENCH GENERATOR AND SIMULATION METHOD)Testbench Generator and Simulation Method Using the Same (TESTBENCH GENERATOR AND SIMULATION METHOD)

본 발명은 전자회로 설계를 위한 HDL(Hardware Description Language)에 관한 것으로서, 구체적으로는 HDL을 이용한 전자 회로 설계시 서브모듈(submodule)의 시뮬레이션(simulation)을 위한 테스트벤치(testbench)를 자동으로 생성할 수 있는 테스트벤치 발생기(testbench generator)와 이를 이용하여 서브모듈을 시뮬레이션하는 방법에 관한 것이다.The present invention relates to a hardware description language (HDL) for electronic circuit design, and more particularly, to automatically generate a testbench for simulation of a submodule when designing an electronic circuit using HDL. A testbench generator that can be used and how to simulate a submodule using the same.

HDL(Hardware Description Language)은 ASIC(application specific integrated circuit), VLSI(very large scale integration) 회로 등의 전자 회로 설계시에 사용되는 언어이다. HDL을 이용한 회로의 설계는 사용되는 각 부품들의 상호 연결 관계를 일정한 문법에 의하여 기술하고, 기술된 결과는 해당 시뮬레이터를 통하여 시뮬레이션이 가능하다. 이를 통해, 설계된 회로의 특성을 검증하고, 최종적으로는 해당되는 회로의 패턴까지 완성할 수 있게 된다. 이러한 HDL 중 한 예로서, 베릴로그 HDL(Verilog HDL)이 있다. 베릴로그 HDL을 이용하여 설계된 로직(logic)은 베릴로그 시뮬레이터(simulator)로 시뮬레이션(simulation)을 하게 된다.Hardware Description Language (HDL) is a language used in electronic circuit design such as application specific integrated circuit (ASIC) and very large scale integration (VLSI) circuit. The design of the circuit using HDL describes the interconnection relationship of each component by using a certain grammar, and the described result can be simulated by the simulator. Through this, it is possible to verify the characteristics of the designed circuit, and finally to complete the pattern of the corresponding circuit. One example of such HDL is Verilog HDL. Logic designed using Beryllog HDL is simulated with a Beryllog simulator.

일반적으로, 하드웨어의 개발시에 회로 설계자는 여러 가지로 하드웨어의 사양을 변경시키면서 회로를 설계하게 된다. 베릴로그 HDL을 사용하여 하드웨어를 설계할 때에 그 구조는 다단계의 계층적인 구조를 갖는 여러 가지 모듈로 구성된다. 그런데 소규모의 회로 수정 이후에도 전체 회로를 대상으로하여 다시 시뮬레이션을 하게 되면, 시뮬레이션에 따른 TAT(Turn-Around Time)가 너무 길어 시뮬레이션의 효율을 크게 저하시키게 된다.In general, in the development of hardware, circuit designers design circuits while changing various hardware specifications. When designing hardware using Beryllog HDL, the structure consists of several modules with a multi-level hierarchical structure. However, if the simulation is performed again for the entire circuit after a small circuit modification, the turn-around time (TAT) of the simulation is too long, which greatly reduces the efficiency of the simulation.

그러므로 시뮬레이션의 대상이 되는 하드웨어가 여러 개의 서브모듈로 구성될 때 정상 동작하는 서브모듈은 시뮬레이션의 대상에서 제외시키고 현재 수정을 가하고자 하는 서브모듈만을 대상으로 시물레이션을 수행할 필요가 있다. 이를 위해서 종래에는 수작업으로 서브 모듈을 위한 테스트벤치(testbench)를 별도로 작성해야 했다. 이 방식의 문제점은 별도로 작성되는 테스트벤치에서 가해지는 입력(stimulus)은 다른 모듈과의 상호 관계에서 만들어지는 것이므로 정확하게 묘사하기에 어려운 문제점이 있다.Therefore, when the hardware to be simulated consists of several submodules, it is necessary to exclude the submodules that are operating normally and perform simulation only on the submodules to be modified. To this end, conventionally, a testbench for a submodule had to be manually created. The problem with this method is that it is difficult to describe accurately because the stimulus applied in the testbench created separately is made in the relationship with other modules.

따라서, 본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로서, HDL을 이용한 전자 회로 설계시 서브모듈의 시뮬레이션을 위한 테스트벤치를 자동으로 생성할 수 있는 테스트벤치 발생기를 제공하는데 있다.Accordingly, an object of the present invention has been proposed to solve the above-mentioned problems, and to provide a test bench generator that can automatically generate a test bench for simulation of a sub-module when designing an electronic circuit using HDL.

본 발명의 다른 목적에 의하면 HDL을 이용한 전자 회로 설계시 서브모듈의 시뮬레이션을 위한 테스트벤치를 자동으로 생성할 수 있는 테스트벤치 발생기를 이용하여 서브모듈을 시뮬레이션하는 방법을 제공하는데 있다.Another object of the present invention is to provide a method for simulating a submodule using a testbench generator capable of automatically generating a testbench for simulation of a submodule when designing an electronic circuit using HDL.

도 1은 본 발명의 실시예에 따른 테스트벤치 발생기를 이용한 시뮬레이션 방법을 보여주는 도면; 그리고1 is a view showing a simulation method using a test bench generator according to an embodiment of the present invention; And

도 2는 본 발명의 실시예에 따른 테스트벤치 발생기의 동작의 흐름을 나타내는 플로우챠트이다.2 is a flowchart illustrating a flow of operation of a test bench generator according to an exemplary embodiment of the present invention.

상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면, HDL로 설계되며, 다단계의 모듈로 구성된 전자 회로의 시뮬레이션 방법은: 특정 서브모듈의 시뮬레이션을 위한 삽입 파일 및 테스트벤치 파일들을 생성하는 테스트벤치 발생기를 이용하여 해당되는 복수개의 파일들을 생성하는 단계와; 생성된 복수개의 삽입 파일들 중에서 상기 서브모듈의 입력과 출력에 대한 각각의 파일들을 이용하여 탑모듈 시뮬레이션을 수행하는 단계와; 상기 탑모듈 시뮬레이션 후에 생성된 서브모듈 시뮬레이션을 위한 파일들과, 상기 테스트벤치 파일중 특정 테스트벤치 파일을 이용하여 해당되는 서브모듈 시뮬레이션을 수행하는 단계를 포함한다.According to a feature of the present invention for achieving the object of the present invention as described above, the simulation method of an electronic circuit designed in HDL, consisting of a multi-stage module: Insert files and testbench files for the simulation of a specific submodule Generating a plurality of files using a test bench generator to generate; Performing a top module simulation using respective files for input and output of the submodule among a plurality of generated insertion files; And performing a corresponding submodule simulation by using files for the submodule simulation generated after the top module simulation and a specific testbench file among the testbench files.

이 실시예에 있어서, 상기 테스트벤치 발생기는: 상기 서브모듈의 HDL파일로부터 해당되는 서브모듈의 이름과, 부가적인 정보들을 포함하는 상기 서브모듈의 정보를 분석하고; 복수개의 상기 테스트벤치 파일들의 저장을 위해 각각의 파일들을 오픈하고 해당되는 헤더 정보를 기록하며; 구비된 복수개의 노드를 순차적으로 분석하여 입력, 출력, 입출력 노드 중 어느 하나인가를 판단하고, 이에 따라 상기 테스트벤치 파일들 중에 대응된 파일에 해당되는 정보를 입력한다.In this embodiment, the test bench generator is configured to: analyze information of the submodule including the name of the corresponding submodule and additional information from the HDL file of the submodule; Open respective files and record corresponding header information for storage of a plurality of said test bench files; A plurality of nodes are sequentially analyzed to determine one of input, output, and input / output nodes, and accordingly, information corresponding to a corresponding file among the test bench files is input.

이상과 같은 본 발명에 의하면, 테스트벤치 발생기는 해당되는 서브모듈의 베릴로그 파일을 취하여 상기 서브모듈의 시뮬레이션을 위한 네 개의 파일들을 생성하고, 이들 파일들 중 해당되는 파일들은 각각 탑모듈 시뮬레이션과, 서브모듈 시뮬레이션에 사용되어 진다. 그러므로 특정 서브모듈의 시뮬레이션을 자동적으로 실행할 수 있다.According to the present invention as described above, the test bench generator takes the beryllog file of the corresponding submodule to generate four files for the simulation of the submodule, the corresponding files of these files are respectively the top module simulation, Used for submodule simulation. Therefore, the simulation of a specific submodule can be executed automatically.

(실시예)(Example)

이하 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 테스트벤치 발생기를 이용한 시뮬레이션 방법을 보여주는 도면이고, 그리고 도 2는 본 발명의 실시예에 따른 테스트벤치 발생기의 동작의 흐름을 나타내는 플로우챠트이다. 도 1에서 '*'로 표시된 블록은 자동 생성 파일들을 표시하고, 점선으로 표시되는 라인들은 자동으로 생성되는 과정과 자동으로 삽입(include)되는 것을 보여주고 있다.1 is a view showing a simulation method using a test bench generator according to an embodiment of the present invention, and Figure 2 is a flow chart showing the flow of operation of the test bench generator according to an embodiment of the present invention. Blocks marked with '*' in FIG. 1 indicate auto-generated files, and the lines indicated by dotted lines show the process of being automatically generated and automatically included.

도 1을 참조하여, 본 발명의 실시예에 따른 테스트벤치 발생기(10)는 C언어(C language)로 작성 가능한 프로그램이다. 상기 테스트벤치 발생기(10)는 실행시에 1개의 인수(argument)를 취하게 되는데, 이는 시뮬레이션 대상이 되는 특정 서브모듈의 베릴로그 파일(100)이다. 상기 베릴로그 파일(100)에는 단 1개의 서브모듈(submodule)만을 포함하고 있다. 이 서브모듈의 베릴로그 파일(100)에는 입력, 출력 및 입출력 포트에 대한 정보를 포함하고 있으며, 상기 테스트벤치 발생기(10)에서는 상기 베릴로그 파일(100)로부터 입력, 출력 및 입출력 포트에 대한 정보를 취하여 3개의 삽입 파일(include file)들과, 1개의 테스트 벤치 파일(testbench file)을 생성한다. 이 4개의 파일들은 [module_name].in.inc(210), [module_name].out.inc(220), [module_name]_sub.out.inc(230) 삽입 파일들과 그리고 [module_name]_sub_tb.v(240) 테스트 벤치 파일이다. 단, 여기서 [module_name]은 인수로 주어지는 상기 베릴로그 파일(100)의 서브모듈의 이름이다(이하, [module_name]은 '∼'로 표시한다).Referring to Figure 1, the test bench generator 10 according to an embodiment of the present invention is a program that can be written in C language (C language). The test bench generator 10 takes one argument when executed, which is the beryllog file 100 of a specific submodule to be simulated. The beryllog file 100 includes only one submodule. The beryllog file 100 of this submodule includes information on input, output, and input / output ports, and the test bench generator 10 includes information on input, output, and input / output ports from the beryllog file 100. Create three include files and one testbench file. These four files are the [module_name] .in.inc (210), [module_name] .out.inc (220), [module_name] _sub.out.inc (230) insert files and [module_name] _sub_tb.v ( 240) This is a test bench file. Here, [module_name] is the name of the submodule of the beryllog file 100 which is given as an argument (hereinafter, [module_name] is represented by '˜').

상기 ∼.in.inc(210)은 상기 서브모듈의 입력 포트에 생기는 변화를 감지하기 위한 코드를 포함하고 있는 파일이고, 상기 ∼.out.inc(220)은 상기 서브모듈의 출력포트에 생기는 변화를 기록하기 위한 코드를 포함하는 파일이다. 상기 ∼_sub.out.inc(230)은 후에 서브모듈 시뮬레이션(30)시 사용되는 파일이고, 상기 ∼_sub_tb.v(240)은 서브모듈만을 위한 테스트벤치이다.The ~ .in.inc (210) is a file containing code for detecting a change in the input port of the submodule, the ~ .out.inc (220) is a change that occurs in the output port of the submodule This file contains the code for recording. The ~ _sub.out.inc 230 is a file used later in the submodule simulation 30, and the ~ _sub_tb.v 240 is a test bench for only the submodule.

상기와 같은 4개의 파일들 중에서 상기 ∼.in.inc(210)과, ∼.out.inc(220) 두 개의 파일들은 탑-모듈 시물레이션(Top-module Simulation)(20)시에 사용된다. 즉, 베릴로그 HDL로 설계된 하드웨어 전체를 시뮬레이션하기 위한 테스트벤치의 마지막 부분에 삽입 명령을 이용하여 상기 ∼.in.inc(210)과, ∼.out.inc(220) 두 개의 파일들과, 별도의 탑-모듈용 테스트벤치인 ∼_sub_tb.v(300) 파일을 삽입하여 탑-모듈 시뮬레이션(20)을 수행하게 된다. 이 결과 다음과 같은 세 개의 파일들: [module_name].sti(410), [module_name].clk(420) 그리고 [module_name].prb(510)이 생성된다.Of these four files, the two files ˜.in.inc 210 and ˜.out.inc 220 are used in the top-module simulation 20. In other words, the two files, ~ .in.inc (210) and ~ .out.inc (220), are separated from each other by using an insert command at the end of the test bench to simulate the entire hardware designed in Beryllog HDL Top-module simulation 20 is performed by inserting a ~ _sub_tb.v (300) file which is a test bench for the top-module. This results in three files: [module_name] .sti (410), [module_name] .clk (420) and [module_name] .prb (510).

상기 ∼.sti(410) 파일에는 서브모듈의 입력 및 입출력 포트에 가해지는 입력이 저장된다. 상기 ∼.clk(420)에는 클럭(clock)에 대한 정의가 포함되어 있다. 클럭과 같은 규칙성을 갖는 신호를 일반 입력과 구분하여 처리함으로써 상기 ∼.sti(410) 파일의 크기를 크게 줄일 수 있게 된다. 상기 ∼.prb(510) 파일은 서브모듈의 출력포트를 일정한 간격으로 샘플링(sampling)한 것으로, 후에 서브모듈 시뮬레이션 후 생성되는 ∼_sub.prb(520)과 비교할 수 있는 형식이다.The ~ .sti (410) file stores inputs applied to the input and output ports of the submodule. The clk 420 includes a definition of a clock. By processing a signal having a regularity such as a clock separately from a general input, the size of the ~ .sti (410) file can be greatly reduced. The ~ .prb 510 file is a sampled sample of the output port of the submodule at a predetermined interval, and can be compared with the ~ _sub.prb 520 generated after the submodule simulation.

상기 테스트벤치 발생기(10)로부터 생성된 삽입 파일들 ∼_sub.out.inc(230)과, ∼_sub.tb.v(240) 그리고 상기 탑모듈 시뮬레이션(20)에서 생성된 두 개의 파일들 ∼.sti(410)와, ∼.clk(420)은 서브모듈 시뮬레이션(30)에서 사용되어진다. 상기와 같은 파일들을 이용하여 서브모듈 시뮬레이션(30)이 완료되면 최종적으로 ∼_sub.prb(520)는 파일이 생성된다. 이는 해당되는 서브모듈의 시물레이션 결과이다.Insert files generated from the test bench generator 10 ˜_sub.out.inc 230, ˜_sub.tb.v 240, and two files generated from the top module simulation 20 ˜. sti 410 and ˜.clk 420 are used in the submodule simulation 30. When the submodule simulation 30 is completed using the files as described above, the file _sub.prb 520 is finally generated. This is the simulation result of the corresponding submodule.

한편, 서브모듈을 위한 테스트벤치의 작성을 완전히 자동화하기 위해서는 상기 서브모듈의 베릴로그 파일(100)에 포함되는 기본적인 정보 외에 여러 가지 부가정보가 전달되어야 한다. 이를 위해 매번 테스트벤치 생성기(10) 수행시에 사용자로부터 부가적인 정보의 입력을 요구한다면 매우 불편하게 된다. 그러므로 컴파일러 다이렉티브(Compiler Directive)를 사용하여 부가정보를 상기 서브모듈의 베릴로그 파일(100)에 삽입시킨다. 삽입되는 부가정보의 일 예는 다음과 같다.Meanwhile, in order to completely automate the creation of the test bench for the submodule, various additional information must be delivered in addition to the basic information included in the beryllog file 100 of the submodule. To this end, it is very inconvenient to request additional information from the user every time the test bench generator 10 is executed. Therefore, the additional information is inserted into the beryllog file 100 of the submodule using a compiler directive. An example of additional information to be inserted is as follows.

//$OBSERVE sigA// $ OBSERVE sigA

//$CLOCK sigB// $ CLOCK sigB

//$HIERARCHY U1.U2.U4// $ HIERARCHY U1.U2.U4

//$PERIOD 1000// $ PERIOD 1000

//$STROBE 880// $ STROBE 880

//$SIMULATION_TIME 324000// $ SIMULATION_TIME 324000

//$BIDIR_CONTROL_OE sigA oeA// $ BIDIR_CONTROL_OE sigA oeA

//$BIDIR_CONTROL_OEB sigB oebB// $ BIDIR_CONTROL_OEB sigB oebB

이상과 같은 컴파일러 다이렉티브는 베릴로그 HDL에서는 주석(comment)을 의미하는 '//'으로 시작하므로 시뮬레이션 수행에는 아무런 영향을 끼치지 않고, 상기 테스트벤치 발생기(10)에만 해당 정보를 전달할 수 있다.Since the compiler directive as described above starts with '//' in the Beryllogue HDL, the information can be transmitted only to the test bench generator 10 without affecting the simulation. .

상기 $OBSERVE는 기본적인 출력 신호외에 내부 노드(NODE)를 관찰하여 출력 파일에 저장하기 위한 것이다. 상기 $CLOCK은 sigA가 일반적인 신호가 아닌 주기성을 갖는 클럭 신호임을 의미한다. 상기 $HIERARCHY는 현재의 서브모듈이 최상위 수준의 테스트 벤치에서 차지하는 계층적 위치를 의미한다. 상기 $PERIOD는 출력 파일 생성시 출력 신호를 관찰하는 주기를 나타낸다. 상기 $STROBE는 한 주기 내에서 관찰하는 시점을 의미한다. 상기 $SIMULATION_TIME은 전체 시뮬레이션 시간을 의미한다. 양방향 신호일 경우 방향 제어 신호를 이용하여 입력인지 출력인지를 결정하게 되는데, 출력 인에이블(Out Enable) 신호가 엑티브-하이(active-high)이면 상기 $BIDIR_CONTROL_OE를 사용하게 되고, 엑티브-로우(active-low)이면 상기 $BIDIR_CONTROL_OEB를 사용한다.The $ OBSERVE is for observing an internal node (NODE) in addition to the basic output signal and storing it in the output file. The $ CLOCK means that sigA is a clock signal having periodicity, not a general signal. The $ HIERARCHY refers to a hierarchical position occupied by the current submodule in the top level test bench. The $ PERIOD represents a period for observing an output signal when generating an output file. The $ STROBE means a time point observed within one period. The $ SIMULATION_TIME means the total simulation time. In the case of the bidirectional signal, the direction control signal is used to determine whether it is an input or an output. When the output enable signal is active-high, the $ BIDIR_CONTROL_OE is used and the active-low signal is active-high. low), the $ BIDIR_CONTROL_OEB is used.

한편, 상기 테스트벤치 발생기(10)는 도 2에 도시된바와 같은 동작에 의해 상기 4개의 삽입 파일들(210, 220, 230, 240)을 생성한다.Meanwhile, the test bench generator 10 generates the four insertion files 210, 220, 230, and 240 by an operation as shown in FIG. 2.

도 2를 참조하여, 상기 테스트벤치 발생기(10)는 단계 S110에서 상기 서브 모듈의 베릴로그 파일(100)로부터 해당되는 서브모듈의 이름과, 이에 포함되어 있는 부가적인 정보 등을 포함하는 상기 서브모듈의 정보들을 분석(parsing)한다. 이 단계에서 필요한 경우 수동 입력(manual input)을 통해 필요한 데이터들을 입력받을 수도 있다. 단계 S120에서는 복수개의 테스트벤치 파일들의 저장을 위해 각각의 파일들을 오픈하고 해당되는 헤더 정보를 기록한다. 그리고 단계 S130에서는 구비된 복수개의 노드를 순차적으로 분석하여 입력, 출력, 입출력 노드 중 어느 하나인 것을 판단하고, 그에 따라 오픈된 상기 테스트벤치 파일들 중에 대응된 파일에 해당되는 정보를 입력한다.Referring to FIG. 2, the test bench generator 10 includes the submodule including the name of the corresponding submodule from the beryllog file 100 of the submodule and additional information included in the sub-module in step S110. Parsing information from At this stage, necessary data may be input through manual input if necessary. In step S120, the respective files are opened for storing the plurality of test bench files and the corresponding header information is recorded. In operation S130, the plurality of nodes may be sequentially analyzed to determine whether the input, output, or input / output node is one of the input, output, and input information corresponding to the corresponding file among the test bench files opened accordingly.

구체적으로 단계 S131에서는 각 노드의 특성을 입력하고, 단계 S132에서는 입력노드(input node)인가를 판단하고, 입력노드인 경우는 해당 입력노드의 Observing Code를 발생하고, 단계 S134에서는 출력노드(output node)인가를 판단하고, 출력노드인 경우는 해당 출력노드의 Strobing Code를 발생한다. 그리고 단계 S136에서는 입출력노드(bidirectional node)인가를 판단하고, 입출력노드인 경우는 해당되는 입출력노드의 Observing Code와 Stroving Code를 발생한다. 단계 S138에서는 모든 노드가 처리 됐는가를 판단하여 아직 미처리된 노드가 있는 경우는 상기 단계 S131로 진행하여 반복하여 처리하고, 모두 처리된 경우는 종료한다.In more detail, in step S131, characteristics of each node are input. In step S132, it is determined whether an input node is an input node. In the case of an input node, an observing code of the corresponding input node is generated. In step S134, an output node is output node. If it is an output node, it generates a strobing code of the corresponding output node. In step S136, it is determined whether the input / output node is a bidirectional node, and in the case of the input / output node, an Observing Code and a Stroving Code of the corresponding input / output node are generated. In step S138, it is determined whether all the nodes have been processed. If there are still unprocessed nodes, the process proceeds to step S131 and repeats the processing.

이상과 같은 본 발명에 의하면, 하드웨어 전체의 시뮬레이션 환경을 구축해놓은 상태에서 특정 서브모듈만을 위한 테스트벤치를 작성할 필요성이 있는 경우 그 과정을 자동화하여 시뮬레이션 TAT를 최소화하여 로직 설계 시의 효율을 높일 수 있다. 자동화된 방식으로 테스트벤치를 작성할 경우 수작업이 거의 불필요하다. 또한 서브모듈용 테스트벤치에서 공급되는 입력(stimulus)은 시뮬레이션 대상이 되는 서브모듈이 하드웨어의 다른 부분과 함께 동작할 때와 완전히 동일하므로 마치 하드웨어 전체를 대상으로 시뮬레이션하는 것과 같은 동일한 효과를 얻을 수 있다. 그리고 서브모듈의 출력에 대한 결과 파일도 자동 생성하여 회로 수정후에 그 이전의 결과와 직접 비교가 가능하다.According to the present invention as described above, if there is a need to create a test bench for a specific sub-module in a state in which the simulation environment of the entire hardware is constructed, the process can be automated to minimize the simulation TAT to increase efficiency in logic design. . If you write your testbench in an automated fashion, you do not need to do much manual work. In addition, since the stimulus supplied from the test bench for the submodule is exactly the same as when the submodule to be simulated works with other parts of the hardware, the same effect as that of simulating the entire hardware can be obtained. . In addition, the result file of the output of the submodule is automatically generated so that it can be directly compared with the previous result after the circuit modification.

Claims (2)

HDL로 설계되며, 다단계의 모듈로 구성된 전자 회로의 시뮬레이션 방법에 있어서:In a method of simulating electronic circuits designed in HDL and composed of multi-stage modules: 특정 서브모듈의 시뮬레이션을 위한 삽입 파일 및 테스트벤치 파일들을 생성하는 테스트벤치 발생기를 이용하여 해당되는 복수개의 파일들을 생성하는 단계와;Generating a plurality of files corresponding to each other using a test bench generator for generating an insert file and test bench files for a simulation of a specific submodule; 생성된 복수개의 삽입 파일들 중에서 상기 서브모듈의 입력과 출력에 대한 각각의 파일들을 이용하여 탑모듈 시뮬레이션을 수행하는 단계와;Performing a top module simulation using respective files for input and output of the submodule among a plurality of generated insertion files; 상기 탑모듈 시뮬레이션 후에 생성된 서브모듈 시뮬레이션을 위한 파일들과, 상기 테스트벤치 파일중 특정 테스트벤치 파일을 이용하여 해당되는 서브모듈 시뮬레이션을 수행하는 단계를 포함하는 것을 특징으로 하는 HDL로 설계된 전자 회로의 시뮬레이션 방법.And performing a corresponding submodule simulation by using files for a submodule simulation generated after the top module simulation and a specific testbench file among the testbench files. Simulation method. 제 1 항에 있어서,The method of claim 1, 상기 테스트벤치 발생기는:The test bench generator is: 상기 서브모듈의 HDL파일로부터 해당되는 서브모듈의 이름과, 부가적인 정보들을 포함하는 상기 서브모듈의 정보를 분석하고;Analyze information of the submodule including the name of the corresponding submodule and additional information from the HDL file of the submodule; 복수개의 상기 테스트벤치 파일들의 저장을 위해 각각의 파일들을 오픈하고 해당되는 헤더 정보를 기록하며;Open respective files and record corresponding header information for storage of a plurality of said test bench files; 구비된 복수개의 노드를 순차적으로 분석하여 입력, 출력, 입출력 노드 중 어느 하나인가를 판단하고, 이에 따라 상기 테스트벤치 파일들 중에 대응된 파일에 해당되는 정보를 입력하는 것을 특징으로 하는 HDL로 설계된 전자 회로의 시뮬레이션 방법.Electronically designed HDL characterized by sequentially analyzing a plurality of nodes provided to determine any one of the input, output, input and output nodes, and accordingly input information corresponding to the corresponding file among the test bench files Simulation method of the circuit.
KR1019980011900A 1998-04-03 1998-04-03 Test bench generator and simulation method using the same KR19990079355A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980011900A KR19990079355A (en) 1998-04-03 1998-04-03 Test bench generator and simulation method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980011900A KR19990079355A (en) 1998-04-03 1998-04-03 Test bench generator and simulation method using the same

Publications (1)

Publication Number Publication Date
KR19990079355A true KR19990079355A (en) 1999-11-05

Family

ID=65860726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980011900A KR19990079355A (en) 1998-04-03 1998-04-03 Test bench generator and simulation method using the same

Country Status (1)

Country Link
KR (1) KR19990079355A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100491461B1 (en) * 1999-10-28 2005-05-25 가부시키가이샤 어드밴티스트 METHOD AND APPARATUS FOR SoC DESIGN VALIDATION
US7213222B2 (en) 2003-07-31 2007-05-01 Samsung Electronics Co., Ltd. Method of HDL simulation considering hard macro core with negative setup/hold time
US9933486B2 (en) 2015-06-02 2018-04-03 SK Hynix Inc. Apparatus and method of generating test pattern, test system using the same, and computer program therefor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100491461B1 (en) * 1999-10-28 2005-05-25 가부시키가이샤 어드밴티스트 METHOD AND APPARATUS FOR SoC DESIGN VALIDATION
US7213222B2 (en) 2003-07-31 2007-05-01 Samsung Electronics Co., Ltd. Method of HDL simulation considering hard macro core with negative setup/hold time
US9933486B2 (en) 2015-06-02 2018-04-03 SK Hynix Inc. Apparatus and method of generating test pattern, test system using the same, and computer program therefor

Similar Documents

Publication Publication Date Title
US6026226A (en) Local compilation in context within a design hierarchy
US6871331B1 (en) Combined waveform and data entry apparatus and method for facilitating fast behavioral verification of digital hardware designs
US9064068B1 (en) Debuggable opaque IP
Bhatnagar Advanced ASIC chip synthesis
US5831869A (en) Method of compacting data representations of hierarchical logic designs used for static timing analysis
US8468475B2 (en) Conversion of circuit description to an abstract model of the circuit
US7665046B2 (en) Method and system for debugging using replicated logic and trigger logic
JP4806529B2 (en) Debugging methods and systems that use replicated logic
US6782520B1 (en) IC layout system having separate trial and detailed routing phases
US20100251196A1 (en) Method and System for Designing a Structural Level Description of an Electronic Circuit
US5251159A (en) Circuit simulation interface methods
US7827517B1 (en) Automated register definition, builder and integration framework
US8782581B2 (en) Test bench hierarchy and connectivity in a debugging environment
US20140331195A1 (en) Test bench hierarchy and connectivity in a debugging environment
US6077305A (en) Latch inference using dataflow analysis
US5774380A (en) State capture/reuse for verilog simulation of high gate count ASIC
US6810508B1 (en) Method for automatically-remapping an HDL netlist to provide compatibility with pre-synthesis behavioral test benches
US8010918B2 (en) Method for creating HDL description files of digital systems, and systems obtained
KR19990079355A (en) Test bench generator and simulation method using the same
US7086017B1 (en) Method of post-implementation simulation of a HDL design
US20030188302A1 (en) Method and apparatus for detecting and decomposing component loops in a logic design
US6367057B1 (en) Method of analyzing a circuit having at least one structural loop within a channel connected component
Kovachev et al. Some guidelines on HDL selection for Digital Systems Design
Reese et al. Synchronous Sequential Circuit Design
Jordan et al. ILS--Interactive Logic Simulator

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination