JP3171182B2 - 機能合成方法,機能合成装置およびその記録媒体 - Google Patents

機能合成方法,機能合成装置およびその記録媒体

Info

Publication number
JP3171182B2
JP3171182B2 JP04544799A JP4544799A JP3171182B2 JP 3171182 B2 JP3171182 B2 JP 3171182B2 JP 04544799 A JP04544799 A JP 04544799A JP 4544799 A JP4544799 A JP 4544799A JP 3171182 B2 JP3171182 B2 JP 3171182B2
Authority
JP
Japan
Prior art keywords
program
logic circuit
state
function
generating
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.)
Expired - Fee Related
Application number
JP04544799A
Other languages
English (en)
Other versions
JP2000242684A (ja
Inventor
基秀 大坪
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP04544799A priority Critical patent/JP3171182B2/ja
Priority to US09/506,365 priority patent/US6711728B1/en
Publication of JP2000242684A publication Critical patent/JP2000242684A/ja
Application granted granted Critical
Publication of JP3171182B2 publication Critical patent/JP3171182B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、汎用のプログラ
ム言語(例えば、C言語)で記述されたプログラムを、
該プログラムが示す動作を有する論理回路に変換する機
能合成方法に関する。また、この発明は、上記機能合成
方法を実行する機能合成装置に関する。更に、この発明
は、上記機能合成方法のプログラムを記録した記録媒体
に関する。
【0002】
【従来の技術】電子回路の設計においては、汎用のプロ
グラム言語(例えば、C言語)で記述されたプログラム
を、該プログラムが示す動作を有する論理回路に変換す
ること(以下、「機能合成」と称する)が、一般的によ
く行われる。なお、変換後の論理回路を示すデータは、
「RT(レジスタ・トランスファー)レベルデータ」ま
たはゲートレベルデータである。RTレベルデータは、
ハードウェア記述言語で書かれた論理回路を示すデータ
であり、ゲートレベルデータは、トランジスタゲートの
組み合わせからなるデータである。
【0003】図21は、従来の機能合成方法を適用した
電子回路データ(マスクデータ)生成システムの構成例
を示すブロック図である。なお、この図に示す電子回路
データ生成システムは、具体的には、CPU(中央処理
装置)およびその周辺回路・周辺装置からなるコンピュ
ータ装置である。該コンピュータ装置は、内蔵の半導体
メモリ(ROM,RAM等)や外部記憶媒体(ハードデ
ィスク,光磁気ディスク等)に記録された制御プログラ
ムに基づいて、以下に示す動作を実行する。
【0004】この図において、Cプログラム格納部1
は、所望の電子回路(または、該電子回路の一部)の動
作を示すCプログラムを格納する。機能合成部102
は、Cプログラム格納部1に格納されたCプログラム
を、RTレベルデータに変換する(即ち、機能合成を行
う)。最適化部3は、機能合成部102で生成されたR
Tレベルデータを最適化する。なお、上記最適化は、演
算器共有による最適化であり、後に詳述する。
【0005】RTレベルデータ格納部4は、最適化部3
で最適化されたRTレベルデータを格納する。論理合成
部5は、RTレベルデータ格納部4に格納されたRTレ
ベルデータを、Gateレベルデータ格納部6は、論理
合成部5で生成されたGateレベルデータを格納す
る。
【0006】レイアウト部7は、Gateレベルデータ
格納部6に格納されたGateレベルデータを、(該G
ateレベルデータが示すトランジスタゲートの組み合
わせを生成するのに必要な)マスクデータに変換する。
マスクデータ格納部8は、レイアウト部7で生成された
マスクデータを格納する。以上の処理によってマスクデ
ータが生成されると、所定の製造工程(図示略)は該マ
スクデータを使用して、所望の電子回路を製造する。
【0007】次に、従来の機能合成方法を実行する機能
合成部(即ち、図21の機能合成部102)の構成・動
作について説明する。図22は、機能合成部102の構
成例を示すブロック図である。また、図23は、機能合
成部102の動作例を示すフローチャートである。
【0008】図22に示すように、機能合成部102
は、スケジューリング部1021とFSM生成部102
2とデータパス生成部1023と結合部1024とスケ
ジューリング結果格納部1025とから構成される。
【0009】このような構成において、オペレータが、
所定の操作盤(図示略)を使用して、機能合成部102
に対し、機能合成の実行命令を与えると、機能合成部1
02の処理は、図23のステップS101に進む。
【0010】ステップS101では、スケジューリング
部1021が、Cプログラム格納部1からCプログラム
を読み出す。ここでは、一例(以下、「従来実施例」と
称する)として、図4に示すCプログラムが読み出され
たとする。
【0011】次に、スケジューリング部1021は、読
み出されたCプログラムにおいて、出力文を無視し、演
算文のみに基づいてデータフローグラフを生成する。こ
こで、「出力文」とは、プリント文などのように(演算
ではなく)データの印字を目的とするプログラム文を指
す。従来実施例の場合、スケジューリング部1021
は、図4に示すCプログラムに基づいて、図5に示すデ
ータフローグラフを生成する。その後、機能合成部10
2の処理は、図23のステップS102に進む。
【0012】ステップS102では、スケジューリング
部1021が、所定の動作クロックを使用して、データ
フローグラフを、該動作クロックの各クロックにおいて
実行される演算に分割する。従来実施例の場合、スケジ
ューリング部1021は、図5に示すデータフローグラ
フを、図6に示すように分割する。
【0013】なお、この分割パターン(即ち、各クロッ
クにおいて実行される演算の数)は、オペレータによっ
て予め設定された(電子回路設計に関する)各種パラメ
ータに依存する。即ち、高速の電子回路を生成するよう
に上記パラメータが設定されている場合には、1クロッ
クでできるだけ多くの演算が実行されるように、データ
フローグラフが分割される。一方、電子回路の規模を小
さく押さえるように上記パラメータが設定されている場
合には、1つのゲートができるだけ多くの演算で再利用
可能となるように(即ち、同一種類の演算ができるだけ
別々のクロックで実行されるように)、データフローグ
ラフが分割される。
【0014】次に、スケジューリング部1021は、各
クロックに(各クロック固有の識別名である)状態名を
割り当てる。従来実施例の場合、図6に示すように、状
態名ST01,ST02,ST03が割り当てられる。
以下、該状態名割り当て後のデータフローグラフを「状
態割り当てされたデータフローグラフ」と称する。そし
て、スケジューリング部1021は、状態割り当てされ
たデータフローグラフを、スケジューリング結果格納部
1025に格納する。その後、機能合成部102の処理
は、図23のステップS104に進む。
【0015】ステップS104では、FSM生成部10
22が、スケジューリング結果格納部1025に格納さ
れたスケジューリング結果(即ち、状態割り当されたデ
ータフローグラフ)に基づいて、FSM(finite state
machine:有限状態マシン)を生成する。従来実施例の
場合、FSM生成部1022は、図6に示すデータフロ
ーグラフに基づいて、図8に示すFSMを生成する。な
お、この図に示すように、FSMの各状態(ST01,
ST02,ST03)から引き出された線を、ここで
は、「制御信号線」と称する。その後、機能合成部10
2の処理は、図23のステップS106に進む。
【0016】ステップS106では、データパス生成部
1023が、スケジューリング結果格納部1025に格
納されたスケジューリング結果(即ち、状態割り当され
たデータフローグラフ)に基づいて、データパスを生成
する。また、データパス生成部1023は、状態割り当
てされたデータフローグラフに基づいて、複数の状態に
渡って値を保持すべき変数を検出し、検出された変数に
対応する(データパス内の)信号線にフリップフロップ
を付加する。
【0017】ここで、各フリップフロップへのトリガー
信号(制御信号)は、該フリップフロップに対応する変
数の値を使用して演算を行う状態の1つ手前の状態に対
応した信号が与えられる。従来実施例の場合、データパ
ス生成部1023は、図6に示すデータフローグラフに
基づいて、図10に示すデータパスを生成する。
【0018】図6に示すように、変数a,bの値は、状
態ST02の加算で使用するので、図10において、変
数a,bに対応するフリップフロップへは、状態ST0
1に対応した制御信号が与えられる。また、変数c,d
の値は、状態ST03の加算で使用するので、変数c,
dに対応するフリップフロップへは、状態ST02に対
応した制御信号が与えられる。また、変数xの値は、状
態ST03の乗算で使用するので、変数xに対応するフ
リップフロップへは、状態ST02に対応した制御信号
が与えられる。また、変数yの値は、複数の状態に渡っ
て保持する必要はないので、変数yに対応するフリップ
フロップは付加されない。なお、変数zの値は、出力さ
れるのみで演算では使用しないように見えるが、出力し
た先で更に別の回路がつながっている(演算に使われ
る)と考えると、状態ST01で外部回路で使用するの
で(図8に示すように、状態ST03の次は状態ST0
1であることに注意されたい)、変数zに対応するフリ
ップフロップへは、状態ST03に対応した制御信号が
与えられる。その後、機能合成部102の処理は、図2
3のステップS107に進む。
【0019】ステップS107では、データパス生成部
1023が、Cプログラムにおいて出力文で印字指定さ
れている変数(以下、「観測変数」と称する)を、該C
プログラムから検出する。本従来実施例の場合、Cプロ
グラム内に出力文 printf(“x=%d¥n”,x); および printf(“y=%d¥n”,y); が存在するので、データパス生成部1023は、xとy
とを観測変数として検出する。
【0020】そして、データパス生成部1023は、上
記観測変数に対応する信号線を、データパスから検出
し、検出された信号線に(RTレベル記述の)出力端子
を付加する。従来実施例の場合、観測変数はx,yであ
るので、データパス生成部1023は、図11に示すよ
うに、観測変数x,yに対応する信号線に(RTレベル
記述の)出力端子を付加する。その後、機能合成部10
2の処理は、図23のステップS108に進む。
【0021】ステップS108では、結合部1024
が、(FSM生成部1022が生成した)FSMと(デ
ータパス生成部1023が生成した)データパスとを結
合し、RTレベルデータを生成する。具体的には、結合
部1024は、各状態に対応する(FSM内の)制御信
号線を、該状態に対応する(データパス内の)フリップ
フロップのクロック端子に接続する。従来実施例では、
結合部1024は、図8に示すFSMと図11に示すデ
ータパスとを結合し、図24に示すRTレベルデータを
生成する。以上が、機能合成部102の構成・動作であ
る。
【0022】次に、最適化部3が行う(RTレベルデー
タの)最適化について説明する。最適化とは、ここで
は、対象としている論理回路と等価な機能を回路規模が
より小さい(例えば、演算器またはレジスタの数がより
少ない)回路で実現することを意味する。図25は、最
適化部3が行う最適化処理の一例を示すフローチャート
である。ここでは、一例として、図15に示すRTレベ
ルデータを最適化する場合を考える。なお、図15に示
すRTレベルデータは、x=a+b+cを機能合成した
ものである。
【0023】ステップS111では、共有化の候補とし
て、2つの演算器を選択する。図15の例では、加算器
op1,op2を選択する。ステップS112では、選
択された2つの演算器の入力に接続されたフリップフロ
ップ(以下、「入力側FF」と称する)の制御信号を調
べ、該2つの制御信号のON期間が重なっていたら、ス
テップS111に戻り、別の演算器を選択する。一方、
2つの制御信号のON期間が重なっていなければ、ステ
ップ113に進む。図15の例では、制御信号ST0
1,ST02は同時にONになることはないので、ステ
ップS113に進む。
【0024】ステップS113では、2つの演算器を入
力側FFと共にデータパス部から切り離す。また、デー
タパス部において、切り離した箇所にラベル(信号名)
を付けておく。図15の例では、図26に示すように、
加算器op1,op2を入力側FFと共にデータパス部
から切り離す。また、図26に示すように、データパス
部において、切り離した箇所に信号名a,b,c,x、
w,ST01,ST02を付けておく。
【0025】ステップS114〜S118は、切り離さ
れた2つの演算器(図26に示す2つの演算器)を1つ
の演算器(図27に示す演算器)に共有化する過程であ
る。ステップS114では、切り離された2つの演算器
を、いずれか一方の演算器に共有化する。また、共有演
算器の出力には、共有化される前の2つの演算器の出力
名のいずれをも、ラベルとして付けておく。ステップS
115では、切り離された2つの演算器の入力側FF
を、ステップS114で共有化した方の演算器の入力側
FFに共有化する。
【0026】ステップS116では、切り離された2つ
の演算器の入力側FFの制御信号の論理和をとる。ま
た、該論理和をとった制御信号を、ステップS115で
共有された入力側FF(以下、「共有入力側FF」と称
する)の制御信号とする。ステップS117では、一方
の演算器の入力側FFの入力信号と他方の演算器の入力
側FFの入力信号との切換回路を、マルチプレクサを使
用して作成する。また、上記マルチプレクサの出力信号
を共有入力側FFの入力信号とする
【0027】ステップS118では、いずれか一方の演
算器の入力側FFの制御信号を、上記マルチプレクサの
セレクト入力とする。この場合、セレクト信号が入力さ
れると、該セレクト信号として入力された制御信号に対
応する演算器の入力側FFの入力信号が、マルチプレク
サによって選択されるようにする。図15の例では、ス
テップS114〜S118の処理によって、図26に示
す2つの演算器が、図27に示す1つの演算器に共有化
される。
【0028】ステップS119では、データパス部のラ
ベルとステップS114〜S118によって生成された
回路のラベルとを接続することによって、該共有化され
た回路をデータパス部に戻す。図15の例では、図27
に示す(共有化された)演算器が、図26に示すデータ
パス部に戻され、図16に示すRTレベルデータに最適
化される。この例では、図15のフリップフロップR
a,Rwが図16のフリップフロップRa/wに共有化
され、図15のフリップフロップRb,Rcが図16の
フリップフロップRb/cに共有化され、図15の加算
器op1,op2が図16の加算器op1/2に共有化
された。以上で、最適化が完了する。
【0029】ところで、上述した電子回路データ生成シ
ステムにおいては、一般的に、その中間過程で生成され
る各データ(RTレベルデータ,Gateレベルデー
タ)の動作検証が行われる。図21に示すプログラム実
行部9,RTレベルシミュレータ10,Gateレベル
シミュレータ11,テストベンチプログラム格納部1
3,プログラム実行結果格納部14,RTレベルシミュ
レーション結果格納部15,Gateレベルシミュレー
ション結果格納部16は、上記動作検証を行うための構
成である。なお、これらの構成も、具体的には、CPU
(中央処理装置)およびその周辺回路・周辺装置からな
るコンピュータ装置である。該コンピュータ装置は、内
蔵の半導体メモリ(ROM,RAM等)や外部記憶媒体
(ハードディスク,光磁気ディスク等)に記録された制
御プログラムに基づいて、以下に示す動作を実行する。
【0030】図21において、テストベンチプログラム
格納部13は、テストベンチプログラムを格納する。こ
こで、「テストベンチプログラム」とは、Cプログラ
ム,RTレベルデータ,Gateレベルデータに所定の
テストデータを与えるプログラムを指す。テストベンチ
プログラム格納部13は、同一のテストデータを与える
テストベンチプログラムを、CプログラムとRTレベル
データとGateレベルデータとのそれぞれに対して格
納している。
【0031】プログラム実行部9は、テストベンチプロ
グラム格納部13に格納された(Cプログラム用の)テ
ストベンチプログラムを使用して、Cプログラム格納部
1に格納されたCプログラムを実行する。プログラム実
行結果格納部14は、該Cプログラムの実行結果を格納
する。図14は、Cプログラムのテストベンチプログラ
ムとその実行結果との一例を示す説明図である。この図
に示す実行結果は、同図に示すテストベンチプログラム
を使用して図4に示すCプログラムを実行した場合の実
行結果である。
【0032】RTレベルシミュレータ10は、テストベ
ンチプログラム格納部13に格納された(RTレベルデ
ータ用の)テストベンチプログラムを使用して、RTレ
ベルデータ格納部4に格納されたRTレベルデータが示
す論理回路の動作をシミュレーションする。RTレベル
シミュレーション結果格納部15は、該RTレベルデー
タが示す論理回路の動作結果を格納する。図28は、従
来の機能合成方法によって生成されたRTレベルデータ
が示す論理回路の動作結果の一例を示す説明図である。
【0033】Gateレベルシミュレータ11は、テス
トベンチプログラム格納部13に格納された(Gate
レベルデータ用の)テストベンチプログラムを使用し
て、Gateレベルデータ格納部6に格納されたGat
eレベルデータが示す電子回路(トランジスタゲートの
組み合わせ)の動作をシミュレーションする。Gate
レベルシミュレーション結果格納部16は、該Gate
レベルデータが示す電子回路の動作結果を格納する。
【0034】作業者が、プログラム実行結果格納部14
に格納された実行結果(Cプログラムの実行結果)やR
Tレベルシミュレーション結果格納部15に格納された
シミュレーション結果(RTレベルデータが示す論理回
路の動作結果)、Gateレベルシミュレーション結果
をそれぞれ目視し、与えたテストベンチプログラムをも
とにした推測から、妥当な結果が出ていることを確認す
ることで、「機能合成部102による機能合成が正常に
行われた」と判定する。
【0035】図29は、従来の機能合成方法によって生
成されたRTレベルデータが示す論理回路の動作結果の
一例を示すタイミング図である。なお、図29は、図2
8に示す動作結果をタイミング図の形式で示したもので
ある。この図において、「データa,b,c,d」とし
て与えられる値、即ち”1,1,2,2”および”1,
2,1,2”は、図24に示す入力端子a,b,c,d
から(図29に示すタイミングで)読み込まれる値(テ
ストデータ)であり、図14に示す(Cプログラム用
の)テストベンチプログラムで与えられるテストデータ
(関数calcの引数)と同じ値である。
【0036】作業者により、入力値から推測される妥当
な値が得られているかを確認し、機能合成が正常か否か
を判定する。図29において、「観測変数x」として読
み出される値、即ち”2”および”3”は、図24に示
す出力端子xから(図29に示すタイミングで)読み出
される値であり、図14に示すCプログラム実行結
果(”x=2”および”x=3”)と同じ値である(こ
こで、演算途中の中間値x,y及び最終値zのいずれの
場合も含めて実行結果と呼んでいる)。また、図29に
おいて、「観測変数y」として読み出される値、即ち”
4”および”3”は、図24に示す出力端子yから(図
29に示すタイミングで)読み出される値であり、図1
4に示すCプログラム実行結果(”y=4”および”y
=3”)と同じ値である。また、図29において、「実
行結果z」として読み出される値、即ち”8”および”
9”は、図24に示す出力端子zから(図29に示すタ
イミングで)読み出される値であり、図14に示すCプ
ログラム実行結果(”result=8”および”re
sult=9”)と同じ値である。
【0037】従来の場合、Cプログラム実行結果と出力
端子zからの出力値を作業者が確認していた。即ち、こ
の場合、作業者により、図14(b)に示す(Cプログ
ラムの)実行結果と図29に示す(RTレベルデータ
の)シミュレーション結果とを比較し、両者が一致して
いるので、「機能合成部102による機能合成が正常に
行われた」と確認することができる。
【0038】
【発明が解決しようとする課題】ところで、上述した従
来の機能合成方法では、Cプログラム実行結果、RTレ
ベルデータ、Gateレベルデータのそれぞれのシミュ
レーション結果の確認作業が必要であった。また、いず
れかのシミュレーション結果のみ人手で確認し、残りは
機械的な比較によって自動化しようとする場合、「機能
合成方法によって生成されたRTレベルデータが示す論
理回路の動作検証を行う場合、Cプログラムの実行結果
と比較されるべき値を(RTレベルデータのシミュレー
ション時に)どのタイミングで読み出せばよいのか分か
り難い」という課題があった。
【0039】これは、プログラム言語は、1行1行が逐
次的に処理され、出力文(例えば、プリント文)が記述
された行に到達して初めて変数値が出力(例えば、印
字)されるのに対して、一方、RTレベルデータのシミ
ュレーションの場合、変数値は(対応する信号線が引き
出されている限り)処理中のどのタイミングにおいても
読み出すことができるため、両変数値の対応づけが難し
いことに起因する。
【0040】例えば、図29において、変数x,yの値
をタイミングで読み出すと、これらの値は、図14に
示す”x=2 y=4”と一致し、変数x,yの値をタ
イミングで読み出すと、これらの値は、図14に示
す”x=3 y=3”と一致するが、変数x,yの値を
タイミングで読み出した場合、これらの値は(x,
y)=(3,4)となり、Cプログラムの何れの実行結
果(図14参照)とも一致しない。その結果、RTレベ
ルデータが示す論理回路が正常動作を示しているにもか
かわらず、「機能合成部102による機能合成が正常に
行われていない」と判定してしまう。
【0041】以上の理由によって、従来の機能合成方法
では、「作業者が機能合成が正常に行われていることを
確認しようとすると膨大なデータを人手で行うため、多
大な工数・時間を要すると同時に、どのタイミングのデ
ータを比較すればよいのかがわからないため、正確な判
断が難しかった」という課題があった。また、自動化し
て、機能合成の動作検証を行う場合でも、「Cプログラ
ムの実行結果と比較されるべき値をどのタイミングで読
み出せばよいのか分かり難く、その結果、Cプログラム
の実行結果と(RTレベルデータが示す)論理回路の動
作結果とを比較することは困難である」という課題があ
った。従って、機能合成の動作検証を途中の段階で行う
ことは難しかった。途中で動作検証を行わずに論理回路
を作成した場合、もし設計通りに動作しない場合には、
当初の段階に戻って機能合成の設計を行うことになり、
それまでかかった工数が無駄になるとともに開発日程が
大幅に遅れるという問題があった。
【0042】この発明は、このような背景の下になされ
たもので、プログラムの実行結果と容易に比較すること
ができる動作結果を示す論理回路を生成することができ
る機能合成方法および機能合成装置およびその記録媒体
を提供することを目的とする。
【0043】
【課題を解決するための手段】請求項1記載の発明は
プログラムから論理回路を生成する機能合成方法におい
て、前記プログラムの出力文で指定された観測変数およ
び実行結果が確定するタイミングを与える論理回路を生
成することを特徴とする。ここで、実行結果とは、演算
での中間値または最終値またはその両方を示す。請求項
記載の発明は、プログラムから論理回路を生成する機
能合成方法において、前記プログラムを分割する過程
と、個々の分割範囲に状態名を割り当てる過程と、前記
プログラムの出力文で指定された観測変数の値を出力す
る演算が実行される状態名を検出する過程と、前記プロ
グラムに基づいて、前記各状態名が示す状態間の状態遷
移を制御するFSMを生成する過程と、前記検出された
状態名が示す状態への遷移タイミングを示す制御信号の
信号線を前記観測変数を読み取るタイミングを与える信
号線として出力に引き出す過程と、前記プログラムに基
づいて、データパスを生成する過程と、前記FSMと前
記データパスとを結合して、論理回路を生成する過程と
を具備することを特徴とする。請求項記載の発明は、
請求項に記載された過程と、前記生成した論理回路を
変形して、前記論理回路と等価な機能でかつ前記論理回
路よりも構成要素(例えば、演算器やレジスタ)の数が
少ない論理回路を生成する最適化過程とを有することを
特徴とする。請求項記載の発明は、請求項1から請求
のいずれかに記載の機能合成方法と、前記出力文に
よる出力結果と生成された論理回路が示すタイミングで
得られた出力結果とを比較する過程と、該比較結果に基
づいて機能合成の正否を判定する過程とを具備すること
を特徴とする。
【0044】請求項5記載の発明は、プログラムから論
理回路を生成する機能合成装置において、前記プログラ
ムの出力文で指定された観測変数および実行結果が確定
するタイミングを与える論理回路を生成することを特徴
とする。請求項記載の発明は、プログラムから論理回
路を生成する機能合成装置において、前記プログラムを
分割する手段と、個々の分割範囲に状態名を割り当てる
手段と、前記プログラムの出力文で指定された観測変数
の値を出力する演算が実行される状態名を検出する手段
と、前記プログラムに基づいて、前記各状態名が示す状
態間の状態遷移を制御するFSMを生成する手段と、前
記検出された状態名が示す状態への遷移タイミングを示
す制御信号の信号線を前記観測変数を読み取るタイミン
グを与える信号線として出力に引き出す手段と、前記プ
ログラムに基づいて、データパスを生成する手段と、前
記FSMと前記データパスとを結合して、論理回路を生
成する手段とを具備することを特徴とする。請求項
載の発明は、請求項に記載された手段と、前記生成し
た論理回路を変形して、前記論理回路と等価な機能でか
つ前記論理回路よりも回路規模の小さい論理回路を生成
する手段とを有することを特徴とする。請求項記載の
発明は、請求項から請求項のいずれかに記載の機能
合成装置と、前記出力文による出力結果と生成された論
理回路が示すタイミングで得られた出力結果とを比較す
る手段と、該比較結果に基づいて機能合成の正否を判定
する手段とを具備することを特徴とする。
【0045】請求項記載の発明は、プログラムから論
理回路を生成する機能合成方法をコンピュータに実行さ
せるためのプログラムを記録した記録媒体において、前
記プログラムの出力文で指定された観測変数および実行
結果が確定するタイミングを与える論理回路を生成する
ことを特徴とする。請求項10記載の発明は、プログラ
ムから論理回路を生成する機能合成方法をコンピュータ
に実行させるためのプログラムを記録した記録媒体にお
いて、前記プログラムを分割する過程と、個々の分割範
囲に状態名を割り当てる過程と、前記プログラムの出力
文で指定された観測変数の値を出力する演算が実行され
る状態名を検出する過程と、前記プログラムに基づい
て、前記各状態名が示す状態間の状態遷移を制御するF
SMを生成する過程と、前記検出された状態名が示す状
態への遷移タイミングを示す制御信号の信号線を前記観
測変数を読み取るタイミングを与える信号線として出力
に引き出す過程と、前記プログラムに基づいて、データ
パスを生成する過程と、前記FSMと前記データパスと
を結合して、論理回路を生成する過程とをコンピュータ
に実行させるためのプログラムを記録したことを特徴と
する。請求項11記載の発明は、請求項または請求項
10のいずれかに記載の機能合成方法と、前記出力文に
よる出力結果と生成された論理回路が示すタイミングで
得られた出力結果とを比較する過程と、該比較結果に基
づいて機能合成の正否を判定する過程とをコンピュータ
に実行させるためのプログラムを記録したことを特徴と
する。
【0046】
【発明の実施の形態】以下、図面を参照して、この発明
の実施形態について説明する。図1は、この発明の一実
施形態による機能合成方法を適用した電子回路データ
(マスクデータ)生成システムの構成例を示すブロック
図である。この図において、図21の各部に対応する部
分には同一の符号を付け、その説明を省略する。この図
に示す電子回路データ生成システムは、機能合成部10
2に代えて機能合成部2を新たに設けたことを特徴とす
る。
【0047】次に、この発明の一実施形態による機能合
成方法を実行する機能合成部(即ち、図1の機能合成部
2)の構成・動作について説明する。図2は、機能合成
部2の構成例を示すブロック図である。また、図3は、
機能合成部2の動作例を示すフローチャートである。
【0048】図2に示すように、機能合成部2は、スケ
ジューリング部21とFSM生成部22とデータパス生
成部23と結合部24とスケジューリング結果格納部2
5と観測変数−状態リスト格納部26とから構成され
る。
【0049】このような構成において、オペレータが、
所定の操作盤(図示略)を使用して、機能合成部2に対
し、機能合成の実行命令を与えると、機能合成部2の処
理は、図3のステップS1に進む。
【0050】ステップS1では、スケジューリング部2
1が、Cプログラム格納部1からCプログラムを読み出
す。ここでは、一例(以下、「本実施例」と称する)と
して、図4に示すCプログラムが読み出されたとする。
【0051】次に、スケジューリング部21は、読み出
されたCプログラムにおいて、出力文を無視し、演算文
のみに基づいてデータフローグラフを生成する。本実施
例の場合、スケジューリング部21は、図4に示すCプ
ログラムに基づいて、図5に示すデータフローグラフを
生成する。その後、機能合成部2の処理は、図3のステ
ップS2に進む。
【0052】ステップS2では、スケジューリング部2
1が、所定の動作クロックを使用して、データフローグ
ラフを、該動作クロックの各クロック周期において実行
される演算に分割する。本実施例の場合、スケジューリ
ング部21は、図5に示すデータフローグラフを、図6
に示すように分割する。
【0053】なお、従来技術と同様に、この分割パター
ン(即ち、各クロック周期において実行される演算の
数)は、オペレータによって予め設定された(電子回路
設計に関する)各種パラメータに依存する。即ち、高速
の電子回路を生成するように上記パラメータが設定され
ている場合には、1クロックでできるだけ多くの演算が
実行されるように、データフローグラフが分割される。
一方、電子回路の規模を小さく押さえるように上記パラ
メータが設定されている場合には、1つのゲートができ
るだけ多くの演算で再利用されるように(即ち、同一の
演算ができるだけ別々のクロックで実行されるよう
に)、データフローグラフが分割される。
【0054】次に、スケジューリング部21は、各クロ
ックに(各クロック固有の識別名である)状態名を割り
当てる。本実施例の場合、図6に示すように、状態名S
T01,ST02,ST03が割り当てられる。そし
て、スケジューリング部21は、状態割り当てされたデ
ータフローグラフを、スケジューリング結果格納部25
に格納する。その後、機能合成部2の処理は、図3のス
テップS3に進む。
【0055】ステップS3では、スケジューリング部2
1は、観測変数を、Cプログラムから検出する。本実施
例の場合、Cプログラム内に出力文 printf(“x=%d¥n”,x); および printf(“y=%d¥n”,y); が存在するので、スケジューリング部21は、xとyと
を観測変数として検出する。
【0056】次に、スケジューリング部21は、状態割
り当てされたデータフローグラフから上記観測変数を検
出することによって、該観測変数の値を出力する演算
を、状態割り当てされたデータフローグラフから検出す
る。本実施例の場合、スケジューリング部21は、観測
変数xの値を出力する演算Aと観測変数yの値を出力す
る演算Bとを図6に示すデータフローグラフから検出す
る。
【0057】次に、スケジューリング部21は、探し出
された演算(観測変数の値を出力する演算)が実行され
る状態名と該観測変数とからなる観測変数−状態リスト
を生成し、該観測変数−状態リストを観測変数−状態リ
スト格納部26に格納する。本実施例の場合、観測変数
xの値を出力する演算Aは状態ST02で実行され、観
測変数yの値を出力する演算Bは状態ST03で実行さ
れるので、スケジューリング部21は、図7に示す観測
変数−状態リストを生成する。その後、機能合成部2の
処理は、図3のステップS4に進む。
【0058】ステップS4では、FSM生成部22が、
スケジューリング結果格納部25に格納されたスケジュ
ーリング結果(即ち、状態割り当されたデータフローグ
ラフ)に基づいて、FSMを生成する。本実施例の場
合、FSM生成部22は、図6に示すデータフローグラ
フに基づいて、図8に示すFSMを生成する。その後、
機能合成部2の処理は、図3のステップS5に進む。
【0059】ステップS5では、FSM生成部22が、
観測変数−状態リストに格納された各状態について、該
各状態に対応する制御信号線を上記FSMから検出し、
検出された制御信号線に(RTレベル記述の)出力端子
を付加する。本実施例の場合、図7に示すように、観測
変数−状態リストには、状態ST02,ST03が格納
されているので、FSM生成部22は、図9に示すよう
に、状態ST02,ST03に対応する制御信号線を引
き出し、(RTレベル記述の)出力端子x_vali
d,y_validを付加する。その後、機能合成部2
の処理は、図3のステップS6に進む。
【0060】ステップS6では、データパス生成部23
が、スケジューリング結果格納部25に格納されたスケ
ジューリング結果(即ち、状態割り当されたデータフロ
ーグラフ)に基づいて、データパスを生成する。また、
データパス生成部23は、状態割り当てされたデータフ
ローグラフに基づいて、複数の状態に渡って値を保持す
べき変数を検出し、検出された変数に対応する(データ
パス内の)信号線にフリップフロップを付加する。ここ
で、各フリップフロップへのトリガー信号(制御信号)
は、該フリップフロップに対応する変数の値を使用して
演算を行う状態の1つ手前の状態に対応した信号が与え
られる。本実施例の場合、データパス生成部23は、図
6に示すデータフローグラフに基づいて、図10に示す
データパスを生成する。
【0061】図6に示すように、変数a,bの値は、状
態ST02の加算で使用するので、図10において、変
数a,bに対応するフリップフロップへは、状態ST0
1に対応した制御信号が与えられる。また、変数c,d
の値は、状態ST03の加算で使用するので、変数c,
dに対応するフリップフロップへは、状態ST02に対
応した制御信号が与えられる。また、変数xの値は、状
態ST03の乗算で使用するので、変数xに対応するフ
リップフロップへは、状態ST02に対応した制御信号
が与えられる。また、変数yの値は、複数の状態に渡っ
て保持する必要はないので、変数yに対応するフリップ
フロップは付加されない。なお、変数zの値は、出力さ
れるのみで演算では使用しないように見えるが、出力し
た先で更に別の回路がつながっている(演算に使われ
る)と考えると、状態ST01で外部回路で使用するの
で(図8に示すように、状態ST03の次は状態ST0
1であることに注意されたい)、変数zに対応するフリ
ップフロップへは、状態ST03に対応した制御信号が
与えられる。その後、機能合成部2の処理は、図3のス
テップS7に進む。
【0062】ステップS7では、データパス生成部23
が、観測変数に対応する信号線を、データパスから検出
し、検出された信号線に(RTレベル記述の)出力端子
を付加する。本実施例の場合、観測変数はx,yである
ので、データパス生成部23は、図11に示すように、
観測変数x,yに対応する信号線に(RTレベル記述
の)出力端子を付加する。その後、機能合成部2の処理
は、図3のステップS8に進む。
【0063】ステップS8では、結合部24が、(FS
M生成部22が生成した)FSMと(データパス生成部
23が生成した)データパスとを結合し、RTレベルデ
ータを生成する。具体的には、結合部24は、各状態に
対応する(FSM内の)制御信号線を、該状態に対応す
る(データパス内の)フリップフロップのクロック端子
に接続する。本実施例では、結合部24は、図9に示す
FSMと図11に示すデータパスとを結合し、図12に
示すRTレベルデータを生成する。以上が、機能合成部
2の構成・動作である。
【0064】ところで、従来と同様に、本実施形態にお
いても、その中間過程で生成される各データ(RTレベ
ルデータ,Gateレベルデータ)の動作検証が行われ
る。図1に示すプログラム実行部9,RTレベルシミュ
レータ10,Gateレベルシミュレータ11,一致判
定部12,テストベンチプログラム格納部13,プログ
ラム実行結果格納部14,RTレベルシミュレーション
結果格納部15,Gateレベルシミュレーション結果
格納部16は、上記動作検証を行うための構成である。
【0065】図13は、本実施形態による機能合成方法
によって生成されたRTレベルデータが示す論理回路の
動作結果の一例を示すタイミング図である。なお、図1
3は、図14に示す(Cプログラム用の)テストベンチ
プログラムと同一のテストデータを与える(RTレベル
データ用の)テストベンチプログラムによる動作結果を
示す。この図において、「状態ST01,ST02,S
T03」は、図12に示すフリップフロップ(のクロッ
ク端子)に入力されるパルスである。
【0066】また、図13において、「データa,b,
c,d」として与えられる値、即ち”1,1,2,2”
および”1,2,1,2”は、図12に示す入力端子
a,b,c,dから(図13に示すタイミングで)読み
込まれる値(テストデータ)であり、図14に示す(C
プログラム用の)テストベンチプログラムで与えられる
テストデータ(関数calcの引数)と同じ値である。
また、図13において、「観測変数x」として読み出さ
れる値、即ち”2”および”3”は、図12に示す出力
端子xから(図13に示すタイミングで)読み出される
値であり、図14に示すCプログラム実行結果(”x=
2”および”x=3”)と同じ値である(ここでは、x
は中間値)。なお、この値は、図13に示すタイミング
(”1+1”および”1+2”)で演算される。
【0067】また、図13において、「観測変数y」と
して読み出される値、即ち”4”および”3”は、図1
2に示す出力端子yから(図13に示すタイミングで)
読み出される値であり、図14に示すCプログラム実行
結果(”y=4”および”y=3”)と同じ値である
(ここでは、yは中間値)。なお、この値は、図13に
示すタイミング(”2+2”および”1+2”)で演算
される。
【0068】また、図13において、「有効変数x_v
alid」は、図12に示す出力端子x_validか
ら出力されるパルスであり、データxの読み出しタイミ
ングを示す。また、図13において、「有効変数y_v
alid」は、図12に示す出力端子y_validか
ら出力されるパルスであり、データyの読み出しタイミ
ングを示す。
【0069】また、図13において、「実行結果z」
(ここでは、zは最終値)として読み出される値、即
ち”8”および”9”は、図12に示す出力端子zから
(図13に示すタイミングで)読み出される値であり、
図14に示すCプログラム実行結果(”result=
8”および”result=9”)と同じ値である。な
お、この値は、図13に示すタイミング(”2*4”お
よび”3*3”)で演算される。
【0070】この場合、一致判定部12は、パルスx_
validが示すタイミングで(図12に示す)出力端
子xからデータを読み出し、かつ、パルスy_vali
dが示すタイミングで(図12に示す)出力端子yから
データを読み出す。そして、一致判定部12は、これら
の値と出力端子zから読み出されたデータとを、図14
に示す(Cプログラムの)実行結果と比較する。その結
果、図13および図14に示す例では、両者が一致して
いるので、一致判定部12は、「機能合成部2による機
能合成が正常に行われた」と判定する。
【0071】このように、本実施形態では、観測変数に
対応する信号線に(RTレベル記述の)出力端子を付加
すると共に、該観測変数の値を出力する演算が実行され
る状態に対応する制御信号線にも(RTレベル記述の)
出力端子を付加するので、該観測変数の読み出しタイミ
ングを後者の出力端子から容易に得ることができる。そ
のため、Cプログラムの実行結果と該Cプログラムを機
能合成して得られたRTレベルデータが示す論理回路の
動作結果とを容易に比較することができる。
【0072】以上、この発明の実施形態を図面を参照し
て詳述してきたが、具体的な構成はこの実施形態に限ら
れるものではなく、この発明の要旨を逸脱しない範囲の
設計の変更等があってもこの発明に含まれる。たとえ
ば、上述した一実施形態(および従来技術)において
は、機能合成部と最適化部3とを別の構成として説明し
たが、両者の関係は必ずしもこれに限定されず、例え
ば、最適化部3は機能合成部に含まれてもよい。また、
論理合成部が機能合成部に含まれる場合でも、同様に、
Cプログラム実行結果とGateレベルデータのシミュ
レーション結果との比較が容易となる。
【0073】図30に、最適化前後の比較を行う構成の
ブロック図を示した。本実施形態によると、機能合成部
2で生成されたRTレベルデータ(即ち、最適化前のR
Tレベルデータ)と最適化部3で最適化されたRTレベ
ルデータとを(同じテストベンチプログラムを使用し
て)RTレベルシミュレータ10でシミュレーション
し、一致判定部12で両シミュレーション結果を比較す
ることによって、最適化部3による最適化の正否を判定
することができる。
【0074】例えば、従来の機能合成方法を使用して、
図15に示すRTレベルデータを、図16に示すRTレ
ベルデータに最適化した場合を考える。ここで、「最適
化前の(即ち、図15の)RTレベルデータのシミュレ
ーション結果におけるxの値と最適化後の(即ち、図1
6の)RTレベルデータのシミュレーション結果におけ
るxの値とを比較したところ両者が一致しなかった。そ
こで、a+bを計算した時点で値が既におかしいのか否
かを調べるために、図15に示すwの値と図16に示す
w’の値とを比較する」という場合を考える。
【0075】図17は、最適化前の(即ち、図15の)
RTレベルデータのシミュレーション結果であり、図1
8は、最適化後の(即ち、図16の)RTレベルデータ
のシミュレーション結果である。ここで、図17のwの
値と図18のw’の値とを比較する場合、最適化後の
(即ち、図16の)RTレベルデータの出力端子w’に
は入力端子aからの入力値と演算子op1/2の演算結
果とが交互に現れるため、最適化前のシミュレーション
結果(図17)のwと最適化後のシミュレーション結果
(図18)のw’とをどのタイミングで比較すればよい
のか分からない、という課題があった。
【0076】一方、本実施形態による機能合成方法を使
用した場合、図19に示すRTレベルデータが得られ
る。本実施形態によるRTレベルデータ(図19)は、
従来技術によるRTレベルデータ(図16)と比較し
て、出力端子w_validが追加されている。この出
力端子w_validは、最適化部3による最適化より
以前に(即ち、機能合成部2によって)付加されたもの
であるが、この端子の出力信号は(最適化部3による最
適化の後も)w’のタイミング信号として使用すること
ができる。
【0077】図20は、本発明の効果を説明するための
本実施形態によるRTレベルデータ(図19)のシミュ
レーション結果である。この図に示すように、本実施形
態によるRTレベルデータの場合、加算器op1/2の
演算結果が確定するタイミングが出力端子w_vali
dから得られるので、該出力端子w_validの出力
信号がONになるタイミングで得られたw’の値を最適
化前のシミュレーション結果(図17)のwと比較する
ことによって、最適化前後においてwの値が一致してい
るか否か(即ち、最適化の正否)を判定することができ
る。従来の方法では、図20に示すように、w_val
idの値をどのタイミングで比較すればよいのかわから
ないので、例えば、w_validの出力信号がOFF
である図20の真ん中の点線に囲まれた部分で比較する
とエラーとなる。
【0078】
【発明の効果】以上説明したように、この発明によれ
ば、プログラムの実行結果と論理回路の動作結果を容易
にタイムリーに比較することができる、という効果があ
る。これにより、機能合成が正常に動作しているか否か
を途中の段階で検証することができる。従って、異常だ
った場合の変更を迅速に行うことが可能になった。ま
た、最適化前後での内部端子(演算の途中結果)の比較
も容易となる。
【図面の簡単な説明】
【図1】 本発明の一実施形態による機能合成方法を適
用した電子回路データ(マスクデータ)生成システムの
構成例を示すブロック図である。
【図2】 機能合成部2の構成例を示すブロック図であ
る。
【図3】 機能合成部2の動作例を示すフローチャート
である。
【図4】 Cプログラムの一例を示す説明図である。
【図5】 データフローグラフの一例を示す説明図であ
る。
【図6】 分割されたデータフローグラフの一例を示す
説明図である。
【図7】 観測変数−状態リストの一例を示す説明図で
ある。
【図8】 FSMの一例を示す説明図である。
【図9】 出力端子が付加されたFSMの一例を示す説
明図である。
【図10】 データパスの一例を示す説明図である。
【図11】 出力端子が付加されたデータパスの一例を
示す説明図である。
【図12】 本実施形態によるRTレベルデータの一例
を示す説明図である。
【図13】 本実施形態によるRTレベルデータが示す
論理回路の動作結果の一例を示すタイミング図である。
【図14】 Cプログラムのテストベンチプログラム
(a)とその実行結果(b)との一例を示す説明図であ
る。
【図15】 最適化前のRTレベルデータの一例を示す
説明図である。
【図16】 最適化後のRTレベルデータの一例を示す
説明図である。
【図17】 最適化前のシミュレーション結果の一例を
示すタイミング図である。
【図18】 最適化後のシミュレーション結果の一例を
示すタイミング図である。
【図19】 本実施形態において、最適化後のRTレベ
ルデータの一例を示す説明図である。
【図20】 本実施形態において、最適化後のシミュレ
ーション結果の一例を示すタイミング図である。
【図21】 従来の機能合成方法を適用した電子回路デ
ータ(マスクデータ)生成システムの構成例を示すブロ
ック図である。
【図22】 機能合成部102の構成例を示すブロック
図である。
【図23】 機能合成部102の動作例を示すフローチ
ャートである。
【図24】 従来技術によるRTレベルデータの一例を
示す説明図である。
【図25】 最適化処理の一例を示すフローチャートで
ある。
【図26】 最適化処理の一過程を示す説明図である。
【図27】 最適化処理の一過程を示す説明図である。
【図28】 従来技術によるRTレベルデータが示す論
理回路の動作結果の一例を示す説明図である。
【図29】 従来技術によるRTレベルデータが示す論
理回路の動作結果の一例を示すタイミング図である。
【図30】 最適化前後の比較を行う構成の一例を示す
ブロック図である。
【符号の説明】
2……機能合成部、 3……最適化部、 9……プログ
ラム実行部、10……RTレベルシミュレータ、 12
……一致判定部、21……スケジューリング部、 22
……FSM生成部、23……データパス生成部、 24
……結合部、25……スケジューリング結果格納部、2
6……観測変数−状態リスト格納部

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】 プログラムから論理回路を生成する機能
    合成方法において、 前記プログラムの出力文で指定された観測変数および実
    行結果が確定するタイミングを与える論理回路を生成す
    ることを特徴とする機能合成方法。
  2. 【請求項2】 プログラムから論理回路を生成する機能
    合成方法において、 前記プログラムを分割する過程と、 個々の分割範囲に状態名を割り当てる過程と、 前記プログラムの出力文で指定された観測変数の値を出
    力する演算が実行される状態名を検出する過程と、 前記プログラムに基づいて、前記各状態名が示す状態間
    の状態遷移を制御するFSMを生成する過程と、 前記検出された状態名が示す状態への遷移タイミングを
    示す制御信号の信号線を前記観測変数を読み取るタイミ
    ングを与える信号線として出力に引き出す過程と、 前記プログラムに基づいて、データパスを生成する過程
    と、 前記FSMと前記データパスとを結合して、論理回路を
    生成する過程と、 を具備することを特徴とする機能合成方法。
  3. 【請求項3】 請求項に記載された過程と、 前記生成した論理回路を変形して、前記論理回路と等価
    な機能でかつ前記論理回路よりも回路規模の小さい論理
    回路を生成する過程とを有することを特徴とする請求項
    記載の機能合成方法。
  4. 【請求項4】 請求項1から請求項のいずれかに記載
    の機能合成方法と、 前記出力文による出力結果と生成された論理回路が示す
    タイミングで得られた出力結果とを比較する過程と、 該比較結果に基づいて機能合成の正否を判定する過程と
    を具備することを特徴とする機能検証方法。
  5. 【請求項5】 プログラムから論理回路を生成する機能
    合成装置において、 前記プログラムの出力文で指定された観測変数および実
    行結果が確定するタイミングを与える論理回路を生成す
    ることを特徴とする機能合成装置。
  6. 【請求項6】 プログラムから論理回路を生成する機能
    合成装置において、 前記プログラムを分割する手段と、 個々の分割範囲に状態名を割り当てる手段と、 前記プログラムの出力文で指定された観測変数の値を出
    力する演算が実行される状態名を検出する手段と、 前記プログラムに基づいて、前記各状態名が示す状態間
    の状態遷移を制御するFSMを生成する手段と、 前記検出された状態名が示す状態への遷移タイミングを
    示す制御信号の信号線を前記観測変数を読み取るタイミ
    ングを与える信号線として出力に引き出す手段と、 前記プログラムに基づいて、データパスを生成する手段
    と、 前記FSMと前記データパスとを結合して、論理回路を
    生成する手段とを具備することを特徴とする機能合成装
    置。
  7. 【請求項7】 請求項に記載された手段と、 前記生成した論理回路を変形して、前記論理回路と等価
    な機能でかつ前記論理回路よりも回路規模の小さい論理
    回路を生成する手段とを有することを特徴とする請求項
    記載の機能合成装置。
  8. 【請求項8】 請求項から請求項のいずれかに記載
    の機能合成装置と前記出力文による出力結果と生成され
    た論理回路が示すタイミングで得られた出力結果とを比
    較する手段と、 該比較結果に基づいて機能合成の正否を判定する手段と
    を具備することを特徴とする機能検証装置。
  9. 【請求項9】 プログラムから論理回路を生成する機能
    合成方法をコンピュータに実行させるためのプログラム
    を記録した記録媒体において、 前記プログラムの出力文で指定された観測変数および実
    行結果が確定するタイミングを与える論理回路を生成す
    ることを特徴とする記録媒体。
  10. 【請求項10】 プログラムから論理回路を生成する機
    能合成方法をコンピュータに実行させるためのプログラ
    ムを記録した記録媒体において、 前記プログラムを分割する過程と、 個々の分割範囲に状態名を割り当てる過程と、 前記プログラムの出力文で指定された観測変数の値を出
    力する演算が実行される状態名を検出する過程と、 前記プログラムに基づいて、前記各状態名が示す状態間
    の状態遷移を制御するFSMを生成する過程と、 前記検出された状態名が示す状態への遷移タイミングを
    示す制御信号の信号線を前記観測変数を読み取るタイミ
    ングを与える信号線として出力に引き出す過程と、 前記プログラムに基づいて、データパスを生成する過程
    と、 前記FSMと前記データパスとを結合して、論理回路を
    生成する過程とをコンピュータに実行させるためのプロ
    グラムを記録したことを特徴とする記録媒体。
  11. 【請求項11】 請求項または請求項10のいずれか
    に記載の機能合成方法と、 前記出力文による出力結果と生成された論理回路が示す
    タイミングで得られた出力結果とを比較する過程と、 該比較結果に基づいて機能合成の正否を判定する過程と
    をコンピュータに実行させるためのプログラムを記録し
    たことを特徴とする記録媒体。
JP04544799A 1999-02-23 1999-02-23 機能合成方法,機能合成装置およびその記録媒体 Expired - Fee Related JP3171182B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP04544799A JP3171182B2 (ja) 1999-02-23 1999-02-23 機能合成方法,機能合成装置およびその記録媒体
US09/506,365 US6711728B1 (en) 1999-02-23 2000-02-18 Function synthesizing method and apparatus, and recording medium on which program of said method is recorded

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04544799A JP3171182B2 (ja) 1999-02-23 1999-02-23 機能合成方法,機能合成装置およびその記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2000345117A Division JP2001188822A (ja) 2000-11-13 2000-11-13 機能合成方法および機能合成装置

Publications (2)

Publication Number Publication Date
JP2000242684A JP2000242684A (ja) 2000-09-08
JP3171182B2 true JP3171182B2 (ja) 2001-05-28

Family

ID=12719602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04544799A Expired - Fee Related JP3171182B2 (ja) 1999-02-23 1999-02-23 機能合成方法,機能合成装置およびその記録媒体

Country Status (2)

Country Link
US (1) US6711728B1 (ja)
JP (1) JP3171182B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007271B2 (en) * 2002-04-18 2006-02-28 Sun Microsystems, Inc. Method and apparatus for integrated instruction scheduling and register allocation in a postoptimizer
US8265920B1 (en) 2004-07-30 2012-09-11 Synopsys, Inc. Determining large-scale finite state machines using constraint relaxation
US20060195732A1 (en) * 2005-02-11 2006-08-31 Joerg Deutschle Method and system for executing test cases for a device under verification
JP4853312B2 (ja) 2007-01-30 2012-01-11 日本電気株式会社 テストベンチ生成機能を有する動作合成装置と方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044211A (en) * 1994-03-14 2000-03-28 C.A.E. Plus, Inc. Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description
US5539680A (en) * 1994-08-03 1996-07-23 Sun Microsystem, Inc. Method and apparatus for analyzing finite state machines
JP3243207B2 (ja) * 1997-12-03 2002-01-07 株式会社半導体理工学研究センター テスト容易な集積回路、集積回路のテスト容易化設計方法、および集積回路のテスト容易化設計のためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US6182268B1 (en) * 1998-01-05 2001-01-30 Synplicity, Inc. Methods and apparatuses for automatic extraction of finite state machines

Also Published As

Publication number Publication date
JP2000242684A (ja) 2000-09-08
US6711728B1 (en) 2004-03-23

Similar Documents

Publication Publication Date Title
US8468475B2 (en) Conversion of circuit description to an abstract model of the circuit
US6199031B1 (en) HDL simulation interface for testing and verifying an ASIC model
US7472361B2 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
US6536031B2 (en) Method for generating behavior model description of circuit and apparatus for logic verification
KR19980032933A (ko) 에뮬레이션 및 시뮬레이션을 이용한 설계 검증 방법 및 장치
JP2006285865A (ja) レジスタ転送レベル記述と動作記述間の対応関係特定方法、装置及びプログラム
JP4492803B2 (ja) 動作合成装置及びプログラム
JPH11513512A (ja) ディジタル信号プロセッサの製造方法
JP3171182B2 (ja) 機能合成方法,機能合成装置およびその記録媒体
US9223910B1 (en) Performance and memory efficient modeling of HDL ports for simulation
JP2001188822A (ja) 機能合成方法および機能合成装置
JP2000268074A (ja) 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法
JP5147801B2 (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、及び制御プログラム
JP2000057188A (ja) ハードウェア・ソフトウェア協調評価装置
JP2000515658A (ja) 複雑なデジタル集積回路の設計方法並びに回路構造体
Deschamps et al. Development Tools
WO2000068782A1 (fr) Procede de mise au point d'un circuit integre a semiconducteur
JPH05197774A (ja) 高位レベル合成における回路修正方式
CN115358184A (zh) 基于增量编译的fpga原型验证方法及系统
JP2005122636A (ja) シミュレーションモデル生成装置および方法
JP2000305967A (ja) 状態遷移情報調整装置及び回路設計装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
Syrevitch et al. Verifiable template development for HDL-descriptions
JP2004070559A (ja) シミュレーション装置及びシミュレーション方法
Schütz The Concept of Electronic Design Automation
JP2005346227A (ja) 消費電力見積もりを行う設計支援システムおよびその方法、ならびにそのプログラム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000919

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010220

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

Free format text: PAYMENT UNTIL: 20080323

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090323

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100323

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100323

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110323

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110323

Year of fee payment: 10

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110323

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110323

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120323

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130323

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130323

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20140323

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees