JPH10149382A - Device for designing electronic circuit by program language - Google Patents

Device for designing electronic circuit by program language

Info

Publication number
JPH10149382A
JPH10149382A JP8309049A JP30904996A JPH10149382A JP H10149382 A JPH10149382 A JP H10149382A JP 8309049 A JP8309049 A JP 8309049A JP 30904996 A JP30904996 A JP 30904996A JP H10149382 A JPH10149382 A JP H10149382A
Authority
JP
Japan
Prior art keywords
program
description
processing unit
language
conversion
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.)
Pending
Application number
JP8309049A
Other languages
Japanese (ja)
Inventor
Toshio Matsuki
敏夫 松木
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP8309049A priority Critical patent/JPH10149382A/en
Publication of JPH10149382A publication Critical patent/JPH10149382A/en
Pending legal-status Critical Current

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To efficiently describe a circuit without complicating the description while executing circuit description by using general program language of which description property, debugging environment and execution environment are superior to that of hardware description language and to attain highly accurate simulation and debugging close to the operation of a real circuit. SOLUTION: A specification processing part 2 specifies parts to be successively controlled from a program 1 in which circuit operation is described by the general program language. Then a conversion processing part 3 converts the description of the parts to be successively controlled by the general program language so as to drive it as a state machine and obtains a converted program 4. Then a program generation processing part 5 extracts parts to be driven in parallel from the converted program 4 and generates a program 6 for accessing all the extracted parts.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、C言語等の汎用の
プログラム言語を用いて電子回路を設計する装置に関す
る。
The present invention relates to an apparatus for designing an electronic circuit using a general-purpose program language such as C language.

【0002】[0002]

【従来の技術】電子回路を設計するに際して、従来で
は、ハードウエア記述言語により回路記述を行い、高速
なシミュレータで機能検証し、その後、論理合成ツール
を用いて実際のハードウエアに直接対応するゲートレベ
ルの回路を生成する手法が用いられてる。この手法は、
最初からゲートレベルで開発するよりも効率良く大規模
な回路を設計できる利点がある。
2. Description of the Related Art Conventionally, when designing an electronic circuit, a circuit description is conventionally made in a hardware description language, the function is verified by a high-speed simulator, and then a gate that directly corresponds to the actual hardware using a logic synthesis tool. A technique of generating a level circuit is used. This technique is
There is an advantage that a large-scale circuit can be designed more efficiently than developing at the gate level from the beginning.

【0003】最近では、ハードウエアシミュレータとプ
ログラムデバッグツールとを組合わせて、マイクロプロ
セッサ上で動作するプログラムとハードウエアとを共に
デバッグするツールが提供されている。
Recently, a tool has been provided which combines a hardware simulator and a program debug tool to debug both a program operating on a microprocessor and hardware.

【0004】[0004]

【発明が解決しようとする課題】しかしながら、ハード
ウエア記述言語では、ハードウエアをシミュレーション
可能に時間を管理し、記述された処理の全てが時間の経
過に従って並列に動作できるように考慮されているもの
の、次の欠点を有する。即ち、ハードウエア記述言語
は、C言語等のプログラム言語と比較すると、記述性が
劣る。また、ハードウエア記述言語で記述された回路の
機能シミュレーションを行って回路のデバッグをする場
合に、そのデバッグツールが、プログラム言語のデバッ
グツールほど洗練されていず、デバッグ方法で苦慮する
ことが多い。更に、ハードウエア記述言語で書かれた回
路をシミュレーションするシミュレータも高価であり、
そのシミュレータの動作速度も遅いことが多い。更に、
マイクロプロセッサ上で動作するハードウエア制御プロ
グラムと、ハードウエアとを共にデバッグする場合であ
っても、ハードウエアの評価はハードウエアシミュレー
タに依存しているため、ハードウェアをハードウエア記
述言語で記述する必要があり、従って、ハードウエアの
記述性が良くなく、また、デバッグの難しさも依然残
る。
However, the hardware description language manages the time so that the hardware can be simulated, and considers that all the described processes can operate in parallel as time elapses. Has the following disadvantages. That is, the hardware description language is inferior in description when compared with a programming language such as C language. In addition, when debugging a circuit by performing a function simulation of a circuit described in a hardware description language, the debug tool is not as sophisticated as a debug tool of a programming language, and often suffers in debugging methods. Furthermore, simulators that simulate circuits written in hardware description languages are also expensive,
The operating speed of the simulator is often slow. Furthermore,
Even when debugging both a hardware control program operating on a microprocessor and hardware, the hardware evaluation is dependent on the hardware simulator, so the hardware is described in a hardware description language. Therefore, the description of the hardware is not good, and the difficulty of debugging still remains.

【0005】特開平4−23076号公報では、高級言
語で記述された回路を、マンマシンインターフエイスで
対話的に操作を行って、ハードウエア記述言語に変換す
るものを提案するが、この提案の技術は、高級言語で書
かれた回路記述の中で回路の動作とは無関係な部分を削
除する機能と、逐次的な動作をする回路を生成するため
の技術であって、その適用範囲が限定される。
Japanese Unexamined Patent Publication No. Hei 4-23076 proposes a method of converting a circuit described in a high-level language into a hardware description language by interactively operating a circuit using a man-machine interface. The technology is a function to delete parts that are not related to the operation of the circuit in the circuit description written in a high-level language, and a technology to generate a circuit that operates sequentially, and its application range is limited. Is done.

【0006】一方、従来、C言語等のプログラム言語に
より回路の動作を記述し、シミュレーションを行って、
回路の評価をする技術がある。この技術は、プログラム
言語が、ハードウェア記述言語よりも記述性が良く、ま
たデバッグ環境、実行環境等が既に整備されているの
で、デバッグを簡易に行うことができる。
On the other hand, conventionally, the operation of a circuit has been described in a program language such as C language, and a simulation has been performed.
There is a technology for evaluating circuits. According to this technique, since the programming language has better descriptiveness than the hardware description language, and a debugging environment, an execution environment, and the like are already prepared, debugging can be easily performed.

【0007】しかしながら、プログラム言語は、ハード
ウエア記述言語のように、並列に動作する回路を表現し
たり、クロック同期回路を表現しようとする場合には、
従来では、複雑な記述を行う必要があり、これ等の点に
おいては、ハードウエア記述言語で記述した場合に比し
て、効率が悪くなる。仮に、複雑な記述をしなければ、
プログラム言語が逐次処理を記述する言語であって、複
数の処理を同時処理できない以上、実際の回路の動作と
は全く異なった動きをして、精度の高いシミュレーショ
ンが行えない。
However, a programming language, like a hardware description language, represents a circuit operating in parallel or a clock synchronous circuit.
Conventionally, it is necessary to perform a complicated description, and in these points, the efficiency is lower than in the case where the description is performed in a hardware description language. If you do not make complicated descriptions,
Since the programming language is a language that describes sequential processing, a plurality of processes cannot be processed simultaneously, so that the operation is completely different from the actual operation of the circuit, and a highly accurate simulation cannot be performed.

【0008】本発明は、前記の諸点に着目してなされた
ものであり、その目的は、記述性が良くまたデバッグを
簡易に行い得る汎用のプログラム言語を用いながら、そ
の記述を複雑化せず、効率良く記述できると共に、実際
の回路の動作に合致した精度の高いシミュレーションを
行い得る設計装置を提供することにある。
SUMMARY OF THE INVENTION The present invention has been made in view of the above-mentioned points, and its object is to use a general-purpose program language which has good descriptiveness and allows easy debugging without complicating the description. It is another object of the present invention to provide a design apparatus which can efficiently describe and perform a highly accurate simulation matching the operation of an actual circuit.

【0009】また、多くのシステムは、回路と、この回
路を制御するプログラムとにより構成される。このシス
テムをシミュレーションにより検証する場合には、回路
のみならず、制御プログラムをも回路と同時に共調して
シミュレーションしなければならない。更に、シミュレ
ーションで検証され且つ汎用のプログラム言語で記述さ
れた回路を正確に実際の回路に変換できなければ、シミ
ュレーションで検証する意味が無くなる。
Many systems are composed of circuits and programs for controlling the circuits. When this system is verified by simulation, not only the circuit but also the control program must be simulated simultaneously with the circuit. Furthermore, if a circuit verified by a simulation and described in a general-purpose programming language cannot be accurately converted to an actual circuit, there is no point in verifying by a simulation.

【0010】そこで、本発明の更なる目的は、前記汎用
のプログラム言語を用いながら実際の回路の動作に合致
した精度の高いシミュレーションを行い得る回路記述の
プログラムと、その記述された回路を制御する制御プロ
グラムとの動作の同期を取ること、及び、そのような回
路記述のプログラムを、その回路の論理合成が可能なハ
ードウェア記述言語に変換することにある。
It is a further object of the present invention to provide a circuit description program capable of performing a highly accurate simulation that matches the operation of an actual circuit while using the general-purpose program language, and to control the described circuit. The object of the present invention is to synchronize the operation with the control program, and to convert such a circuit description program into a hardware description language capable of synthesizing the logic of the circuit.

【0011】[0011]

【課題を解決するための手段】前記の目的を達成するた
め、本発明では、プログラム言語の記述に、基本クロッ
クに同期して動作する順次制御の概念と、複数の処理の
同時並行処理の概念とを含むようにする。
In order to achieve the above object, according to the present invention, a concept of sequential control operating in synchronization with a basic clock and a concept of simultaneous and parallel processing of a plurality of processes are described in a description of a program language. And so on.

【0012】すなわち、請求項1記載の発明では、汎用
プログラム言語で回路動作を記述したプログラムから順
次制御する部分を特定する特定処理部と、前記特定処理
部により特定された部分を汎用プログラム言語を用いて
ステートマシン化するための記述に変換する変換処理部
と、前記汎用プログラム言語で記述された回路を並行動
作させるために、前記汎用プログラム言語で記述された
回路の中の並行動作を行う関数を特定し、この特定した
関数を並行動作させるためのプログラムを追加生成する
プログラム生成処理部とを備えたことを特徴とする。
That is, according to the first aspect of the present invention, a specific processing unit that specifies a part to be sequentially controlled from a program describing circuit operation in a general-purpose program language, and a part specified by the specific processing unit is a general-purpose program language. A conversion processing unit for converting the description into a state machine using the function, and a function for performing a parallel operation in the circuit described in the general-purpose program language in order to operate the circuit described in the general-purpose program language in parallel And a program generation processing unit for additionally generating a program for causing the specified function to operate in parallel.

【0013】また、請求項2記載の発明は、前記請求項
1記載の発明において、変換処理部により変換された変
換プログラム及び前記プログラム生成処理部により生成
された生成プログラムより成る変換生成プログラムで記
述された回路を制御する制御プログラムを入力し、この
制御プログラムの中から、ハードウエアへのアクセス部
分を抽出する抽出処理部と、前記抽出処理部により抽出
されたアクセス部分の実行時刻を検出するプログラム、
及び、このアクセス部分とその1つ前のアクセス部分と
の間の実行時間間隔を測定するプログラムとを、そのア
クセス部分の直前に挿入する第1の追加処理部と、前記
第1の追加処理部により挿入したプログラムで得られる
実行時間間隔に相当するクロック数分だけ前記変換生成
プログラムを動作させるプログラムを、前記アクセス部
分の直前に挿入する第2の追加処理部とを備えて、前記
変換生成プログラムと前記制御プログラムとの同期を取
ることを特徴とする。
According to a second aspect of the present invention, in the first aspect of the present invention, the conversion program generated by the conversion program converted by the conversion processing unit and the generation program generated by the program generation processing unit are described. A control program for controlling the extracted circuit, and from the control program, an extraction processing unit for extracting an access part to hardware, and a program for detecting an execution time of the access part extracted by the extraction processing unit ,
A first additional processing unit that inserts a program for measuring an execution time interval between the access part and the immediately preceding access part immediately before the access part; and a first additional processing unit. A second additional processing unit that inserts a program for operating the conversion generation program by the number of clocks corresponding to the execution time interval obtained by the program inserted immediately before the access part, And the control program is synchronized.

【0014】更に、請求項3記載の発明は、前記請求項
1記載の発明において、変換処理部により変換された変
換プログラムで記述された回路の中でフリップフロップ
又はラッチの生成が必要となるプログラム部分を探索
し、フリップフロップ又はラッチを発生させる記述をハ
ードウエア記述言語で前記変換プログラムに追加する追
加処理部と、前記変換プログラムで記述された回路の中
で使用される変数を取得し、その変数の特性を決定し、
その特性に応じてその変数をハードウエア記述言語での
モジュール入出力端子の記述に変換して前記変換プログ
ラムに追加する第2の追加処理部と、前記変換プログラ
ム中の制御構文の表記をハードウエア記述言語記述の制
御構文に変換する構文変換処理部とを備えることを特徴
とする。
Further, according to a third aspect of the present invention, in the first aspect of the present invention, there is provided a program which requires generation of a flip-flop or a latch in a circuit described by a conversion program converted by a conversion processing unit. Searching for a part, obtaining an additional processing unit for adding a description for generating a flip-flop or a latch to the conversion program in a hardware description language, and obtaining a variable used in a circuit described in the conversion program; Determine the characteristics of the variables,
A second additional processing unit that converts the variable into a description of a module input / output terminal in a hardware description language according to the characteristic and adds the description to the conversion program; And a syntax conversion processing unit for converting into a control syntax of a description language description.

【0015】以上の構成により、請求項1記載の設計装
置では、汎用のプログラム言語で記述された回路につい
て、実際の回路に近い動作で精度の高いシミュレーショ
ンを行って、デバッグすることが可能である。また、実
際のハードウエアへ変換することも可能である。
With the above configuration, the design apparatus according to the first aspect can debug a circuit described in a general-purpose program language by performing a highly accurate simulation with an operation close to an actual circuit. . It is also possible to convert to actual hardware.

【0016】また、請求項2記載の設計装置では、汎用
プログラム言語で記述された回路のプログラムと、その
回路を制御する制御プログラムとを、その両者で同期を
取りながら、共に、シミュレーションの実行、デバッ
グ、及び評価を高い精度で行うことができる。
According to a second aspect of the present invention, a circuit program described in a general-purpose program language and a control program for controlling the circuit are synchronized with each other while executing a simulation. Debugging and evaluation can be performed with high accuracy.

【0017】更に、請求項3記載の設計装置では、汎用
プログラム言語で記述された回路を、論理合成可能な汎
用のハードウエア記述言語に変換して、ハードウエアを
実現することを可能になる。
Further, in the design apparatus according to the third aspect, it is possible to implement a hardware by converting a circuit described in a general-purpose program language into a general-purpose hardware description language capable of logic synthesis.

【0018】[0018]

【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照しながら説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0019】図1は、請求項1記載の設計装置の実施の
形態を示すブロック図である。
FIG. 1 is a block diagram showing an embodiment of the design apparatus according to the present invention.

【0020】同図において、1はプログラム言語を用い
て回路動作のアルゴリズムを記述したプログラムであ
る。このプログラムをC言語で記述した例を、図2、図
4及び図6に掲げる。これ等の関数を適宜アクセスする
プログラムを作成すれば、これ等の図の記述のままでも
アルゴリズムの検証が可能である。これ等の図2、図4
及び図6の記述を実行した場合には、ハードウエアの実
際の動作とは大きく異なることになるものの、システム
全体の仕様の確認、アルゴリズムの確認、及びその記述
された回路を制御する制御プログラムとの整合性の確認
等、システム設計の初期に含まれる仕様レベルの不具
合、アルゴリズムの不具合を極めて高速に検証すること
が可能である。回路部分のデバッグにも、プログラムの
デバッグと同じツールが使えるので、プログラムのデバ
ッグができる環境であれば、システム全体の評価が可能
である。
In FIG. 1, reference numeral 1 denotes a program describing an algorithm of a circuit operation using a programming language. Examples in which this program is described in the C language are shown in FIG. 2, FIG. 4, and FIG. If a program that accesses these functions as appropriate is created, the algorithm can be verified even with the description in these figures. These FIGS. 2 and 4
When the description of FIG. 6 is executed, the actual operation of the hardware is greatly different from the actual operation of the hardware. However, a control program for confirming the specifications of the entire system, confirming the algorithm, and controlling the described circuit, It is possible to verify at a very high speed a defect of a specification level and a defect of an algorithm included in an early stage of a system design, such as a check of consistency of the system. The same tools can be used for debugging the circuit part as for debugging the program, so that if the environment allows program debugging, the entire system can be evaluated.

【0021】従来では、このレベルである程度の検証を
行った後、回路図の入力装置を用いて回路を再度設計
し、又はハードウエア記述言語に書き直していたため、
ここで設計ミスが発生することが少なくない。また、こ
の時点の記述では、既述の通り実際の回路動作と異なる
部分が多くて、シミュレーションの精度が低く、一方、
実際の回路と同じ動作をさせるような記述をしようとす
れば、複雑な記述が必要となり、最初からハードウエア
記述言語でシミュレーションする場合に比して、効率が
悪くなる。
Conventionally, after performing a certain degree of verification at this level, a circuit is redesigned using an input device of a circuit diagram or written in a hardware description language.
Here, design errors often occur. In addition, in the description at this time, there are many parts different from the actual circuit operation as described above, and the accuracy of the simulation is low.
If a description is made to perform the same operation as an actual circuit, a complicated description will be required, and the efficiency will be lower than in the case of performing a simulation using a hardware description language from the beginning.

【0022】前記図2、図4及び図6に掲げる記述に
は、基本クロックの変化に従って動作して行くハードウ
エアの動作概念が含まれず、また、この記述のままで
は、ハードウエアの持つ同時並行動作もシミュレーショ
ンできない。一方、全てが同時並行動作をするのではな
く、図2又は図4の関数の内部の処理のような場合に
は、逐次処理となり、ステートマシン動作が必要とな
る。
The descriptions shown in FIGS. 2, 4 and 6 do not include the concept of the operation of the hardware operating in accordance with the change of the basic clock. Operation cannot be simulated. On the other hand, in the case where not all of the operations are performed simultaneously and concurrently, such as the processing inside the function of FIG. 2 or FIG.

【0023】そこで、次に、プログラム1を特定処理部
2に入力し、この特定処理部2において、プログラム1
の中から順次制御する部分を探し出し、特定し、その
後、変換処理部3において、前記特定した順次制御する
部分をステートマシンの動作を行う記述に変換し、その
変換後のプログラム、即ちハードウエアに変換した時と
等価の動作をするように変換したプログラム(変換プロ
グラム)4を得る。図2の記述を変換した例を図3に、
図4の記述を変換した例を図5に示す。
Then, next, the program 1 is input to the specific processing unit 2, and the specific processing unit 2 executes the program 1
Are searched for and specified from among the parts to be sequentially controlled, and then, in the conversion processing unit 3, the specified parts to be sequentially controlled are converted into a description for performing an operation of the state machine, and the converted program, that is, the hardware is converted into a description. A program (conversion program) 4 converted so as to perform an operation equivalent to the conversion is obtained. FIG. 3 shows an example in which the description of FIG. 2 is converted.
FIG. 5 shows an example in which the description of FIG. 4 is converted.

【0024】続いて、前記変換処理部3で変換された変
換プログラム4をプログラム生成処理部5に入力し、こ
の処理部5において、前記プログラム4の中から、同時
並行動作を行う部分を抽出し、この抽出部分の全てをア
クセスするプログラム6を生成する。並行動作を行う部
分は、予め、ルールを決定しておき、それをパターンマ
ッチングにより探し出す。例えば、関数名にSUB_や
LiB_が付いている場合には、ライブラリ的な回路と
して扱い、それ以外の関数は実体のある並行動作する回
路であるとする。図7は、このルールを基に、図3、図
5及び図6から同時並行動作の部分を抽出し、それ等を
全てアクセスするように生成したプログラムの例であ
る。
Subsequently, the conversion program 4 converted by the conversion processing unit 3 is input to a program generation processing unit 5, and the processing unit 5 extracts, from the program 4, a part that performs simultaneous and parallel operations. , A program 6 for accessing all of the extracted parts. For the part performing the parallel operation, rules are determined in advance, and the rules are searched for by pattern matching. For example, when SUB_ or LiB_ is added to the function name, it is assumed that the circuit is treated as a library-like circuit, and the other functions are substantial and operate in parallel. FIG. 7 shows an example of a program that extracts a part of simultaneous and parallel operations from FIGS. 3, 5 and 6 based on this rule, and generates a program to access all of them.

【0025】7は、前記変換処理部3でステートマシン
として動作するよう変換された変換プログラム4及び、
前記並行動作部分をアクセスするプログラム(生成プロ
グラム)6を入力し、プログラム言語を処理するプログ
ラム言語の処理系である。
7 is a conversion program 4 converted by the conversion processing unit 3 to operate as a state machine;
A program language processing system that inputs a program (generation program) 6 for accessing the parallel operation part and processes the program language.

【0026】前記並行動作部分をアクセスするプログラ
ム6をクロックの変化毎に実行しながら、前記変換プロ
グラム4を実行すれば、実際のハードウエアの動作に極
めて似たサイクルベースのシミュレーションが可能とな
る。例えば、図7のrun_hdc()を一度実行する
と、クロック1つ分の実行となる。元のプログラム1と
比較すると、シミュレーション速度は若干低下し、デバ
ッグ性もやや劣化するものの、回路記述部分は実際のハ
ードウェアの動作に近いシミュレーションが可能となる
ので、より一層に精度の高い評価が可能である。また、
この段階でもプログラム言語のままであるので、回路記
述のデバッグ環境は普通のプログラムのデバッグ環境と
同じで足りる。
If the conversion program 4 is executed while the program 6 for accessing the parallel operation part is executed every clock change, a cycle-based simulation very similar to the operation of the actual hardware can be performed. For example, once run_hdc () in FIG. 7 is executed, it is executed for one clock. Compared to the original program 1, the simulation speed is slightly reduced and the debug performance is slightly degraded. However, since the circuit description part can be simulated close to the actual hardware operation, a more accurate evaluation can be performed. It is possible. Also,
Since the program language remains at this stage, the debug environment for the circuit description is the same as the debug environment for ordinary programs.

【0027】図8は、請求項2記載の発明の実施の形態
の設計装置のブロック図を示す。本実施の形態は、回路
記述のプログラムと、その記述された回路を制御する制
御プログラムとの同期を取るものである。
FIG. 8 is a block diagram of a design apparatus according to an embodiment of the present invention. In the present embodiment, a program for describing a circuit is synchronized with a control program for controlling the described circuit.

【0028】同図において、8は、前記図1に示した変
換プログラム4及び生成プログラム6で記述された回路
を制御する制御プログラムである。この制御プログラム
8には、必ず、図9に示すように、ハードウエア14に
アクセスする部分15a,15b,15cが存在する。
前記アクセス部分15aでハードウエアにアクセスした
後、その後のアクセス部分15bに至るまでの時間は、
特別な場合を除き、予め知ることは困難である。従っ
て、その間、ハードウエアがどの程度のクロック変化分
だけ動作したのか規定することは困難である。本実施の
形態は、前記アクセス部分15aでのアクセス時刻と、
その後のアクセス部分15bでのアクセス時刻とを測定
し、その時間間隔からハードウエアの動作時間を算出し
て、その時間分だけ変換プログラム4及び生成プログラ
ム6(以下、変換生成プログラムという)を動作させ
て、その変換生成プログラムと制御プログラム8との同
期を取ろうとするものである。
2, reference numeral 8 denotes a control program for controlling the circuits described in the conversion program 4 and the generation program 6 shown in FIG. As shown in FIG. 9, the control program 8 always includes portions 15a, 15b, and 15c that access the hardware 14.
After the hardware is accessed by the access part 15a, the time until the subsequent access part 15b is reached is:
Except in special cases, it is difficult to know in advance. Therefore, it is difficult to specify how much clock change the hardware has operated during that time. In the present embodiment, the access time at the access portion 15a
The access time at the subsequent access portion 15b is measured, the operation time of the hardware is calculated from the time interval, and the conversion program 4 and the generation program 6 (hereinafter referred to as conversion generation program) are operated for the calculated time. Thus, the conversion generation program and the control program 8 are to be synchronized.

【0029】即ち、図8において、制御プログラム8は
ハードウエアアクセス部抽出処理部9に入力され、この
抽出処理部9は、ハードウエアにアクセスを行っている
記述の位置を探索し、抽出する。その後、制御プログラ
ム実行時間測定処理追加処理部(第1の追加処理部)1
0は、前記抽出処理部9で探索、抽出されたハードウェ
アへのアクセス部分の直前に、その実行時刻を検出する
プログラムを挿入すると共に、前回測定された前のアク
セス部分の実行時刻と今回のアクセス部分の実行時刻と
の差分に基いて、ハードウエアへの前回のアクセスから
今回のアクセスまでの時間を算出するプログラムを、ハ
ードウエアへのアクセスを行う記述の直前に挿入する。
実行時刻の検出は、制御プログラム8を実行する環境が
動作するオペレーティングシステムに対するシステムコ
ール等で実現する。
That is, in FIG. 8, the control program 8 is input to the hardware access unit extraction processing unit 9, and the extraction processing unit 9 searches for and extracts the position of the description accessing the hardware. Thereafter, the control program execution time measurement processing additional processing unit (first additional processing unit) 1
0 inserts a program for detecting the execution time immediately before the access part to the hardware searched and extracted by the extraction processing unit 9, and executes the execution time of the previous access part measured last time and the current time. A program for calculating the time from the previous access to the hardware to the current access based on the difference from the execution time of the access part is inserted immediately before the description for accessing the hardware.
The detection of the execution time is realized by a system call or the like to the operating system in which the environment for executing the control program 8 operates.

【0030】次いで、回路動作起動プログラム追加処理
部(第2の追加処理部)11は、前記第1の追加処理部
10で得られた実行時間から、この実行時間に相当する
ハードウエアのクロック数を算出し、そのクロック数分
だけ回路記述のプログラム(即ち、変換プログラム4及
び生成プログラム6)を動作させるプログラムを、制御
プログラム8の中でハードウエアへのアクセスを行って
いる記述の直前に挿入する。本実施の形態では、図1に
示した並行動作部分をアクセスするプログラム(生成プ
ログラム)6をクロック数分だけ動作させるプログラム
となる。これにより得られた制御プログラム12は、回
路記述のプログラム6と同期したプログラムとなる。
Next, the circuit operation start program additional processing unit (second additional processing unit) 11 calculates the number of hardware clocks corresponding to the execution time from the execution time obtained by the first additional processing unit 10. Is calculated, and a program for operating the circuit description program (that is, the conversion program 4 and the generation program 6) by the number of clocks is inserted immediately before the description of accessing the hardware in the control program 8. I do. In the present embodiment, the program is a program for operating the program (generation program) 6 for accessing the parallel operation portion shown in FIG. 1 by the number of clocks. The control program 12 thus obtained is a program synchronized with the program 6 of the circuit description.

【0031】従って、この制御プログラム12と回路記
述の変換生成プログラムとを実行すれば、ソフトウエア
及びハードウエアを含めたシステム全体の機能評価を精
度良く行える。
Therefore, if the control program 12 and the conversion description program of the circuit description are executed, it is possible to accurately evaluate the functions of the entire system including the software and the hardware.

【0032】図10は、請求項3記載の発明の設計装置
の実施の形態のブロック図を示す。この実施の形態は、
既述のように精度の高いシミュレーションを行い得るプ
ログラム言語で記述された回路を、論理合成可能なハー
ドウェア記述言語に変換するものである。
FIG. 10 is a block diagram showing an embodiment of the design apparatus according to the third aspect of the present invention. In this embodiment,
A circuit described in a programming language capable of performing a highly accurate simulation as described above is converted into a hardware description language capable of performing logic synthesis.

【0033】即ち、図10において、16はハードウエ
アに変換した時と等価の動作をするように変換したプロ
グラムであり、図1に示すステートマシンとして動作す
るように記述変更された変換プログラム4と同一であ
る。
That is, in FIG. 10, reference numeral 16 denotes a program converted so as to perform an operation equivalent to that when converted into hardware, and a conversion program 4 whose description is changed so as to operate as a state machine shown in FIG. Are identical.

【0034】追加処理部(第1の追加処理部)17は、
前記プログラム16の中で、フリップフロップやラッチ
を発生させるプログラム記述を探索し、このフリップフ
ロップ等を発生させる記述部分に、ハードウエア記述言
語でフリップフロップやラッチが構築されるように記述
を追加する。例えば、プログラムがC言語であれば、i
f文を探索し、このif文の構造の解析を行い、このi
f文で記述された部分がセレクタ機能を表現していない
場合、換言すれば、実際のハードウエアでフリップフロ
ップ回路等を生成する必要がある場合には、ハードウエ
ア記述言語でそのフリップフロップ回路等が生成される
記述を追加する。例えば、if文の中の実行文の部分で
スタティック変数に値を設定している場合には、フリッ
プフロップ回路が必要であるので、この部分には、Ve
rilog−HDLでは、always文の記述を追加
する。
The additional processing unit (first additional processing unit) 17
In the program 16, a program description for generating a flip-flop or a latch is searched, and a description is added to a description portion for generating the flip-flop or the like so that the flip-flop or the latch is constructed in a hardware description language. . For example, if the program is C language, i
The f sentence is searched, the structure of the if sentence is analyzed, and the
If the portion described in the f statement does not represent the selector function, in other words, if it is necessary to generate a flip-flop circuit or the like with actual hardware, the flip-flop circuit or the like is written in a hardware description language. Is added. For example, when a value is set to a static variable in a portion of an executable statement in an if statement, a flip-flop circuit is necessary, and thus this portion includes Ve
In the rilog-HDL, a description of an always statement is added.

【0035】ハードウエア記述言語では、ハードウエア
モジュールの入力端子と出力端子の定義を明確に行う必
要があるのに対し、プログラム言語で書かれた回路記述
には、入力端子や出力端子の概念がない。この点から、
追加処理部(第2の追加処理部)18は、プログラム1
6の中で使用される変数を取得し、その変数の使用形態
からその変数の特性を決定して、入力端子及び出力端子
を判別し、それ等の端子をモジュールの記述の先頭部分
に追加する。尚、ハードウエア記述言語でいうモジュー
ルは、プログラム言語の関数に相当する。変数の特性の
決定は、その変数がスタティック変数か、グローバル変
数か、又はローカル変数か否か、及び、その変数へ値を
代入しているか否かにより、決定する。
In a hardware description language, it is necessary to clearly define input terminals and output terminals of a hardware module. On the other hand, in a circuit description written in a program language, the concept of an input terminal and an output terminal is used. Absent. From this point,
The additional processing unit (second additional processing unit) 18
6 to obtain the variables used, determine the characteristics of the variables from the usage of the variables, determine the input and output terminals, and add those terminals to the beginning of the description of the module. . Note that a module in the hardware description language corresponds to a function in the programming language. The characteristics of a variable are determined based on whether the variable is a static variable, a global variable, or a local variable, and whether a value is substituted for the variable.

【0036】更に、制御構文の表記の変換処理部(構文
変換処理部)19は、プログラム言語に特有の表現の制
御構文を、ハードウエア記述言語の表現に変換する。こ
の変換は、パターンマッチング法と置換により行う。こ
れにより、ハードウエア記述言語による回路記述20が
生成される。この回路記述は、ハードウエア記述言語の
シミュレータでもシミュレーションでき、更に、論理合
成、レイアウトを経て、実際のハードウエアを提供する
ことができる。
Further, a conversion processing unit (syntax conversion processing unit) 19 of the notation of the control syntax converts the control syntax of the expression peculiar to the programming language into the expression of the hardware description language. This conversion is performed by a pattern matching method and replacement. As a result, the circuit description 20 is generated in the hardware description language. This circuit description can be simulated by a hardware description language simulator, and furthermore, actual hardware can be provided through logic synthesis and layout.

【0037】[0037]

【発明の効果】以上説明したように、請求項1記載の発
明によれば、安価で且つ数々の開発ツールが既に提供さ
れている汎用プログラムの開発環境を使って、ハードウ
エアの仕様検討、アルゴリズムの検討、更には実際の回
路動作に近い状態でのデバッグを、高速且つ快適に行う
ことが可能である。また、実際のハードウエアへ変換す
ることが可能である。
As described above, according to the first aspect of the present invention, the specification of hardware and the algorithm are examined using a general-purpose program development environment in which various development tools are already provided at low cost. It is possible to perform high-speed and comfortable examination of the above and debugging in a state close to the actual circuit operation. It is also possible to convert to actual hardware.

【0038】また、請求項2記載の発明によれば、汎用
プログラム言語で記述された回路記述のプログラムと、
その回路を制御する制御プログラムとの同期を取りなが
ら、この両プログラムのシミュレーション実行、デバッ
グ、評価を高い精度で行うことができる。
According to the second aspect of the present invention, a circuit description program written in a general-purpose program language,
Simulating, debugging, and evaluating both programs can be performed with high accuracy while synchronizing with a control program that controls the circuit.

【0039】更に、請求項3記載の発明によれば、前記
請求項1の発明により十分にデバッグされた,プログラ
ム言語により書かれた回路記述を論理合成可能なハード
ウエア記述言語に変換して、最終目的であるハードウエ
アを実現することが可能である。しかも、ハードウエア
の開発期間の多くを、高速に実行できるプログラム言語
を使って進めることが可能となるので、従来よりも短い
開発期間でハードウエアを開発できる。また、同時に上
流工程においてソフトウエアの評価も可能であるので、
システム全体の開発期間も大幅に短縮できる。更には、
プログラム言語で書かれた回路記述からハードウエアの
実現までを自動化することができ、設計ミスを減らすこ
とができる。
Further, according to the third aspect of the present invention, a circuit description written in a program language, which has been sufficiently debugged according to the first aspect of the present invention, is converted into a hardware description language capable of logic synthesis. It is possible to realize the final purpose of the hardware. In addition, since much of the hardware development period can be advanced using a programming language that can be executed at high speed, hardware can be developed in a shorter development period than before. At the same time, software can be evaluated in the upstream process.
The development time of the entire system can be significantly reduced. Furthermore,
It is possible to automate everything from circuit description written in a programming language to hardware realization, and reduce design errors.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の請求項1の設計装置の実施の形態を示
すブロック図である。
FIG. 1 is a block diagram showing an embodiment of a design apparatus according to claim 1 of the present invention.

【図2】プログラム言語で回路動作のアルゴリズムをC
言語で記述した例を示す図である。
FIG. 2 shows a circuit operation algorithm in a programming language C
It is a figure showing the example described in the language.

【図3】本発明の設計装置を用いて図2の記述を変換し
た例を示す図である。
FIG. 3 is a diagram showing an example in which the description of FIG. 2 is converted using the design apparatus of the present invention.

【図4】C言語で回路動作のアルゴリズムを記述した例
を示す図である。
FIG. 4 is a diagram illustrating an example in which a circuit operation algorithm is described in C language.

【図5】本発明の設計装置を用いて図4の記述を変換し
た例を示す図である。
FIG. 5 is a diagram showing an example in which the description of FIG. 4 is converted using the design apparatus of the present invention.

【図6】C言語で回路動作のアルゴリズムを記述した例
を示す図である。
FIG. 6 is a diagram illustrating an example in which a circuit operation algorithm is described in C language.

【図7】本発明の設計装置を用いて、図3、図5及び図
6に例示した記述から同時並行動作部分をアクセスする
プログラムの例を示す図である。
FIG. 7 is a diagram showing an example of a program for accessing a simultaneous and parallel operation part from the descriptions illustrated in FIGS. 3, 5, and 6 using the design apparatus of the present invention.

【図8】本発明の請求項2の設計装置の実施の形態を示
すブロック図である。
FIG. 8 is a block diagram showing an embodiment of a design apparatus according to claim 2 of the present invention.

【図9】ハードウェア(回路)と、この回路の制御プロ
グラムとの間の制御関係を示す図である。
FIG. 9 is a diagram illustrating a control relationship between hardware (circuit) and a control program of the circuit.

【図10】本発明の請求項3の設計装置の実施の形態を
示すブロック図である。
FIG. 10 is a block diagram showing an embodiment of a design apparatus according to claim 3 of the present invention.

【符号の説明】[Explanation of symbols]

2 順次制御する部分を特定する処理部(特定処理
部) 3 順次制御する部分をステートマシンとして動作す
るように記述を変換す処理部(変換処理部) 5 並行動作する部分を抽出し、それ等を全てアクセ
スするプログラムを生成する処理部(プログラム生成処
理部) 7 プログラム言語の処理系 8 制御プログラム 9 ハードウエアアクセス部抽出処理部(抽出処理
部) 10 制御プログラム実行時間測定処理追加処理部
(請求項2での第1の追加処理部) 11 回路動作起動プログラム追加処理部(請求項2
での第2の追加処理部) 17 フリップフロップ又はラッチを発生するプログ
ラム記述の探索及びそれ等を発生させる記述の追加処理
部(請求項3での第1の追加処理部) 18 プログラムの中で使われる変数の取得、変数の
特性の決定、及び変数の記述の追加処理部(請求項3で
の第2の追加処理部) 19 制御構文の表記の変換処理部(構文変換処理
部)
2 A processing unit that specifies a part to be sequentially controlled (specific processing unit) 3 A processing unit that converts a description so that the part to be sequentially controlled operates as a state machine (a conversion processing unit) 5 Extracts parts that operate in parallel, and so on Processing unit for generating a program that accesses all of the programs (program generation processing unit) 7 processing system of programming language 8 control program 9 hardware access unit extraction processing unit (extraction processing unit) 10 control program execution time measurement processing addition processing unit (claim (1st additional processing unit in item 2) 11 Circuit operation activation program additional processing unit (claim 2)
17) Search for program description that generates flip-flops or latches and additional processing unit for description that generates them (first additional processing unit in claim 3) 18 In program Acquisition of variables to be used, determination of characteristics of variables, and additional processing section for description of variables (second additional processing section in claim 3) 19 Conversion processing section for notation of control syntax (syntax conversion processing section)

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 汎用プログラム言語で回路動作を記述し
たプログラムから順次制御する部分を特定する特定処理
部と、 前記特定処理部により特定された部分を汎用プログラム
言語を用いてステートマシン化するための記述に変換す
る変換処理部と、 前記汎用プログラム言語で記述された回路を並行動作さ
せるために、前記汎用プログラム言語で記述された回路
の中の並行動作を行う関数を特定し、この特定した関数
を並行動作させるためのプログラムを追加生成するプロ
グラム生成処理部とを備えたことを特徴とするプログラ
ム言語により電子回路を設計する装置。
1. A specific processing unit for specifying a part to be sequentially controlled from a program describing a circuit operation in a general-purpose program language, and a state machine for converting the part specified by the specific processing unit into a state machine using a general-purpose program language. A conversion processing unit that converts the description into a description, and a function that performs a parallel operation in the circuit described in the general-purpose program language so that the circuit described in the general-purpose program language operates in parallel. And a program generation processing unit for additionally generating a program for causing the program to operate in parallel. An apparatus for designing an electronic circuit using a program language.
【請求項2】 前記変換処理部により変換された変換プ
ログラム及び前記プログラム生成処理部により生成され
た生成プログラムより成る変換生成プログラムで記述さ
れた回路を制御する制御プログラムを入力し、この制御
プログラムの中から、ハードウエアへのアクセス部分を
抽出する抽出処理部と、 前記抽出処理部により抽出されたアクセス部分の実行時
刻を検出するプログラム、及び、このアクセス部分とそ
の1つ前のアクセス部分との間の実行時間間隔を測定す
るプログラムとを、そのアクセス部分の直前に挿入する
第1の追加処理部と、 前記第1の追加処理部により挿入したプログラムで得ら
れる実行時間間隔に相当するクロック数分だけ前記変換
生成プログラムを動作させるプログラムを、前記アクセ
ス部分の直前に挿入する第2の追加処理部とを備えて、 前記変換生成プログラムと前記制御プログラムとの同期
を取ることを特徴とする請求項1記載のプログラム言語
により電子回路を設計する装置。
2. A control program for controlling a circuit described by a conversion program converted by the conversion processing unit and a generation program generated by the program generation processing unit is input. An extraction processing unit for extracting an access part to the hardware from the program; a program for detecting the execution time of the access part extracted by the extraction processing unit; A first additional processing unit that inserts a program for measuring an execution time interval between them immediately before an access part thereof, and a clock number corresponding to an execution time interval obtained by the program inserted by the first additional processing unit A program for operating the conversion generation program by the amount immediately before the access portion. And a further processing unit of an apparatus for designing an electronic circuit by a program language according to claim 1, wherein the synchronization between the control program and the conversion generation program.
【請求項3】 変換処理部により変換された変換プログ
ラムで記述された回路の中でフリップフロップ又はラッ
チの生成が必要となるプログラム部分を探索し、フリッ
プフロップ又はラッチを発生させる記述をハードウエア
記述言語で前記変換プログラムに追加する追加処理部
と、 前記変換プログラムで記述された回路の中で使用される
変数を取得し、その変数の特性を決定し、その特性に応
じてその変数をハードウエア記述言語でのモジュール入
出力端子の記述に変換して前記変換プログラムに追加す
る第2の追加処理部と、 前記変換プログラム中の制御構文の表記をハードウエア
記述言語記述の制御構文に変換する構文変換処理部とを
備えることを特徴とする請求項1記載のプログラム言語
により電子回路を設計する装置。
3. A description of a program that requires generation of a flip-flop or a latch in a circuit described by a conversion program converted by a conversion processing unit, and generates a description that generates a flip-flop or a latch by a hardware description. An additional processing unit to be added to the conversion program in a language; acquiring a variable used in a circuit described in the conversion program; determining a characteristic of the variable; and converting the variable into hardware according to the characteristic. A second additional processing unit that converts the description into a description of a module input / output terminal in a description language and adds the description to the conversion program; and a syntax that converts a description of a control syntax in the conversion program into a control syntax of a hardware description language description. The apparatus for designing an electronic circuit according to the program language according to claim 1, further comprising a conversion processing unit.
JP8309049A 1996-11-20 1996-11-20 Device for designing electronic circuit by program language Pending JPH10149382A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8309049A JPH10149382A (en) 1996-11-20 1996-11-20 Device for designing electronic circuit by program language

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8309049A JPH10149382A (en) 1996-11-20 1996-11-20 Device for designing electronic circuit by program language

Publications (1)

Publication Number Publication Date
JPH10149382A true JPH10149382A (en) 1998-06-02

Family

ID=17988266

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8309049A Pending JPH10149382A (en) 1996-11-20 1996-11-20 Device for designing electronic circuit by program language

Country Status (1)

Country Link
JP (1) JPH10149382A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155690B2 (en) 2003-01-31 2006-12-26 Seiko Epson Corporation Method for co-verifying hardware and software for a semiconductor device
US7266791B2 (en) 2003-05-23 2007-09-04 Sharp Kabushiki Kaisha High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium
KR100965856B1 (en) 2009-12-04 2010-06-24 주식회사 모뎀게이트 Method and system for designing, simulating and debugging digital integrated circuit using procedural high level programming languages

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155690B2 (en) 2003-01-31 2006-12-26 Seiko Epson Corporation Method for co-verifying hardware and software for a semiconductor device
US7266791B2 (en) 2003-05-23 2007-09-04 Sharp Kabushiki Kaisha High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium
KR100965856B1 (en) 2009-12-04 2010-06-24 주식회사 모뎀게이트 Method and system for designing, simulating and debugging digital integrated circuit using procedural high level programming languages

Similar Documents

Publication Publication Date Title
US7493247B2 (en) Integrated circuit analysis system and method using model checking
US7962869B2 (en) Method and system for debug and test using replicated logic
JP4058252B2 (en) IC design verification method
US5920830A (en) Methods and apparatus for generating test vectors and validating ASIC designs
CN112444731B (en) Chip testing method and device, processor chip and server
US6370675B1 (en) Semiconductor integrated circuit design and evaluation system using cycle base timing
US6061283A (en) Semiconductor integrated circuit evaluation system
US20040122644A1 (en) Optimized execution of software objects generated from a hardware description
EP1913410B1 (en) Method and system for debug and test using replicated logic
JP2002514822A (en) System and method for identifying a finite state machine and checking a circuit design
US6249891B1 (en) High speed test pattern evaluation apparatus
Su et al. MDD: A unified model-driven design framework for embedded control software
US20050076282A1 (en) System and method for testing a circuit design
JPH10149382A (en) Device for designing electronic circuit by program language
US7051301B2 (en) System and method for building a test case including a summary of instructions
JPH09171056A (en) Test design method and device, test method and device
Urdahl et al. Architectural system modeling for correct-by-construction RTL design
JP2990882B2 (en) Functional simulation device
JP2001060216A (en) Logic equivalence verifying device
JP3052263B2 (en) Logic verification sufficiency evaluation method and system therefor
JPH11213021A (en) Method and device for generating simulation model
Buschke et al. An approach to understanding evaluation of simulation results as an integrated task
Meyer CAD tool interchangeability through net list translation
Claesen et al. Open System Architecture of an Interactive CAD Environment for Parameterized VLSI Modules
Das et al. Testing Embedded Cores-Based System-on-a-Chip (SoC)–Test Architecture and Implementation

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20031222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040511

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040914