JP2010026810A - Path management method - Google Patents

Path management method Download PDF

Info

Publication number
JP2010026810A
JP2010026810A JP2008187705A JP2008187705A JP2010026810A JP 2010026810 A JP2010026810 A JP 2010026810A JP 2008187705 A JP2008187705 A JP 2008187705A JP 2008187705 A JP2008187705 A JP 2008187705A JP 2010026810 A JP2010026810 A JP 2010026810A
Authority
JP
Japan
Prior art keywords
route
branch
value
task
paths
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2008187705A
Other languages
Japanese (ja)
Other versions
JP5136257B2 (en
Inventor
Takeshi Imanishi
健 今西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008187705A priority Critical patent/JP5136257B2/en
Publication of JP2010026810A publication Critical patent/JP2010026810A/en
Application granted granted Critical
Publication of JP5136257B2 publication Critical patent/JP5136257B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide path data for uniquely specifying a path with small amount of data. <P>SOLUTION: An operation to be performed by a test bench to an inspection object in computer simulation is defined as a task. A path management method includes steps of: when a plurality of paths configured of a series of tasks are applied as an execution flow of the tasks, calculating the total number of paths to each of a plurality of branches branched from one node in the execution flow by the computer, and storing it in a memory; when a first integer value for specifying the n-th (n: integer) branch among the plurality of branches arranged in order is m, calculating the sum of the total number of paths for the n-th branch and m as the first integer value for specifying the (n+1)th branch by the computer, and storing it in a memory; and uniquely specifying each of the plurality of branches by the computer on using a second integer value on the basis of the first integer value. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本願の開示は、一般に計算機利用設計に関し、詳しくは回路等の設計対象の動作検証に関する。   The present disclosure generally relates to computer-based design, and more particularly to operation verification of a design object such as a circuit.

集積回路の設計においては、一般に、まずRTL(Register Transfer Level:レジスタ転送レベル)の抽象度でハードウェアを記述する。このレベルでは、レジスタとその間の論理機能及び信号伝達として、所望の論理を表現する。RTL記述ができると、計算機シミュレーションにより、RTL記述された回路の論理的な動作の妥当性を検証する。その後論理合成ツールにより、RTL記述からゲートレベル記述を生成する。このレベルでは、各種論理ゲートとその間の接続により所望の回路図を表現する。ゲートレベル記述においてもまた、計算機シミュレーションにより、ゲートレベル記述された回路の論理的な動作の妥当性を検証する。   In designing an integrated circuit, generally, first, hardware is described with an RTL (Register Transfer Level) abstraction level. At this level, a desired logic is expressed as a register and a logic function and signal transmission between them. When the RTL description is completed, the validity of the logical operation of the circuit described in the RTL is verified by computer simulation. Thereafter, a gate level description is generated from the RTL description by a logic synthesis tool. At this level, a desired circuit diagram is expressed by various logic gates and connections between them. Also in the gate level description, the validity of the logical operation of the circuit described in the gate level is verified by computer simulation.

このような計算機シミュレーションによる検証においては、テストベンチが用いられる。テストベンチとは、検証対象の回路に入力信号を印加し、その結果として現れる回路の出力を観測するためのシミュレーション上での記述である。より一般的に言えば、テストベンチは、LSI(大規模集積回路)等の検証対象の動作に影響を与える何らかの操作を検証対象に対して行う。例えば、検証対象がLSIであれば、レジスタに対してデータを書き込んだり(パリティを偶数に設定する、割り込み動作を許可する、等)、割り込み信号を入力したり、リセットをかけたりする等の操作を行う。このようにテストベンチが検証対象に対して行う操作を以降においてタスクと呼ぶ。検証対象に対する検証動作は、一連のタスクからなる実行フローとして表現することができる。   In such verification by computer simulation, a test bench is used. A test bench is a description on a simulation for observing the output of a circuit that appears as a result of applying an input signal to a circuit to be verified. More generally speaking, the test bench performs some operation on the verification target that affects the operation of the verification target such as an LSI (Large Scale Integrated circuit). For example, if the verification target is LSI, operations such as writing data to the register (setting parity to an even number, enabling interrupt operation, etc.), inputting an interrupt signal, resetting, etc. I do. The operation that the test bench performs on the verification target is hereinafter referred to as a task. The verification operation for the verification target can be expressed as an execution flow including a series of tasks.

図1は、一連のタスクからなる実行フローの一例を概念的に示す図である。図1において、A、B、C、D、・・、Jの各々のノードが1つのタスクを表している。開始点Startから終了点Endまでを、一連のノードとノード間の矢印とで結ぶ経路は、検証対象を実運用する時に検証対象に対して実行されうるタスクの実行フローを表している。この実行フローは、検証担当者が検証対象(LSI回路等)の仕様を考慮して作成する。図1の開始点Startから終了点Endへ至る全ての経路を実行し、どの経路を通っても検証対象が仕様通りに動作することを確認することにより、検証が行なわれる。検証対象の動作が仕様通りであるか否かの判断は、検証対象から出力されるデータを、所望の論理を示すリファレンスモデルから得た期待値データと比較する。出力データと期待値データとが等しければ、検証対象の動作が妥当であると判断することができる。   FIG. 1 is a diagram conceptually illustrating an example of an execution flow including a series of tasks. In FIG. 1, each node A, B, C, D,..., J represents one task. A path connecting the start point Start to the end point End with a series of nodes and arrows between the nodes represents an execution flow of a task that can be executed on the verification target when the verification target is actually operated. This execution flow is created by a person in charge of verification in consideration of the specification of the verification target (LSI circuit or the like). Verification is performed by executing all paths from the start point Start to the end point End in FIG. 1 and confirming that the verification target operates according to the specification through any path. To determine whether the operation to be verified is in accordance with the specification, the data output from the verification target is compared with the expected value data obtained from the reference model indicating the desired logic. If the output data and the expected value data are equal, it can be determined that the operation to be verified is valid.

図2は、従来の経路実行方法の一例を示すフローチャートである。ステップS1において、経路をランダムに生成する。例えば図1に示す実行フローの例の場合、開始点Startから終了点Endへ至る複数の経路のうちの1つをランダムに生成する。例えば生成した経路がACDHIであるとする。即ち、タスクA、C、D、H、Iをこの順番に実行する経路が生成されたとする。   FIG. 2 is a flowchart showing an example of a conventional route execution method. In step S1, a route is randomly generated. For example, in the example of the execution flow shown in FIG. 1, one of a plurality of paths from the start point Start to the end point End is randomly generated. For example, assume that the generated path is ACDHI. That is, it is assumed that a path for executing tasks A, C, D, H, and I in this order is generated.

ステップS2で、ステップS1で生成した経路が記憶領域に存在するか否かを判断する。即ち、生成した経路を示すデータが記憶領域に格納されているか否かを判断する。初期状態では、この記憶領域に格納されている経路データは無い。また既に幾つかの経路を実行した後の状態であれば、この記憶領域には、それまでに実行した経路を示すデータが格納されている。生成した経路を示すデータが既に記憶領域に格納されている場合には、既にこの経路は実行済みであるので、ステップS1に戻り再度経路をランダムに生成する。生成した経路を示すデータが記憶領域に格納されていない場合には、ステップS3に進む。   In step S2, it is determined whether or not the path generated in step S1 exists in the storage area. That is, it is determined whether or not data indicating the generated route is stored in the storage area. In the initial state, there is no route data stored in this storage area. In addition, in the state after several routes have already been executed, data indicating the routes executed so far are stored in this storage area. If the data indicating the generated route has already been stored in the storage area, this route has already been executed, so the process returns to step S1 and a route is randomly generated again. If the data indicating the generated route is not stored in the storage area, the process proceeds to step S3.

ステップS3で、生成された経路を実行する。即ち、テストベンチにより、当該経路に指定されるタスクを指定される順番で、検証対象に対して実行する。上記の例の場合であれば、テストベンチにより検証対象に対してタスクA、C、D、H、Iをこの順番で実行する。ステップS4で、実行した生成経路を記憶領域に格納する。即ち、実行した経路を示すデータを記憶領域に格納する。上記の例の場合、経路で実行した各タスクの識別子を順番に一列に並べたデータ「ACDHI」を記憶領域に格納する。   In step S3, the generated route is executed. In other words, the task specified by the route is executed on the verification target in the order specified by the test bench. In the case of the above example, tasks A, C, D, H, and I are executed in this order on the verification target by the test bench. In step S4, the executed generation path is stored in the storage area. That is, data indicating the executed path is stored in the storage area. In the case of the above example, data “ACDHI” in which the identifiers of the tasks executed on the route are arranged in a line in order is stored in the storage area.

ステップS5で、経路が全て実行されたか否かを判断する。例えば図1に示す実行フローの例の場合、開始点Startから終了点Endへ至る複数の経路の全てが実行されたか否かを判断する。全ての経路が実行されていない場合、即ち未実行の経路がまだ有る場合には、ステップS1に戻り再度経路をランダムに生成し、以降の処理を繰り返す。全ての経路が実行された場合には、経路実行方法の処理を終了する。なお通常は、順次ランダム生成された経路を実行している最中に出力データと期待値データとの不一致が検出された場合には、回路設計に問題有りとして、計算機シミュレーションによる経路実行及び試験動作を中止する。   In step S5, it is determined whether or not all routes have been executed. For example, in the example of the execution flow shown in FIG. 1, it is determined whether or not all of a plurality of paths from the start point Start to the end point End have been executed. If all the routes have not been executed, that is, if there are still unexecuted routes, the process returns to step S1 to randomly generate routes again, and the subsequent processing is repeated. If all the routes have been executed, the route execution method processing is terminated. Normally, if a mismatch between the output data and the expected value data is detected during the execution of the paths that are randomly generated in sequence, it is assumed that there is a problem with the circuit design, and the path execution and test operations are performed by computer simulation. Cancel.

上記のような従来の経路実行方法においては、実行した経路に含まれる各タスクの識別子を順番に一列に並べて記憶領域に格納することにより、実行した経路を示すデータを記録していく。そして、記憶領域に格納されたタスクの識別子を一列に並べたデータを参照することにより、ランダムに生成した経路が既に実行した経路であるか否かを判断している。   In the conventional route execution method as described above, the identifiers of the tasks included in the executed route are sequentially arranged in a line and stored in a storage area, thereby recording data indicating the executed route. Then, by referring to the data in which the task identifiers stored in the storage area are arranged in a line, it is determined whether the randomly generated route is an already executed route.

図3は、記憶領域に記憶されるデータの内容を示す図である。図3に示すのは、経路「ACDHI」、経路「ABHJ」、経路「AEFGHI」、経路「ABHI」、及び経路「AEFGHJ」をこの順番に実行した後に、記憶領域に格納される経路を示すデータである。このように経路を示すデータが記憶領域に記録されている状態で、新たにランダムに生成した経路が「ABHJ」である場合、「ABHJ」を記憶領域中の各経路のデータと比較することにより、生成した経路が既に実行した経路であるか否かを判断することができる。   FIG. 3 is a diagram showing the contents of data stored in the storage area. FIG. 3 shows data indicating a route stored in the storage area after the route “ACDHI”, the route “ABHJ”, the route “AEFGHHI”, the route “ABHI”, and the route “AEFGHJ” are executed in this order. It is. When the data indicating the route is recorded in the storage area in this way and the newly generated route is “ABHJ”, by comparing “ABHJ” with the data of each route in the storage region, It can be determined whether the generated route is a route that has already been executed.

このように検証動作において、一度実行した経路は再び実行することがないようにし、また重要度の高い経路を優先的に実行するように実行経路を決定すれば、効率的な検証が可能となる。しかしながら、経路を管理する手段として経路に含まれる全てのタスクの識別子を記憶するという上記のような管理方式では、全ての経路に含まれるタスクの総数に相当する量の記憶領域が必要となる。また記憶領域が大きくなることから、記憶領域から経路情報を検索するのに時間がかかるという問題がある。
特開平9−128266号公報 特開平11−232137号公報 特開平10−320190号公報
As described above, in the verification operation, if the route that has been executed once is not executed again, and if the execution route is determined so that the route with high importance is preferentially executed, efficient verification becomes possible. . However, in the management method as described above in which the identifiers of all tasks included in the route are stored as means for managing the route, an amount of storage area corresponding to the total number of tasks included in all the routes is required. Further, since the storage area becomes large, there is a problem that it takes time to search for route information from the storage area.
JP-A-9-128266 Japanese Patent Laid-Open No. 11-232137 JP-A-10-320190

以上を鑑みると、小さいデータ量で経路を一意的に特定する経路データを提供することが望まれる。   In view of the above, it is desired to provide route data that uniquely specifies a route with a small amount of data.

経路管理方法は、計算機シミュレーションにおいてテストベンチが検証対象に対して行なう操作をタスクとし、一連のタスクから構成される複数の経路がタスクの実行フローとして与えられたときに、前記実行フローの中で1つのノードから分岐する複数の枝の各々に対して、各枝の先に存在する経路の総数を計算機により求めメモリに格納し、前記複数の枝を順番に並べたときのn(n:整数)番目の枝を特定する第1の整数値をmとしたときに、n番目の枝に対する前記経路の総数とmとの和をn+1番目の枝を特定する第1の整数値として計算機により求めメモリに格納し、前記第1の整数値に基づく第2の整数値により前記複数の経路の各々を計算機により一意に特定する各段階を含むことを特徴とする。   In the route management method, an operation performed by a test bench on a verification target in a computer simulation is a task, and when a plurality of routes composed of a series of tasks are given as an execution flow of the task, For each of a plurality of branches branched from one node, the total number of paths existing ahead of each branch is obtained by a computer and stored in a memory, and n (n: integer) when the plurality of branches are arranged in order. ) When the first integer value specifying the nth branch is m, the computer calculates the sum of the total number of paths and m for the nth branch as the first integer value specifying the n + 1th branch. Each step of storing in a memory and uniquely specifying each of the plurality of paths by a computer by a second integer value based on the first integer value is included.

少なくとも1つの実施例によれば、整数値により各経路を一意に特定するので、小さいデータ量で経路を一意的に特定する経路データを提供することができる。   According to at least one embodiment, since each route is uniquely specified by an integer value, it is possible to provide route data that uniquely specifies a route with a small amount of data.

以下に、本発明の実施例を添付の図面を用いて詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

図4は、計算機シミュレーションにより検証対象の動作を検証する環境を示す図である。図4において、テストベンチ10により、LSI等の検証対象11の動作の検証を行なう。
例えば、検証対象11がLSIであれば、レジスタに対してデータを書き込んだり(パリティを偶数に設定する、割り込み動作を許可する、等)、割り込み信号を入力したり、リセットをかけたりする等の操作を行う。このような計算機シミュレーションにおいてテストベンチ10が検証対象11に対して行なう操作をタスクとし、一連のタスクから構成される複数の経路がタスクの実行フローとして与えられる。具体的には、検証担当者が検証対象11(LSI回路等)の仕様を考慮して所望の動作を検証するように、例えば図1に示すような実行フローを作成する。
FIG. 4 is a diagram illustrating an environment in which the operation to be verified is verified by computer simulation. In FIG. 4, the test bench 10 verifies the operation of the verification target 11 such as an LSI.
For example, if the verification target 11 is an LSI, data is written to the register (parity is set to an even number, interrupt operation is permitted, etc.), an interrupt signal is input, a reset is performed, etc. Perform the operation. In such a computer simulation, an operation performed on the verification target 11 by the test bench 10 is used as a task, and a plurality of paths composed of a series of tasks are given as a task execution flow. Specifically, for example, an execution flow as shown in FIG. 1 is created so that the person in charge of verification verifies a desired operation in consideration of the specification of the verification target 11 (LSI circuit or the like).

以下に説明する実施例においては、1つの整数値により1つの経路を一意に特定する。この際、例えば図3に「No.」として示すように1つの整数値を1つの経路を一意に特定するように割り当てたとしても、この整数値と経路を示すデータ(タスクの識別子を一列に並べたデータ)とを一対一に対応付けてメモリに格納するのでは意味がない。何故ならば、タスクの識別子を一列に並べたデータのサイズが大きく、大きなメモリ格納領域が必要になるからである。図1に示すような実行フローの構成を規定するデータ、即ちタスクをノード(節点又は頂点)としてタスク実行の順番をエッジ(枝又は辺)として示した木の構成を規定するデータは、検証対象11を検証するために必要なデータである。そこで、そのような実行フローのデータを利用することにより、1つの整数値により1つの経路を一意に特定する。   In the embodiment described below, one route is uniquely specified by one integer value. At this time, for example, even if one integer value is assigned so as to uniquely identify one route as shown as “No.” in FIG. 3, the integer value and the data indicating the route (task identifiers are arranged in a line). It is meaningless to store the data in the memory in a one-to-one correspondence. This is because the size of data in which task identifiers are arranged in a row is large, and a large memory storage area is required. Data specifying the configuration of the execution flow as shown in FIG. 1, that is, data specifying the configuration of a tree in which the task execution order is indicated as an edge (branch or edge) with the task as a node (node or vertex) is the object to be verified 11 is necessary for verifying 11. Therefore, by using such execution flow data, one route is uniquely specified by one integer value.

具体的には、実行フローの中で1つのノードから分岐する複数の枝の各々に対して、各枝の先に存在する経路の総数を求める。そして、複数の枝を順番に並べたときのn(n:整数)番目の枝を特定する第1の整数値をmとしたときに、n番目の枝に対する前記経路の総数とmとの和をn+1番目の枝を特定する第1の整数値として求める。この第1の整数値を求める処理を、実行フロー中の全ての分岐の全ての枝に対して実行する。更に、第1の整数値に基づいて求まる第2の整数値により複数の経路の各々を一意に特定する。以下に、これらの処理について詳細に説明する。   Specifically, for each of a plurality of branches branched from one node in the execution flow, the total number of paths existing at the end of each branch is obtained. The sum of the total number of the paths for the nth branch and m, where m is the first integer value that identifies the nth (n: integer) th branch when a plurality of branches are arranged in order. As the first integer value that identifies the n + 1 th branch. The process for obtaining the first integer value is executed for all branches of all branches in the execution flow. Further, each of the plurality of paths is uniquely specified by a second integer value obtained based on the first integer value. Hereinafter, these processes will be described in detail.

図5は、経路総数値を割り当てる処理の流れを示すフローチャートである。このフローチャートを計算機により実行することにより、1つのノードから分岐する複数の枝の各々に対して、各枝の先に存在する経路の総数を求める。求めた経路の総数は、メモリに格納されることになる。   FIG. 5 is a flowchart showing a flow of processing for assigning the total number of routes. By executing this flowchart by a computer, the total number of paths existing ahead of each branch is obtained for each of a plurality of branches branched from one node. The total number of paths obtained is stored in the memory.

ステップS1において、実行フローの終了点Endに経路総数値1を割り当てる。ステップS2において、経路総数値が未割り当てで、且つ接続先のタスク全ての経路総数値が割り当て済のタスクを検索する。図1に示す実行フローの例では、タスクI及びタスクJが、経路総数値が未割り当てであり且つ接続先のタスク全て(即ち終了点End)の経路総数値(1)が割り当て済である。従って、ステップS2においては、まずタスクI及びタスクJが検索結果として抽出される。   In step S1, a total path value 1 is assigned to the end point End of the execution flow. In step S2, a task is searched for which the route total value is not assigned and the route total value of all the connection destination tasks is assigned. In the example of the execution flow shown in FIG. 1, the total number of routes is not assigned to task I and task J, and the total number of routes (1) of all the connection destination tasks (that is, end point End) has been assigned. Accordingly, in step S2, task I and task J are first extracted as search results.

ステップS3において、検索したタスクの接続先タスクの経路総数値の合計を自身の経路総数値とする。図1に示す実行フローの例では、タスクIの接続先タスク(即ち終了点End)の経路総数値の合計(即ち1)を、タスクIの経路総数値とする。同様に、タスクJの接続先タスク(即ち終了点End)の経路総数値の合計(即ち1)を、タスクJの経路総数値とする。   In step S3, the total of the route total values of the connection destination tasks of the searched task is set as its own route total value. In the example of the execution flow shown in FIG. 1, the total of the total route values (that is, 1) of the task I connection destination task (that is, the end point End) is the total route value of the task I. Similarly, the total (that is, 1) of the total number of paths of the connection destination task of Task J (that is, end point End) is set as the total number of paths of Task J.

ステップS4で、全てのタスクに経路総数値を割り当てたか否かを判定する。全てのタスクに経路総数値を割り当て済みであれば、処理を終了する。まだ経路総数値を未割り当てのタスクが有れば、ステップS2に戻る。上記の例の場合、タスクI及びタスクJ以外のタスクについては経路総数値を未割り当てであるので、ステップS2に戻る。   In step S4, it is determined whether route total values have been assigned to all tasks. If the total route value has been assigned to all tasks, the process is terminated. If there is a task to which the total number of routes is not yet assigned, the process returns to step S2. In the case of the above example, since the total number of routes is not assigned to tasks other than task I and task J, the process returns to step S2.

ステップS2において、経路総数値が未割り当てで、且つ接続先のタスク全ての経路総数値が割り当て済のタスクを検索する。上記の例の場合、タスクHが、経路総数値が未割り当てであり且つ接続先のタスク全て(即ちタスクI及びJ)の経路総数値(1)が割り当て済である。従って、タスクHが検索結果として抽出される。   In step S2, a task is searched for which the route total value is not assigned and the route total value of all the connection destination tasks is assigned. In the case of the above example, the task H has an unassigned route total value, and has already been assigned a route total value (1) of all the connection destination tasks (that is, tasks I and J). Therefore, task H is extracted as a search result.

ステップS3において、検索したタスクの接続先タスクの経路総数値の合計を自身の経路総数値とする。上記の例では、タスクHの接続先タスク(即ちタスクI及びJ)の経路総数値の合計(即ち2)を、タスクHの経路総数値とする。その後、ステップS4の判定の結果、ステップS2に戻る。   In step S3, the total of the route total values of the connection destination tasks of the searched task is set as its own route total value. In the above example, the total of the route total values of the task H connection destination tasks (namely, tasks I and J) (ie, 2) is set as the task H route total value. Thereafter, as a result of the determination in step S4, the process returns to step S2.

再度実行されるステップS2において、タスクB、D、及びGが、経路総数値が未割り当てであり且つ接続先のタスク全て(即ちタスクH)の経路総数値(2)が割り当て済である。従って、タスクB、D、及びGが検索結果として抽出される。ステップS3において、タスクBの接続先タスク(即ちタスクH)の経路総数値の合計(即ち2)を、タスクBの経路総数値とする。タスクD及びGについても同様である。その後、ステップS4の判定の結果、ステップS2に戻る。以降同様にして、実行フローを上流(開始点Start)に向かい検索していくことにより、各タスクについての経路総数値が求められる。   In step S2 to be executed again, tasks B, D, and G have unassigned route total values and have already been assigned route total values (2) of all the connected tasks (ie, task H). Therefore, tasks B, D, and G are extracted as search results. In step S <b> 3, the total of the route total values of the task B connection destination task (i.e., task H) (i.e., 2) is set as the task B route total value. The same applies to tasks D and G. Thereafter, as a result of the determination in step S4, the process returns to step S2. In the same manner, the total number of routes for each task is obtained by searching the execution flow upstream (starting point Start).

図6は、各タスクについて求めた経路総数値を示す図である。図6に示されるように、実行フローの中で1つのノードから分岐する複数の枝の各々においては、その枝に含まれるタスクの経路総数値は同一である。即ち例えば、タスクAから分岐するA→C→D→Hの枝において、その枝に含まれるタスクC及びDの経路総数値は同一である。言葉を換えて言えば、経路総数値は、実行フローの中で1つのノードから分岐する複数の枝の各々に割り当てられる値であると言える。また図6から分かるように、経路総数値は、実行フローの中で1つのノードから分岐する複数の枝の各々に対して、各枝の先に存在する経路の総数に対応する。即ち例えばタスクBを含む枝(A→B→Hの枝)においては、この枝の先に存在する経路は、H→I→EndとH→J→Endの2つである。従って、このタスクBを含む枝の経路総数値は2である。また例えばタスクCを含む枝(A→C→D→Hの枝)においても、この枝の先に存在する経路は、H→I→EndとH→J→Endの2つである。従って、このタスクCを含む枝の経路総数値も2である。   FIG. 6 is a diagram showing the total number of routes obtained for each task. As shown in FIG. 6, in each of a plurality of branches that branch from one node in the execution flow, the total number of paths of tasks included in the branch is the same. That is, for example, in the branch of A → C → D → H branched from the task A, the total number of paths of the tasks C and D included in the branch is the same. In other words, it can be said that the total path value is a value assigned to each of a plurality of branches branched from one node in the execution flow. Further, as can be seen from FIG. 6, the total number of paths corresponds to the total number of paths existing ahead of each branch for each of a plurality of branches branched from one node in the execution flow. That is, for example, in the branch including the task B (the branch of A → B → H), there are two paths that exist ahead of this branch, that is, H → I → End and H → J → End. Therefore, the total number of paths of the branch including this task B is 2. Further, for example, even in a branch including the task C (A → C → D → H branch), there are two paths existing at the tip of this branch, that is, H → I → End and H → J → End. Accordingly, the total path value of the branch including the task C is also 2.

図7は、経路構成値を割り当てる処理の流れを示すフローチャートである。このフローチャートを計算機により実行することにより、複数の枝を順番に並べたときのn番目の枝を特定する第1の整数値をmとしたときに、n番目の枝に対する前記経路の総数とmとの和をn+1番目の枝を特定する第1の整数値(経路構成値)として求める。求めた経路構成値はメモリに格納される。   FIG. 7 is a flowchart showing a flow of processing for assigning route configuration values. By executing this flowchart by the computer, m is the total number of the paths for the n-th branch, where m is the first integer value that identifies the n-th branch when a plurality of branches are arranged in order. As a first integer value (path configuration value) that identifies the (n + 1) th branch. The obtained path configuration value is stored in the memory.

ステップS1において、経路構成値が未割り当てのタスクを探す。このタスクの検索の順番は任意でよい。例えば図1及び図6に示す実行フローの例では、上流(開始点Start側)から下流(終了点End側)に向かい、所定の順番で各タスクをチェックしていってよい。   In step S1, a task to which no route configuration value is assigned is searched. The search order of the tasks may be arbitrary. For example, in the example of the execution flow shown in FIG. 1 and FIG. 6, each task may be checked in a predetermined order from upstream (start point Start side) to downstream (end point End side).

ステップS2において、ステップS1で抽出されたタスクが分岐直後のタスクか否かを判定する。例えば図1及び図6に示す実行フローの例では、タスクB、C、E、I、及びJが分岐直後のタスクに相当する。分岐直後のタスクでない場合には、ステップS4に進み、0を経路構成値として割り当てる。即ち、抽出されたタスクが、B、C、E、I、及びJの何れでも無い場合には、このタスクの経路構成値は0となる。   In step S2, it is determined whether or not the task extracted in step S1 is a task immediately after branching. For example, in the example of the execution flow shown in FIGS. 1 and 6, tasks B, C, E, I, and J correspond to tasks immediately after branching. If it is not a task immediately after branching, the process proceeds to step S4 and 0 is assigned as a route configuration value. That is, when the extracted task is not any of B, C, E, I, and J, the path configuration value of this task is 0.

ステップS2の判定の結果、抽出されたタスクが分岐直後のタスクである場合には、ステップS3に進む。ステップS3では、自身より左に存在する分岐タスクの経路総数値の合計を経路構成値として割り当てる。例えば、タスクBの場合、自身より左に分岐タスクは存在しないので、自身より左に存在する分岐タスクの経路総数値の合計は0である。従って、タスクBには経路構成値0が割り当てられる。また例えばタスクCの場合、自身より左に存在する分岐タスクBの経路総数値の合計は2である。従って、タスクCには経路構成値2が割り当てられる。また例えばタスクEの場合、自身より左に存在する分岐タスクB及びCの経路総数値の合計は4である。従って、タスクEには経路構成値4が割り当てられる。   As a result of the determination in step S2, if the extracted task is a task immediately after branching, the process proceeds to step S3. In step S3, the total of the total route values of branch tasks existing on the left side of itself is assigned as a route configuration value. For example, in the case of task B, there is no branch task to the left of itself, so the total route total value of the branch task existing to the left of itself is zero. Therefore, the route configuration value 0 is assigned to task B. For example, in the case of task C, the total of the total number of routes of branch task B existing on the left side of itself is 2. Therefore, the route configuration value 2 is assigned to task C. For example, in the case of task E, the total of the total number of paths of branch tasks B and C existing on the left side of itself is 4. Therefore, the route configuration value 4 is assigned to the task E.

その後ステップS5において、全てのタスクに経路構成値を割り当てたか否かを判定する。全てのタスクに経路構成値を割り当て済みであれば、処理を終了する。まだ経路構成値を未割り当てのタスクが有れば、ステップS1に戻る。以上の処理により、各タスクについての経路構成値が求められる。   Thereafter, in step S5, it is determined whether route configuration values have been assigned to all tasks. If route configuration values have been assigned to all tasks, the process is terminated. If there is still a task to which no route configuration value is assigned, the process returns to step S1. Through the above processing, a path configuration value for each task is obtained.

図8は、各タスクについて求めた経路構成値を示す図である。図6に示されるように、実行フローの中で1つのノードから分岐する直後のタスクに経路構成値が割り当てられており、これは、実行フローの中で1つのノードから分岐する複数の枝の各々に経路構成値が割り当てられると考えても同じである。即ち例えば、タスクAから分岐するA→C→D→Hの枝に対して経路構成値2が割り当てられていると考えてよい。なおこの例では経路構成値の割り当ては左から順番に増加するように割り当てたが、右から順番に割り当てるようにしてもよい。即ち例えば、タスクB(又は分岐枝A→B→H)に0、タスクC(又は分岐枝A→C→D→H)に2、タスクE(又は分岐枝A→E→F→G→H)に4を割り当てる代わりに、タスクBに4、タスクCに2、タスクEに0を割り当ててもよい。なおこの場合各タスク(各分岐枝)の経路総数が同一の値2であるので(図6参照)、左から順番に割り当てても右から順番に割り当てても、0、2、4である。しかし例えばタスクBの経路総数4であれば、左から順番に割り当てると0、4、6になり、右から順番に割り当てると4、2、0となることに注意する必要がある。   FIG. 8 is a diagram showing route configuration values obtained for each task. As shown in FIG. 6, a route configuration value is assigned to a task immediately after branching from one node in the execution flow. This is because of a plurality of branches branching from one node in the execution flow. It is the same even if it is considered that a path configuration value is assigned to each. That is, for example, it may be considered that the path configuration value 2 is assigned to the branch of A → C → D → H branching from the task A. In this example, the route configuration values are assigned so as to increase sequentially from the left, but may be assigned sequentially from the right. That is, for example, task B (or branch branch A → B → H) is 0, task C (or branch branch A → C → D → H) is 2, task E (or branch branch A → E → F → G → H). ) May be assigned to task B, 2 to task C, and 0 to task E. In this case, since the total number of paths of each task (each branch branch) is the same value 2 (see FIG. 6), 0, 2, and 4 are assigned in order from the left and in order from the right. However, for example, if the total number of paths of task B is 4, it should be noted that 0, 4, and 6 are assigned in order from the left, and 4, 2, and 0 are assigned in order from the right.

左から順番又は右から順番に割り当てるのでなくとも、各タスク(又は分岐枝)を特定する順番があるのであれば、その順番に上記の0、2、4を割り当ててもよい。これを定式化すれば、複数の枝を順番に並べたときのn番目の枝を特定する経路構成値をmとしたときに、n番目の枝に対する前記経路の総数とmとの和をn+1番目の枝を特定する経路構成値として求めることになる。なおここでいう順番とは、ランダムに1つずつ選んで並べた順番であってもよい。   Instead of assigning in order from the left or in order from the right, if there is an order for specifying each task (or branch branch), the above 0, 2, and 4 may be assigned in that order. If this is formulated, the sum of the total number of the paths for the nth branch and m is defined as n + 1, where m is the path configuration value that identifies the nth branch when a plurality of branches are arranged in order. It is obtained as a path configuration value that identifies the th branch. In addition, the order here may be an order selected and arranged one by one at random.

上記のようにして求めた経路構成値により求まる整数値により複数の経路の各々を一意に特定することができる。例えば、経路Start→A→B→H→J→Endは、その経路上の全ての経路構成値を足し合わせることにより(即ちこの経路に含まれる枝を特定する経路構成値の総和を求めることにより)求めた値1(=0+1)により特定することができる。また例えば経路Start→A→E→F→G→H→I→Endは、その経路上の全ての経路構成値を足し合わせることにより求めた値4(=4+0)により特定することができる。   Each of the plurality of routes can be uniquely specified by the integer value obtained from the route configuration value obtained as described above. For example, the route Start → A → B → H → J → End is obtained by adding all the route configuration values on the route (that is, by obtaining the sum of the route configuration values specifying the branches included in the route). ) It can be specified by the obtained value 1 (= 0 + 1). Further, for example, the route Start → A → E → F → G → H → I → End can be specified by a value 4 (= 4 + 0) obtained by adding all the route configuration values on the route.

上記のように経路上の全ての経路構成値の総和により1つの経路を一意に特定できることは以下のように考えると分かる。隣り合う2つの分岐枝(n番目とn+1番目)に着目し、これらの2つの分岐枝から派生する全ての経路(2つの分岐枝の開始点より下流にある経路)を特定する場合を考える。2つの分岐枝より上流については考えない。n番目の分岐枝の先に存在する経路の総数をsとし、n番目の分岐枝を特定する経路構成値をmとする。n番目の分岐枝の先に存在する全ての経路をs個の連続する整数値で特定するようにすれば、上記のように経路上の経路構成値の総和を用いて、n番目の分岐枝を通る全ての経路は、整数値mからm+s−1で特定することができる。このとき、n+1番目の分岐枝には整数値m+sを割り当てるようにすれば、n+1番目の分岐枝を通る全ての経路はm+s以上の整数値で特定される。従って、n番目の分岐枝を通る経路を特定する連続する整数値とn+1番目の分岐枝を通る経路を特定する連続する整数値とは、互いに重複しない連続した整数値となる。   As described above, it can be understood that one route can be uniquely specified by the sum of all route configuration values on the route as follows. Consider a case in which two adjacent branch branches (nth and n + 1th) are focused and all paths derived from these two branch branches (paths downstream from the start points of the two branch branches) are identified. No consideration is given to the upstream of the two branch branches. Let s be the total number of paths existing ahead of the nth branch branch, and m be the path configuration value that identifies the nth branch branch. If all the routes existing ahead of the nth branch branch are specified by s consecutive integer values, the sum of the route configuration values on the route is used as described above, and the nth branch branch is obtained. Can be identified by integer values m to m + s−1. At this time, if an integer value m + s is assigned to the (n + 1) th branch branch, all paths passing through the (n + 1) th branch branch are specified by an integer value equal to or greater than m + s. Therefore, a continuous integer value that specifies a route passing through the nth branch branch and a continuous integer value that specifies a route passing through the (n + 1) th branch branch are continuous integer values that do not overlap each other.

図9は、図1に示す各経路に対して一意に割り当てられる整数値を示す図である。これらの整数値は、前述のように各経路上の全ての経路構成値を足し合わせることにより求めた値である。この例では図1に示される6個の経路が、0〜5の6個の整数により一意に特定されている。   FIG. 9 is a diagram showing integer values uniquely assigned to the respective routes shown in FIG. These integer values are values obtained by adding all route configuration values on each route as described above. In this example, the six paths shown in FIG. 1 are uniquely specified by six integers of 0 to 5.

図9に示される整数値に基づいて、図1の複数の経路の1つを特定することができる。即ち、0〜5のうちの1つの整数値が与えられると、この整数値に一意に対応する経路を特定することができる。この特定作業においては、与えられた整数値と図8に示されるような経路構成値とが用いられる。なお図8に示されるような経路構成値はメモリに格納されているとする。   Based on the integer values shown in FIG. 9, one of the plurality of paths in FIG. 1 can be identified. That is, when one integer value of 0 to 5 is given, a path uniquely corresponding to this integer value can be specified. In this specific operation, a given integer value and a route configuration value as shown in FIG. 8 are used. It is assumed that the path configuration value as shown in FIG. 8 is stored in the memory.

整数値k(0以上且つ5以下)が与えられると、図8の開始点Startから最初の分岐点までそのまま下流に進む。分岐点に到達すると(即ちタスクAの分岐点に到達すると)、k以下の経路構成値で最大のものを有する分岐枝を選択し、選択した分岐枝に進む。例えばkが4の場合には、一番右の分岐枝(タスクEの分岐枝)に進む。また例えばkが3の場合には、真ん中の分岐枝(タスクCの分岐枝)に進む。その後選択した分岐枝をそのまま下流に進む。更に分岐点に到達すると(即ちタスクHの分岐点に到達すると)、k−M以下の経路構成値で最大のものを有する分岐枝を選択し、選択した分岐枝に進む。ここで整数値Mは、これまで選択して進んできた分岐枝の経路構成値の総和である。例えばkが4の場合には経路構成値4の一番右の分岐枝を選択したので、この場合、0(=4−4)以下での経路構成値で最大のものを有する分岐枝、即ちタスクIの分岐枝に進む。また例えばkが3の場合には経路構成値2の真ん中の分岐枝を選択したので、この場合、1(=3−2)以下での経路構成値で最大のものを有する分岐枝、即ちタスクJの分岐枝に進む。このようにして、例えば整数値kが4の時には、経路Start→A→E→F→G→H→I→Endを特定することができる。また整数値kが3の時には、経路Start→A→C→D→H→J→Endを特定することができる。   When an integer value k (0 or more and 5 or less) is given, the process proceeds downstream from the start point Start in FIG. 8 to the first branch point. When the branch point is reached (that is, when the branch point of task A is reached), the branch branch having the largest path configuration value of k or less is selected, and the selected branch branch is advanced. For example, when k is 4, the process proceeds to the rightmost branch branch (the branch branch of task E). For example, when k is 3, the process proceeds to the middle branch (the branch of task C). After that, the selected branch branch is advanced downstream. When the branch point is further reached (that is, when the branch point of task H is reached), the branch branch having the maximum path configuration value of k−M or less is selected, and the selected branch branch is advanced. Here, the integer value M is the total sum of the path configuration values of the branch branches selected and advanced so far. For example, when k is 4, the rightmost branch branch of the path configuration value 4 is selected. In this case, the branch branch having the maximum path configuration value of 0 (= 4-4) or less, that is, Go to Task I branch. For example, when k is 3, the middle branch branch of route configuration value 2 is selected. In this case, the branch branch having the largest route configuration value of 1 (= 3-2) or less, that is, a task. Go to J branch. In this way, for example, when the integer value k is 4, the path Start → A → E → F → G → H → I → End can be specified. When the integer value k is 3, the path Start → A → C → D → H → J → End can be specified.

なお図9に示す経路特定用の整数値の開始値は、必ずしも0である必要はない。図5及び図7に示すアルゴリズムで計算すれば、整数値の開始値は0となるが、例えば、図8に示す実行フローの最下段の2つの分岐枝(タスクIとタスクJとに対応する2つの分岐枝)には、それぞれ1と2を割り当ててもよい。この場合には、経路を特定する整数値は1〜6の6個の整数となる。但しこの場合、1〜6のうちの1つの整数値が与えられたときに、この整数値に一意に対応する経路を特定する作業が若干複雑になる。具体的には、最後の分岐点でない分岐点ではk−Mより小さい経路構成値で最大のものを有する分岐枝を選択するようにし、最後の分岐点ではk−M以下の経路構成値で最大のものを有する分岐枝を選択すればよい。同様に、開始点を例えば100にして、100〜105の整数値により経路を特定するようにしてもよい。この場合、この整数値に一意に対応する経路を特定する作業が更に複雑になるが、経路構成値の割り当てのルールさえ分かっていれば、容易に経路を特定することができる。整数値の開始値が0である構成が最も単純で簡便であるが、そのような構成に限定されるものではない。   Note that the start value of the integer value for path identification shown in FIG. 9 is not necessarily 0. If the algorithm shown in FIG. 5 and FIG. 7 is used for calculation, the start value of the integer value is 0. For example, it corresponds to the two branch branches (task I and task J) at the bottom of the execution flow shown in FIG. Two branches may be assigned 1 and 2, respectively. In this case, the integer value for specifying the route is six integers of 1 to 6. However, in this case, when one integer value of 1 to 6 is given, the work of specifying a path uniquely corresponding to this integer value is slightly complicated. Specifically, a branch having the largest path configuration value smaller than k-M is selected at a branch point other than the last branch point, and the maximum is selected at a path configuration value equal to or less than k-M at the last branch point. The branch branch having the above may be selected. Similarly, the starting point may be set to 100, for example, and the route may be specified by an integer value of 100 to 105. In this case, the task of specifying a route uniquely corresponding to the integer value is further complicated, but the route can be easily specified as long as the rules for assigning the route configuration value are known. A configuration in which the start value of the integer value is 0 is the simplest and simplest, but is not limited to such a configuration.

また上記実施例では、図5のアルゴリズムにより、下流から上流に遡りながら(即ち終了点Endから開始点Startに戻るようにして)経路総数値を割り当てたが、この構成に限定されるものではない。例えば、上流から下流に進みながら(即ち開始点Startから終了点Endに進むようにして)経路総数値を割り当ててもよい。   In the above embodiment, the total number of routes is assigned while going back from the downstream to the upstream (that is, returning from the end point End to the start point Start) according to the algorithm of FIG. 5, but the present invention is not limited to this configuration. . For example, the total number of paths may be assigned while proceeding from upstream to downstream (that is, proceeding from the start point Start to the end point End).

図10は、開始点Startから終了点Endに進むようにして経路総数値を割り当てた場合の経路総数値の一例を示す図である。この場合、下流から上流に向かい1つのノードから分岐する複数の枝の各々に対して、各枝の先に存在する経路の総数を求めることになる。即ち、タスクEのノードから分岐するタスクBの枝については、その先(上流側)に存在する経路の総数は1であるので、経路総数値として1が割り当てられる。タスクDの枝及びタスクGの枝についても同様である。また終了点Endのノードから分岐するタスクIの枝については、その先(上流側)に存在する経路の総数は3であるので、経路総数値として3が割り当てられる。タスクJの枝についても同様である。   FIG. 10 is a diagram illustrating an example of the total route value when the total route value is assigned so as to proceed from the start point Start to the end point End. In this case, the total number of paths existing ahead of each branch is obtained for each of a plurality of branches branching from one node from downstream to upstream. That is, for the branch of task B that branches from the node of task E, the total number of paths existing ahead (upstream) is 1, so 1 is assigned as the total number of paths. The same applies to the branch of task D and the branch of task G. For the branch of task I branching from the node at the end point End, the total number of paths existing ahead (upstream side) is 3, so 3 is assigned as the total number of paths. The same applies to the branch of task J.

図11は、図10の経路総数値に対して求めた経路構成値の一例を示す図である。この場合であっても、複数の枝を順番に並べたときのn番目の枝を特定する経路構成値をmとしたときに、n番目の枝に対する経路の総数(経路総数値)とmとの和をn+1番目の枝を特定する経路構成値として求めることになる。   FIG. 11 is a diagram illustrating an example of route configuration values obtained for the total number of routes in FIG. Even in this case, when m is a path configuration value that identifies the nth branch when a plurality of branches are arranged in order, the total number of paths (total path value) for the nth branch and m Is obtained as a path configuration value for specifying the (n + 1) th branch.

また図7に示すアルゴリズムでは、分岐直後のタスクに経路構成値を割り当てているが、分岐直前のタスクに経路構成値を割り当ててもよい。図12は、図6の経路総数値に基づいて分岐直前のタスクに経路構成値を割り当てた場合の結果を示す図である。図13は、図10の経路総数値に基づいて分岐直前のタスクに経路構成値を割り当てた場合の結果を示す図である。分岐直前のタスクとは、言い方を変えれば、合流直前のタスクのことである。   In the algorithm shown in FIG. 7, the route configuration value is assigned to the task immediately after the branch, but the route configuration value may be assigned to the task immediately before the branch. FIG. 12 is a diagram illustrating a result when a route configuration value is assigned to a task immediately before branching based on the total number of routes in FIG. FIG. 13 is a diagram showing a result when a route configuration value is assigned to a task immediately before branching based on the total number of routes in FIG. In other words, the task immediately before branching is the task immediately before joining.

上記に示す場合において、実行フローの中で1つのノードから分岐する直前のタスクに経路構成値が割り当てられており、これは、実行フローの中で1つのノードから分岐する複数の枝の各々に経路構成値が割り当てられると考えても同じである。即ちこの場合であっても定式化すれば、複数の枝を順番に並べたときのn番目の枝を特定する経路構成値をmとしたときに、n番目の枝に対する前記経路の総数とmとの和をn+1番目の枝を特定する経路構成値として求めていることになる。   In the case shown above, a route configuration value is assigned to the task immediately before branching from one node in the execution flow, and this is assigned to each of a plurality of branches branching from one node in the execution flow. It is the same even if the route configuration value is considered to be assigned. In other words, even in this case, if it is formulated, the total number of the routes for the n-th branch and m, where m is the path configuration value that identifies the n-th branch when a plurality of branches are arranged in order. Is obtained as a path configuration value that specifies the (n + 1) th branch.

図14は、優先度を示す配列の一例を示す図である。図4に示す検証対象11を検証する際に、各実行経路について優先度を設け、優先順位に従って経路を実行することが好ましい場合がある。このように優先順位に従って経路を実行することにより、重要なタスク実行パターンを優先的に検証し、重要なタスク実行パターンに対する設計不良を早期に検出し修正することができる。図14に示す例では、メモリ上に配列20を用意する。配列のインデックスを、複数の経路を一意に特定する整数値に対応させ、配列の格納値を、対応するインデックスが示す経路の優先度とする。即ち例えば配列インデックス3の格納値3は、整数値3により特定される経路(例えば図9に示すStart→A→C→D→H→J→End)の優先度が3であることを示す。この例の場合、例えば優先度の値が大きいほど、優先度が高いことを示す。   FIG. 14 is a diagram illustrating an example of an array indicating priorities. When verifying the verification target 11 shown in FIG. 4, it may be preferable to set a priority for each execution route and execute the route according to the priority order. By executing the routes according to the priorities in this way, important task execution patterns can be preferentially verified, and design defects for important task execution patterns can be detected and corrected at an early stage. In the example shown in FIG. 14, the array 20 is prepared on the memory. The array index is made to correspond to an integer value that uniquely identifies a plurality of paths, and the stored value of the array is used as the priority of the path indicated by the corresponding index. That is, for example, the stored value 3 of the array index 3 indicates that the priority of the path specified by the integer value 3 (for example, Start → A → C → D → H → J → End shown in FIG. 9) is 3. In this example, for example, the higher the priority value, the higher the priority.

図15は、優先度の順番に従って経路を実行する処理のフローチャートである。このフローチャートの処理を計算機により実行することにより、優先度に従った検証が可能となる。   FIG. 15 is a flowchart of processing for executing a route according to the order of priority. By executing the processing of this flowchart by a computer, verification according to priority can be performed.

ステップS1で、配列に格納された優先度の最大値を求める。図14の例の場合、初期状態では優先度の最大値は3である。ステップS2で、経路値をランダムに生成する。即ち、経路を一意に特定する整数値(例えば0〜5の6個の整数値のうちの1つ)をランダムに生成する。ステップS3で、生成した経路値の優先度が最大値であるか否かを判定する。例えば生成した経路値が2である場合、図14の配列20を参照して、この生成した経路の優先度が2であり、最大値3ではないことが分かる。生成した経路値の優先度が最大値でない場合、ステップS2に戻り経路値のランダム生成を繰り返す。生成した経路値の優先度が最大値である場合、ステップS4に進む。   In step S1, the maximum value of the priority stored in the array is obtained. In the example of FIG. 14, the maximum priority is 3 in the initial state. In step S2, a route value is randomly generated. That is, an integer value that uniquely identifies the path (for example, one of six integer values from 0 to 5) is randomly generated. In step S3, it is determined whether the priority of the generated route value is the maximum value. For example, when the generated route value is 2, it can be seen that the priority of the generated route is 2 and not the maximum value 3 with reference to the array 20 in FIG. If the priority of the generated route value is not the maximum value, the process returns to step S2 and repeats random generation of the route value. When the priority of the generated route value is the maximum value, the process proceeds to step S4.

ステップS4において、経路値に対応した経路を生成して、その経路を実行する。即ち、例えば優先度3に対応する経路値3の場合には、この経路値3に基づいて経路Start→A→C→D→H→J→Endを生成(特定)し、テストベンチ10により検証対象11に対してこの経路を実行する。ステップS5で、経路値に対応する配列の格納値を0にする。例えば実行した経路の経路値が3である場合には、図14の配列20のインデックス3に対応する配列格納値3を0に書き替える。   In step S4, a route corresponding to the route value is generated and the route is executed. That is, for example, in the case of route value 3 corresponding to priority 3, route Start → A → C → D → H → J → End is generated (specified) based on this route value 3 and verified by test bench 10. This route is executed for the target 11. In step S5, the stored value of the array corresponding to the route value is set to zero. For example, when the route value of the executed route is 3, the array storage value 3 corresponding to the index 3 of the array 20 in FIG.

ステップS6で、配列格納値全てが0か否かを判定する。即ち、例えば配列20の6個の配列格納値が全て0であるか否かを判定する。全て0である場合には、全ての経路を実行したことになるので、処理を終了する。0でない配列格納値がある場合には、ステップS1に戻り、その後の処理を繰り返す。   In step S6, it is determined whether all the array storage values are 0 or not. That is, for example, it is determined whether or not all six array storage values of the array 20 are zero. If all the values are 0, all the routes have been executed, and the process is terminated. If there is a non-zero array storage value, the process returns to step S1 and the subsequent processing is repeated.

図16は、経路実行にともなう配列格納値の変化の様子を示す図である。(a)は、入れ値20の処理状態を示し、配列格納値は図14に示す値と同一である。この状態において、最大優先度3に対応する経路値3に対応する経路を実行し、この経路値3の配列格納値を0に変更する。(b)は、経路値3の配列格納値を0にした後の配列20の状態を示す。この状態において、最大優先度2に対応するのは経路値0と経路値2とがあり、ランダムに選択された経路値2に対応する経路を実行し、この経路値2の配列格納値を0に変更する。(c)は、経路値2の配列格納値を0にした後の配列20の状態を示す。この状態において、最大優先度2に対応する経路値0に対応する経路を実行し、この経路値0の配列格納値を0に変更する。(d)は、経路値0の配列格納値を0にした後の配列20の状態を示す。この状態において、最大優先度1に対応するのは経路値1、4、及び5があり、ランダムに選択された経路値4に対応する経路を実行し、この経路値4の配列格納値を0に変更する。(e)は、経路値4の配列格納値を0にした後の配列20の状態を示す。この状態において、最大優先度1に対応するのは経路値1及び5があり、ランダムに選択された経路値1に対応する経路を実行し、この経路値1の配列格納値を0に変更する。(f)は、経路値1の配列格納値を0にした後の配列20の状態を示す。この状態において、最大優先度1に対応する経路値5に対応する経路を実行し、この経路値5の配列格納値を0に変更する。(g)は、経路値5の配列格納値を0にした後の配列20の状態を示す。(g)に示すように配列20の配列格納値が全て0になると、全ての経路の実行が終了したことになるので、経路実行処理を終了する。   FIG. 16 is a diagram illustrating how the array storage value changes as a result of path execution. (A) shows the processing state of the input value 20, and the array storage value is the same as the value shown in FIG. In this state, the route corresponding to the route value 3 corresponding to the maximum priority 3 is executed, and the array storage value of this route value 3 is changed to 0. (B) shows the state of the array 20 after the array storage value of the route value 3 is set to zero. In this state, there are a route value 0 and a route value 2 corresponding to the maximum priority 2, a route corresponding to the route value 2 selected at random is executed, and the array storage value of this route value 2 is set to 0. Change to (C) shows the state of the array 20 after the array storage value of the route value 2 is set to zero. In this state, the route corresponding to the route value 0 corresponding to the maximum priority 2 is executed, and the array storage value of the route value 0 is changed to 0. (D) shows the state of the array 20 after the array stored value of the route value 0 is set to 0. In this state, there are route values 1, 4, and 5 corresponding to the maximum priority 1, and a route corresponding to the route value 4 selected at random is executed, and the array storage value of this route value 4 is set to 0. Change to (E) shows the state of the array 20 after the array storage value of the route value 4 is set to zero. In this state, there are route values 1 and 5 corresponding to the maximum priority 1, and a route corresponding to the route value 1 selected at random is executed, and the array storage value of this route value 1 is changed to 0. . (F) shows the state of the array 20 after the array stored value of the route value 1 is set to zero. In this state, the route corresponding to the route value 5 corresponding to the maximum priority 1 is executed, and the array storage value of this route value 5 is changed to 0. (G) shows the state of the array 20 after the array storage value of the route value 5 is set to zero. As shown in (g), when all the array storage values of the array 20 become 0, the execution of all the paths has been completed, so the path execution process ends.

図17は、本発明による経路管理方法を実行する装置の構成を示す図である。   FIG. 17 is a diagram showing the configuration of an apparatus for executing the route management method according to the present invention.

図17に示されるように、本発明による経路管理方法を実行する装置は、例えばパーソナルコンピュータやエンジニアリングワークステーション等のコンピュータにより実現される。図17の装置は、コンピュータ(計算機)510と、コンピュータ510に接続されるディスプレイ装置520、通信装置523、及び入力装置よりなる。入力装置は、例えばキーボード521及びマウス522を含む。コンピュータ510は、CPU511、RAM512、ROM513、ハードディスク等の二次記憶装置514、可換媒体記憶装置515、及びインターフェース516を含む。   As shown in FIG. 17, the apparatus for executing the route management method according to the present invention is realized by a computer such as a personal computer or an engineering workstation. 17 includes a computer (computer) 510, a display device 520 connected to the computer 510, a communication device 523, and an input device. The input device includes a keyboard 521 and a mouse 522, for example. The computer 510 includes a CPU 511, a RAM 512, a ROM 513, a secondary storage device 514 such as a hard disk, a replaceable medium storage device 515, and an interface 516.

キーボード521及びマウス522は、ユーザとのインターフェースを提供するものであり、コンピュータ510を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。ディスプレイ装置520は、コンピュータ510で処理された結果等を表示すると共に、コンピュータ510を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。通信装置523は、遠隔地との通信を行なうためのものであり、例えばモデムやネットワークインターフェース等よりなる。   The keyboard 521 and the mouse 522 provide an interface with the user, and various commands for operating the computer 510, user responses to requested data, and the like are input. The display device 520 displays the results processed by the computer 510 and displays various data to enable interaction with the user when operating the computer 510. The communication device 523 is for performing communication with a remote place, and includes, for example, a modem or a network interface.

本発明による経路管理方法は、コンピュータ510が実行可能なコンピュータプログラムとして提供される。このコンピュータプログラムは、可換媒体記憶装置515に装着可能な記憶媒体Mに記憶されており、記憶媒体Mから可換媒体記憶装置515を介して、RAM512或いは二次記憶装置514にロードされる。或いは、このコンピュータプログラムは、遠隔地にある記憶媒体(図示せず)に記憶されており、この記憶媒体から通信装置523及びインターフェース516を介して、RAM512或いは二次記憶装置514にロードされる。   The route management method according to the present invention is provided as a computer program executable by the computer 510. This computer program is stored in the storage medium M that can be mounted on the replaceable medium storage device 515, and is loaded from the storage medium M to the RAM 512 or the secondary storage device 514 via the replaceable medium storage device 515. Alternatively, the computer program is stored in a remote storage medium (not shown), and is loaded from the storage medium to the RAM 512 or the secondary storage device 514 via the communication device 523 and the interface 516.

キーボード521及び/又はマウス522を介してユーザからプログラム実行指示があると、CPU511は、記憶媒体M、遠隔地記憶媒体、或いは二次記憶装置514からプログラムをRAM512にロードする。CPU511は、RAM512の空き記憶空間をワークエリアとして使用して、RAM512にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。なおROM513は、コンピュータ510の基本動作を制御するための制御プログラムが格納されている。   When there is a program execution instruction from the user via the keyboard 521 and / or the mouse 522, the CPU 511 loads the program from the storage medium M, the remote storage medium, or the secondary storage device 514 to the RAM 512. The CPU 511 uses the free storage space of the RAM 512 as a work area, executes the program loaded in the RAM 512, and advances the process while appropriately interacting with the user. The ROM 513 stores a control program for controlling basic operations of the computer 510.

上記コンピュータプログラムを実行することにより、コンピュータ510が、上記各実施例で説明されたように経路管理方法を実行する。具体的には、コンピュータ510による計算機シミュレーションを実行することにより、図4に示すようにテストベンチ10による検証対象11に対する検証動作が実行される。また検証動作の実行に際して、1つの経路値により1つの経路を一意に特定する形で、実行対象の経路の管理を行なう。   By executing the computer program, the computer 510 executes the route management method as described in the above embodiments. Specifically, by executing a computer simulation by the computer 510, the verification operation for the verification target 11 by the test bench 10 is executed as shown in FIG. When executing the verification operation, the route to be executed is managed in such a manner that one route is uniquely specified by one route value.

以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。   As mentioned above, although this invention was demonstrated based on the Example, this invention is not limited to the said Example, A various deformation | transformation is possible within the range as described in a claim.

なお本発明は以下の内容を含むものである。
(付記1)
計算機シミュレーションにおいてテストベンチが検証対象に対して行なう操作をタスクとし、一連のタスクから構成される複数の経路がタスクの実行フローとして与えられたときに、
前記実行フローの中で1つのノードから分岐する複数の枝の各々に対して、各枝の先に存在する経路の総数を計算機により求めメモリに格納し、
前記複数の枝を順番に並べたときのn(n:整数)番目の枝を特定する第1の整数値をmとしたときに、n番目の枝に対する前記経路の総数とmとの和をn+1番目の枝を特定する第1の整数値として計算機により求めメモリに格納し、
前記第1の整数値に基づく第2の整数値により前記複数の経路の各々を計算機により一意に特定する
各段階を含むことを特徴とする経路管理方法。
(付記2)
前記第1の整数値を求める段階は、前記実行フロー中の全ての分岐の全ての枝に対して前記第1の整数値を求めることを特徴とする付記1記載の経路管理方法。
(付記3)
前記一意に特定する段階は、一の経路に含まれる枝を特定する前記第1の整数値の総和を前記第2の整数値として求め、該総和により前記一の経路を一意に特定することを特徴とする付記1又は2に記載の経路管理方法。
(付記4)
前記一意に特定する段階は、前記第2の整数値として一の整数が与えられると、該一の整数と前記メモリに格納された前記第1の整数値とに基づいて前記複数の経路の1つを特定することを特徴とする付記1乃至3のいずれか一項に記載の経路管理方法。
(付記5)
前記複数の経路の各々に割り振られた優先度をメモリに格納し、
前記メモリに格納された前記優先度の順番に従って、前記テストベンチにより前記複数の経路を前記検証対象に対して実行し、
実行済みの経路を前記第2の整数値により特定してメモリに記録する
各段階を更に含むことを特徴とする付記1乃至4のいずれか一項に記載の経路管理方法。
(付記6)
検証対象を記述するデータと、計算機シミュレーションにおいて前記検証対象に対してタスクを実行するテストベンチと、一連のタスクから構成される複数の経路を示すタスクの実行フローを規定するデータとを格納するメモリと、
前記メモリに格納された前記検証対象を記述するデータと、前記テストベンチと、前記実行フローを規定するデータとに基づいて、前記検証対象の動作を検証する計算機シミュレーションを実行する演算処理ユニットを含み、該演算処理ユニットは、
前記実行フローの中で1つのノードから分岐する複数の枝の各々に対して、各枝の先に存在する経路の総数を求め前記メモリに格納し、
前記複数の枝を順番に並べたときのn(n:整数)番目の枝を特定する第1の整数値をmとしたときに、n番目の枝に対する前記経路の総数とmとの和をn+1番目の枝を特定する第1の整数値として求め前記メモリに格納し、
前記第1の整数値に基づく第2の整数値により前記複数の経路の各々を一意に特定する
各段階を実行することを特徴とする検証装置。
The present invention includes the following contents.
(Appendix 1)
In the computer simulation, when the test bench performs an operation on the verification target as a task and a plurality of paths composed of a series of tasks are given as the task execution flow,
For each of a plurality of branches branched from one node in the execution flow, the total number of paths existing ahead of each branch is obtained by a computer and stored in a memory;
When the first integer value that identifies the nth (n: integer) th branch when the plurality of branches are arranged in order is m, the sum of the total number of the paths for the nth branch and m is obtained by a computer as a first integer value that identifies the (n + 1) th branch and stored in memory;
A route management method comprising the steps of uniquely identifying each of the plurality of routes by a computer using a second integer value based on the first integer value.
(Appendix 2)
The route management method according to claim 1, wherein the step of obtaining the first integer value obtains the first integer value for all branches of all branches in the execution flow.
(Appendix 3)
In the step of uniquely specifying, the sum of the first integer values that specify branches included in one route is obtained as the second integer value, and the one route is uniquely specified by the sum. The route management method according to Supplementary Note 1 or 2, which is characterized by
(Appendix 4)
In the step of uniquely specifying, when one integer is given as the second integer value, 1 of the plurality of paths is determined based on the one integer and the first integer value stored in the memory. 4. The route management method according to any one of appendices 1 to 3, wherein one is specified.
(Appendix 5)
Storing the priority assigned to each of the plurality of paths in a memory;
In accordance with the priority order stored in the memory, the test bench executes the plurality of paths with respect to the verification target,
The route management method according to any one of appendices 1 to 4, further comprising: each step of specifying an executed route by the second integer value and recording it in a memory.
(Appendix 6)
Memory that stores data describing a verification target, a test bench that executes a task on the verification target in a computer simulation, and data that defines a task execution flow indicating a plurality of paths composed of a series of tasks When,
An arithmetic processing unit that executes a computer simulation for verifying the operation of the verification target, based on data describing the verification target stored in the memory, the test bench, and data defining the execution flow The arithmetic processing unit is:
For each of a plurality of branches branching from one node in the execution flow, the total number of paths existing ahead of each branch is obtained and stored in the memory,
When the first integer value that identifies the nth (n: integer) th branch when the plurality of branches are arranged in order is m, the sum of the total number of the paths for the nth branch and m is obtaining the first integer value identifying the n + 1 th branch and storing it in the memory;
A verification apparatus that executes each step of uniquely identifying each of the plurality of paths by a second integer value based on the first integer value.

一連のタスクからなる実行フローの一例を概念的に示す図である。It is a figure which shows notionally an example of the execution flow which consists of a series of tasks. 従来の経路実行方法の一例を示すフローチャートである。It is a flowchart which shows an example of the conventional path | route execution method. 記憶領域に記憶されるデータの内容を示す図である。It is a figure which shows the content of the data memorize | stored in a memory area. 計算機シミュレーションにより検証対象の動作を検証する環境を示す図である。It is a figure which shows the environment which verifies operation | movement of verification object by computer simulation. 経路総数値を割り当てる処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process which allocates a route total value. 各タスクについて求めた経路総数値を示す図である。It is a figure which shows the path | route total value calculated | required about each task. 経路構成値を割り当てる処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process which allocates a route | root structure value. 各タスクについて求めた経路構成値を示す図である。It is a figure which shows the path | route structure value calculated | required about each task. 図1に示す各経路に対して一意に割り当てられる整数値を示す図である。It is a figure which shows the integer value allocated uniquely with respect to each path | route shown in FIG. 開始点から終了点に進むようにして経路総数値を割り当てた場合の経路総数値の一例を示す図である。It is a figure which shows an example of a route total value at the time of assigning a route total value so that it may progress to an end point from a starting point. 図10の経路総数値に対して求めた経路構成値の一例を示す図である。It is a figure which shows an example of the path | route structure value calculated | required with respect to the path | route total value of FIG. 図6の経路総数値に基づいて分岐直前のタスクに経路構成値を割り当てた場合の結果を示す図である。It is a figure which shows the result at the time of assigning a path | route structure value to the task just before a branch based on the total number value of a path | route of FIG. 図10の経路総数値に基づいて分岐直前のタスクに経路構成値を割り当てた場合の結果を示す図である。It is a figure which shows the result at the time of assigning a path | route structure value to the task just before a branch based on the total number value of a path | route of FIG. 優先度を示す配列の一例を示す図である。It is a figure which shows an example of the arrangement | sequence which shows a priority. 優先度の順番に従って経路を実行する処理のフローチャートである。It is a flowchart of the process which performs a path | route according to the order of a priority. 経路実行にともなう配列格納値の変化の様子を示す図である。It is a figure which shows the mode of the change of the array storage value accompanying path | route execution. 本発明による経路管理方法を実行する装置の構成を示す図である。It is a figure which shows the structure of the apparatus which performs the path | route management method by this invention.

符号の説明Explanation of symbols

10 テストベンチ
11 検証対象
20 配列
510 コンピュータ
511 CPU
512 RAM
513 ROM
514 二次記憶装置
515 可換媒体記憶装置
516 インターフェース
520 ディスプレイ装置
521 キーボード
522 マウス
523 通信装置
10 Test bench 11 Verification target 20 Array 510 Computer 511 CPU
512 RAM
513 ROM
514 Secondary storage device 515 Exchangeable media storage device 516 Interface 520 Display device 521 Keyboard 522 Mouse 523 Communication device

Claims (5)

計算機シミュレーションにおいてテストベンチが検証対象に対して行なう操作をタスクとし、一連のタスクから構成される複数の経路がタスクの実行フローとして与えられたときに、
前記実行フローの中で1つのノードから分岐する複数の枝の各々に対して、各枝の先に存在する経路の総数を計算機により求めメモリに格納し、
前記複数の枝を順番に並べたときのn(n:整数)番目の枝を特定する第1の整数値をmとしたときに、n番目の枝に対する前記経路の総数とmとの和をn+1番目の枝を特定する第1の整数値として計算機により求めメモリに格納し、
前記第1の整数値に基づく第2の整数値により前記複数の経路の各々を計算機により一意に特定する
各段階を含むことを特徴とする経路管理方法。
In the computer simulation, when the test bench performs an operation on the verification target as a task and a plurality of paths composed of a series of tasks are given as the task execution flow,
For each of a plurality of branches branched from one node in the execution flow, the total number of paths existing ahead of each branch is obtained by a computer and stored in a memory;
When the first integer value that identifies the nth (n: integer) th branch when the plurality of branches are arranged in order is m, the sum of the total number of the paths for the nth branch and m is obtained by a computer as a first integer value that identifies the (n + 1) th branch and stored in memory;
A route management method comprising the steps of uniquely identifying each of the plurality of routes by a computer using a second integer value based on the first integer value.
前記第1の整数値を求める段階は、前記実行フロー中の全ての分岐の全ての枝に対して前記第1の整数値を求めることを特徴とする請求項1記載の経路管理方法。   2. The path management method according to claim 1, wherein the step of obtaining the first integer value obtains the first integer value for all branches of all branches in the execution flow. 前記一意に特定する段階は、一の経路に含まれる枝を特定する前記第1の整数値の総和を前記第2の整数値として求め、該総和により前記一の経路を一意に特定することを特徴とする請求項1又は2に記載の経路管理方法。   In the step of uniquely specifying, the sum of the first integer values that specify branches included in one route is obtained as the second integer value, and the one route is uniquely specified by the sum. The route management method according to claim 1 or 2, characterized in that 前記一意に特定する段階は、前記第2の整数値として一の整数が与えられると、該一の整数と前記メモリに格納された前記第1の整数値とに基づいて前記複数の経路の1つを特定することを特徴とする請求項1乃至3のいずれか一項に記載の経路管理方法。   In the step of uniquely specifying, when one integer is given as the second integer value, 1 of the plurality of paths is determined based on the one integer and the first integer value stored in the memory. The route management method according to any one of claims 1 to 3, wherein one is specified. 前記複数の経路の各々に割り振られた優先度をメモリに格納し、
前記メモリに格納された前記優先度の順番に従って、前記テストベンチにより前記複数の経路を前記検証対象に対して実行し、
実行済みの経路を前記第2の整数値により特定してメモリに記録する
各段階を更に含むことを特徴とする請求項1乃至4のいずれか一項に記載の経路管理方法。
Storing the priority assigned to each of the plurality of paths in a memory;
In accordance with the priority order stored in the memory, the test bench executes the plurality of paths with respect to the verification target,
5. The route management method according to claim 1, further comprising: each step of specifying an executed route by the second integer value and recording it in a memory.
JP2008187705A 2008-07-18 2008-07-18 Route management method Expired - Fee Related JP5136257B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008187705A JP5136257B2 (en) 2008-07-18 2008-07-18 Route management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008187705A JP5136257B2 (en) 2008-07-18 2008-07-18 Route management method

Publications (2)

Publication Number Publication Date
JP2010026810A true JP2010026810A (en) 2010-02-04
JP5136257B2 JP5136257B2 (en) 2013-02-06

Family

ID=41732587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008187705A Expired - Fee Related JP5136257B2 (en) 2008-07-18 2008-07-18 Route management method

Country Status (1)

Country Link
JP (1) JP5136257B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128266A (en) * 1995-10-31 1997-05-16 Fujitsu Ltd Device and method for retrieving source program route
JP2000267886A (en) * 1999-03-19 2000-09-29 Ntt Communicationware Corp Method and device for extracting software test item and recording medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128266A (en) * 1995-10-31 1997-05-16 Fujitsu Ltd Device and method for retrieving source program route
JP2000267886A (en) * 1999-03-19 2000-09-29 Ntt Communicationware Corp Method and device for extracting software test item and recording medium

Also Published As

Publication number Publication date
JP5136257B2 (en) 2013-02-06

Similar Documents

Publication Publication Date Title
US8495535B2 (en) Partitioning and scheduling uniform operator logic trees for hardware accelerators
JP4908073B2 (en) Service-based software design support method and apparatus therefor
JP2007188443A (en) Verification support program, storage medium recording this program, verification support device and verification support method
JP2000207440A (en) Device and method for verifying design of semiconductor integrated circuit and storage medium
Ubar et al. Structural fault collapsing by superposition of BDDs for test generation in digital circuits
JP2006139729A (en) Hardware verification programming language model generation apparatus, hardware verification programming language model generation method, computer system, hardware simulation method, control program, and readable storage medium
JP6374823B2 (en) Route placement method, route placement device, and program
CN116663491B (en) Method, equipment and medium for covering group condition constraint statement based on BDD solving function
JP2013235512A (en) Apparatus, program, and method for solving mathematical programming problem
US7559042B2 (en) Layout evaluating apparatus
Yu et al. TILA: Timing-driven incremental layer assignment
JPH05101141A (en) High-level composition device
JP5136257B2 (en) Route management method
US10223077B2 (en) Determination of signals for readback from FPGA
JP2010250669A (en) Test case generation device, object inspection device, and program
JP2006268165A (en) Timing analyzing device for integrated circuit, timing optimizing device for integrated circuit, timing analyzing method for integrated circuit, timing optimizing method for integrated circuit, method for manufacturing integrated circuit board, control program and readable recording medium
JP5328447B2 (en) High-level synthesis apparatus and high-level synthesis method, semiconductor integrated circuit manufacturing method, control program, and readable storage medium
US20210056241A1 (en) Design support device and computer readable medium
JP5875607B2 (en) Performance model inspection apparatus, method and program
JP6330490B2 (en) Test case generation program, test case generation apparatus, and test case generation method
JP7091726B2 (en) Information processing equipment, programs and information processing methods
JP5009243B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, program, recording medium, and semiconductor integrated circuit manufacturing method
JP2011053764A (en) Behavioral synthesis verification auxiliary device, behavioral synthesis verification auxiliary method, program and recording medium
Jenihhin et al. High-level decision diagrams based coverage metrics for verification and test
JP2017156963A (en) Operation support device, operation support system, operation support method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120918

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121016

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121029

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151122

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees