JP3852741B2 - 高位合成方法および高位合成装置 - Google Patents

高位合成方法および高位合成装置 Download PDF

Info

Publication number
JP3852741B2
JP3852741B2 JP2000334017A JP2000334017A JP3852741B2 JP 3852741 B2 JP3852741 B2 JP 3852741B2 JP 2000334017 A JP2000334017 A JP 2000334017A JP 2000334017 A JP2000334017 A JP 2000334017A JP 3852741 B2 JP3852741 B2 JP 3852741B2
Authority
JP
Japan
Prior art keywords
bus
circuit
connection resource
bus connection
embedded software
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
JP2000334017A
Other languages
English (en)
Other versions
JP2002140379A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2000334017A priority Critical patent/JP3852741B2/ja
Priority to EP01309068A priority patent/EP1202194A3/en
Priority to US09/984,897 priority patent/US6687894B2/en
Publication of JP2002140379A publication Critical patent/JP2002140379A/ja
Application granted granted Critical
Publication of JP3852741B2 publication Critical patent/JP3852741B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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】
【発明の属する技術分野】
本発明は、処理の動作のみを記述した動作記述によって表現された半導体集積回路(LSI)の論理回路を自動生成する高位合成方法および、それに用いる高位合成装置に関し、特に、後述するC言語のような抽象度の高い言語で記述された動作記述から、ハードワイヤ−ド回路を合成する技術において、汎用CPUなどの外部回路とデータ転送するために、プロトコルが決められたバスに接続するためのインターフェイス回路を自動生成する高位合成方法および、それに用いる高位合成装置に関する。
【0002】
【従来の技術】
近年の半導体集積回路(LSI)の微細化により大規模なシステムLSIが実現可能になっており、このようなシステムLSIを効率的に設計およびその検証を行うことができる環境が求められている。
【0003】
そこで、1990年代に入って実用化され始めた論理合成ツールに続き、ハードウエアの構造に関する情報は含まず、動作のみを記述した動作記述から、レジスタトランスファレベル(以下、RTレベルという)の記述を合成する動作合成ツールが実用段階に入り、人手設計に比べて遜色のないLSIの設計が短期間で行なわれることが可能になってきている。
【0004】
このような動作合成ツールを使用する場合には、LSIの本質的な動作を決定するアルゴリズム設計が人手設計の大部分を占めるため、設計者はアルゴリズム設計に集中することができ、回路の品質も向上させることができる。
【0005】
システムLSIのような大規模なデジタルLSIの上流設計においては、まず、システム全体のアルゴリズムを検討し、それの検証を行う「アルゴリズム設計」が行われる。ここでは、プログラミング言語である「C言語」などのソフトウエア記述用言語を用い、ワークステーションやパーソナルコンピュータ上で設計・検証を行い、アルゴリズムの検討が行われる。その後、システムで必要な個々の処理内容について、ハードウエア記述用言語で動作記述を行い、検証を行うことになる。このため、始めにソフトウエア記述用言語を用いて記述したアルゴリズムを、再度、ハードウエア記述用言語で動作記述を用いて書き直す必要がある。そこで、従来から、「C言語」をベースにしたシステム全体のアルゴリズム、または動作記述から回路を合成する手法(高位合成)が提案されている。このような従来技術として、例えば特開平10−116302号公報「集積回路の設計方法及びそれによって設計された集積回路」が挙げられる。
【0006】
このように、現在、「C言語」のような抽象度の高い言語を用いて、音声処理や画像処理などのアプリケーションを実現するハードウエアの動作を記述し、回路を合成してハードウエア化する高位合成が行なわれている。
【0007】
また、大規模なシステムを開発する場合には、処理の一部をプロセッサ上で実行するソフトウエアとして実装し、仕様変更や機能拡張を行い安くすることがある。この場合、ASIC(Application Specific Integrated Circuit;特定用途向けIC)や、ソフトウエアを実行するCPU(中央演算処理装置)、メモリなどの複数の機能ブロックを接続してシステムを構築することになる。このようなシステムでは、各機能ブロック間のデータ転送は、予め転送プロコトルが、決められたバスを介して行なわれる。したがって、各機能ブロックには、バスに接続するためのバスインターフェイス回路を付加する必要がある。
【0008】
バスインターフェイス回路の動作は、プロトコルに従って、制御信号やアドレスを解釈してバス上のデータを各機能ブロック内のリソース(記憶素子)に読み込んだり、バスに対して各機能ブロック内の所望のデータを出力する。これらの動作は、各機能ブロックで実現するアプリケーションに比較すると原始的であり、動作記述で表現して合成しても効率が悪い。また、タイミングが決まっているインターフェイス回路は、動作合成に向かなかった。これは、回路構造に関する情報を持たない動作記述から論理回路を得る動作合成では、スケジューリングによってデータ転送のタイミングが決まっているからである。
【0009】
さらに、データ転送のタイミングに関する制約を追加すれば、インターフェイス回路のタイミング仕様に合った回路を合成することも可能であるが、動作記述が複雑になったり、動作合成される他の回路部分の性能が悪くなったり、回路をLSI化したときにこの回路部分の面積が大きくなったりしてしまうなどの悪影響が生じることがあった。
【0010】
そこで、従来、インターフェイス回路は、主に、人手設計により別設計され、アプリケーション部に付加されてきた。この従来技術の設計フローチャートを図24に示している。図24に示すように、従来技術の設計では、インターフェイス回路以外の回路部分については、「動作記述」から、所定の各種処理を経て、「RTレベル回路記述」が生成されるが、インターフェイス回路のみ、「人手設計」により別設計され、「RTレベル回路記述」とインターフェイス回路の設計とが「全体回路記述」として合成されてきた。
【0011】
なお、上記所定の各種処理としては、詳細には後述するが、図24に示すように、処理の動作のみを記述した動作記述を構文解析する「動作記述解析部」と、この動作記述における演算間の実行順序の依存関係を表現する「コントロールデータフローグラフ(以下、CDFGという)生成部」と、CDFGの各演算および入出力を、各ステップに対応した時間に順次割り当てる「スケジューリング部」と、スケジューリングされたCDFGの実行に必要な演算器、レジスタおよび入出力ピンをそれぞれ、各部に割り当てる「アロケーション部」と、CDFGのデータ依存枝に対応した回路パス(マルチプレクサなど)を生成する「データパス生成部」と、アロケーション処理およびデータパス生成処理により生成された演算器、レジスタおよびマルチプレクサを制御するコントローラを生成する「コントローラ生成部」とを有している。
【0012】
【発明が解決しようとする課題】
上述した従来技術では、インターフェイス回路を人手設計する必要があるが、アプリケーションが複雑になり、多くの通信路、メモリ、レジスタなどのリソース(記憶素子)に対してバスを介したデータ転送が必要になると、人手設計では管理が大変になり、誤りが発生し易くなる。
【0013】
また、アプリケーションとは別に設計されるため、アプリケーションが変更され、リソース数やデータタイプが変わる度にインターフェイス回路を人手にて修正する必要が生じる。
【0014】
さらに、多くの回路の設計開発では、仕様が変更されることが多く、回路の入出力が変更されると、それに合わせてインターフェイス回路も修正しなければならず、これらの変更は時間のかかる作業となり、設計期間が延びる原因になっていた。
【0015】
また、人手設計では、誤りが生じる可能性もあった。また、バスを介して、メモリのデータ転送を行うケースも多く、このようなケースにおいても、従来技術の人手設計では、データ転送を行うメモリアドレスを管理しておく必要があり、人手設計では管理が大変になり、誤りが発生しやすい。
【0016】
さらに、前述したように、システムが大規模化すると、処理の一部をCPU上のソフトウエアとして実装される場合があり、この場合、大規模なシステムには、ソフトウエアを実行するCPUが必要となり、ハードウエアとソフトウエアで構成されるシステムとなる。そこでは、ハードウエアの開発も別途行う必要がある。ハードウエアとソフトウエア間でデータ転送を行うには、CPU内のリソースのアドレスなどを指定する必要があり、ここでも、アドレスなどの情報管理が必要となって、人手管理では誤りが発生しやすい。
【0017】
本発明、上記事情に鑑みて為されたもので、動作記述から、外部回路とデータ転送を行うために、プロトコルが決められたバスに接続するためのバスインターフェイス回路を自動生成することができる高位合成方法および、それに用いる高位合成装置を提供することを目的とする。
【0018】
【課題を解決するための手段】
本発明の高位合成方法は、処理の動作のみを記述した動作記述から、レジスタトランスファレベルの論理回路を合成する高位合成方法において、バス接続リソース抽出手段が該動作記述からバス接続リソースの情報を抽出するステップとバスインターフェイス生成手段が、バス接続させる通信路およびメモリ、レジスタに関する該バス接続リソースの情報が格納されるバス接続リソースデータベースおよび、事前にバスプロトコルが格納されたバスプロトコルライブラリを参照して、対象とするバスインターフェイス回路を自動生成するステップとを有するものであり、そのことにより上記目的が達成される。また、これに用いる本発明の高位合成装置は、処理の動作のみを記述した動作記述から、レジスタトランスファレベルの論理回路を合成する高位合成装置において、動作記述からバス接続リソースの情報を抽出するバス接続リソース抽出手段と、バス接続させる通信路およびメモリ、レジスタに関するバス接続リソースの情報を格納するバス接続リソースデータベースと、事前にバスプロトコルが格納されたバスプロトコルライブラリと、バス接続リソースデータベースおよひバスプロトコルライブラリを参照して、対象とするバスインターフェイス回路を自動生成するバスインターフェイス生成手段とを有したものであり、そのことにより上記目的が達成される。
【0019】
この構成により、バス接続リソースデータベースおよびバスプロトコルライブラリを参照することで、従来は人手設計に頼らざるを得なかったバスインターフェイス回路を自動生成して、動作記述から、このバスインターフェイス回路を含む全体回路のRTレベル回路に合成することが可能となる。よって、回路内のリソースの管理が簡単なものになると共に、人手設計では避けられない誤りを防止することが可能となって、設計品質の向上、設計期間の短縮を図ることが可能になる。
【0020】
また、好ましくは、本発明の高位合成方法において、組み込みソフト用ヘッダファイル生成手段が前記バス接続リソースデータベースを参照し、対象とするバスに関する組み込みソフト用ヘッダファイルを自動生成する。また、好ましくは、本発明の高位合成装置は、抽出したバス接続リソースの情報およびバス接続リソースデータベースを参照し、対象とするバスに関する組み込みソフト用ヘッダファイルを自動生成する組み込みソフト用ヘッダファイル生成手段を有する。
【0021】
この構成により、システム内にCPUが存在した場合には、リソース情報を参照することで、ヘッダファイルを自動的に生成するので、従来、人手で管理していたリソースの情報管理から、人手を排除できて、設計品質の向上、設計期間の短縮を図ることが可能になる。
【0022】
さらに、好ましくは、本発明の高位合成方法において、組み込みソフト用ライブラリ関数生成手段がバス接続リソースデータベースを参照し、対象とするバスに関する組み込みソフト用ライブラリ関数を自動生成する。また、好ましくは、本発明の高位合成装置において、抽出したバス接続リソースの情報およびバス接続リソースデータベースを参照し、対象とするバスに関する組み込みソフト用ライブラリ関数を自動生成する組み込みソフト用ライブラリ関数生成手段を有する。
【0023】
この構成により、システム内にCPUが存在した場合には、リソース情報を参照することで、ライブラリ関数を自動的に生成するので、従来、人手で管理していたリソースの情報管理から、人手を排除できて、設計品質の向上、設計期間の短縮を図ることが可能になる。
【0024】
【発明の実施の形態】
以下、本発明の実施形態の高位合成装置および、それを用いた高位合成方法について図面を参照しながら説明する。
【0025】
図1は、本発明の一実施形態における高位合成装置の構成を示すブロック図である。図1において、高位合成装置1は、動作記述格納手段2と、動作記述解析手段3と、バス接続リソース抽出手段4と、バス接続リソースデータベース5と、CDFG生成手段6と、スケジューリング手段7と、アロケーション手段8と、データパス生成手段9と、コントローラ生成手段10と、バスプロトコルライブラリ11と、バスインターフェイス生成手段12と、RTレベル回路記述生成手段13と、RTレベル回路記述格納手段14とを有し、動作記述から生成される演算器、レジスタ、データパスおよびコントローラ回路などに、バスインターフェイス生成手段12により自動生成されたバスインターフェイス回路を付加して、全体のRTレベル回路を合成するものである。
【0026】
動作記述格納手段2は、処理の動作のみを記述した動作記述を格納するものであり、以下の説明で、動作記述は、「Bach−C」による記述を用いる。「Bach−C」とは、C言語を基に、データのビット幅の指定、明示的な並列実行記述のための構文、並列実行記述間のデータ通信命令を追加した、システムのアルゴリズム記述からのLSI設計を支援する言語系であり、その更なる詳細内容については、文献「Bach;C言語を用いたLSI設計環境」第11回 回路とシステム(軽井沢)ワークショップ、および、文献「ハードウエアコンパイラBach」信学技報Technical Report of IEICE CRSY97−87(1997−10)に述べられている。
【0027】
その動作記述の一例を図2に示している。
【0028】
図2は、図1の動作記述格納手段に格納される動作記述の一例を示す図であり、この動作記述は、前述した「Bach−C」による記述を用いている。図2において、動作記述はバスへのデータ転送を含み、その第1行目でリソースxをバスstdbusに接続することを宣言し、その第2行目で、そのアドレスが0x4000であることを定義している。また、第3行目〜第6行目までに記述されているcircuit()関数は、動作合成の対象となる回路の動作を示し、同期通信路inからデータを受け取り、非同期通信路xが示す値との積を演算し、その演算結果を同期通信路outに出力する回路動作を表している。さらに、第8行目〜第13行目までに記述されているtbench()関数は、回路の外部環境の動作を示し、非同期通信路xに値「2」、同期通信路inに値「1」を設定し、同期通信路outから、回路での演算結果を受信する動作を表している。さらに、第15行目〜第24行目までに記述されているmain()関数は、回路と外部環境の全体の動作を表している。
【0029】
ここで、バスに接続するリソースは上記動作記述上で以下のように記述する。
【0030】
♯Pragma stdbus res name
♯Pragma busaddr res name addr
res nameは、リソースの識別子を表し、stdbusは、バスの種類(プロトコルの種類)の情報を含む。また、busaddrは、リソースの識別子res nameと、バスのアドレス空間でのアドレスaddrを指定することを意味する。
【0031】
以上のバスに関するリソースの情報を追加した動作記述を、後述するバス接続リソース抽出手段4で抽出することにより、バスに接続されるリソースの情報が得られる。
【0032】
ユーザがリソースを指定する手段としては、上述したように、動作記述中で、バスに接続するリソースを記述する方法以外に、コマンド発行時にオプションとして指定する方法もあるが、上記のように、バスに接続されるリソースの識別子、リソースを接続するバスプロトコルの種類、リソースに割り当てるアドレスが指定できれば、他の方法でも構わない。リソースの識別子が分かれば、動作記述を解析し、そのリソースに対して宣言されているデータのビット幅を取得することができる。
【0033】
動作記述解析手段3は、処理の動作のみを記述した上記動作記述の構文を解析するものである。
【0034】
バス接続リソース抽出手段4は、処理の動作のみを記述した動作記述から、動作記述で指定された外部とのデータ通信用の通信路・メモリを抽出する。具体的には、図2に示す動作記述に対して、バスの種類がstdbusで、そのバスに接続されるリソースとして非同期通信路xを使用、そのアドレスが0x4000であることなどが抽出される。
【0035】
バス接続リソースデータベース5は、バス接続リソース抽出手段4で抽出した通信路・メモリ、その通信路・メモリを特定するアドレスおよびデータ幅などのリソースの情報を保存するものである。このリソースの情報は、更に説明すると、バスに接続されるリソース(通信路・メモリ)の識別子、リソースを接続するバスプロトコルの種類、リソースに割り当てるアドレス、リソースのデータ幅である。
【0036】
CDFG生成手段6は、演算の実行順序の依存関係を表現するCDFGを生成するものである。このCDFGとは、入出力、演算、定数、通信(送信および受信)、分岐、ループを節点とし、データの依存関係を有向枝(データの依存枝)とするグラフであり、CDFGは、例えば図2に示す動作記述から、図3に示すように、同期通信路inからのデータ入力rcv(in)60、非同期通信路xのデータ入力61、演算器62、同期通信路outへの演算結果の出力send(out)63が節点となり、これらの間をデータ依存枝64〜66のそれぞれが接続されて構成される。
【0037】
スケジューリング手段7は、CDFGの各演算および入出力を、ステップと呼ばれるクロックに対応した時間に順次割り当てるものである。例えば図4に、図3のCDFGを3つのステップにスケジューリングした処理結果を示している。
【0038】
アロケーション手段8は、スケジューリングされたCDFGの実行に必要な演算器、レジスタおよび入出力ピンをそれぞれ生成し、CDFG中の演算を演算器に、クロック境界を横切るデータ依存枝をレジスタに、入出力を入出力ピンにそれぞれ割り当てるものである。例えば図5に示すように演算62がその演算内容により乗算器80に割り当てられ、また、例えば図6に示すようにクロック境界を横切るデータ依存枝64〜66がレジスタ81,82に割り当てられる。この場合、データ依存枝64,66は、異なるクロック境界を横切っているために、動作する時間が異なることから、同一のレジスタ81に割り当てられている。また、例えば図7に示すように入出力60,61,53は、入力ピン83,84および出力ピン85に割り当てられる他、それらのデータピン以外に、制御信号入力ピン86,87および制御信号出力ピン88,89に割り当てられる。
【0039】
データパス生成手段9は、CDFGのデータ依存枝64〜66に対応したデータパス(マルチプレクサ)を生成するものである。例えば図8にデータパス生成結果の一例を示している。図8では、データ依存枝64に対応するデータパス90〜92が生成され、データ依存枝65に対応するデータパス93,94が生成され、データ依存枝66に対応するデータパス95,91,92,96が生成される。この場合、アロケーション処理の図6でレジスタ81を共用としたため、図8ではマルチプレクサ97をデータパス90,91間に追加している。
【0040】
コントローラ生成手段10は、上記アロケーション処理およびデータパス生成処理により生成された演算器80、レジスタ81,82、マルチプレクサ97を制御するコントローラを生成するものである。例えば図9にコントローラ生成の結果を示している。図9では、コントローラ100からのレジスタ81,82への制御信号線101,102、マルチプレクサ97への制御信号線103、入力ピン86,87への制御信号線104,105、出力ピン89,88への制御信号線106,107が生成される。
【0041】
バスプロトコルライブラリ11は、バスのタイミング、制御用の信号線の種類がライブラリとして記録されている。
【0042】
バスインターフェイス生成手段12は、これらバス接続リソースデータベース5およびバスプロトコルライブラリ11を参照してバスインターフェイス回路を生成するものであり、その詳細な説明を図10に示している。
【0043】
図10は、図1のバスインターフェイス生成手段の詳細な構成を示すブロック図である。図10において、バスインターフェイス生成手段12は、バス接続リソースデータベース読み込み部121と、バスプロトコルライブラリ読み込み部122と、バス側接続回路生成部123と、ユーザ回路側接続回路生成部124と、アドレスデコーダ生成部125とを有している。
【0044】
バス接続リソースデータベース読み込み部121は、バス接続リソースデータベース5を読み込み、バスに接続するリソースの識別子、接続するバスの種類、データのビット幅、アドレスを取得するようになっている。
【0045】
バスプロトコルライブラリ読み込み部122は、バスプロトコルライブラリ11を読み込み、各バスプロトコルの種類について、バスで使用される信号の種類、各信号の入出力の方向、各信号のビット幅、各信号の入出力のタイミングを取得するようになっている。
【0046】
バス側接続回路生成部123は、バスで使用される信号の種類を参照し、バスとインターフェイス回路間の信号の入出力のための回路を生成するものである。
【0047】
ユーザ回路側接続回路生成部124は、高位合成で自動生成されるユーザ側回路とインターフェイス回路を入出力するための回路を生成するものである。ここでは、バスに接続される全てのリソースについて、バスからリソースへの書き込み時にバスのデータをリソースに伝播するための回路を生成し、リソースからバスへの読み出し時にリソースのデータをバスへ出力するための回路を生成する。
【0048】
アドレスデコーダ生成部125は、バス側から入力されるアドレスと、読み出し・書き込み時の制御信号を解釈し、アドレスに対応するリソースに読み出しイネーブル信号、または、書き込みイネーブル信号を出力する回路を生成するものである。この結果、生成されるインターフェイス回路は、以下に示す回路構成がRTレベルで合成される。
【0049】
非同期通信路を用いたデータ転送では、送信側と受信側は任意のタイミングでデータの読み書きを行う。この場合、回路構成は図11のように合成される。送信側回路は、送信を行うステップでデータをwdataに出力し、書き込みイネーブル信号をwenに出力する。受信側回路は、受信を行うステップでrdataからデータを読み込む。
【0050】
また、メモリを用いたデータ転送では、送信側回路と受信側回路は任意のタイミングでデータの読み書きを行う。この場合、回路構成は、図12のように合成される。送信側回路は、送信を行うステップでデータをwdataに出力し、アドレスをwaddrに出力し、書き込みイネーブル信号をwenに出力する。受信側回路は、受信を行うステップで読み出すメモリアドレスをraddrに出力し、読み出しイネーブル信号をrenに出力し、rdataからデータを読み込む。
【0051】
さらに、同期型通信路を用いたデータ転送では、送信側回路と受信側回路はハンドシェークを確立してデータ転送を行う。この場合、回路構成は図13のように合成される。送信側回路は、wtx(初期状態はロウレベル)をハイレベルにし、データをwdataに出力し、wrxがハイレベルになるまで待つ。wrxがハイレベルになると、次のステップでwtxをロウレベルにする。また、受信側回路は、受信するステップでrtx(初期状態はロウレベル)をハイレベルにし、rtxがハイレベルになるまで待つ。rtxがハイレベルになると、rdataからデータを読み出し、次のステップでrtxをロウレベルにする。また、双方向のデータ転送がある場合には、送信側回路と受信側回路の両方の信号をそれぞれの回路が持つ。
【0052】
以上により、図1のバスインターフェイス生成手段12は、バス接続リソースデータベース5に保存された通信路、メモリを参照し、また、バスプロトコルライブラリ11を参照し、また、バスで使われる送信プロトコルに従い、送信モードを示す制御信号、転送を行うレジスタやメモリの指定を行うアドレス、転送するデータ、転送終了を示すレスポンスをバスプロトコルライブラリ11を参照することにより、予め決められたタイミングで信号を入出力する回路を生成する。
【0053】
なお、図1のバスインターフェイス生成手段12で生成されるインターフェイス回路は、色々な回路が考えられる。例えば図12のようなメモリ回路として、具体的には、通常のメモリ以外にも、FIFOを使った回路や、スタックを使った回路などが考えられる。したがって、図1のバスインターフェイス生成手段12は、通信路の送信部、受信部の入出力動作仕様が分かれば、その仕様に合わせて、上記各部121〜125により為される各処理に従い、インターフェイス回路の生成を行う。したがって、図1のバスインターフェイス生成手段12は、図11〜図13に示す、インターフェイス回路以外の回路実装方法についても対応することができる。
【0054】
図1のRTレベル回路記述生成手段13は、生成されたバスインターフェイス回路を含む全体回路のRTレベルの回路を合成し、RTレベル回路記述を出力するものである。
【0055】
RTレベル回路記述格納手段14は、RTレベル回路記述生成手段13からのRTレベル回路記述を格納するものである。
【0056】
次に、高位合成装置1は、組み込みソフト用ヘッダファイル生成手段15と、組み込みソフト用ヘッダファイル16と、組み込みソフト用ライブラリ関数生成手段17と、組み込みソフト用ライブラリ関数ファイル18とを有し、システム内に汎用CPUが必要である場合に、組み込みソフト用ヘッダファイル生成手段15により組み込みソフト用ヘッダファイルを自動生成し、また、組み込みソフト用ライブラリ関数生成手段17により組み込みソフト用ライブラリ関数を自動生成するものである。
【0057】
組み込みソフト用ヘッダファイル生成手段15は、バス接続リソースデータベース5を参照し、汎用CPUのプログラム用に組み込みソフト用ヘッダファイルを自動生成するものである。なお、汎用CPUで動作するプログラムでは、汎用CPUのメモリ空間での、バスに接続する各通信路のアドレスをユーザが指定することにより、リソースの情報が、前述したように、バス接続リソース抽出手段4によって抽出された後、バス接続リソースデータベース5に保存されている。この組み込みソフト用ヘッダファイル生成手段15の詳細な構成を図14に示している。
【0058】
図14は、図1の組み込みソフト用ヘッダファイル生成手段の詳細な構成を示すブロック図である。図14において、組み込みソフト用ヘッダファイル生成手段15は、バス接続リソースデータベース読み込み部151と、組み込みソフト用ヘッダファイル出力部152とを有している。
【0059】
バス接続リソースデータベース読み込み部151は、図1のバス接続リソースデータベース5を読み込み、組み込みソフト用ヘッダファイル出力部152で、全てのリソースに対して割り当てられたアドレスを、図1の組み込みソフト用ヘッダファイル16に出力する。その出力フォーマットは、以下のようになる。
【0060】
♯define ADDR indentifier address
ここで、indentifierは、リソースの名前、addressはアドレスを示す数値である。
【0061】
組み込みソフト用ヘッダファイル16は、組み込みソフト用ヘッダファイル生成手段15からのヘッダファイル出力をファイリングするものである。
【0062】
組み込みソフト用ライブラリ関数生成手段17は、バス接続リソースデータベース5を参照し、汎用CPUのプログラム用に組み込みソフト用ライブラリ関数を生成するものである。なお、前述したように、バス用リソース抽出手段4において、バスに接続されるリソースの名前、リソースの種類が抽出された後、これらは、バス通信路データベースであるバス接続リソースデータベース5にて保存されている。
【0063】
この組み込みソフト用ライブラリ関数としては、バスを介しての通信に必要な以下の関数である。
【0064】
Send()関数;CPUから、バスを介してデータを送信(書き込み)するための関数である。
【0065】
Receive() 関数;CPUから、バスを介してデータを受信(読み出し)するための関数である。
【0066】
Sync send() 関数;通信相手に送信可能状態であることを知らせる、ハンドシェーク信号を送信するための関数である。
【0067】
Sync Receive()関数;通信相手に受信可能状態であることを知らせる、ハンドシェーク信号を受信するための関数である。
【0068】
組み込みソフト用ライブラリ関数ファイル18は、組み込みソフト用ライブラリ関数生成手段17からのライブラリ関数出力をファイリングするものである。
【0069】
現在、LSIの設計は、パーソナルコンピュータやワークステーション上で各種設計・検証用ソフトウエアを駆使して行なわれており、本発明の高位合成方法も、これらハードウエア内にインストールされ、または、ネットワーク環境の下、設計環境の一部分として使用される。そこで、本発明の高位合成方法が、このよな環境の下で使用できるようにされた設計装置が、本発明の高位合成装置である。
【0070】
上記構成により、その動作を説明する。
【0071】
図15は、図1の高位合成装置の動作を示す処理フローチャートである。なお、図15では、図2に示す動作記述格納処理からRTレベルの回路記述を合成する処理までの各処理フロー中で、本発明の特徴部分であるバス接続リソース抽出・格納処理、組み込みソフト用ヘッダファイル生成・ファイリング処理、組み込みソフト用ライブラリ関数生成・ファイリング処理を除く高位合成の処理フローは、図24と略同様であるが、ここでは、図2に示す動作記述に基づいて説明することにし、その更なる詳細な説明については、特願平12−020973号「高位合成方法並びに高位合成方法の実施に使用される記憶媒体」に記載されている。
【0072】
図15に示すように、まず、ステップS1で、図2に示す動作記述が動作記述格納手段2に与えられると、ステップS2で、動作記述解析手段3が、この動作記述の構文解析を行う。
【0073】
次に、ステップS3でバス接続リソース抽出・格納処理を行う。即ち、図2に示す動作記述で指定された外部とのデータ通信用の通信路・メモリ、例えば、バスの種類stdbus、バスに接続されるリソースとして使用する非同期通信路x、そのアドレスが0x4000などが抽出される。その通信路、アドレスおよびデータ幅などのリソース情報を、バス接続リソースデータベース5に保存する。次のステップS4からは、図2に示す動作記述において、circuit()関数で記述された回路の合成に入る。
【0074】
ステップS4において、CDFG生成処理を行う。例えば図2に示す動作記述から、図3に示すように、同期通信路inからのデータ入力rcv(in)60、非同期通信路xのデータ入力61、演算62、同期通信路outへの演算結果の出力send(out)63が節点となるCDFGが生成される。
【0075】
さらに、ステップS5で、スケジューリング処理を行う。例えば図4に示すように、図3のCDFGの各演算および入出力が3つのステップにスケジューリングされる。
【0076】
さらに、ステップS6でアロケーション処理を行う。このアロケーション処理として、例えば、図5のように演算62が乗算器80に、図6のようにデータ依存枝64〜66がレジスタ81,82に、図7のように入出力60,61,63が、入力ピン83,84および出力ピン85に、これ以外の入力および出力に、制御信号入力ピン86,87および制御信号出力ピン88,89が割り当てられる。
【0077】
さらに、ステップS7でデータパス生成処理を行う。例えば図8に示すように、データ依存枝64に対応するデータパス90〜92が生成され、データ依存枝65に対応するデータパス93,94が生成され、データ依存枝66に対応するデータパス95,91,92,96が生成される。さらに、レジスタ81を共用としたため、マルチプレクサ97が追加されている。
【0078】
さらに、ステップS8でコントローラ生成処理を行う。例えば図9に示すように、コントローラ100が生成され、このコントローラ100のレジスタ81,82への制御信号線101,102、マルチプレクサ97への制御信号線103、入力ピン86,87への制御信号線104,105、出力ピン89,88への制御信号線106,107が生成される。
【0079】
以上によって、本発明の特徴部分であるインターフェイス回路部分を除く、処理に必要なデータバスやコントローラ100を持つRTレベルの回路モデルが出来上がる。
【0080】
次に、ステップS9で本発明の特徴部分であるバスインターフェイス生成処理を行う。バスインターフェイス生成処理とは、バスを介した外部とのデータ転送を行うためのインターフェイス回路を生成する処理である。このバスインターフェイス生成処理について、以下に詳細に説明する。
【0081】
まず、図2で非同期通信路xの使用が宣言されており、非同期通信路xの実装としては、図16に示すようにレジスタregX160を用いて実装する。
【0082】
ここで、使用するバスstdbusは、バス接続を要求するマスタとスレーブから構成されるマスタ・スレーブ型のバスとし、合成する回路をスレーブとするインターフェイス回路の生成を行い、スレーブから見たときの信号変化のタイミングは、図17に示すように予め決まっているものとする。また、使用するバスstdbusの仕様は以下の仕様(1)〜(6)とする。
【0083】
(1)入力信号SEL,RW,ADDR,WDATA,RDATAは、全てクロック信号CLKの立ち上がり時の値が参照される。
【0084】
(2)スレーブ回路は、スレーブ選択信号SELがハイレベルならばそれ自体が選択され、読み書きを行う。
【0085】
(3)入力信号RWは、ハイレベルならばスレーブ回路への書き込みを表し、ローレベルならばスレーブ回路からの読み出しを表すものとする。
【0086】
(4)アドレス信号ADDRは、書き込み時または読み出し時のアドレスとする。
【0087】
(5)書き込みデータ信号WDATAは、スレーブ回路への書き込みデータとする。
【0088】
(6)読み出しデータ信号RDATAは、スレーブ回路から読み出されたデータとする。
【0089】
このように、このバスstdbusの書き込みまたは読み出しのタイミングは、それ自体が選択された次のクロックで行なわれる仕様であり、このようにタイミングが事前に規定されている回路は、前述したように、従来技術の動作合成では、記述が困難であった。
【0090】
バスstdbusに関する図17のタイミング、および上記仕様(1)〜(6)が、事前に図1のバスプロトコルライブラリ11に登録されている。すると、バス接続リソース抽出手段4による抽出内容で使用を宣言された結果、バスの種類やバスに接続されるリソースの情報が、バス接続リソースデータベース5に保存され、バスプロトコルライブラリ11から、このバスstdbusが選ばれ、バスインターフェイス生成手段12でバスインターフェイス回路が生成される。
【0091】
次に、ステップS10でRTレベル回路記述生成・格納処理を行う。RTレベル回路記述生成手段13は、生成されたバスインターフェイス回路を含む全体回路のRTレベルの回路を生成し、RTレベル回路記述が出力する。RTレベル回路記述格納手段14は、このRTレベル回路記述を格納する。
【0092】
このバスインターフェイス回路を含む全体の回路記述が生成された結果を、図18に示している。図18において、バスインターフェイス回路180は、太い点線で囲った回路部分であり、バスインターフェイス回路180を除く回路部分186とバスstdbus185とを接続している。また、アドレスデコーダ181は、スレーブ選択信号SEL、入力信号RW、アドレス信号ADDRから、レジスタregX160への書き込みイネーブル信号XWE182を生成すると共に出力イネーブル信号183を生成する。また、読み出しデータ信号RDATAを出力するために、レジスタregXからの読み出しパス184が追加されている。
【0093】
この結果、生成されたバスインターフェイス回路180の動作としては、クロックCLKの立ち上がりエッジで、スレーブ選択信号SELと入力信号RWがハイレベルで、かつ、アドレス信号ADDRがバスのアドレスを示すとき、書き込みイネーブル信号XWE182をハイレベルにし、それ以外のときは、書き込みイネーブル信号XWE182をローレベルにする。一方、図2の第2行目で、バスのアドレスを0x4000と宣言しており、図19のタイミングチャートに示すように、サイクルcycle0の後半から、アドレス信号ADDRがバスのアドレスを0x4000を示し、これが、次のクロックCLKの立ち上がりエッジでアドレスデコーダ181に取り込まれ、サイクルcycle1で書き込みイネーブル信号XWE182がハイレベルになり、書き込みデータ信号WDATAの値0x0120がレジスタregX160に取り込まれている。また、サイクルcycle2の後半から、アドレス信号ADDRがバスのアドレスを0x4000を示し、これが、次のクロックCLKの立ち上がりエッジでアドレスデコーダ181に取り込まれ、入力信号RWがローレベルのため、レジスタregX160の値0x0120が、読み出しデータ信号RDATAに出力される。
【0094】
以上、説明したように本発明によって、バスの使用を含む動作記述からバスのインターフェイス回路180を含むRTレベルの回路が合成される。そこで、この後、RTレベルの回路を市販の論理合成ツールで回路合成を行うことにより、ハードウエア回路に変換することができる。
【0095】
次に、ステップS11において、システム内に汎用CPUが存在するかどうかを判定し、システム内に汎用CPUが存在しない場合は処理を終了し、また、システム内に汎用CPUが存在する場合には、ハードウエアの設計と並行して行なわれるソフトウエア開発における組み込みソフト用のヘッダファイルの自動生成およびライブラリ関数の自動生成を行う。以下に、ステップS12の組み込みソフト用ヘッダファイル生成・格納処理と、ステップS13の組み込みソフト用ライブラリ関数の自動生成・格納処理について、以下に、その一例を説明する。
【0096】
図20は、汎用CPUとして、ARMを用いたときの回路の動作記述例を示す図であり、使用するバスはAMBAバスとする。図20の動作記述の動作は、図2で前述したように、3つの関数main()、circuit()、testbench()から構成されている。関数circuit()は、合成対象の関数、関数testbench()は、テストベンチとする。関数main()では、汎用CPUとの通信に用いる2つの同期型通信路と、一つの非同期通信路の計3つの通信路が、その第25行目および第25行目に宣言されている。関数circuit()では、プラグマamba asbを用いて外部とのデータ転送に用いる通信路・メモリを指定する。同期型通信路は、circuit()回路と汎用CPUのハンドシェークに、非同期型通信路やメモリはデータ転送に用いるものとする。さらに、汎用CPUから通信路を特定できるように、各通信路、メモリ、割り込み信号にアドレスを割り当てる。アドレスを、例えば図21のように割り当てると、図20の動作記述では第33行目〜第35行目のように指定することになる。
【0097】
この動作記述において、合成対象となるcircuit()回路の動作は以下のようになる。
【0098】
合成対象となるcircuit()回路は、まず、ARM CPUから送信許可が出るまで待つ。これには、図20の第9行目に示すようにreceive()関数を使う。ARM CPUから送信許可が出れば、非同期通信路dataに対してデータを書き込む。データの書き込みが終われば、ARM CPUに送信完了を知らせるため、図20の第12行目に示すようにsend(bach done,1)を実行する。ここで、send()は、ARM CPUが受信完了を持たない。また、send()で送信する値は意味かなく、どんな数値であっても値「1」が送信されたものと見なす。
【0099】
このように、各通信路、メモリにアドレスが割り当てられた動作記述が、本発明の図1の動作記述格納手段2に与えられると、前述したように、バスインターフェイス回路を含むRTレベル回路記述がRTレベル回路記述生成手段13により生成されると共に、バス接続リソース抽出手段4で、各リソースの情報が抽出され、組み込みソフト用ヘッダファイル生成手段15で組み込みソフト用ヘッダファイルが生成される。そこで、図22に示すように、汎用CPUであるARM CPUを使った組み込みソフト用ソフトウエアを作成すると、その第1行目〜第3行目に示すように、ソフトウエアのプログラム内では、各アドレスを定義するヘッダファイルが自動的に付加される。図22に示す組み込みソフト用ソフトウエアの動作は以下のようになる。
【0100】
circuit()回路からARM CPUへのデータ転送では、ARM CPUが受信可能であることをcircuit()回路に知らせるため、図22の第5行目に示すように、sync send(ARM READY)を実行し、circuit()回路に対して送信許可を出す。sync send()はライブラリ関数で、指定されたアドレスのデータが「1」になるまで待つ。circuit()回路側でデータの書き込みが終われば、図22の第8行目に示すように、そのデータを読み出す。データの読み出しが終われば、circuit()回路に対して次のデータの送信を許可するため、図22の第10行目に示すようにsync send(ARM READY)を実行する。通常、ARM CPUのソフトウエアを実行するよりcircuit()回路側の処理の方が早いため、ARM CPU側は、可能な限り早い時期に送信を許可しておく。
【0101】
ここで、図22の組み込みソフト用ソフトウエアでは、sync send()などのライブラリ関数が使われている。そこで、ヘッダファイルと同様に、使用する通信路が宣言された動作記述が、図1の動作記述格納手段2に与えられると、前述したように、バスインターフェイス回路180を含むRTレベル回路がRTレベル記述生成手段13により生成されると共に、バス接続リソース抽出手段4で、各通信路の情報が抽出され、バス接続リソースデータベース5を参照し、組み込みソフト用ライブラリ関数生成手段17で組み込みソフト用ライブラリ関数ファイルが生成される。この生成された組み込みソフト用ライブラリ関数を図23に示している。この組み込みソフト用ライブラリ関数を組み込みソフト用ライブラリ関数ファイル18にファイリングする。
【0102】
以上により、本実施形態によれば、従来は人手設計に頼らざるを得なかったバスインターフェイス回路が、動作記述からRTレベル回路に合成することができ、回路内のリソースの管理が簡単になると共に、人手設計では避けられない誤りがなくなり、設計品質の向上、設計期間の短縮に多大な効果がある。
【0103】
また、システム内にCPUが存在した場合には、ハードウエア開発とソフトウエア開発とが並行して行なわれ、従来、人手で管理していたリソースの情報管理が、ヘッダファイル、ライブラリ関数が自動的に生成されることにより、人手を排除でき、上記と同様に、設計品質の向上、設計期間の短縮に多大な効果がある。
【0104】
【発明の効果】
以上のように、請求項1,4によれば、バス接続リソースデータベースおよびバスプロトコルライブラリを参照することで、従来は人手設計に頼らざるを得なかったバスインターフェイス回路を自動生成できて、動作記述から、このバスインターフェイス回路を含む全体回路のRTレベル回路に合成することができる。よって、回路内のリソースの管理を簡単に行うことができると共に、人手設計では避けられない誤りを防止することができて、設計品質の向上、設計期間の短縮を図ることができる。
【0105】
また、請求項2,5によれば、システム内にCPUが存在した場合には、リソース情報を参照することで、ヘッダファイルを自動的に生成するため、従来、人手で管理していたリソースの情報管理から人手を排除できて、設計品質の向上、設計期間の短縮を図ることができる。
【0106】
さらに、請求項3,6によれば、システム内にCPUが存在した場合には、リソース情報を参照することで、ライブラリ関数を自動的に生成するので、従来、人手で管理していたリソースの情報管理から人手を排除できて、設計品質の向上、設計期間の短縮を図ることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態における高位合成装置の構成を示すブロック図である。
【図2】図1の動作記述格納手段に格納される動作記述の一例を示す図である。
【図3】図1のCDFG生成手段で生成されたコントロールデータフローグラフを示す図である。
【図4】図1のスケジューリング手段で処理されたスケジューリング結果を示す図である。
【図5】図1のアロケーション手段で演算内容が乗算器として割り当てられた結果を示す図である。
【図6】図1のアロケーション手段でデータ依存枝がレジスタに割り当てられた結果を示す図である。
【図7】図1のアロケーション手段で入出力が各入出力ピンに割り当てられた結果を示す図である。
【図8】図1のデータパス生成手段でデータ依存枝がデータパスに割り当てられた結果を示す図である。
【図9】図1のコントローラ生成手段でコントロール回路が生成されたRTレベル回路を示す回路図である。
【図10】図1のバスインターフェイス生成手段の詳細な構成を示すブロック図である。
【図11】レジスタを用いた非同期通信路用インターフェイス回路の回路図である。
【図12】メモリを用いたインターフェイス回路の回路図である。
【図13】同期型通信路におけるインターフェイス回路の回路図である。
【図14】図1の組み込みソフト用ヘッダファイル生成手段の詳細な構成を示すブロック図である。
【図15】図1の高位合成装置の動作を示す処理フローチャートである。
【図16】図9の回路に対して非同期チャネルにレジスタが追加されたRTレベル回路を示す回路図である。
【図17】バスstdbusのタイミング仕様を示す図である。
【図18】図1のRTレベル回路記述生成手段による、インターフェイス回路を含む全体のRTレベル回路記述の生成結果を示す回路図である。
【図19】図18のバスstdbusへのデータ転送のタイミングを示す図である。
【図20】汎用CPUとしてARMを用いた場合の回路動作記述例を示す図である。
【図21】バス転送用通信路のアドレス対応関係を示す図である。
【図22】汎用CPUとしてARMを用いた場合のプログラミング例を示す図である。
【図23】バスAMBAを用いた場合のライブラリ関数を示す図である。
【図24】従来の高位合成装置の動作を示す処理フローチャートである。
【符号の説明】
1 高位合成装置
2 動作記述格納手段
3 動作記述解析手段
4 バス接続リソース抽出手段
5 バス接続リソースデータベース
6 コントロールデータフローグラフ(CDFG)生成手段
7 スケジューリング手段
8 アロケーション手段
9 データパス生成手段
10 コントローラ生成手段
11 バスプロトコルライブラリ
12 バスインターフェイス生成手段
121 バス接続リソースデータベース読み込み部
122 バスプロトコルライブラリ読み込み部
123 バス側接続回路生成部
124 ユーザ回路側接続回路生成部
125 アドレスデコーダ生成部
13 レジスタトランスファ(RT)レベル記述生成手段
14 RTレベル記述格納手段
15 組み込みソフト用ヘッダファイル生成手段
151 バス接続リソースデータベース読み込み部
152 組み込みソフト用ヘッダファイル出力部
16 組み込みソフト用ヘッダファイル
17 組み込みソフト用ライブラリ関数生成手段
18 組み込みソフト用ライブラリ関数ファイル
180 バスインターフェイス回路

Claims (6)

  1. 処理の動作のみを記述した動作記述から、レジスタトランスファレベルの論理回路を合成する高位合成方法において、
    バス接続リソース抽出手段が該動作記述からバス接続リソースの情報を抽出するステップと
    バスインターフェイス生成手段が、バス接続させる通信路およびメモリ、レジスタに関する該バス接続リソースの情報が格納されるバス接続リソースデータベースおよび、事前にバスプロトコルが格納されたバスプロトコルライブラリを参照して、対象とするバスインターフェイス回路を自動生成するステップとを有する高位合成方法。
  2. 組み込みソフト用ヘッダファイル生成手段が前記バス接続リソースデータベースを参照し、対象とするバスに関する組み込みソフト用ヘッダファイルを自動生成する請求項1記載の高位合成方法。
  3. 組み込みソフト用ライブラリ関数生成手段が前記バス接続リソースデータベースを参照し、対象とするバスに関する組み込みソフト用ライブラリ関数を自動生成する請求項1または2記載の高位合成方法。
  4. 処理の動作のみを記述した動作記述から、レジスタトランスファレベルの論理回路を合成する高位合成装置において、
    該動作記述からバス接続リソースの情報を抽出するバス接続リソース抽出手段と、バス接続させる通信路およびメモリ、レジスタに関する該バス接続リソースの情報を格納するバス接続リソースデータベースと、事前にバスプロトコルが格納されたバスプロトコルライブラリと、バス接続リソースデータベースおよひバスプロトコルライブラリを参照して、対象とするバスインターフェイス回路を自動生成するバスインターフェイス生成手段とを有した高位合成装置。
  5. 抽出した前記バス接続リソースの情報およびバス接続リソースデータベースを参照し、対象とするバスに関する組み込みソフト用ヘッダファイルを自動生成する組み込みソフト用ヘッダファイル生成手段を有した請求項4記載の高位合成装置。
  6. 抽出した前記バス接続リソースの情報およびバス接続リソースデータベースを参照し、対象とするバスに関する組み込みソフト用ライブラリ関数を自動生成する組み込みソフト用ライブラリ関数生成手段を有した請求項4または5記載の高位合成装置。
JP2000334017A 2000-10-31 2000-10-31 高位合成方法および高位合成装置 Expired - Fee Related JP3852741B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000334017A JP3852741B2 (ja) 2000-10-31 2000-10-31 高位合成方法および高位合成装置
EP01309068A EP1202194A3 (en) 2000-10-31 2001-10-25 High-level synthesis method, high-level synthesis apparatus, method for producing logic circuit using the high-level synthesis method for logic circuit design, and recording medium
US09/984,897 US6687894B2 (en) 2000-10-31 2001-10-31 High-level synthesis method, high-level synthesis apparatus, method for producing logic circuit using the high-level synthesis method for logic circuit design, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000334017A JP3852741B2 (ja) 2000-10-31 2000-10-31 高位合成方法および高位合成装置

Publications (2)

Publication Number Publication Date
JP2002140379A JP2002140379A (ja) 2002-05-17
JP3852741B2 true JP3852741B2 (ja) 2006-12-06

Family

ID=18810009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000334017A Expired - Fee Related JP3852741B2 (ja) 2000-10-31 2000-10-31 高位合成方法および高位合成装置

Country Status (3)

Country Link
US (1) US6687894B2 (ja)
EP (1) EP1202194A3 (ja)
JP (1) JP3852741B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4082653B2 (ja) * 2001-11-15 2008-04-30 松下電器産業株式会社 高位合成方法および高位合成装置
JP3825328B2 (ja) * 2002-01-23 2006-09-27 Necエレクトロニクス株式会社 プロセッサ合成装置、システムlsi合成装置、プロセッサ合成方法、システムlsi合成方法、及び記録媒体
US6907584B1 (en) * 2003-03-14 2005-06-14 Xilinx, Inc. Method and apparatus for providing an interface to an electronic design of an integrated circuit
US7278122B2 (en) * 2004-06-24 2007-10-02 Ftl Systems, Inc. Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization
US20060100973A1 (en) * 2004-10-21 2006-05-11 Microsoft Corporation Real-time localized resource extraction
US20060195732A1 (en) * 2005-02-11 2006-08-31 Joerg Deutschle Method and system for executing test cases for a device under verification
JP4891807B2 (ja) * 2007-02-28 2012-03-07 パナソニック株式会社 高位合成装置および高位合成方法
JP4945360B2 (ja) * 2007-07-27 2012-06-06 株式会社日立製作所 設計装置、設計方法及びプログラム
JP5229716B2 (ja) * 2007-11-27 2013-07-03 日本電気株式会社 動作合成システム、動作合成方法および動作合成用プログラム
JP2009294744A (ja) * 2008-06-03 2009-12-17 Nec Electronics Corp バスインターフェース設計装置、バスインターフェース設計方法、及びプログラム
JP5223639B2 (ja) * 2008-12-10 2013-06-26 株式会社リコー 回路設計補助方法、プログラム、及び記録媒体
US9122831B2 (en) 2012-05-21 2015-09-01 Mitsubishi Electric Corporation LSI designing apparatus, LSI designing method, and program
JP6254387B2 (ja) * 2013-08-30 2017-12-27 株式会社日立情報通信エンジニアリング 高位合成で作成する新規設計データと既存設計データの接続方法
US9075945B1 (en) 2014-06-27 2015-07-07 Google Inc. Method for implementing efficient entropy decoder by using high level synthesis
JP6761182B2 (ja) * 2017-03-14 2020-09-23 富士通株式会社 情報処理装置、情報処理方法及びプログラム
CN108009339A (zh) * 2017-11-28 2018-05-08 深圳市瑞尔时代科技有限公司 一种监控主机端口设计方法
US10579760B2 (en) * 2018-07-27 2020-03-03 Synopsys, Inc. Force/release support in emulation and formal verification

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598344A (en) * 1990-04-06 1997-01-28 Lsi Logic Corporation Method and system for creating, validating, and scaling structural description of electronic device
GB2317245A (en) * 1996-09-12 1998-03-18 Sharp Kk Re-timing compiler integrated circuit design
US6169968B1 (en) * 1997-07-09 2001-01-02 Matsushita Electric Industrial Co., Ltd. Apparatus and method for estimating performance integrated circuit
US6199031B1 (en) * 1998-08-31 2001-03-06 Vlsi Technology, Inc. HDL simulation interface for testing and verifying an ASIC model
BR9914200A (pt) * 1998-09-30 2002-01-22 Cadence Design Systems Inc Métodos para projetar um sistema de circuito, para expandir uma metodologia existente para avaliar a viabilidade de um projeto de circuito, para realizar uma avaliação de viabilidade para um projeto de circuito, para refinar uma primeira regra de decisão para um projeto de circuito, para formar uma segunda regra de decisão para um projeto de circuito, para organizar os dados de experiência de um projetista relativos a uma pluralidade de blocos de circuito pré-projetados, para aumentar a eficiência de distribuição de lógica de cola e para distribuir uma pluralidade de elementos lógicos de cola entre os blocos de projeto e distribuir lógica de cola para execução em um esquema de projeto de dispositivo de circuito integrado, para converter uma interface especìfica de um bloco de circuito, para selecionar um coletor de circuito, para projetar um dispositivo que incorpora o projeto e habilitar um teste do dispositivo, para verificar o correto funcionamento de um projeto de circuito e para desenvolver uma bancada de teste de nìvel comportamental, interface de colar e sistema de interface
JP2001067384A (ja) * 1999-08-26 2001-03-16 Matsushita Electric Ind Co Ltd 集積回路装置の設計用データベース及び集積回路装置の設計方法
US6460174B1 (en) * 1999-10-01 2002-10-01 Stmicroelectronics, Ltd. Methods and models for use in designing an integrated circuit
US7124376B2 (en) * 2000-05-02 2006-10-17 Palmchip Corporation Design tool for systems-on-a-chip

Also Published As

Publication number Publication date
EP1202194A2 (en) 2002-05-02
US6687894B2 (en) 2004-02-03
US20020053069A1 (en) 2002-05-02
EP1202194A3 (en) 2003-05-02
JP2002140379A (ja) 2002-05-17

Similar Documents

Publication Publication Date Title
JP3852741B2 (ja) 高位合成方法および高位合成装置
JP3835754B2 (ja) 集積回路の設計方法及びそれによって設計された集積回路
US7146300B2 (en) Method of co-simulating a digital circuit
US10586003B1 (en) Circuit design using high level synthesis and linked hardware description language libraries
US5541850A (en) Method and apparatus for forming an integrated circuit including a memory structure
JP2006285333A (ja) 動作合成装置及び方法
US7496869B1 (en) Method and apparatus for implementing a program language description of a circuit design for an integrated circuit
US20050034090A1 (en) Circuit designing method and a circuit designing system
US20070271080A1 (en) Model generation method for software/hardware collaboration design
Shin et al. Interface synthesis from protocol specification
US6952817B1 (en) Generating hardware interfaces for designs specified in a high level language
Gladigau et al. A system-level synthesis approach from formal application models to generic bus-based MPSoCs
Huggi et al. Design and verification of memory elements using python
Oberg et al. Grammar-based hardware synthesis from port-size independent specifications
Shetty et al. Enabling the design of behavioral systems-on-chip
Mooney et al. Synthesis from mixed specifications
JP2008204341A (ja) インタフェース合成装置
JP2003114914A (ja) ソフトウェア/ハードウェア協調設計方法
JP2007018313A (ja) 回路設計プログラム、回路設計装置、回路設計方法
Holeček et al. Verification results in Liberouter project
Coelho et al. Redesigning hardware-software systems
JP5729983B2 (ja) 情報処理装置、情報処理方法およびプログラム
JPH11102381A (ja) アーキテクチャ動作合成装置、アーキテクチャ動作合成方法、プロセッサの設計方法およびプロセッサのアーキテクチャ動作記述方法
Tranchero et al. An automatic approach to generate haste code from simulink specifications
Danowitz Exploring abstract interfaces in system-on-chip integration

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060410

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: 20060831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060831

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: 20090915

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100915

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110915

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120915

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130915

Year of fee payment: 7

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

LAPS Cancellation because of no payment of annual fees