JPH06251103A - 高位合成装置 - Google Patents

高位合成装置

Info

Publication number
JPH06251103A
JPH06251103A JP5031633A JP3163393A JPH06251103A JP H06251103 A JPH06251103 A JP H06251103A JP 5031633 A JP5031633 A JP 5031633A JP 3163393 A JP3163393 A JP 3163393A JP H06251103 A JPH06251103 A JP H06251103A
Authority
JP
Japan
Prior art keywords
type
operations
variable
unit
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
JP5031633A
Other languages
English (en)
Inventor
Hiroshi Imai
浩史 今井
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP5031633A priority Critical patent/JPH06251103A/ja
Publication of JPH06251103A publication Critical patent/JPH06251103A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 ステート数及びハードウェア資源の量が少な
くなるスケジューリングの実行を可能にする高位合成装
置を提供する。 【構成】 動作機能記述中で実行順序の変更可能な演算
に対して、演算の実行順序を変更する演算順序変更部3
と、演算順序変更部3により演算の実行順序を変更され
た動作機能記述に対し、演算の共有化を行なう演算共有
化部4と、演算共有化部4によって共有化された動作機
能記述の仕様を満たす論理回路を自動合成する。 【効果】 ステート数及びハードウェア資源の量が少な
くなるスケジューリングを行なえる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、動作機能記述を入力と
し、最適なスケジューリングを行なう高位合成装置に関
する。
【0002】
【従来の技術】近年、LSIの大規模化が著しく進み、
それに伴ってLSI設計期間の短縮が要求されている。
このため、今日では、論理回路を自動的に合成する論理
合成システムが用いられている。この論理合成システム
を用いて論理回路を設計するには、専用に機能記述言語
により設計対象の動作を記述する必要がある。
【0003】従来、機能記述言語はレジスタ転送レベル
の言語であり、設計対象のレジスタ、演算器等のハード
ウェア構成、及び、各クロック・サイクル毎のレジスタ
間のデータの流れとデータに対する処理を記述する。従
って、機能記述を入力とする論理合成システムを用いて
論理回路を設計するには、ハードウェアの専門知識が必
要とされる。
【0004】このため、最近ではハードウェアの専門知
識を持たない設計者でもLSIの設計が可能となる高位
合成システムの開発が行なわれてきている。高位合成シ
ステムでは、設計対象の動作仕様をアルゴリズミックに
記述した動作機能記述(プログラム言語)から、論理回
路を自動的に合成する。
【0005】アルゴリズミックに記述された動作を行な
う論理回路を合成するには、前記のように記述された動
作を、各クロック・サイクル毎に実行される動作に分割
する処理、即ちステートに分割するスケジューリングの
処理が必要とされる。ここで、各ステートに属する動作
は1クロック・サイクル内で実行される。
【0006】従来の高位合成システムで用いられている
スケジューリングの手法としては、例えば、各ステート
に属する演算の数が平均化されるようにスケジューリン
グする手法が挙げられる。この手法としては、例えば、
P.G.Paulin and J.P.Knight,“Force-Directed Schedu
ling in Automatic DataPath Synthesis, ”in Proceed
ing of the 24th ACM/IEEE Design Automation Confere
nce,pp.195-202,ACM/IEEE,June 1987.に挙げられる手
法がある。
【0007】しかしながら、前記のような手法では動作
機能記述中の演算の実行順序の変更及び演算の共有を考
慮していないため、演算の実行順序の変更及び演算の共
有化により、ステート数の削減の可能性を無視してしま
う場合があると云う問題点があった。
【0008】また、動作機能記述中の変数の型変換及び
入力変数の型に応じた演算の置き換えを考慮していない
ため、変数の型変換演算ディレイ及び変数の型に応じて
異なる演算のディレイ等、正確なディレイ情報に基づい
たスケジューリングが行えないと云う問題点もあった。
【0009】
【発明が解決しようとする課題】このように従来の高位
合成システムにおいては、動作機能記述中の演算の実行
順序の変更によるステート数の削減の可能性を考慮して
いないため、処理時間が長かったり、合成された回路の
規模が大きいと云う欠点があった。
【0010】また、動作機能記述中の各変数の型変換及
び各演算の入力変数に応じた演算の置き換えを考慮して
いないため、変数の型変換によるディレイが考慮され
ず、動作が正確な回路を合成できないと云う欠点もあっ
た。
【0011】本発明では上記のような従来技術の欠点を
除去するもので、第1の発明は、動作機能記述中の演算
の実行順序の変更及び演算の共有化によって処理時間の
短縮及び合成される回路規模の縮小を可能とする高位合
成装置を提供することを目的とするものである。
【0012】また、第2の発明は、変数の型変換演算の
追加、入力変数に応じた演算の置き換え、及び余分な型
変換演算の削除によって型変換によるディレイを考慮
し、正確に動作する回路を合成することができる高位合
成装置を提供することを目的とするものである。
【0013】
【課題を解決するための手段】第1発明の高位合成装置
においては、動作機能記述中で実行順序の変更可能な演
算に対して、演算の実行順序を変更する演算順序変更部
と、前記演算順序変更部により演算の実行順序を変更さ
れた動作機能記述に対し、演算の共有化を行なう演算共
有化部とから構成される。
【0014】また、第2の発明の高位合成装置において
は、動作機能記述中の変数の型を解析する変数解析部
と、前記変数解析部で得られた変数及び演算の情報に基
づいて変数の型変換が必要な場合に型変換演算を追加
し、さらに変数の型に応じた演算に置き換える演算変換
部と、前記演算変換部で追加された型変換演算のなか
で、余分な型変換演算を削除する型変換演算削除部とか
ら構成される。
【0015】
【作用】上記のように構成された第1の発明において
は、動作機能記述に対してスケジューリングを行なう際
に、動作機能記述中の演算に対して、演算順序変換部に
おいて演算の実行順序の変更を行ない、さらに演算共有
化部において演算の共有化を行なう。演算の実行順序の
変更、演算の共有化を行なうことによって、ステート数
のより少ないスケジューリングができるので、規模の小
さい回路を合成することが可能となる。
【0016】また、第2の発明においては、変数解析部
において動作機能記述中の各変数の型を解析し、演算変
換部において動作機能記述中の各演算に対して入力変数
の情報に基づき演算を置き換え、その際に、変数の型変
換が必要な時、型変換演算を追加する。変数の型変換演
算の追加、入力変数の型に応じた演算の置き換え、及
び、余分な型変換演算の削除を行うことによって、型変
換演算のディレイ及び変数の型に応じた演算のディレイ
を考慮することができ、正確なディレイ情報に基づいた
スケジューリングを行うことが可能になる。
【0017】
【実施例】以下、本発明の一実施例を図面を参照して説
明する。
【0018】第1の発明 図1に、第1の発明の高位合成装置の構成図を示す。演
算順序変更部3は、スケジューリング処理部2でスケジ
ューリングを行なう際に、ステート数が少なくなる場
合、または、変数のビット幅が少なくなる等必要とされ
るハードウェア資源の量が少なくなる場合、動作機能記
述中の演算の実行順序の変更を行なう。
【0019】次に、演算共有化部4は、動作機能記述中
の同一ステートに属する演算の共有化を行なう。
【0020】前記のような操作を行なうことにより、ス
ケジューリング処理部2においてステート数のより少な
いスケジューリング結果が得られ、さらに合成部5はよ
り規模の小さい論理回路の合成を行なう。
【0021】次に、演算順序変更部3における動作機能
記述中の演算の実行順序を変更する操作を説明する。
【0022】スケジューリング処理の際に、動作機能記
述中の演算の実行順序を変更する操作のフローチャート
を図2に示す。
【0023】初めに、まだステートに割り当てられてい
ない演算例を実行順序変更対象とし(ステップ10
1)、演算の実行順序を変更せずに演算順序変更対象に
対してスケジューリング処理を行なう(ステップ10
2)。
【0024】次に、スケジューリングされた演算列が実
行順序変更可能な演算例であるか否かを調べる(ステッ
プ103)。実行順序変更が可能か否かを調べるフロー
チャートを図3に示す。この後、演算の実行順序を変更
してスケジューリング処理を行なう(ステップ10
4)。演算の実行順序変更のフローチャートを図4に示
す。
【0025】両者の結果を比較し、演算の実行順序を変
更したスケジューリング結果の方がステート数が少なく
なる場合、そのスケジューリング結果を採用する(ステ
ップ105,106)。ステート数が同じ場合には、変
数のビット幅が小さくなるスケジューリング結果を採用
する(ステップ107,108)。ステート数が増える
場合には、演算の実行順序を変更しないスケジューリン
グを採用する(ステップ109)。
【0026】図5に簡単な例を示す。図5中の演算7,
8,9がスケジューリング処理の対象となっている。ま
た、簡単のため図5中の全ての演算の実行には1クロッ
クサイクルが必要であると仮定する。更に、変数x4とx5
を出力する演算がステートs2に既にスケジューリングさ
れていると仮定する。
【0027】従って、演算7,8,9はステートs3以降
にスケジューリングされる。図5中で、変数x1,x2,x4,y
1 は整数型、変数x3とx5は浮動小数点型であり、演算6
と8は整数型から浮動小数点型への型変換演算である。
【0028】図5は、演算の実行順序を変更しない場合
のスケジューリング結果である。次に、図3に示したフ
ローチャートに従うと、演算7と9は共に加算であり、
演算7の入力x4とy1、演算9の入力x5がステートs3から
参照可能であるので、演算7と9の実行順序の変更が可
能であることがわかる。
【0029】次に、図4に示した演算の実行順序変更の
実行のフローチャートに従って、演算の実行順序の変更
を行なう。その結果を図6に示す。
【0030】二つのスケジューリング結果を比較する
と、演算の実行順序を変更してスケジューリングを行な
った結果の方が、1ステート少なくなることがわかる。
従って、図6に示した演算の実行順序を変更したスケジ
ューリング結果が採用される。
【0031】次に、必要とされるハードウェア資源が少
なくなる場合の演算の実行順序の変更の操作を説明す
る。
【0032】図7に簡単な例を示す。図7においては、
演算12と13がスケジューリングの対象となってい
る。また、変数a,b,cのビット幅をそれぞれ18ビ
ット、8ビット、8ビットと仮定し、更に、変数a,
b,cを出力する演算が全てステートs5にスケジューリ
ングされていると仮定する。
【0033】図3に示したフローチャートに従うと、演
算12と13は共に加算であり、変数a,b,c全てが
ステートs6で参照可能なので、演算12と13の実行順
序を変更できることがわかる。次に、図4に示した演算
の実行順序を変更するフローチャートに従って演算の実
行順序を変更する。変更する際の変数のビット幅の計算
ルールを図8に示す。
【0034】演算の実行順序を変更したスケジューリン
グ結果を図9に示す。図9中の変数f,eのビット幅は
それぞれ9ビット、19ビットと計算される。一方、図
7に示した演算の実行順序を変更しないスケジューリン
グでは、変数d,eのビット幅はそれぞれ19ビット、
20ビットと計算される。従って、ビット幅が小さくな
る図9に示した演算の実行順序を変更したスケジューリ
ングが採用される。
【0035】次に、動作機能記述中の同一ステートに属
する演算の共有化を実現する操作を説明する。
【0036】動作機能記述中の演算の共有化のフローチ
ャートを図10に示す。初めに出力に複数の同じタイプ
の演算を持つ演算を捜し出す(ステップ124)。そし
て、それらの出力先の演算のうち同一ステートに属する
演算をマージ対象とする(ステップ125,126)。
【0037】それらのマージ対象の演算の入力が一つの
場合には、マージ対象の演算を一つの演算に共有化する
(ステップ127,129)。マージ対象の演算がもう
一つの入力を持つ場合には、その入力元の演算を調べ、
それらが同じ演算である時には、マージ対象の演算を一
つの演算に共有化する(ステップ127〜129)。
【0038】図6の例を用いて説明する。図6におい
て、演算10は同じタイプの演算6と演算11を同一ス
テート内で出力先として持つ。従って、演算6と11を
マージ対象とする。そのマージ対象は入力を一つしか持
たない。したがって、演算6と演算11は一つの演算に
共有化される。その結果を図11に示す。図11のよう
に、演算14に共有化されている。
【0039】第2の発明 図12に、第2の発明の高位合成装置の構成図を示す。
変換解析部22は、動作機能記述記憶部21に記憶され
た動作機能記述中の変数の型を解析する。
【0040】次に、演算変換部23は、動作機能記述中
の各演算の情報、演算ライブラリ24に登録されている
演算に関する情報、及び変数解析部22において解析さ
れた入力情報に基づいて、動作機能記述中の各演算をデ
ータ型に応じた演算に置き換える。その際に、変数の型
の変換が必要な場合には型変換演算を追加する。さら
に、型変換演算削除部25は、余分な型変換演算を削除
する。
【0041】前記のような操作を行うことにより、スケ
ジューリング処理部26において正確なディレイ情報に
基づいた最適なスケジューリングを行うことが可能にな
り、合成部27は最適なスケジューリングに基づいて論
理回路を合成する。
【0042】次に、演算変換部22における動作機能記
述中の演算をデータ型に応じた演算に置き換える操作を
説明する。
【0043】動作機能記述中の演算をデータ型に応じた
演算に置き換え、さらに変数の型変換が必要な場合の、
動作機能記述に型変換演算を追加する操作のフローチャ
ートを図13に示す。
【0044】初めに決まった型を持つ変数を入力とする
演算を動作機能記述中から探しだし(ステップ13
2)、入力変数の型が全て同じになるように、必要なら
型変換演算を追加する(ステップ133,134)。こ
の際の型変換演算の追加のルールを図14に示す。次
に、演算を入力変数の型と同じ型の演算に置き換える
(ステップ135)。
【0045】さらに、出力変数の型が決まっていない
時、演算の型を出力変数の型とする(ステップ136,
137)。既に出力変数の型が決まっており、かつ、演
算の型と一致しない時には、型変換演算を追加する(ス
テップ138,139)。
【0046】図15に簡単な例を示す。図15において
は、動作機能記述によって記述されたデータの流れを表
す。ここで、入力変数x が整数型、入力変数y 及び出力
変数z が浮動小数点型の時、図14に示した型変換演算
の追加のルールに従って入力変数x に整数型から浮動小
数点型への型変換演算29が追加される(図16)。
【0047】さらに、入力変数の型に一致するように演
算を浮動小数点型用の演算30に置き換える。図16で
は演算30の型と出力変数z の型が一致しているため、
出力変数z に型変換演算は追加されない。
【0048】次に、型変換演算の削除の操作を説明す
る。
【0049】型変換演算の削除のフローチャートを図1
7に示す。初めに入力変数及び出力変数に型変換演算が
ある演算を探し出す(ステップ142)。前記入力変数
及び出力変数が持つ型変換演算が、図18に示す削除可
能な型変換演算の組である時、前記入力変数及び出力変
数が持つ型変換演算を削除する(ステップ143)。そ
の後、入力変数の型と一致するように演算を置き換える
(ステップ144)。
【0050】図19に簡単な例を示す。図19において
演算31及び演算32は整数型から浮動小数点型への型
変換演算、演算33は浮動小数点型用の演算、演算34
は浮動小数点型から整数型への型変換演算である。
【0051】この例では、型変換演算の組31,32及
び34は、図18に示した削除可能な型変換演算の組で
ある。従って、型変換演算31,32及び34を削除す
る。さらに、入力変数の型に一致するように浮動小数点
型用の演算33を整数型用の演算35に置き換える(図
20)。この結果、図20のような演算の型になる。
【0052】
【発明の効果】以上説明したように、第1の発明によれ
ば、スケジューリング処理の際に、動作機能記述中の演
算の実行順序を変更し、変更された演算の共有化を行な
うことによってステート数及び必要とされるハードウェ
ア資源の量が少なくなるスケジューリングが可能になる
と云う効果がある。
【0053】また、第2の発明によれば、動作機能記述
記憶部において、各演算を入力変数の型に応じた演算に
置き換え、さらに変数の型変換が必要な時、型変換演算
を追加し、削除可能な型変換演算を削除することによっ
て、型変換演算のディレイ及び変数の型に応じた演算の
正確なディレイを考慮することが可能になると云う効果
がある。
【図面の簡単な説明】
【図1】第1の発明の高位合成装置の構成図。
【図2】スケジューリングの際の演算の実行順序変更の
フローチャート。
【図3】実行順序変更が可能か否かを調べるフローチャ
ート。
【図4】演算の実行順序変更のフローチャート。
【図5】演算の実行順序の変更の例。
【図6】図4の演算の実行順序の変更の結果。
【図7】ハードウェア資源が少なくなる場合の例。
【図8】ビット幅計算のルール。
【図9】図7の演算の実行順序の変更の結果。
【図10】演算の共有化のフローチャート。
【図11】図6の演算の共有化の結果。
【図12】第2の発明の高位合成装置の構成図。
【図13】演算変換のフローチャート。
【図14】型変換演算の追加ルール。
【図15】演算変換の例。
【図16】図15の演算変換の結果。
【図17】型変換演算削除操作のフローチャート。
【図18】削除可能な型変換演算の組。
【図19】型変換演算削除操作の例。
【図20】図19の型変換演算削除操作の結果。
【符号の説明】
1 動作機能記述記憶部 2 スケジューリング処理部 3 演算順序変更部 4 演算共有化部 5 合成部 21 動作機能記述記憶部 22 変数解析部 23 演算変換部 24 演算ライブラリ 25 型変換演算削除部 26 スケジューリング処理部 27 合成部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 動作機能記述中で実行順序の変更可能な
    演算に対して、演算の実行順序を変更する演算順序変更
    部と、 前記演算順序変更部により演算の実行順序を変更された
    動作機能記述に対し、演算の共有化を行なう演算共有化
    部とを有することを特徴とした高位合成装置。
  2. 【請求項2】 動作機能記述中の変数の型を解析する変
    数解析部と、 前記変数解析部で得られた変数及び演算の情報に基づい
    て変数の型変換が必要な場合に型変換演算を追加し、さ
    らに変数の型に応じた演算に置き換える演算変換部と、 前記演算変換部で追加された型変換演算のなかで、余分
    な型変換演算を削除する型変換演算削除部とを有するこ
    とを特徴とした高位合成装置。
JP5031633A 1993-02-22 1993-02-22 高位合成装置 Pending JPH06251103A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5031633A JPH06251103A (ja) 1993-02-22 1993-02-22 高位合成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5031633A JPH06251103A (ja) 1993-02-22 1993-02-22 高位合成装置

Publications (1)

Publication Number Publication Date
JPH06251103A true JPH06251103A (ja) 1994-09-09

Family

ID=12336620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5031633A Pending JPH06251103A (ja) 1993-02-22 1993-02-22 高位合成装置

Country Status (1)

Country Link
JP (1) JPH06251103A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010218217A (ja) * 2009-03-17 2010-09-30 Nec Corp 動作記述変換装置、動作記述変換方法、およびプログラム
JP2011232963A (ja) * 2010-04-27 2011-11-17 Signal Process Logic Inc 論理設計支援装置およびこのためのソフトウエア

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010218217A (ja) * 2009-03-17 2010-09-30 Nec Corp 動作記述変換装置、動作記述変換方法、およびプログラム
JP2011232963A (ja) * 2010-04-27 2011-11-17 Signal Process Logic Inc 論理設計支援装置およびこのためのソフトウエア

Similar Documents

Publication Publication Date Title
US5333032A (en) Logic design system and method in the same
JPH02217926A (ja) コード生成方法
US6874105B2 (en) Operation graph based event monitoring system
US7257786B1 (en) Method and apparatus for solving constraints
CN111241766B (zh) 测试方法与测试系统
US20190034562A1 (en) High-level synthesis device, high-level synthesis method, and computer readable medium
JP4237661B2 (ja) システムlsiの設計支援システム及び設計支援方法
JP2002108958A (ja) 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体
JPH06251103A (ja) 高位合成装置
US7051312B1 (en) Upper-bound calculation for placed circuit design performance
JP2001209670A (ja) 高位合成方法、および、高位合成方法の実施に使用される記録媒体
JP2002269162A (ja) 動作合成方法
Lavagno et al. Incremental high-level synthesis
US20170090882A1 (en) Program development support system and program development support software
US7051301B2 (en) System and method for building a test case including a summary of instructions
US6968523B2 (en) Design method of logic circuit using data flow graph
US6711728B1 (en) Function synthesizing method and apparatus, and recording medium on which program of said method is recorded
JPH06282600A (ja) 論理シミュレーション装置
JP2924882B1 (ja) 論理シミュレーションモデルの作成方法および装置ならびに記録媒体
US5245549A (en) Gate addressing system for logic simulation machine
US6430726B1 (en) Logic circuit synthesizing method and logic synthesizing system
US20090326901A1 (en) Apparatus and method for estimating change amount in register transfer level structure and computer-readable recording medium
JPH1196203A (ja) 論理回路設計方法
JP2000057188A (ja) ハードウェア・ソフトウェア協調評価装置
US20030140054A1 (en) Processor composing apparatus, system LSI composing apparatus, processor composing method, system LSI composing method, and program therefor