JP2010262412A - 論理回路設計装置 - Google Patents

論理回路設計装置 Download PDF

Info

Publication number
JP2010262412A
JP2010262412A JP2009111580A JP2009111580A JP2010262412A JP 2010262412 A JP2010262412 A JP 2010262412A JP 2009111580 A JP2009111580 A JP 2009111580A JP 2009111580 A JP2009111580 A JP 2009111580A JP 2010262412 A JP2010262412 A JP 2010262412A
Authority
JP
Japan
Prior art keywords
logic circuit
register
hardware
source code
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009111580A
Other languages
English (en)
Other versions
JP5577619B2 (ja
Inventor
Shunichi Tonai
俊一 藤内
Shiro Uryu
士郎 瓜生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009111580A priority Critical patent/JP5577619B2/ja
Publication of JP2010262412A publication Critical patent/JP2010262412A/ja
Application granted granted Critical
Publication of JP5577619B2 publication Critical patent/JP5577619B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ステム全体の設計に必要な工数を削減することを課題とする。
【解決手段】本願が開示する論理回路設計装置は、入力された論理回路ブロックのレジスタ情報を解析して論理回路の構成情報を取得する。そして、論理回路設計装置は、取得された論理回路の構成情報に基づいて、論路回路のレジスタ部と、論理回路のコア機能部の雛形とを生成する。また、論理回路設計装置は、レジスタ部とコア機能部とを包含するトップモジュールの雛形とのそれぞれについて、ハードウェアソースコードを生成する。さらに、論理回路設計装置は、取得された論理回路の構成情報に基づいて、論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成する。
【選択図】図1

Description

本発明は、論理回路設計装置に関する。
従来より、システム設計者は、システムレベル設計装置で作成される論理合成可能なRTL(Register Transfer Level)と、論理合成ができないがRTLと同等の機能を発揮するクロックベースモデルとを使用してシステムレベルの設計を行っている。
具体的には、システムレベル設計装置は、コ・デザイン装置を用いて、システムのハードウェア部分とソフトウェア部分とを分割するとともに、アーキテクチャ情報、マッピング情報、アドレス情報などを含むデータベースを自動生成する。そして、システムレベル設計装置は、トップレベル記述生成装置を用いて、上記データベースの情報からクロックベースシミュレーション用の記述を自動生成する。
また、上記したシステムレベル設計装置では、ハードウェアの動作合成を行い、RTLとクロックベースのモデルを作成する装置であるハードウェア生成装置や、CPU(Central Processing Unit)モデルを作成する装置であるソフトウェア装置も用いられる。
上記したシステムレベル設計装置以外には、例えば、CPUを搭載するLSI製造時のテスト用の入力ベクタを作成する自動生成装置なども開示されている。具体的には、自動生成装置は、ソフトウェアからハードウェア回路にアクセスするメモリマップドレジスタ情報を抽出し、C言語で利用可能なマクロ定義に自動変換する。その後、自動生成装置は、全てのメモリマップドレジスタに順次アクセスするルールに従って、プログラムソースコードを自動生成する。
特開2004−54755号公報 特開2004−257822号公報
しかしながら、従来の技術では、ハードウェアとソフトウェアを含むシステム全体を設計する場合には、手作業の工数が多くなってしまい、結果として、システム全体の設計に多くの工数が必要であるという課題があった。
具体的には、従来の技術では、クロックベースシミュレーション用の記述やアーキテクチャ情報、マッピング情報、アドレス情報などを含むデータベースを自動生成することができる。ところが、システム全体を設計するには、回路構成(ハードウェア部分)やデバイスドライバ(ソフトウェア部分)をさらに設計する必要があり、これらを手作業で設計する必要がある。特に大規模システムの場合には、多くの手作業工数が必要となる。
また、従来の技術では、全てのメモリマップドレジスタに順次アクセスするルールに従って、プログラムソースコードを自動生成することができるが、実際のデバイスドライバやアプリケーションで全てのメモリマップドレジスタに順次アクセスすることがほとんどない。したがって、このような手法をソフトウェアの開発に流用することができず、ソフトウェア開発を手作業で行う必要があるので、システム全体としては多くの工数が必要となる。
開示の技術は、上記に鑑みてなされたものであって、システム全体の設計に必要な工数を削減することが可能である論理回路設計装置を提供することを目的とする。
本願の開示する論理回路設計装置は、一つの態様において、入力された論理回路ブロックのレジスタ情報を解析して論理回路の構成情報を取得するレジスタ解析手段と、前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路のレジスタ部と、前記論理回路のコア機能部の雛形と、前記レジスタ部とコア機能部とを包含するトップモジュールの雛形とのそれぞれについて、ハードウェアソースコードを生成するハードウェア記述生成手段と、前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成するソフトウェア記述生成手段と、を有する。
本願の開示する論理回路設計装置の一つの態様によれば、システム全体の設計に必要な工数を削減することが可能であるという効果を奏する。
図1は、実施例1に係る論理回路設計装置の構成を示すブロック図である。 図2は、メモリマップ設定画面例を示す図である。 図3は、システムメモリマップDBに記憶される情報の例を示す図である。 図4は、バスマスターのアクセス優先度を設定する画面例を示す図である。 図5は、システムメモリマップに記憶されるアクセス優先度の例を示す図である。 図6は、バス種別DBに記憶される情報の例を示す図である。 図7は、レジスタ一覧の入力を受け付けるGUIの例を示す図である。 図8は、ユーザにより入力されたレジスタ一覧の例を示す図である。 図9は、レジスタ種別の例を示す図である。 図10は、論理回路レジスタマップ一覧DBに記憶される情報の例を示す図である。 図11は、レジスタ詳細の入力を受け付けるGUIの例を示す図である。 図12は、論理回路レジスタマップ詳細DBに記憶される情報の例を示す図である。 図13は、論理回路割り込み情報DBに記憶される情報の例を示す図である。 図14は、バスモデルのRTL記述のハードウェアソースコードを生成する処理の流れを示すフローチャートである。 図15は、バスモデルの雛形ファイルの例を示す図である。 図16は、バスモデルの雛形ファイルの別例(Loop処理)を示す図である。 図17は、最終的に作成されるバスモデルのRTL記述のハードウェアソースコードの例を示す図である。 図18は、簡易割り込みコントローラのレジスタマップを示す図である。 図19−1は、論理回路レジスタマップ詳細DBに記憶される情報の例を示す図である。 図19−2は、論理回路割り込みDBに記憶される情報の例を示す図である。 図20は、割込み処理関数生成に必要な部分を抜粋した定義ファイルを示す図である。 図21は、割込み処理関数を多段構成で生成する場合の例を示す図である。 図22は、割り込み処理のエントリ関数の生成例を示した図である。 図23は、論理回路ブロック単位の割り込み処理関数の例を示す図である。 図24は、生成される割り込み処理関数の実態を示した図である。 図25は、ソフトウェア記述生成部22による初期化関数生成処理の流れを示すフローチャートである。 図26は、初期化関数の生成イメージを例示した図である。 図27は、初期化関数生成に必要な部分を抜粋した定義ファイルを示す図である。 図28は、生成される初期化関数の例を示した図である。 図29は、擬似CPU及び割り込みコントローラ関係のファイル群を示す図である。 図30は、バスモデル及びユーザロジック関係のファイル群を示す図である。 図31は、論理回路ブロック関係のファイル群を示す図である。 図32は、テストベンチ関係のファイル群を示す図である。 図33は、論理検証トップ及びデバイスドライバ関係のファイル群を示す図である。 図34は、論理検証用テストプログラム及び論理検証関係ファイル群を示す図である。 図35は、実施例1に係る論理回路設計装置による全体的な処理の流れを示すフローチャートである。 図36は、最終的に生成されるシステムの構成を示す図である。 図37は、精度検証用検証環境の構成例を示す図である。 図38は、機能検証用検証環境の構成例を示す図である。 図39は、単体用検証環境の構成例を示す図である。
以下に、本願の開示する論理回路設計装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本願が開示する論理回路設計装置は、入力された論理回路ブロックのレジスタ情報(レジスタマップ)を解析して論理回路の構成情報を取得する。そして、論理回路設計装置は、取得された論理回路の構成情報に基づいて、論路回路のレジスタ部と、論理回路のコア機能部の雛形とのそれぞれについて、ハードウェアソースコードを生成する。また、論理回路設計装置は、レジスタ部とコア機能部とを包含するトップモジュールの雛形についても、ハードウェアソースコードを生成する。さらに、論理回路設計装置は、取得された論理回路の構成情報に基づいて、論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成する。
つまり、本願が開示する論理回路設計装置は、論理回路ブロックのレジスタ情報を受け付けると、論理回路のコア機能部などハードウェア設計用及び論理回路ブロック用のデバイスドライバ開発に流用可能なソフトウェア設計用のソースコードを作成することができる。したがって、設計者は、設計対象の論理回路ブロックのレジスタ情報を本願が開示する論理回路設計装置に入力することで、ハードウェア設計用及びソフトウェア設計用のソースコードを取得することができ、取得した各ソースコードを用いて論理回路設計を行うことができる。
なお、論理回路ブロックとは、ある特定の機能を実現するための、論理回路(組み合わせ回路と順序回路)の集合体であり、例えば、DMAコントローラ、タイマ、UART、各種エンコーダ/デコーダなどのように、プロセッサのバスに接続されるものである。また、論理回路ブロックのレジスタ部とは、論理回路ブロックの機能を適切に実現するための設定値を保持する順序回路や、論理回路ブロックの内部情報を保持する順序回路の値を、バス経由でプロセッサがアクセス可能な構成を保持するものである。例えば、論理回路ブロックのレジスタ部とは、デバイスのデータシートに「レジスタマップ」等として記載され、デバイスドライバ等のソフトウェアからアクセス可能な部分のことである。
また、論理回路ブロックのコア機能部とは、その「論理回路ブロック」が持つ、ある特定の機能を果たす本質的な回路を実装している部分のことである。例えば、「レジスタ部」に設定された値によって、その振る舞いや出力結果が変わり、出力結果の一部やコア機能部の内部状態の一部は、「レジスタ部」に保持されてソフトウェアからアクセス可能なものもある。また、論理回路ブロックのトップモジュールとは、「論理回路ブロック」の最上位階層となる部分である。例えば、「レジスタ部」、「コア機能部」、「バスインターフェイス部」のそれぞれの接続を行い(場合によっては内部RAMとの接続も含む)、「論理回路ブロック」としての外部インターフェイスを提供するモジュールである。
このように、本願が開示する論理回路設計装置は、ハードウェアとソフトウェアを含むシステム全体を設計する場合でも、論理回路ブロックのレジスタ情報からハードウェアとソフトウェア両方とのソースコードを作成することができる。その結果、従来に比べて、設計者による手作業の工数を削減することができるので、システム全体の設計に必要な工数を削減することが可能である。
次に、図1を用いて、実施例1に係る論理回路設計装置の構成について説明する。図1は、実施例1に係る論理回路設計装置の構成を示すブロック図である。
図1に示すように、論理回路設計装置1は、データベースとして、システムメモリマップDB10とバス種別DB11と論理回路レジスタマップ一覧DB12と論理回路レジスタマップ詳細DB13と論理回路割り込み情報DB14と検証種別DB15とを有する。また、論理回路設計装置1は、各種制御を実施する制御部として、ハードウェア記述生成部(システム関連)20と、ハードウェア記述生成部(論理回路関連)21と、ソフトウェア記述生成部22と、検証環境生成部25とを有する。
[各データベースの説明]
システムメモリマップDB10は、バススレーブ(論理回路ブロック)のブロックごとに空間が分割されたシステムのメモリマップをユーザ(設計者)から受け付けて記憶する。具体的には、システムメモリマップDB10は、システム上の当該バススレーブにアクセス可能とするために、バススレーブ毎に開始アドレスと終了アドレスを記憶する。また、システムメモリマップDB10は、CPUの他にDMA(ダイレクト・メモリ・アクセス)コントローラなどバスマスターとなりうる論理回路ブロックが存在する場合は、当該バスマスターがどのバススレーブにアクセス可能かという情報を記憶する。
例えば、論理回路設計装置1は、ユーザから論理回路設計要求を受信した場合、図2に示すようなGUI上でメモリマップの基本情報が設定できる画面をディスプレイなどの表示部に出力する。そして、論理回路設計装置1は、図2に示したGUI上で、バススレーブ(Slave)やバスマスター(Master)などの情報をユーザから受け付ける。その結果、システムメモリマップDB10は、図3に示したように、「Slave_name、start_addr、end_addr」として「Slave_0、0000_0000、0001_fffe」や「Slave_1、0002_0000、0003_fffe」などを記憶する。
ここで記憶される「Slave_name」は、バススレーブを特定する情報であり、「start_addr」は、バススレーブの開始アドレスであり、「end_addr」は、バススレーブの終了アドレスであり、いずれの情報も図2のGUIによってユーザから指定された情報である。なお、図2は、メモリマップ設定画面例を示す図であり、図3は、システムメモリマップDBに記憶される情報の例を示す図である。
また、システムメモリマップDB10は、図2などで指定されたバスマスターの優先度も記憶する。具体的には、論理回路設計装置1は、図2よってメモリマップの基本情報がシステムメモリマップDB10に登録された場合、図4に示すようなバスマスターのアクセス優先度をユーザに設定させる画面を表示し、アクセス優先度の設定をユーザから受け付ける。その結果、システムメモリマップDB10は、図5に示したように、「Slave_name、master_name、priority」として「Slave_0、Master_0、1」や「Slave_0、Master_1、0」、「Slave_0、Master_2、2」などを記憶する。
ここで記憶される「Slave_name」は、バススレーブを特定する情報であり、「master_name」は、バスマスターを特定する情報であり、「priority」は、優先度を示す情報であり、いずれの情報も図4のGUIによってユーザから指定された情報である。なお、図4の「priority」では、「0」が最も優先度が高く、「2」が最も優先度が低い。また、図4は、バスマスターのアクセス優先度を設定する画面例を示す図であり、図5は、システムメモリマップに記憶されるアクセス優先度の例を示す図である。
バス種別DB11は、本願ではバスモデルや論理回路ブロックのバスインタフェースを生成するが、その際に使用されるバス種別を記憶する。具体的には、論理回路設計装置1は、図2や図4と同様の手法で、バス種別をGUIでユーザに入力させることが可能であり、例えば、論理回路設計装置1が提供可能なバス種別が提示される単純なドロップダウンリストでユーザに選択させることができる。その結果、バス種別DB11は、図6に示すように、バス種別を特定する「bus_name」として「AMBA AHB」や「AMBA APB」などを記憶する。なお、図6は、バス種別DBに記憶される情報の例を示す図である。
論理回路レジスタマップ一覧DB12は、論理回路ブロックで使用するレジスタ一覧情報を記憶する。具体的には、論理回路設計装置1は、例えば図7に示すようなGUIを表示部に出力する。そして、論理回路設計装置1は、図7に示したGUI上で、「アドレス、名称、Read/Write、機能、初期値、マッピング先(種別)」などを受け付けることで、図8に示すような情報を作成することができる。その結果、論理回路レジスタマップ一覧DB12は、図9に示すように、「Slave_name、address、reg_name、attribute、function、reset_value、init_value」として「Slave_0、0x0010_0000、TEST、rw0、アクセステスト、0000_0000、−」などと記憶する。
ここで記憶される「Slave_name」は、バススレーブを特定する情報であり、「address」は、レジスタの開始アドレスを示しており、「reg_name」は、ユーザにより指定されたレジスタの名称である。また、「attribute」は、ユーザによって指定されるレジスタ種別であり、例えば、図10に示したレジスタ種別の中から指定されたものを記憶する。また、「function」は、レジスタの機能を示しており、「reset_value」は、ハードウェアによる初期化値を示しており、「init_value」は、デバイスドライバで設定される初期値を示している。上述したいずれの情報も、図7のようなGUIを用いて、ユーザにより入力された情報である。
なお、図7は、レジスタ一覧の入力を受け付けるGUIの例を示す図であり、図8は、ユーザにより入力されたレジスタ一覧の例を示す図である。また、図9は、レジスタ種別の例を示す図であり、図10は、論理回路レジスタマップ一覧DBに記憶される情報の例を示す図である。
論理回路レジスタマップ詳細DB13は、論理回路ブロックで使用するレジスタの詳細情報を記憶する。具体的には、論理回路レジスタマップ詳細DB13は、レジスタの情報をbit単位で記憶するものであり、例えば、bit位置、幅、名称、属性などを記憶する。例えば、論理回路設計装置1は、図8に示したレジスタ一覧GUI上でレジスタがクリックされると、図11に示すようなGUIを表示部に出力する。そして、論理回路設計装置1は、図11に示すGUI上で、「bit位置、幅、名称、初期値、Read/Write、機能、操作」などを受け付ける。その結果、論理回路レジスタマップ詳細DB13は、図12に示すように、「Slave_name、address、lsb、width、name、attribute、function、interrupt、reset_value、init_value」として「Slave_0、0x0010_0010、0、1、BUFFEMPTY、rw0、バッファempty、0、0、−」などと記憶する。
ここで記憶される「Slave_name」は、バススレーブを特定する情報であり、「address」は、レジスタの開始アドレスを示しており、「lsb」は、最下位のビットを示しており、「width」は、ビット幅を示している。また、「name」は、レジスタの名称であり、「attribute」は、ユーザによって指定されるレジスタ種別であり、「function」は、レジスタの機能を示している。また、「interrupt」は、割込みの有無(例えば、0なら無し)を示しており、「reset_value」は、ハードウェアによる初期化値を示しており、「init_value」は、デバイスドライバで設定される初期値を示している。上述したいずれの情報も、図11のようなGUIを用いて、ユーザにより入力された情報である。
なお、図11は、「アドレス」が「7E10_0044」、「名称」が「MODEB0」、「初期値」が「0000_0000」であるリードライト可能な動作モード設定用レジスタの詳細設定例を示している。また、図11は、レジスタ詳細の入力を受け付けるGUIの例を示す図であり、図12は、論理回路レジスタマップ詳細DBに記憶される情報の例を示す図である。
論理回路割り込み情報DB14は、論理回路ブロックで使用する割込み情報を記憶する。具体的には、論理回路設計装置1は、図12に示したレジスタ詳細情報から「interrupt」に0以外の数値が設定されている情報を抽出し、その「address」に対応する「reg_name」を図9から抽出して、論理回路割り込み情報DB14に出力する。その結果、論理回路割り込み情報DB14は、図13に示したように、「slave_name、address、regname、type」として「Slave_0、0x0010_0010、ISR、0」などを記憶する。なお、「type=0」は、割り込み要因(割り込みステータス)を示しており、「type=1」は、割り込みイネーブル(割り込みマスク)を示しており、「type=2」は、割り込みクリアを示している。また、図13は、論理回路割り込み情報DBに記憶される情報の例を示す図である。
検証種別DB15は、ハードウェアソースコードやソフトウェアソースコードの記述形式を記憶する。具体的には、検証種別DB15は、検証目的に応じて機能検証用に高速動作可能なTL記述、性能検証用にサイクルベースで動作可能でかつ論理合成可能なRTL記述などの種別を記憶する。なお、RTL記述とは、レジスタ転送水準(Register Transfer Level)で記述したソースファイルのことであり、TL記述とは、モジュール間の通信を捉えて機能を記述するトランザクションレベルで記述されたソースファイルである。
[ハードウェア記述生成部(システム関連)20]
ハードウェア記述生成部(システム関連)20は、システム関連のバスモデルのハードウェアソースコード20a、論理回路バスI/F部のハードウェアソースコード20b、簡易割込みコントローラのハードウェアソースコード20cをRTL記述やTL記述で作成する。なお、バスモデルとは、LSI(Large Scale Integration)内部で使用されるオンチップバスのことである。また、バスI/F部(バスインタフェース部)とは、論理回路のバスモデルとレジスタ部との間を論理的に接続するものであり、例えば、バスモデルで指定されたプロトコルを吸収し、レジスタ部に対して統一したインタフェース(プロトコル)を提供する。
ここで、図14を用いて、ハードウェア記述生成部(システム関連)20が雛形ファイル(図16参照)を用いて、バスモデルのハードウェアソースコード20a(図17参照)を作成する処理の流れについて説明する。図14は、バスモデルのRTL記述のハードウェアソースコードを生成する処理の流れを示すフローチャートである。
図14に示すように、ハードウェア記述生成部(システム関連)20は、ユーザが指定したバス種別をバス種別DB11から読み込んだ後(ステップS101)、ユーザにより格納されたメモリマップをシステムメモリマップDB10から読み込む(ステップS102)。さらに、ハードウェア記述生成部(システム関連)20は、読み込んだバス種別に対応するRTL記述用の雛形ファイルをメモリなどの記憶部から読み出す(ステップS103)。
そして、ハードウェア記述生成部(システム関連)20は、読み込んだ雛形ファイルの最終行(EOF)に到達するまで、ステップS105〜ステップS108の処理を実行する(ステップS104)。
具体的には、ハードウェア記述生成部(システム関連)20は、読み込んだ雛形ファイルからキーワードを検出すると(ステップS105肯定)、検出したキーワードに対応する情報をシステムメモリマップDB10から抽出する(ステップS106)。そして、ハードウェア記述生成部(システム関連)20は、例えば、システムメモリマップDB10に記憶されるバススレーブの数から1を減じるなどloop処理を実施する(ステップS107)。その後、ハードウェア記述生成部(システム関連)20は、抽出した情報を1行出力していくことでバスモデルのハードウェアソースコード20aを作成する(ステップS108)。
次に、上述したバスモデルのハードウェアソースコード20aのRTL記述作成処理を例にして具体的に説明する。ハードウェア記述生成部(システム関連)20は、バス種別に応じたバスモデルの雛形ファイルをメモリなどに記憶させておく。そして、ハードウェア記述生成部(システム関連)20は、ソースコード作成を開始すると、バス種別DB11に記憶されるバス種別を取得し、取得したバス種別に対応する雛形ファイル(図15参照)をメモリなどから読み込む。その後、ハードウェア記述生成部(システム関連)20は、システムメモリマップDB10に記憶されるバススレーブ(図3や図5)の数から1を減じた値によって、図15の「__SlaveNum__の部分」を書き換える。上述した手法を実施することで、ハードウェア記述生成部(システム関連)20は、バスモデルのハードウェアソースコード20aを作成することができる。
上述した雛形ファイルは、図15に示したファイルだけでなく、例えば、図16のようなファイルを用いることもできる。ハードウェア記述生成部(システム関連)20は、図16に示した「__Start__SlaveNum__」と「__End_SlaveNum__」をペアで使用し、この2つのキーワードで囲まれた部分の記述を「__SlaveNum__」の数だけ繰り返す。いわゆる「for-loop文」相当となる。「__SlaveId__」は、上記繰り返し処理中で使用されるいわゆるloop変数に相当する。ハードウェア記述生成部(システム関連)20は、システムメモリマップDB10に記憶されるバススレーブ(図3や図5)から1を減じた値分繰り返し、キーワード(__SlaveId__など)に対応する情報をシステムメモリマップDB10から抽出する。その結果、ハードウェア記述生成部(システム関連)20は、図17に示すようなRTL記述(バスモデルのハードウェアソースコード20a)を作成することができる。また、例えば、ハードウェア記述生成部(システム関連)20は、ファイル名やディレクトリ名をinput_stage.vやoutput_stage.vなどとするハードウェアソースコード20aを作成する。
上述したようにハードウェア記述生成部(システム関連)20は、図14〜図17を用いて説明した手法で、バスモデルのRTL記述ハードウェアソースコード20aを作成することができる。また、TL記述の雛形ファイルを用意しておき、図14と同様の処理を実行することで、バスモデルのTL記述ハードウェアソースコード20aを作成することができる。さらに、上記ではバスモデルを例として示したが、簡易割り込みコントローラ20c、論理回路ブロックのバスインタフェース部20bついても同様に作成することができる。具体的には、他の部分のRTL記述やTL記述を生成する際にも、それぞれのファイル生成に必要な規則をあらかじめ定めた雛型ファイルを用意しておくことで、生成することができる。
また、ハードウェア記述生成部(システム関連)20は、簡易割り込みコントローラ20cを生成することもできる。簡易割込みコントローラとは、論理回路ブロックからの割込み通知を受けると当該論理回路ブロック用に生成した割込み処理関数を呼び出し、以降の処理をソフトウェアに渡す処理を行う。一般に、割り込みコントローラは、プロセッサに付属する論理回路ブロックとして提供されるか、あるいはユーザがシステムに合わせて作りこむことが多い。
本願では、ソフトウェア/ハードウェア協調検証を早期に実現させるため、簡易割り込みコントローラ20cを自動作成可能としている。ハードウェア記述生成部(システム関連)20は、各論理回路ブロックにおけるレジスタマップで割り込みが設定されると、その情報をもとに割り込みの端子名を推定し、簡易割り込みコントローラ20cのトップモジュールを生成する。具体的には、ハードウェア記述生成部(システム関連)20は、メモリマップ上で複数の論理回路ブロック(Slave_0、Slave_1、Slave_2)が定義された場合、図12および図13で示された各論理回路ブロックの割込み情報を抽出する。そして、ハードウェア記述生成部(システム関連)20は、抽出した情報を簡易割り込みコントローラ20cのレジスタマップとして図18のようなデータ構造を生成し、データベースに格納する。ここで、簡易割り込みコントローラ20cが自身に対して割り込みを通知することはないため、「interrupt」の欄は空白で構わない。図18は、簡易割り込みコントローラのレジスタマップを示す図である。
[ハードウェア記述生成部(論理回路関連)21]
図1に戻り、ハードウェア記述生成部(論理回路関連)21は、論理回路関連のハードウェアソースコードの自動生成を実行する。具体的には、ハードウェア記述生成部(論理回路関連)21は、論理回路レジスタ部のハードウェアソースコード21a、論理回路コア機能ブロックのハードウェアソースコード雛形21bをRTL記述やTL記述で作成する。また、ハードウェア記述生成部(論理回路関連)21は、論理回路トップモジュールのハードウェアソースコード雛形21cをRTL記述やTL記述で作成する。
なお、具体的な処理手順は、上述したハードウェア記述生成部(システム関連)20と同じフローで作成することができるので、詳細な説明は省略する。簡単に説明すると、ハードウェア記述生成部(論理回路関連)21は、論理回路レジスタマップ一覧DB12(図9)、論理回路レジスタマップ詳細DB13(図12)、論理回路割り込み情報DB14(図13)に記憶される情報を読み込む。また、ハードウェア記述生成部(論理回路関連)21は、作成対象となるハードウェアソースコード21a〜21cそれぞれの雛形ファイルをメモリなどから読み込み、雛形ファイルと各DBの情報を用いて、図17と同様のフローを実施する。その結果、ハードウェア記述生成部(論理回路関連)21は、ハードウェアソースコード21a〜21cをRTL記述やTL記述で作成することができる。
[ソフトウェア記述生成部22]
ソフトウェア記述生成部22は、論理回路の割り込み処理関数の雛形22aや初期化関数の雛形22bの自動生成を論理回路ブロックごとに実行する。本来、割込み処理関数(一般に、割り込みハンドラなどと呼ばれる)は、OS(オペレーティング・システム)やCPU(中央処理装置)に強く依存するため、汎用的なものを作ることは困難である。また、割込み処理とは現在実行中の処理を止めて「割り込」んでまで処理しなければならない性質のものなので、割込み処理関数は処理速度優先な実装になることが多い。
そこで、ソフトウェア記述生成部22が生成する割り込み処理関数の雛形22aや初期化関数の雛形22bは、ソフトウェア/ハードウェア協調検証や論理回路ブロックの論理検証用に使用するのを主な目的としている。すなわち、処理速度よりも検証の容易性や保守性に重きを置いているため、関数を多段構成としている。生成された割込み処理関数をデバイドドライバ(割り込みハンドラ)開発に流用するためには、処理速度を改善させるために多段構成になっている部分を一つの関数内に集約させるなどの変更を行えばよい。
(割り込み処理関数の雛形22aの生成)
具体的には、ソフトウェア記述生成部22は、図9と図13に示した情報をもとに、図21に示す各種定義情報をC言語で生成する。例えば、割込み関連の情報が図19−1及び図19−2に示す値で与えられた場合で説明する。この場合、ソフトウェア記述生成部22は、システムメモリマップDB10と論理回路レジスタマップ一覧DB12と論理回路レジスタマップ詳細DB13と論理回路割込み情報DB14のそれぞれから情報を取得する。そして、ソフトウェア記述生成部22は、各DBから取得した情報をもとに、ソフトウェアソースコードで使用する各種定義情報を記述したソースコード(図20参照)を生成する。なお、図19−1は、論理回路レジスタマップ詳細DBに記憶される情報の例を示す図であり、図19−2は、論理回路割り込みDBに記憶される情報の例を示す図である。また、図20は、割込み処理関数生成に必要な部分を抜粋した定義ファイルを示す図である。
また、割込み処理関数を多段構成で生成する場合の例を図21に示す。この場合、まず簡易割り込みコントローラから割込み処理のエントリ関数である「irq_hdlr()」を呼び出す。「irq_hdlr()」は、図22に示すように簡易割り込みコントローラのレジスタを読み出し、図18に従ってどの論理回路ブロックから割り込みが発生しているのかを判定する。そして、当該論理回路ブロックの割込み処理関数を呼び出す。図22のエントリ関数「irq_hdlr()」から呼び出される各論理回路ブロックの割込み処理関数のイメージを図23に示す。この関数は、当該論理回路ブロック内でどの割込み要因が発生しているのかを判定し、該当する割込み要因に応じた割込み処理関数を呼び出す。
次に、図23の各論理回路ブロックの割込み処理関数から呼び出される割込み処理関数の実態のイメージを図24に示す。この関数は、当該割込み要因に応じた処理を行う関数となる。
以上のように、ソフトウェア記述生成部22は、図21に示した構造の関数群をメモリマップやレジスタマップや割込み情報から生成することができる。なお、図24の割込み処理関数の実態において関数本文は、その割り込みの動作仕様に沿って実装される必要があるが、この動作仕様は当該論理回路ブロックの設計者にしかわからない。このため、ファイル生成後に割込み処理内容本体を追加で実装することができる。なお、図20の定義名や図21〜図24における太字部分については、メモリマップやレジスタマップなどから抽出されたものである。したがって、ソフトウェア記述生成部22は、太字以外の部分を雛型ファイルとしてあらかじめ準備して必要なキーワードを設定しておき、抽出したデータをもとに図20から図21〜図24に示したファイルを生成していく。
なお、図21は、割込み処理関数を多段構成で生成する場合の例を示す図であり、図22は、割り込み処理のエントリ関数の生成例を示した図である。また、図23は、論理回路ブロック単位の割り込み処理関数の例を示す図であり、図24は、生成される割り込み処理関数の実態を示した図である。
(初期化関数の雛形22bの生成)
次に、初期化関数の雛形22bの生成について説明する。ここでは、まず、図25を用いて、ソフトウェア記述生成部22による初期化関数生成処理の流れについて説明する。図25は、ソフトウェア記述生成部22による初期化関数生成処理の流れを示すフローチャートである。
図25に示すように、ソフトウェア記述生成部22は、論理回路レジスタマップ一覧DB12に記憶される情報を1行読み込み(ステップS201)、読み込んだ行が最終行(EOF)か否かを判定する(ステップS202)。そして、ソフトウェア記述生成部22は、読み込んだ1行の「init_value」に値が設定されている(初期化設定情報が有効である)場合(ステップS203肯定)、上述した初期化処理を生成してファイルに出力する(ステップS204とステップS205)。なお、ソフトウェア記述生成部22は、初期化設定情報が有効でない場合(ステップS203否定)、次の行を読み込んでステップS202以降の処理を実行する。また、ソフトウェア記述生成部22は、読み込んだ行が最終行である場合(ステップS202肯定)、処理を終了する。
次に、図25に示した処理の流れを具体的に説明する。ソフトウェア記述生成部22は、システムメモリマップDB10と論理回路レジスタマップ一覧DB12と論理回路レジスタマップ詳細DB13のそれぞれから情報を取得する。そして、ソフトウェア記述生成部22は、各DBから取得した情報をもとに、初期化関数の雛形22bを生成する。例えば、図26のアドレス「0x0011_0014」のレジスタIERのように、「init_value」欄に何らかの値が設定されているものが処理対象となり、「init_value」欄に設定されている値が初期化関数内で当該論理回路ブロックのレジスタに設定される値となる。
そして、ソフトウェア記述生成部22は、図20と同様に、初期化関数生成に必要なファイル(図27)を生成する。そして、ソフトウェア記述生成部22は、図27の情報を元に、図28のようなソースコードを生成する。割込み処理関数の生成と同じように、図28における太字部分は、メモリマップやレジスタマップなどから抽出されたものである。したがって、ソフトウェア記述生成部22は、太字以外の部分を雛型ファイルとしてあらかじめ準備して必要なキーワードを設定しておき、抽出したデータをもとに図28に示したファイルを生成していく。また、例えば、ソフトウェア記述生成部22は、ファイル名やディレクトリ名をinit_*.hやinit_*.c(*には論理回路ブロックなどの名称が入る)などとする初期化関数の雛形22bを作成する。
なお、図26は、初期化関数の生成イメージを例示した図であり、図27は、初期化関数生成に必要な部分を抜粋した定義ファイルを示す図であり、図28は、生成される初期化関数の例を示した図である。
[検証環境生成部25]
次に、検証環境生成部25について説明する。検証環境生成部25は、生成部20〜22によって生成されたソースコードの情報を解析して、検証環境(機能検証、性能検証)を構築する。また、検証環境生成部25は、検証目的に応じて機能検証用の環境と性能検証用の環境を必要に応じて生成する。
具体的には、検証環境生成部25は、ファイル名やディレクトリ名の命名規則やディレクトリの階層構成の規則などを予め定義しておき、その定義した情報に従って、生成部20〜22によって生成されたソースコードから検証環境および検証環境用のファイル構成を作成する。例えば、検証環境生成部25は、ファイル名について、バスインタフェース部の場合には「論理回路ブロック名_bt.v」、レジスタ部の場合には「論理回路ブロック名_rt.v」などと規則性を定義しておく。また、コア機能部の場合には「論理回路ブロック名_core.v」、トップモジュールの場合には「論理回路ブロック名.v」などと規則性を定義しておく。また、例えば、初期化関数雛形については「init_論理回路ブロック名.[ch]」、割り込み処理関数雛形については「irq_論理回路ブロック名.[ch]」、レジスタアクセス確認関数雛形については「reg_rw_論理回路ブロック名.[ch]」などと定義しておく。
上述した規則性に従って、検証環境生成部25が作成した検証用ファイルの例を図29〜図34に示す。図29は、擬似CPU(Central Processing Unit)及び割り込みコントローラ関係のファイル群を示す図であり、図30は、バスモデル及びユーザロジック関係のファイル群を示す図であり、図31は、論理回路ブロック関係のファイル群を示す図である。また、図32は、テストベンチ関係のファイル群を示す図である。また、図33は、論理検証トップ及びデバイスドライバ関係のファイル群を示す図であり、図34は、論理検証用テストプログラム及び論理検証関係ファイル群を示す図である。
[論理回路設計装置による処理の流れ]
次に、図35を用いて、実施例1に係る論理回路設計装置による全体的な処理の流れを説明する。図35は、実施例1に係る論理回路設計装置による全体的な処理の流れを示すフローチャートである。
図35に示すように、論理回路設計装置1は、各データベースからレジスタマップやメモリマップを読み込むと(ステップS301肯定)、読み込んだ情報に従って、システム構成を解析し(ステップS302)、論理回路構成を解析する(ステップS303)。なお、このとき使用するバス種別の情報も取得する。
続いて、論理回路設計装置1は、取得したバス種別に対応するものであって、作成対象となるハードウェアやソフトウェアのソースコードの雛形を読み込む(ステップS304)。そして、論理回路設計装置1は、読み込んだ雛形に指定されたキーワードと読み込んだレジスタマップやメモリマップに記憶される情報に基づいて、各種ソースコード又はソースコード雛形を作成する(ステップS305)。さらに、論理回路設計装置1は、作成したソースコード又はソースコード雛形と、予め指定された規則性とに基づいて、検証環境を作成する(ステップS306)。
上述した処理を実行することで、論理回路設計装置1は、図36に示すようなシステムを生成することができる。つまり、論理回路設計装置1は、ハードウェア記述生成部(システム関連)20やハードウェア記述生成部(論理回路関連)21によって、論理回路ブロック(論理回路A〜論理回路C)を作成することができる。さらに、論理回路設計装置1は、ハードウェア記述生成部(システム関連)20やハードウェア記述生成部(論理回路関連)21によって、バスドライバ、割り込みコントローラを生成することができる。また、論理回路設計装置1は、ソフトウェア記述生成部22によって、初期化処理関数雛形や割り込み処理関数雛形を生成することができる。図36は、最終的に生成されるシステムの構成を示す図である。
[実施例1による効果]
このように、実施例1によれば、ハードウェアとソフトウェアを含むシステム全体を設計する場合でも、論理回路ブロックのレジスタ情報からハードウェアとソフトウェア両方のソースコードを作成することができる。その結果、従来に比べて、設計者による手作業の工数を削減することができるので、システム全体の設計に必要な工数を削減することが可能である。
また、実施例1によれば、TL記述とRTL記述のいずれかあるいは両方を選択して生成可能としたため、システムレベルの検証、すなわちソフトウェア/ハードウェアの協調検証が高速にできるようになる。
また、実施例1によれば、レジスタへの順次アクセス以外に初期化処理や割込み処理まで考慮しており、さらにこれらの処理毎に生成するファイル(関数)を分けているため、生成したファイルを容易にデバイスドライバ等のソフトウェア開発に流用することが可能となる。
また、実施例1によれば、システムのメモリマップ、当該論理回路ブロックのレジスタマップ、割り込み情報が準備できると、当該論理回路ブロックのコア機能以外の論理部分がすべて本願開示の装置で生成されるため、論理回路ブロックの開発工数が劇的に短縮できる。
また、実施例1によれば、システムのメモリマップ、当該論理回路ブロックのレジスタマップ、割り込み情報が準備できる。その結果、当該論理回路ブロックのコア機能以外の論理部分以外がすべて本願開示の装置で生成されるため、コア機能以外の論理回路の品質を一定程度に保証することが可能となる。
また、実施例1によれば、システムのメモリマップ、当該論理回路ブロックのレジスタマップ、割り込み情報が準備できる。その結果、当該論理回路ブロックを制御するために必要な初期化処理の割り込み処理やレジスタアクセスなどデバイスドライバ用の雛形ファイルが本願開示の装置で生成されるため、デバイスドライバの開発工数の大幅な短縮が実現できる。
また、実施例1によれば、システムのソフトウェア/ハードウェア協調検証に開発の早い段階から着手することが可能となる。また、ファイルを自動生成する際に命名規則に沿ったファイル名にしておくことで、当該論理回路ブロックの検証環境も自動で構築することが可能となる。また、開発の早期から当該論理回路ブロックの論理検証が行えるため、当該論理回路ブロックの品質向上が期待できる。
ところで、本願が開示する論理回路設計装置は、用途に応じて、様々な検証環境を自動で生成することができる。そこで、実施例2では、本願が開示する論理回路設計装置で生成できる検証環境の例を説明する。
(精度検証用検証環境)
例えば、本願が開示する論理回路設計装置は、図37に示すような精度検証用検証環境を作成することができる。具体的には、論理回路設計装置は、論理合成可能で精度検証に適しているRTL記述で生成されたソースコード等を用いることで、精度検証用の検証環境を作成することができる。この場合、DMAコントローラ(Direct Memory Access controller)は既存のIPマクロを使用することができ、初期化処理関数の雛形および割り込み処理関数の雛形はテストデータ(テストドライバ)として用いられる。このような検証環境を作成することで、レジスタのRead/Writeを一通り検証することができ、バスの動作やレジスタ部までの動作確認ができる。図37は、精度検証用検証環境の構成例を示す図である。
(機能検証用検証環境)
また、本願が開示する論理回路設計装置は、図38に示すような機能検証用検証環境を作成することができる。具体的には、論理回路設計装置は、高速に動作可能で機能検証に適しているTL記述で生成されたソースコード等を用いることで、機能検証用の検証環境を作成することができる。この場合、DMAコントローラは既存のIPマクロを使用することができ、初期化処理関数の雛形および割り込み処理関数の雛形はテストデータ(テストドライバ)として用いられる。このような検証環境を作成することで、作成されたソースコード等を用いて生成したシステムが正常に動作するかを高速に検証できる。図38は、機能検証用検証環境の構成例を示す図である。
(単体用検証環境)
また、本願が開示する論理回路設計装置は、図39に示すような単体用検証環境を作成することができる。このような検証環境を作成することで、作成されたソースコード等を用いて生成した論理回路ブロック単位で検証することができる。その結果、不具合の原因特定をシステム構築の早い段階で検出することができる。図39は、単体用検証環境の構成例を示す図である。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、(1)GUI、(2)雛形ファイル、(3)ハードウェアソースコード、(4)システム構成等、(5)プログラムにそれぞれ区分けして異なる実施例を説明する。
(1)GUI
例えば、実施例1では、GUIを用いてメモリマップ等の情報をユーザから受け付けて各データベースに登録するようにした。ところが、本願は、GUIでなくとも、例えば、XML(eXtensible Markup Language)やCSV(Comma Separated Value)、YAML(YAML Ain't a Markup Language)などのテキストファイルを用いることもできる。
(2)雛形ファイル
例えば、実施例1では、雛形ファイルを用意しておき、雛形ファイルとメモリマップやレジスタマップの情報とに基づいて、ソースコード等を生成する例について説明した。本願は雛形ファイルが必ずしも必要ではなく、メモリマップやレジスタマップの情報に基づいて、ソースコード等を生成することもできる。
(3)ハードウェアソースコード
例えば、本願が開示する論理回路設計装置は、ハードウェアソースコードをHDLで作成することもでき、HDL以外のハードウェア記述言語でも作成することができる。
(4)システム構成等
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は、一例に過ぎず、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(5)プログラム
なお、本実施例で説明した論理回路設計方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVD、フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)入力された論理回路ブロックのレジスタ情報を解析して論理回路の構成情報を取得するレジスタ解析手段と、
前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路のレジスタ部と、前記論理回路のコア機能部の雛形と、前記レジスタ部とコア機能部とを包含するトップモジュールの雛形とのそれぞれについて、ハードウェアソースコードを生成するハードウェア記述生成手段と、
前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成するソフトウェア記述生成手段と、
を有することを特徴とする論理回路設計装置。
(付記2)前記ハードウェア記述生成手段は、前記レジスタ解析手段によって取得された論理回路の構成情報を用いて、前記ハードウェアソースコードそれぞれの雛形を書き換えることで、前記ハードウェアソースコードを生成し、
前記ソフトウェア記述生成手段は、前記レジスタ解析手段によって取得された論理回路の構成情報を用いて、前記ソフトウェアソースコードの雛形を書き換えることで、前記ソフトウェアソースコードを生成することを特徴とする付記1に記載の論理回路設計装置。
(付記3)ソフトウェアとハードウェアとを有するシステムのメモリマップを受け付けて、受け付けたメモリマップを解析し、前記システムの構成情報を取得するメモリ解析手段をさらに有し、
前記ハードウェア記述生成手段は、前記メモリ解析手段によって取得されたシステムの構成情報に基づいて、前記システムのバスモデルと、前記論理回路のバスインタフェースとのそれぞれについて、前記ハードウェアソースコードを生成することを特徴とする付記1または2に記載の論理回路設計装置。
(付記4)前記ハードウェア記述生成手段は、論理検証が可能なトランザクションレベル記述と論理合成可能でクロックベースの検証が可能なレジスタトランスファレベル記述の少なくとも一方の形式で、前記ハードウェアソースコードを生成することを特徴とする付記1に記載の論理回路設計装置。
(付記5)前記レジスタ解析手段は、前記論理回路ブロックの割り込み情報をさらに取得し、
前記ハードウェア記述生成手段は、前記レジスタ解析手段に取得された割り込み情報を用いて、割り込みコントローラを生成し、
前記ソフトウェア記述生成手段は、前記レジスタ解析手段に取得された割り込み情報を用いて、割り込み処理関数の雛形を生成することを特徴とする付記1に記載の論理回路設計装置。
(付記6)前記ソフトウェア記述生成手段は、前記ソフトウェアソースコードを生成するのに際して、処理機能ごとにファイル分割して、前記ソフトウェアソースコードを生成することを特徴とする付記1に記載の論理回路設計装置。
(付記7)前記ハードウェア記述生成手段により生成されたハードウェアソースコードおよび前記ソフトウェア記述生成手段により生成されたソフトウェアソースコードを用いて、前記ハードウェアソースコード及びソフトウェアソースコードを検証する検証環境を作成する検証環境作成手段をさらに有することを特徴とする付記1に記載の論理回路設計装置。
(付記8)前記検証環境作成手段は、予め定めた規則性に従って、前記ハードウェアソースコード及びソフトウェアソースコードについて前記検証環境用のファイルまたはディレクトリを作成し、前記規則性に従って、作成されたファイルまたはディレクトリを命名することを特徴とする付記7に記載の論理回路設計装置。
(付記9)入力された論理回路ブロックのレジスタ情報を解析して論理回路の構成情報を取得するレジスタ解析手順と、
前記レジスタ解析手順によって取得された論理回路の構成情報に基づいて、前記論路回路のレジスタ部と、前記論理回路のコア機能部の雛形と、前記レジスタ部とコア機能部とを包含するトップモジュールの雛形とのそれぞれについて、ハードウェアソースコードを生成するハードウェア記述生成手順と、
前記レジスタ解析手順によって取得された論理回路の構成情報に基づいて、前記論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成するソフトウェア記述生成手順と、
を論理回路設計装置としてのコンピュータに実行させることを特徴とする論理回路設計プログラム。
1 論理回路設計装置
10 システムメモリマップDB
11 バス種別DB
12 論理回路レジスタマップ一覧DB
13 論理回路レジスタマップ詳細DB
14 論理回路割り込み情報DB
15 検証種別DB
20 ハードウェア記述生成部(システム関連)
20a バスモデルのハードウェアソースコード
20b 論理回路バスインタフェース部のハードウェアソースコード
20c 簡易割り込みコントローラのハードウェアソースコード
21 ハードウェア記述生成部(論理回路関連)
21a 論理回路レジスタ部のハードウェアソースコード
21b 論理回路コア機能ブロック雛形のハードウェアソースコード
21c 論理回路トップモジュール雛形のハードウェアソースコード
22 ソフトウェア記述生成部
22a 論理回路割込処理関数雛形のソフトウェアソースコード
22b 論理回路初期化関数雛形のソフトウェアソースコード
25 検証環境生成部

Claims (5)

  1. 入力された論理回路ブロックのレジスタ情報を解析して論理回路の構成情報を取得するレジスタ解析手段と、
    前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路のレジスタ部と、前記論理回路のコア機能部の雛形と、前記レジスタ部とコア機能部とを包含するトップモジュールの雛形とのそれぞれについて、ハードウェアソースコードを生成するハードウェア記述生成手段と、
    前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成するソフトウェア記述生成手段と、
    を有することを特徴とする論理回路設計装置。
  2. 前記ハードウェア記述生成手段は、前記レジスタ解析手段によって取得された論理回路の構成情報を用いて、前記ハードウェアソースコードそれぞれの雛形を書き換えることで、前記ハードウェアソースコードを生成し、
    前記ソフトウェア記述生成手段は、前記レジスタ解析手段によって取得された論理回路の構成情報を用いて、前記ソフトウェアソースコードの雛形を書き換えることで、前記ソフトウェアソースコードを生成することを特徴とする請求項1に記載の論理回路設計装置。
  3. ソフトウェアとハードウェアとを有するシステムのメモリマップを受け付けて、受け付けたメモリマップを解析し、前記システムの構成情報を取得するメモリ解析手段をさらに有し、
    前記ハードウェア記述生成手段は、前記メモリ解析手段によって取得されたシステムの構成情報に基づいて、前記システムのバスモデルと、前記論理回路のバスインタフェースとのそれぞれについて、前記ハードウェアソースコードを生成することを特徴とする請求項1または2に記載の論理回路設計装置。
  4. 前記ハードウェア記述生成手段は、論理検証が可能なトランザクションレベル記述と論理合成可能でクロックベースの検証が可能なレジスタトランスファレベル記述の少なくとも一方の形式で、前記ハードウェアソースコードを生成することを特徴とする請求項1に記載の論理回路設計装置。
  5. 前記レジスタ解析手段は、前記論理回路ブロックの割り込み情報をさらに取得し、
    前記ハードウェア記述生成手段は、前記レジスタ解析手段に取得された割り込み情報を用いて、割り込みコントローラを生成し、
    前記ソフトウェア記述生成手段は、前記レジスタ解析手段に取得された割り込み情報を用いて、割り込み処理関数の雛形を生成することを特徴とする請求項1に記載の論理回路設計装置。
JP2009111580A 2009-04-30 2009-04-30 論理回路設計装置 Expired - Fee Related JP5577619B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009111580A JP5577619B2 (ja) 2009-04-30 2009-04-30 論理回路設計装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009111580A JP5577619B2 (ja) 2009-04-30 2009-04-30 論理回路設計装置

Publications (2)

Publication Number Publication Date
JP2010262412A true JP2010262412A (ja) 2010-11-18
JP5577619B2 JP5577619B2 (ja) 2014-08-27

Family

ID=43360434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009111580A Expired - Fee Related JP5577619B2 (ja) 2009-04-30 2009-04-30 論理回路設計装置

Country Status (1)

Country Link
JP (1) JP5577619B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115983173A (zh) * 2023-03-21 2023-04-18 湖北芯擎科技有限公司 寄存器模型生成方法、装置、计算机设备及存储介质
WO2023166609A1 (ja) * 2022-03-02 2023-09-07 三菱電機株式会社 デジタル回路設計を支援する装置、デジタル回路設計を支援する方法、および、デジタル回路設計を支援するプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160949A (ja) * 1995-12-07 1997-06-20 Hitachi Ltd ハードウエアとソフトウエアの混在システムの設計支援方法
JP2001202397A (ja) * 2000-01-20 2001-07-27 Toshiba Corp システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法
JP2003085223A (ja) * 2001-09-07 2003-03-20 Hitachi Ltd ハードウェア・ソフトウェア統合設計システム
JP2005327192A (ja) * 2004-05-17 2005-11-24 Ricoh Co Ltd ハードウエア設計システムおよびその方法
JP2008250504A (ja) * 2007-03-29 2008-10-16 Fujitsu Ltd 論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160949A (ja) * 1995-12-07 1997-06-20 Hitachi Ltd ハードウエアとソフトウエアの混在システムの設計支援方法
JP2001202397A (ja) * 2000-01-20 2001-07-27 Toshiba Corp システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法
JP2003085223A (ja) * 2001-09-07 2003-03-20 Hitachi Ltd ハードウェア・ソフトウェア統合設計システム
JP2005327192A (ja) * 2004-05-17 2005-11-24 Ricoh Co Ltd ハードウエア設計システムおよびその方法
JP2008250504A (ja) * 2007-03-29 2008-10-16 Fujitsu Ltd 論理検証支援プログラム、該プログラムを記録した記録媒体、論理検証支援装置、および論理検証支援方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG199700268004; 今井 正治: 'ハードウェア/ソフトウェア・コデザイン' 情報処理 第36巻/第7号, 19950715, 第614-619頁, 一般社団法人情報処理学会 *
JPN6013029064; 今井 正治: 'ハードウェア/ソフトウェア・コデザイン' 情報処理 第36巻/第7号, 19950715, 第614-619頁, 一般社団法人情報処理学会 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023166609A1 (ja) * 2022-03-02 2023-09-07 三菱電機株式会社 デジタル回路設計を支援する装置、デジタル回路設計を支援する方法、および、デジタル回路設計を支援するプログラム
CN115983173A (zh) * 2023-03-21 2023-04-18 湖北芯擎科技有限公司 寄存器模型生成方法、装置、计算机设备及存储介质
CN115983173B (zh) * 2023-03-21 2023-07-07 湖北芯擎科技有限公司 寄存器模型生成方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
JP5577619B2 (ja) 2014-08-27

Similar Documents

Publication Publication Date Title
US11630930B2 (en) Generation of dynamic design flows for integrated circuits
US9652570B1 (en) Automatic implementation of a customized system-on-chip
US8117576B2 (en) Method for using an equivalence checker to reduce verification effort in a system having analog blocks
US7231627B2 (en) Merging a hardware design language source file with a separate assertion file
US20180293332A1 (en) Development, programming, and debugging environment
CN112949233B (zh) Fpga芯片的自动化开发方法及装置、电子设备
US20060064680A1 (en) Extensible internal representation of systems with parallel and sequential implementations
US8136062B2 (en) Hierarchy reassembler for 1×N VLSI design
JP5910108B2 (ja) 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法
US8316335B2 (en) Multistage, hybrid synthesis processing facilitating integrated circuit layout
JPH11513512A (ja) ディジタル信号プロセッサの製造方法
JP2006285333A (ja) 動作合成装置及び方法
US9880966B1 (en) Encapsulating metadata of a platform for application-specific tailoring and reuse of the platform in an integrated circuit
US7496869B1 (en) Method and apparatus for implementing a program language description of a circuit design for an integrated circuit
US7917873B1 (en) System and method for verification of integrated circuit design
EP3532936B1 (en) Debugging system and method
JP5577619B2 (ja) 論理回路設計装置
US10235486B2 (en) Method, apparatus and system for automatically deriving parameters for an interconnect
US8813003B2 (en) System and method for inferring higher level descriptions from RTL topology based on naming similarities and dependency
Kutzer et al. Automatic generation of system-level virtual prototypes from streaming application models
JP2007018313A (ja) 回路設計プログラム、回路設計装置、回路設計方法
US9710582B1 (en) Delivering circuit designs for programmable integrated circuits
JP6305644B2 (ja) アーキテクチャ生成装置およびアーキテクチャ生成プログラム
Banerjee et al. Automated approach to Register Design and Verification of complex SOC
Bappudi Example Modules for Hardware-software Co-design

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140424

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140623

R150 Certificate of patent or registration of utility model

Ref document number: 5577619

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees