JP5521349B2 - Ipモデル生成プログラム、ipモデル生成装置、およびipモデル生成方法 - Google Patents

Ipモデル生成プログラム、ipモデル生成装置、およびipモデル生成方法 Download PDF

Info

Publication number
JP5521349B2
JP5521349B2 JP2009038525A JP2009038525A JP5521349B2 JP 5521349 B2 JP5521349 B2 JP 5521349B2 JP 2009038525 A JP2009038525 A JP 2009038525A JP 2009038525 A JP2009038525 A JP 2009038525A JP 5521349 B2 JP5521349 B2 JP 5521349B2
Authority
JP
Japan
Prior art keywords
model
code
connection
database
interface
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
JP2009038525A
Other languages
English (en)
Other versions
JP2010191920A (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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2009038525A priority Critical patent/JP5521349B2/ja
Priority to US12/626,989 priority patent/US8881096B2/en
Publication of JP2010191920A publication Critical patent/JP2010191920A/ja
Application granted granted Critical
Publication of JP5521349B2 publication Critical patent/JP5521349B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/08Intellectual property [IP] blocks or IP cores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Stored Programmes (AREA)

Description

本明細書で開示する技術は、ESL(Electoronic System Level)ツールのPV(Programmer's View)、PVT(Programmer's View with Timing)、CX(Cycle Approximate)、CA(Cycle Accurate)レベルの抽象度モデルに関連するIPモデル(SystemCなどの上位設計で利用されるモデル)に関する技術である。
従来、ソースコードのテンプレートを用いてソースコードを自動生成する方法がある(たとえば、下記特許文献1を参照。)。
特開2008−052356号公報
1つのIP(Intellectual Property)モデルを開発すると、そのIPモデルをベースにソースコードを利用して派生品種およびソースコードを作成するケースが多い。そのため、少しマイナーチェンジしたソースコードが複数存在してしまう。これにより発生したソースコードはさらに繰り返し利用されて幾重にも分岐してしまう。この状況のモデルのソースコードや仕様の管理方法は品種単位といった大きなものとなっている。これによりソースコードの可読性は損なわれてしまい、ソースコードの再利用性はない状態となるという問題があった。
開発したソースコードの検証も一部変更であれば一部の検証で済むはずであるが、開発担当者が異なるとソースコードをすべて見切れない状態なので、検証も不十分となるという問題があった。これによりバグを含むモデルができてしまい、さらにそのモデルを利用し開発したモデルはバグを埋め込んだ状態になり、次世代へと伝播してしまうという問題があった。
このように、現状は、上述した方法では、テンプレートが全品種を吸収しなければならいため、品種単位で爆発的にテンプレートコードが増えてしまい、ソースコードの可読性が既に損なわれてしまうという問題があった。
ESLモデル開発においては、実現する機能により開発するモデルの最適な抽象度が決定される。ここでいう「最適」とは、モデルに要求される精度や実行速度である。高精度のモデルは実装がより詳細化され、低精度のモデルはより簡易化される。インターフェースを駆動する、あるいは駆動されるビヘイビアは、インターフェースに依存したコードとなる。
抽象度に適したインターフェース、ターゲットに特化したインターフェース、ツールに特化したインターフェースが実装される。場合によっては標準インターフェースを採用できるが、モデル内部構造については実装依存にならざるを得ない。そのため、異なるモデル間、異なる抽象度間でコードを流用できない。特に、時間概念を持たないモデルと時間概念を持つモデルとの間で、インターフェース及び構造の違いが顕著であり、モデル開発工数削減の大きな課題となっている。
本技術は、上述した従来技術による問題点を解消するため、ソースコードの可読性の向上、IPモデルの品質の向上およびモデル開発工数削減を図ることを目的とする。
上述した課題を解決し、目的を達成するため、開示技術は、データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むIPのソースコードと、前記各IP間の接続関係を示す接続コードと、を有するIPモデルを構築することを要件とする。
また、データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むIPのソースコードを記憶するIPデータベースと、前記各IP間の接続関係を示す接続コードを記憶する接続属性データベースと、前記IPと前記接続関係により定義されたIPモデルの構成をあらわす構成データを記憶するIPモデル構成データベースと、にアクセス可能であり、流用対象IPモデルの選択を受け付け、選択された流用対象IPモデルに関する構成データを前記IPモデル構成データベースから抽出し、抽出された構成データにより定義されているIPのソースコードを前記IPデータベースから抽出し、抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出し、抽出されたIPのソースコードおよび抽出された接続コードを前記流用対象IPモデルとして出力することを要件とする。
この開示技術によれば、ソースコードの可読性の向上、IPモデルの品質の向上およびモデル開発工数削減を図ることができるという効果を奏する。
IPモデルの一例を示すブロック図である。 IPモデルの他の例を示すブロック図である。 ハードウェアのIPモデルの一例を示すブロック図である。 ハードウェアのIPモデルの拡張例を示すブロック図である。 本実施の形態の再構成可能なIPモデルの一例を示すブロック図である。 図5に示したモデル構造の再構成例を示す説明図である。 図5の再構成可能なIPモデルに時間概念が導入されていないモデル構造(UnTimedモデル)を示す説明図である。 図5の再構成可能なIPモデルに時間概念が導入されたモデル構造(Timedモデル)を示す説明図である。 UnTimedモデルの入力インターフェースのコードの記述例を示す説明図である。 Timedモデルの入力インターフェースのコードの記述例を示す説明図である。 ビヘイビアのソースコードの記述例を示す説明図である。 ステートを駆動しないコードが記述されたビヘイビアのソースコードの記述例を示す説明図である。 ステートを駆動するコードが記述されたビヘイビアのソースコードの記述例を示す説明図である。 UnTimedモデルのステートのソースコードの記述例を示す説明図である。 Timedモデルのステートのコードの記述例を示す説明図である。 レジスタにアクセスするビヘイビアのコードの記述例を示す説明図である。 ビヘイビアに参照されるレジスタのソースコードの記述例を示す説明図である。 ビヘイビアに更新されるレジスタのソースコードの記述例を示す説明図である。 ステートを駆動しないレジスタのソースコードの記述例を示す説明図である。 ステートを駆動するレジスタのコードの記述例を示す説明図である。 レジスタにアクセスするステートのコードの記述例を示す説明図である。 レジスタにアクセスするステートのコードの記述例を示す説明図である。 ビヘイビアを駆動するステートのコードの記述例を示す説明図である。 ビヘイビアを駆動するステートのコードの記述例を示す説明図である。 出力インターフェースを駆動しないビヘイビアのソースコードの記述例を示す説明図である。 出力インターフェースを駆動するビヘイビアのソースコードの記述例を示す説明図である。 UnTimedモデルの出力インターフェースのソースコードの記述例を示す説明図である。 Timedモデルの出力インターフェースのソースコードの記述例を示す説明図である。 本開示技術のIPモデル管理/生成を示す概略図である。 入力インターフェースのIPテーブルを示す説明図である。 出力インターフェースのIPテーブルを示す説明図である。 ビヘイビアのIPテーブルを示す説明図である。 ステートのIPテーブルを示す説明図である。 レジスタのIPテーブルを示す説明図である。 接続コードテーブルを示す説明図である。 実施の形態にかかるIPモデル生成装置のハードウェア構成を示すブロック図である。 IPモデル生成装置の機能的構成を示すブロック図である。 IPモデル生成装置によるIPモデル生成処理手順を示すフローチャートである。
以下に添付図面を参照して、本開示技術の好適な実施の形態を詳細に説明する。本開示技術は、ESL(Electoronic System Level)ツールのPV(Programmer‘s View)、PVT(Programmer’s View with Timing)、CX(Cycle Approximate)、CA(Cycle Accurate)レベルの抽象度モデルに関連するIPモデル(SystemCなどの上位設計で利用されるモデル)の管理およびIPモデル生成に関する技術である。
(開示技術の概要)
「発明が解決しようとする課題」の項で説明したように、従来では、(1)内部状態の追加はソースコードを巨大化し、再利用性の低下を招く。たとえば、1つのクラスに複数内部状態を保持した場合、その内部状態によって同じ外部からの要求であっても処理(動作)内容が異なる。その原因としては、1クラスの責務が多すぎるためである。このことは基準となるソースコードあるいはテンプレートに責務が集中してしまい、ソースコードの可読性や再利用性の低下を招いてしまう。さらに1つのテンプレートなどに1つに固定されているとそのソースコードの行は膨大となり、メンテナンス性を損なうことになる。
また、(2)他のシステムに移植できず、フレキシブルなフレームワークが構築されていない。通常、開発管理システム内であれば問題ないのだが、他の管理システムに移植するときに情報を提供できないことで利用できない場合がある。モデルに関する情報を管理し抽出できる環境がないためである。
そのため、ESLのIPモデルを、インターフェース、レジスタ、ビヘイビアの3つの構成(IP)に分離する。インターフェースは、データの入出力をあらわすIPであり、レジスタは、データの記憶をあらわすIPであり、ビヘイビアは、データを利用した設計対象の振る舞いをあらわすIPである。3つの構成には、それぞれ接続関係がある。この3つの構成とこれら相互の接続関係をモデル化する。ビヘイビアは、部品化しリファクタリングのコーディングを利用する。
図1は、IPモデルの一例を示すブロック図である。図1のIPモデル100では、入力インターフェース101からの入力をトリガとして(あるいは、スレッドであれば自発的に)、機能(ビヘイビア)102が駆動され、その動作結果を出力インターフェース103に出力する。ハードウェアでは、入出力タイプに応じたインターフェースとビヘイビアが必要となったり、ビヘイビアが複数段に跨ることもある。図2にその例を示す。
図2は、IPモデルの他の例を示すブロック図である。図2のIPモデル200では、入力インターフェース101Aからの入力をトリガとして、機能(ビヘイビア)102Aが駆動される。また、入力インターフェース101A,101Bからの入力をトリガとして、機能(ビヘイビア)102Bが駆動される。さらに、入力インターフェース101A,101Cからの入力をトリガとして、機能(ビヘイビア)102Cが駆動され、機能(ビヘイビア)112Aおよび出力インターフェース103Cに出力する。
また、機能(ビヘイビア)102A,102Cの動作結果を受け付けると、機能(ビヘイビア)112Aが駆動され、その動作結果を出力インターフェース103A,103Cに出力する。さらに、機能(ビヘイビア)102A,102Bの動作結果を受け付けると、機能(ビヘイビア)112Bが駆動され、その動作結果を出力インターフェース103Bに出力する。
図3は、ハードウェアのIPモデルの一例を示すブロック図である。一般に、ハードウェアをモデル化する場合、信号入力あるいはレジスタアクセス、データ転送等の外部入力をトリガとしてビヘイビアを動作させ、その処理結果を(同様のインターフェースを介して)得る。図3に示したIPモデル300では、入力インターフェース301Aは信号の入力を受け付けて、機能(ビヘイビア)302を動作させるインターフェースである。
入力インターフェース301Bは、機能(ビヘイビア)302にレジスタアクセス(リードやライト)をさせるインターフェースである。入力インターフェース301Bはデータの入力を受け付けて、機能(ビヘイビア)302にデータ転送動作をさせるインターフェースである。機能(ビヘイビア)302は、入力インターフェース301Aからの信号の入力を受け付けると駆動して、その動作結果を出力インターフェース303Aに出力する。
また、機能(ビヘイビア)302は、入力インターフェース301Cからのデータの入力を受け付けると駆動して、そのデータを出力インターフェース303Bに出力する。このように、機能(ビヘイビア)302は、信号、レジスタアクセス、データ転送に応じて駆動するため、制御用レジスタ、状態レジスタ、メモリ情報を持つこととなる。図4にその例を示す。
図4は、ハードウェアのIPモデルの拡張例を示すブロック図である。図4に示したIPモデル400では、機能(ビヘイビア)302は、制御用レジスタ(内部レジスタ304A)、状態レジスタ(動作状態304B)、メモリ情報(内部メモリ304C)とのアクセスにより動作する。
(再構成可能なモデル構造)
つぎに、本実施の形態の特徴的な構成である再構成可能なモデル構造について説明する。基本構造としては、入力インターフェース、出力インターフェース、ビヘイビア、ステート、レジスタなどのIPを有する。これら構成要素を接続するため、API(Application Program Interface)やイベント通知(Event)の実装はルール化される。ステートは、インターフェースからの時間情報(delay)に応じた待機処理をおこなう。ステートは、図4に示した内部レジスタ304A、動作状態304B、内部メモリ304Cに相当する。
図5は、本実施の形態の再構成可能なIPモデルの一例を示すブロック図である。このIPモデル500は一例であり、設計対象となるハードウェアによって、構成要素の個数や接続関係(図5中の矢印。APIやイベント通知に相当。)を自由に構成することができる。したがって、設計するハードウェアに応じて複数用意しておくこととしてもよい。なお、同一ハードウェアを改良する場合は、元となるモデル構造から派生モデルを生成する。
図5のIPモデル500では、入力インターフェース501からAPIをコールすると、各ビヘイビア502(前段のビヘイビア)が動作し、ステート503に対してイベント通知する。また、レジスタ504に対しAPIをコールする。
また、ステート503がレジスタ504にAPIをコールするとレジスタ504からイベント通知が返ってくる。ステート503はイベント通知を受けると、各ビヘイビア502(後段のビヘイビア)にAPIをコールする。これにより、ビヘイビア502(後段のビヘイビア)が動作して、動作結果を出力インターフェース505に出力する。
なお、図5では、ビヘイビアが6個存在するが、基本構造は同一であるが、振る舞い(動作)は異なる(同じであってもよい)。たとえば、動作内容の記述を変更するだけで、異なるビヘイビアを得ることができる。このことは、ビヘイビアに限らず、インターフェースやステート、レジスタについても同様である。
図6は、図5に示したモデル構造の再構成例を示す説明図である。図6において、IPモデル500の構成要素501〜505は、ライブラリ600の中から必要に応じて自由に組み替えることができる。この組み替えは、設計者が端末からライブラリにアクセスして、手動操作により行う。たとえば、入力インターフェース501には、入力インターフェース501A,501B,501Cの中から選ばれたIPを組み込む。
同様に、各ビヘイビア502(前段のビヘイビア)には、ビヘイビア502A,502B,502Cの中から選ばれたIPを組み込む。同様に、各ビヘイビア502(後段のビヘイビア)には、ビヘイビア502D,502E,502Fの中から選ばれたIPを組み込む。同様に、ステート503には、ステート503A,503B,503Cの中から選ばれたIPを組み込む。同様に、レジスタ504には、レジスタ504A,504B,504Cの中から選ばれたIPを組み込む。
同様に、出力インターフェース505には、出力インターフェース505A,505B,505Cの中から選ばれたIPを組み込む。このように、構成要素間の接続関係(図6中の細矢印。APIやイベント通知に相当。)を維持したまま、IPを組み替えるだけで、修正や改良をおこなうことができる。なお、各IPは、図示しないが、使用するツールごとにライブラリ600に用意しておくこととしてもよい。これにより、IPモデル500自体は各種ツールに依存しない構成とすることができ、汎用性を高めることができる。
また、類似モデルや派生モデルを開発する場合、ライブラリ600に登録されているIPを流用したり、ライブラリ600に登録されているIPを修正してライブラリ600に新規登録されたIPを用いることで、必要最小限の変更で、類似モデルや派生モデルを開発することができる。類似モデルや派生モデルの基本構造は、元のIPモデル500と変わらないため、IPの入れ替えのみで開発することができる。
また、各ビヘイビア502は、その動作に必要な時間情報(delay)を持つ。時間情報に対応したインターフェースを用いる場合、インターフェースを介して外部との時間情報(delay)のやり取りをおこなう必要がある。このため、時間情報(delay)を取得し、ウェイト処理(wait)は、ステート503でおこなうことで時間概念の処理をおこなうことができる。
(UnTimedモデルとTimedモデルの共通化)
再構成可能なIPモデルでは、時間概念が導入されていないUnTimedモデルと時間概念が導入されているTimed(Loosely Timed(LT)ともいう)モデルを構築することができる。さらに、インターフェースおよびステート(のIP)を差し替えるだけで、UnTimedモデルとTimedモデルの共通化も図ることができる。
図7は、図5の再構成可能なIPモデルに時間概念が導入されていないモデル構造(UnTimedモデル)を示す説明図である。図8は、図5の再構成可能なIPモデルに時間概念が導入されたモデル構造(Timedモデル)を示す説明図である。図7および図8は、OSCI(Open SystemC Initiative)―TLM(Transaction Level Modeling)2.0への適用例を示している。
ビヘイビア502(702A〜702F)はそのままで、入力インターフェース701、ステート703、および出力インターフェース705を、図8に示した入力インターフェース801、ステート803、および出力インターフェース805に差し替えるだけで、UnTimedモデルのIPモデル700からTimedモデルのIPモデル800へ変更することができる。
同様に、ビヘイビア502(702A〜702F)はそのままで、入力インターフェース801、ステート803、および出力インターフェース805を、図7に示した入力インターフェース701、ステート703、および出力インターフェース705に差し替えるだけで、TimedモデルのIPモデル800からUnTimedモデルのIPモデル700へ変更することができる。以下、図7および図8の各IPおよび接続コードについて説明する。
(適用コード例)
図9は、UnTimedモデルの入力インターフェース701のコードの記述例を示す説明図である。図9に示したコード900は、UnTimedモデルの入力インターフェース701のソースコード901に、当該入力インターフェース701からビヘイビア502を駆動する接続コード902が挿入されたコードである。この接続コード902は、時間概念が導入されていないコードであるが、どのビヘイビア502にも共通するコードである。
図7では、入力インターフェース701からビヘイビア702A〜702Cを駆動するため、入力インターフェース701のソースコード901内のif文は、ビヘイビア702A〜702Cごとに記述される。また、接続コード902も各ビヘイビア702A〜702Cを特定できるように記述される。
図10は、Timedモデルの入力インターフェース801のコードの記述例を示す説明図である。図10に示したコード1000は、Timedモデルの入力インターフェース801のソースコード1001に、当該入力インターフェース801からビヘイビア702を駆動する接続コード1002が挿入されたコードである。この接続コード1002は、時間概念が導入されたコードであるが、どのビヘイビア502にも共通するコードである。
図8では、入力インターフェース801からビヘイビア702A〜702Cを駆動するため、入力インターフェース801のソースコード1001内のif文は、ビヘイビア702A〜702Cごとに記述される。また、接続コード1002も各ビヘイビア702A〜702Cを特定できるように記述される。
図11は、ビヘイビア502のソースコードの記述例を示す説明図である。図11に示したビヘイビア502のソースコード1100は、UnTimedモデルとTimedモデルで共通である。ソースコード1100において、“//PROCESS”〜“delay +=t;”の間に固有の振る舞いを記述することで、ビヘイビア702A〜702Fとなる。ビヘイビア702A〜702Fのソースコード1100はあらかじめライブラリ600に登録しておいてもよい。
図12は、ステート503を駆動しないコードが記述されたビヘイビア502のソースコードの記述例を示す説明図である。図12に示したビヘイビア502のソースコード1200は、UnTimedモデルとTimedモデルで共通である。ソースコード1200は、図11に示したソースコード1100に、ステート503を駆動しないコード1201が挿入されたコードである。ソースコード1100と同様、“//PROCESS”〜“delay +=t;”の間に固有の振る舞いを記述することで、ステート503を駆動しないビヘイビア702A〜702Cとなる。ステート503を駆動しないビヘイビア702A〜702Cのソースコード1200はあらかじめライブラリ600に登録しておいてもよい。
図13は、ステート503を駆動するコードが記述されたビヘイビア502のソースコードの記述例を示す説明図である。図13に示したビヘイビア502のソースコード1300は、UnTimedモデルとTimedモデルで共通である。ソースコード1300は、図12に示したソースコード1200に、ステート503を駆動する接続コード1301が挿入されたコードである。ソースコード1200と同様、“//PROCESS”〜“delay +=t;”の間に固有の振る舞いを記述することで、ステート503を駆動するビヘイビア702A〜702Cとなる。ソースコード1200や接続コード1301はあらかじめライブラリ600に登録しておいてもよい。
図14は、UnTimedモデルのステート703のソースコードの記述例を示す説明図である。図14に示したコード1400は、UnTimedモデルのステート703のソースコード1401に、ビヘイビア502から駆動される接続コード1402が挿入されたコードである。
図7では、ビヘイビア702A〜702Cからステート703を駆動するため、ステート703のソースコード1401内のcase文は、各ビヘイビア702A〜702Cについて記述される。ステート703のソースコード1401や接続コード1402はあらかじめライブラリ600に登録しておいてもよい。
図15は、Timedモデルのステート803のコードの記述例を示す説明図である。図15に示したコード1500は、Timedモデルのステート803のソースコード1501に、ビヘイビア502から駆動される接続コード1402が挿入されたコードである。コード1502は、ステート803内で時間(delay)を待つ(wait)コードである。これにより、時間概念が導入されたこととなる。
図8では、ビヘイビア702A〜702Cからステート803を駆動するため、ステート803のソースコード1501内のcase文は、各ビヘイビア702A〜702Cについて記述される。ステート803のソースコード1501や接続コード1402はあらかじめライブラリ600に登録しておいてもよい。
図16は、レジスタ704にアクセスするビヘイビア502のコードの記述例を示す説明図である。図16に示したコード1600は、ビヘイビア502のソースコード1100に、ビヘイビア502からレジスタ704へのアクセスを示す接続コード1601が挿入されたコードである。接続コード1601中、“reg.get_val”はレジスタ704の参照、“reg.set_val”はレジスタ704の更新をあらわす。
ソースコード1100では、“//PROCESS”〜“delay +=t;”の間に固有の振る舞いを記述することで、レジスタ704にアクセスするビヘイビア702A〜702Cとなる。レジスタ704にアクセスするビヘイビア702A〜702Cのソースコード1100や接続コード1601はあらかじめライブラリ600に登録しておいてもよい。
図17は、ビヘイビア502に参照されるレジスタ704のソースコードの記述例を示す説明図である。このソースコード1700は、参照元のビヘイビア502(ビヘイビア702A〜702C)を特定できるように記述される。ソースコード1700は、あらかじめライブラリ600に登録しておいてもよい。
図18は、ビヘイビア502に更新されるレジスタ704のソースコードの記述例を示す説明図である。このソースコード1800は、更新元のビヘイビア502(ビヘイビア702A〜702C)を特定できるように記述される。ソースコード1800は、はあらかじめライブラリ600に登録しておいてもよい。
図19は、ステート703を駆動しないレジスタ704のソースコードの記述例を示す説明図である。このソースコード1900は、図17のソースコード1700と図18のソースコード1800からなるコードである。このソースコード1900は、アクセス元のビヘイビア502(ビヘイビア702A〜702C)を特定できるように記述される。コード1900は、あらかじめライブラリ600に登録しておいてもよい。
図20は、ステート703を駆動するレジスタ704のコードの記述例を示す説明図である。このコード2000は、図19に示したレジスタ704のソースコード1900に、レジスタ704からステート703を駆動する接続コード2001が挿入されたコードである。接続コード2001はステートイベント(state_Event)を通知(notify)するコードである。このコード2000は、アクセス元のビヘイビア502(ビヘイビア702A〜702C)を特定できるように記述される。コード2000や接続コード2001は、あらかじめライブラリ600に登録しておいてもよい。
図21は、レジスタ704にアクセスするステート703のコードの記述例を示す説明図である。このコード2100は、図14に示したステート703のコード1400(ソースコード1401,接続コード1402)に、レジスタ704へアクセスする接続コード2101が挿入されたコードである。接続コード2101はレジスタ704を参照(reg.get_val)、更新(reg.set_val)するコードである。このコード2100や接続コード2101は、あらかじめライブラリ600に登録しておいてもよい。
図22は、レジスタ704にアクセスするステート803のコードの記述例を示す説明図である。このコード2200は、図15に示したステート803のコード1500(ソースコード1501,コード1502)に、レジスタ704へアクセスする接続コード2101が挿入されたコードである。接続コード2101はレジスタ704を参照(reg.get_val)、更新(reg.set_val)するコードである。このコード2200は、あらかじめライブラリ600に登録しておいてもよい。
図23は、ビヘイビア502を駆動するステート703のコードの記述例を示す説明図である。このコード2300は、図14に示したステート703のコード1400に、ビヘイビア502を駆動する接続コード2301が挿入されたコードである。このコード2300は、駆動先のビヘイビア502(ビヘイビア702D〜702F)を特定できるように記述される。コード2300は、あらかじめライブラリ600に登録しておいてもよい。
図24は、ビヘイビア502を駆動するステート803のコードの記述例を示す説明図である。このコード2400は、図15に示したステート803のコード1500に、ビヘイビア502を駆動する接続コード2301が挿入されたコードである。このコード2400は、駆動先のビヘイビア502(ビヘイビア702D〜702F)を特定できるように記述される。コード2400は、あらかじめライブラリ600に登録しておいてもよい。
図25は、出力インターフェース505を駆動しないビヘイビア502のソースコードの記述例を示す説明図である。このソースコード2500では、読み込みや書き込みはおこなわれないこととなる。このソースコード2500は、UnTimedモデルとTimedモデルで共通である。ソースコード2500において、“//PROCESS”〜“delay +=t;”の間に固有の振る舞いを記述することで、ビヘイビア702D〜702Fとなる。ビヘイビア702D〜702Fのコードはあらかじめライブラリ600に登録しておいてもよい。
図26は、出力インターフェース505を駆動するビヘイビア502のソースコードの記述例を示す説明図である。このコード2600は、図25に示したビヘイビア502のソースコード2500に、ビヘイビア502から出力インターフェース505を駆動する接続コード2601が挿入されたコードである。
接続コード2601は、読み込みを行う(trans_read)、書き込みを行う(trans_write)、といったコードである。このコード2600は、UnTimedモデルとTimedモデルで共通である。コード2600において、“//PROCESS”〜“delay +=t;”の間に固有の振る舞いを記述することで、ビヘイビア702D〜702Fとなる。コード2600や接続コード2601は、あらかじめライブラリ600に登録しておいてもよい。
図27は、UnTimedモデルの出力インターフェース705のソースコードの記述例を示す説明図である。図27に示したコード2700は、UnTimedモデルの出力インターフェース705のソースコード2701に、ビヘイビア502から出力インターフェース705を駆動する接続コード2702が挿入されたコードである。この接続コード2702は、対向の“b_transport”を呼び出すコードである。
図28は、Timedモデルの出力インターフェース805のソースコードの記述例を示す説明図である。図28に示したコード2800は、Timedモデルの出力インターフェース805のソースコード2801に、ビヘイビア502から出力インターフェース805を駆動する接続コード2802が挿入されたコードである。この接続コード2702は、対向の“nb_transport”を呼び出すコードである。
図29は、本開示技術のIPモデル管理/生成を示す概略図である。本開示技術では、IPDB(データベース)2901と、IPモデル構成DB2903と、接続属性DB2902とにアクセスし、IPモデル構成データの作成2911やIPモデルの生成2912をおこなう。IPDB2901,接続属性DB2902およびIPモデル構成DB2903は、ライブラリ600を構成する。
IPDB2901は、IPを記憶するデータベースであり、具体的には、たとえば、ソースコード901,1001,1100,1200,1401,1501,1700,1800,1900,2500,2701,2801を記憶する。
図30は、入力インターフェースのIPテーブルを示す説明図であり、図31は、出力インターフェースのIPテーブルを示す説明図であり、図32は、ビヘイビアのIPテーブルを示す説明図であり、図33は、ステートのIPテーブルを示す説明図であり、図34は、レジスタのIPテーブルを示す説明図である。
各IPテーブル3000〜3400では、レコードごとに、ID、IP属性、モデル属性、接続コードID、親要素を有する。IDは、そのレコードのIPを特定する識別情報である。IP属性は、そのレコードのIPの特徴をあらわす情報である。モデル属性は、そのレコードのIPがUnTimedモデル(図中、「UT」)に適用されるのか、Timedモデル(図中、「LT」)に適用されるのか、両モデルに共通(図中、「−」)なのかを示す情報である。
接続コードIDは、そのレコードのIPに挿入可能な接続コードの識別情報である。これらIPテーブル3000〜3400にアクセスすることで、IPDB2901の中からIPのソースコードを引くことができる。親要素には、そのレコードのIPの親となるIP(へのポインタ)を記憶する。
接続属性DB2902は、接続コードを記憶するデータベースであり、具体的には、たとえば、接続コード902,1002,1301,1402,1601,2001,2101,2301,2601,2702,2802を記憶する。
図35は、接続コードテーブルを示す説明図である。接続コードテーブル3500は、レコードごとに、ID(接続コードID)、IP属性、モデル属性、接続属性、親要素を有する。ここで、接続属性とは、そのレコードの接続コードの特徴をあらわす情報である。
IPモデル構成DB2903は、図1〜図8に示したIPモデル100〜800のIPモデル構成データを記憶するデータベースである。IPモデル構成DB2903は、レコードごとに、構成IDとIPモデル構成データを記憶する。構成IDは、IPモデル構成データを特定する識別情報である。IPモデル構成データは、設計者により作成されたデータであり、設計対象であるIPモデルのブロック構成を示している。
IPモデル構成データは、図1〜図8に示したように、IPをブロック、接続コードを矢印で表現したGUIで保存される。ブロックは、図30〜図34に示したIPテーブル内のIDにリンクしており、矢印は図35に示した接続コードテーブル内のIDにリンクする。したがって、ブロックを選択すると、そのIPのソースコードをIPDBから抽出する。同様に、矢印を選択すると、その接続コードを接続属性DBから抽出する。
図29に戻って、IPモデル構成データ作成2911は、設計者がコンピュータを操作することでIPモデル構成データを作成する処理である。IPモデル生成2912は、設計者がコンピュータに生成指示を与えると、自動実行によりIPモデル2904を生成する処理である。
このようなIPモデル2904の管理/生成をおこなうことにより、IPモデル2904を構成するIP間の接続属性の再利用性の向上を図ることができる。また、各処理を分割し修正箇所を局所化することにより再利用性の向上を図ることができる。また、この局所化により、派生品種の検証範囲の絞込みをおこなうことができる。したがって、テンプレートのように全品種を吸収する必要がなくなり、品種単位で爆発的にテンプレートコードが増大することも生じない。したがって、ソースコードの可読性が損なわれず、また、バグが伝播しないため、IPモデルの品質向上を図ることができる。
(IPモデル生成装置のハードウェア構成)
図36は、実施の形態にかかるIPモデル生成装置のハードウェア構成を示すブロック図である。図36において、IPモデル生成装置は、CPU(Central Processing Unit)3601と、ROM(Read‐Only Memory)3602と、RAM(Random Access Memory)3603と、磁気ディスクドライブ3604と、磁気ディスク3605と、光ディスクドライブ(Flexible Disk Drive)3606と、光ディスク3607と、ディスプレイ3608と、I/F(Interface)3609と、キーボード3610と、マウス3611と、スキャナ3612と、プリンタ3613と、を備えている。また、各構成部はバス3600によってそれぞれ接続されている。
ここで、CPU3601は、IPモデル生成装置の全体の制御を司る。ROM3602は、ブートプログラムなどのプログラムを記憶している。RAM3603は、CPU3601のワークエリアとして使用される。磁気ディスクドライブ3604は、CPU3601の制御にしたがって磁気ディスク3605に対するデータのリード/ライトを制御する。磁気ディスク3605は、磁気ディスクドライブ3604の制御で書き込まれたデータを記憶する。
光ディスクドライブ3606は、CPU3601の制御にしたがって光ディスク3607に対するデータのリード/ライトを制御する。光ディスク3607は、光ディスクドライブ3606の制御で書き込まれたデータを記憶したり、光ディスク3607に記憶されたデータをコンピュータに読み取らせたりする。
ディスプレイ3608は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ3608は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
インターフェース(以下、「I/F」と略する。)3609は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク3614に接続され、このネットワーク3614を介して他の装置に接続される。そして、I/F3609は、ネットワーク3614と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F3609には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード3610は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス3611は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ3612は、画像を光学的に読み取り、IPモデル生成装置内に画像データを取り込む。なお、スキャナ3612は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ3613は、画像データや文書データを印刷する。プリンタ3613には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(IPモデル生成装置の機能的構成)
つぎに、IPモデル生成装置の機能的構成について説明する。図37は、IPモデル生成装置3700の機能的構成を示すブロック図である。IPモデル生成装置3700は、IPDB2901と、接続属性DB2902と、IPモデル構成DB2903と、IPモデル選択部3701と、構成データ抽出部3702と、接続属性抽出部3703と、IP抽出部3704と、出力部3705と、IP選択部3706と、派生品リスト取得部3707と、派生品選択部3708と、変換部3709と、を含む構成である。
この制御部となる機能(IPモデル選択部3701〜変換部3709)は、具体的には、たとえば、図36に示したROM3602、RAM3603、磁気ディスク3605、光ディスク3607などの記憶領域に記憶されたプログラムをCPU3601に実行させることにより、または、I/F3609により、その機能を実現する。IPDB201、接続属性DB202、およびIPモデル構成DB203は、具体的には、たとえば、図36に示したROM3602、RAM3603、磁気ディスク3605、光ディスク3607などの記憶領域によりその機能を実現する。
IPモデル選択部3701は、流用対象IPモデルの選択を受け付ける機能を有する。具体的には、たとえば、IPモデル構成DB2903の記憶内容がディスプレイに表示された場合、マウスなどを用いて、流用したいIPモデル構成データの構成IDを選択する。
構成データ抽出部3702は、IPモデル選択部3701によって選択されたIPモデルの構成データを、IPモデル構成DB2903から抽出する機能を有する。具体的には、たとえば、構成IDが選択されたのをトリガとして、選択構成IDをIPモデル構成DB2903に送る。そして、その選択構成IDにより特定されるIPモデル構成データを読み出す。
接続属性抽出部3703は、構成データ抽出部3702によって抽出されたIPモデル構成データにより定義されている接続コードを接続属性DB2902から抽出する機能を有する。具体的には、抽出されたIPモデル構成データ内の接続をあらわす矢印(接続コードID)にリンクされている接続コードを、接続属性DB2902から読み出す。
IP抽出部3704は、構成データ抽出部3702によって抽出された構成データにより定義されているIPのソースコードをIPDB2901から抽出する機能を有する。具体的には、抽出されたIPモデル構成データ内のIPをあらわすブロック(IPのID)にリンクされているIPのソースコードを、IPDB2901から読み出す。
出力部3705は、接続属性抽出部3703によって抽出された接続コードとIP抽出部3704によって抽出されたIPのソースコードを流用対象IPモデルとして出力する機能を有する。具体的には、たとえば、抽出されたIPのソースコードと接続コードをそのまま出力する。また、接続コードの挿入位置をIPモデル構成データごとに定義しておき、これらをまとめて単一のファイルとして出力することとしてもよい。また、IPモデルの出力形式は、ディスプレイ3608への表示、プリンタ3613による印刷出力、外部のコンピュータへの送信、記憶領域への書き出しなどがある。
IP選択部3706は、構成データ抽出部3702によって抽出された構成データ内のIPの選択を受け付ける機能を有する。具体的には、たとえば、IPモデル構成データがディスプレイ3608に表示された場合、マウス3611などを用いて、IPを選択する。
派生品リスト取得部3707は、IP選択部3706によりIPが選択されるのをトリガとして、選択IPの派生品リストを取得する機能を有する。具体的には、たとえば、あるビヘイビア「Behavior_A」を選択すると、IPDB2901にアクセスして、コンピュータが「Behavior_A」を親要素とするビヘイビアとして「Behavior_A2」を取得し、つぎに、「Behavior_A2」を親要素とするビヘイビアとして「Behavior_A3−1」、「Behavior_A3−2」を取得する。このように取得されなくなるまで繰り返すことで、派生品リストが自動的に得られることとなる。
派生品選択部3708は、IP選択部3706によって選択されたIPの派生品の選択を受け付ける機能を有する。具体的には、たとえば、派生品リストがディスプレイ3608に表示された場合、マウス3611などを用いて、派生品リストの中から派生品を選択する。
変換部3709は、IP選択部3706によって選択されたIPを、派生品選択部3708によって選択された派生品に変換する機能を有する。具体的には、派生品の選択が受け付けられると、選択IPのソースコードを選択派生品のソースコードに変換する。変換後のソースコードは、出力部から出力される。
(IPモデル生成処理手順)
図38は、IPモデル生成装置3700によるIPモデル生成処理手順を示すフローチャートである。本フローチャートは、IPモデル生成装置3700による自動実行の手順を示している。まず、IPモデル選択部3701により、流用対象IPモデルのIPモデル構成データの構成IDが選択されるのを待ち受ける(ステップS3801:No)。
選択された場合(ステップS3801:Yes)、構成データ抽出部3702により、その構成IDを手がかりとして流用対象IPモデルのIPモデル構成データをIPモデル構成DB2903から抽出する(ステップS3802)。
そして、抽出IPモデル構成データのIP(ブロック)が選択されたか否かを判断する(ステップS3803)。IPが選択されない場合(ステップS3803:No)、ステップS3807に移行する。IPが選択された場合(ステップS3803:Yes)、派生品リスト取得部3707により、選択IPの派生品リストを取得する(ステップS3804)。すでに取得済みである場合は、つぎのステップS3805に移行する。
そして、選択IPの派生品が選択されなかった場合(ステップS3805:No)、ステップS3807に移行する。一方、選択IPの派生品が選択された場合(ステップS3805:Yes)、IPモデル構成データ上の選択IPを派生品に変換する(ステップS3806)。
このあと、ステップS3807に移行する。ステップS3807では、選択終了入力されたか否かを判断する(ステップS3807)。選択終了入力がない場合(ステップS3807:No)、ステップS3803に戻る。一方、選択終了入力があった場合(ステップS3807:Yes)、IP抽出部3704により、ステップS3802で抽出されたIPモデル構成データ(派生品への変換があった場合はステップS3806による変換後のIPモデル構成データ)を構成するIP(派生品も含む)のソースコードおよび接続コードを抽出する(ステップS3808)。
そして、出力部3705により、抽出ソースコードおよび接続コードを出力する(ステップS3809)。これにより、IPモデル生成処理を終了する。なお、このあと、必要に応じて、ラッパを生成して、外部インターフェースと接続することとしてもよい。
以上説明したように、本実施の形態によれば、IPモデルの構成要素の種別を、インターフェース、レジスタ、ビヘイビア、ステートというたかだか4種類に分類するだけで、接続属性という単純な記述内容に局所化することができる。また、接続属性の組み合わせによりIPモデルを表現することができる。
したがって、IPモデルを構成するIP間の接続属性の再利用性の向上を図ることができる。また、各処理を分割し修正箇所を局所化することにより再利用性を向上することができる。また、この局所化により、派生品種の検証範囲の絞込みをおこなうことができる。したがって、テンプレートのように全品種を吸収する必要がなくなり、品種単位で爆発的にテンプレートコードが増大することも生じない。したがって、ソースコードの可読性が損なわれず、また、バグが伝播しないため、IPモデルの品質向上を図ることができる。
特に、時間概念の有無に依存しないモデル構造とし、時間概念や精度によりインターフェースやステートを必要に応じ選択可能とした。これにより、2重に開発していたモデルを共通化し、モデル開発工数、管理工数を削減することができる。
また、ツールに依存しないモデル構造とし、使用するツールに合わせてインターフェースを選択(差し替え)可能とした。これにより、ツールにより別々に開発していたモデルのコア部分を共通化し、モデル開発工数、管理工数を削減することができる。また、新規ツールへの組み込み時、インターフェースのみ更新すれば良いため、開発工数を削減することができる。
また、ターゲットに依存しないモデル構造とし、インターフェースの数、レジスタとビヘイビアの関連付け等、開発対象に応じて自由に構成可能とした。これにより、ライブラリ600の使用により、類似品種や派生品種の開発工数を削減することができる。
なお、本実施の形態で説明したIPモデル生成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むIPのソースコードと、前記各IP間の接続関係を示す接続コードと、を組み合わせたIPモデルを記録したコンピュータに読み取り可能な記録媒体。
(付記2)前記インターフェースおよび前記ステートは、時間概念の有無により差し替え可能であることを特徴とする付記1に記載の記録媒体。
(付記3)前記インターフェースおよび前記ステートが、時間概念を持つ記述である場合、前記ステートは、前記インターフェースからの時間情報の取得により、待機処理をおこなう記述であることを特徴とする付記2に記載の記録媒体。
(付記4)前記インターフェースおよび前記ステートが、時間概念を持たない記述である場合、前記ステートは、待機処理をおこなわない記述であることを特徴とする付記2に記載の記録媒体。
(付記5)前記IPはツールごとに用意され、同一ツールのIPにより前記IPモデルを構成することを特徴とする付記1に記載の記録媒体。
(付記6)前記各IPは、同種の派生品に差し替え可能であることを特徴とする付記1に記載の記録媒体。
(付記7)データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むIPのソースコードを記憶するIPデータベースと、前記各IP間の接続関係を示す接続コードを記憶する接続属性データベースと、前記IPと前記接続関係により定義されたIPモデルの構成をあらわす構成データを記憶するIPモデル構成データベースと、にアクセス可能なコンピュータを、
流用対象IPモデルの選択を受け付ける選択手段、
前記選択手段によって選択された流用対象IPモデルに関する構成データを前記IPモデル構成データベースから抽出する構成データ抽出手段、
前記構成データ抽出手段によって抽出された構成データにより定義されているIPのソースコードを前記IPデータベースから抽出するIP抽出手段、
前記構成データ抽出手段によって抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出する接続属性抽出手段、
前記IP抽出手段によって抽出されたIPのソースコードおよび前記接続属性抽出手段によって抽出された接続コードを前記流用対象IPモデルとして出力する出力手段、
として機能させることを特徴とするIPモデル生成プログラム。
(付記8)前記コンピュータを、
前記構成データ抽出手段によって抽出された構成データ内のIPの選択を受け付けるIP選択手段、
前記IP選択手段によって選択されたIPの派生品の選択を受け付ける派生品選択手段、
前記IP選択手段によって選択されたIPを、前記派生品選択手段によって選択された派生品に変換する変換手段として機能させ、
前記IP抽出手段は、
前記変換手段によって変換された派生品のソースコードを、前記IPデータベースから抽出することを特徴とする付記7に記載のIPモデル生成プログラム。
(付記9)データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むIPのソースコードを記憶するIPデータベースと、前記各IP間の接続関係を示す接続コードを記憶する接続属性データベースと、前記IPと前記接続関係により定義されたIPモデルの構成をあらわす構成データを記憶するIPモデル構成データベースと、にアクセス可能なIPモデル生成装置であって、
流用対象IPモデルの選択を受け付ける選択手段と、
前記選択手段によって選択された流用対象IPモデルに関する構成データを前記IPモデル構成データベースから抽出する構成データ抽出手段と、
前記構成データ抽出手段によって抽出された構成データにより定義されているIPのソースコードを前記IPデータベースから抽出するIP抽出手段と、
前記構成データ抽出手段によって抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出する接続属性抽出手段と、
前記IP抽出手段によって抽出されたIPのソースコードおよび前記接続属性抽出手段によって抽出された接続コードを前記流用対象IPモデルとして出力する出力手段と、
を備えることを特徴とするIPモデル生成装置。
(付記10)前記構成データ抽出手段によって抽出された構成データ内のIPの選択を受け付けるIP選択手段と、
前記IP選択手段によって選択されたIPの派生品の選択を受け付ける派生品選択手段と、
前記IP選択手段によって選択されたIPを、前記派生品選択手段によって選択された派生品に変換する変換手段と、を備え、
前記IP抽出手段は、
前記変換手段によって変換された派生品のソースコードを、前記IPデータベースから抽出することを特徴とする付記9に記載のIPモデル生成装置。
(付記11)データの入出力をあらわすインターフェース、前記データを保持するレジスタ、前記データに基づいて処理をおこなうビヘイビア、前記インターフェースからの時間情報に応じた待機処理をおこなうステートを含むIPのソースコードを記憶するIPデータベースと、前記各IP間の接続関係を示す接続コードを記憶する接続属性データベースと、前記IPと前記接続関係により定義されたIPモデルの構成をあらわす構成データを記憶するIPモデル構成データベースと、にアクセス可能なコンピュータが、
流用対象IPモデルの選択を受け付ける選択工程と、
前記選択工程によって選択された流用対象IPモデルに関する構成データを前記IPモデル構成データベースから抽出する構成データ抽出工程と、
前記構成データ抽出工程によって抽出された構成データにより定義されているIPのソースコードを前記IPデータベースから抽出するIP抽出工程と、
前記構成データ抽出工程によって抽出された構成データにより定義されている接続関係をあらわす接続コードを前記接続属性データベースから抽出する接続属性抽出工程と、
前記IP抽出工程によって抽出されたIPのソースコードおよび前記接続属性抽出工程によって抽出された接続コードを前記流用対象IPモデルとして出力する出力工程と、
を実行することを特徴とするIPモデル生成方法。
(付記12)前記コンピュータが、
前記構成データ抽出工程によって抽出された構成データ内のIPの選択を受け付けるIP選択工程と、
前記IP選択工程によって選択されたIPの派生品の選択を受け付ける派生品選択工程と、
前記IP選択工程によって選択されたIPを、前記派生品選択工程によって選択された派生品に変換する変換工程と、を実行し、
前記IP抽出工程は、
前記変換工程によって変換された派生品のソースコードを、前記IPデータベースから抽出することを特徴とする付記11に記載のIPモデル生成方法。
501 入力インターフェース
502 ビヘイビア
503 ステート
504 レジスタ
505 出力インターフェース
3700 IPモデル生成装置
2901 IPDB
2902 接続属性DB
2903 IPモデル構成DB
3701 IPモデル選択部
3702 構成データ抽出部
3703 接続属性抽出部
3704 IP抽出部
3705 出力部
3706 IP選択部
3707 派生品リスト取得部
3708 派生品選択部
3709 変換部

Claims (9)

  1. IPモデルの選択を受け付け、
    選択されたIPモデルに関する構成データをIPモデル構成データベースから抽出し、
    抽出された構成データに定義されたIPを識別するIDに基づいて、IPのIDとIPのソースコードとを対応付けて複数のIPのソースコードを記憶するIPデータベースから、前記IPのソースコードを抽出し、
    抽出された構成データに定義された接続コードを識別する接続コードIDに基づいて、前記IP間の接続関係を示す接続コードと接続コードIDとを対応付けて記憶する接続属性データベースから、前記接続コードを抽出し、
    抽出されたIPのソースコードおよび抽出された接続コードを前記IPモデルとして出力する、
    処理をコンピュータに実行させ、
    前記コンピュータは前記IPデータベースと、前記接続属性データベースと、前記IPと前記接続関係により定義された前記IPモデルの構成をあらわす前記構成データを記憶する前記IPモデル構成データベースと、前記IPの属性と前記IPのIDとを対応付けて記憶するIPテーブルと、前記接続コードの接続属性と前記接続コードIDとを対応付けて記憶する接続コードテーブルと、にアクセス可能であり、
    前記IPモデルはハードウェアの上位設計で利用される抽象度モデルであり、前記ハードウェアをモデル化することで得られ、
    各IPは前記IPモデルの構成要素であり、前記ハードウェアの機能の一つを表現しており、
    前記IPはデータの入出力機能をあらわすインターフェース、前記データを保持する機能をあらわすレジスタ、前記データに基づいて処理をおこなう機能をあらわすビヘイビア、および前記インターフェースからの時間情報に応じた待機処理をおこなう機能をあらわすステートを含む
    ことを特徴とするIPモデル生成プログラム。
  2. 抽出された構成データ内のIPの選択を受け付け、
    選択されたIPの派生品の選択を受け付け、
    選択されたIPを、選択された派生品に変換し、
    変換された派生品のソースコードを、前記IPデータベースから抽出する
    処理をコンピュータに実行させる請求項1に記載のIPモデル生成プログラム。
  3. 前記インターフェースおよび前記ステートは、時間概念の有無により差し替え可能であることを特徴とする請求項1に記載のIPモデル生成プログラム。
  4. 前記インターフェースおよび前記ステートが、時間概念を持つ記述である場合、前記ステートは、前記インターフェースからの時間情報の取得により、待機処理をおこなう記述であることを特徴とする請求項3に記載のIPモデル生成プログラム。
  5. 前記インターフェースおよび前記ステートが、時間概念を持たない記述である場合、前記ステートは、待機処理をおこなわない記述であることを特徴とする請求項3に記載のIPモデル生成プログラム。
  6. 前記IPはツールごとに用意され、同一ツールのIPにより前記IPモデルを構成することを特徴とする請求項1に記載のIPモデル生成プログラム。
  7. 前記各IPは、同種の派生品に差し替え可能であることを特徴とする請求項1に記載のIPモデル生成プログラム。
  8. コンピュータを備え、
    前記コンピュータは
    IPモデルの選択を受け付け、
    選択されたIPモデルに関する構成データをIPモデル構成データベースから抽出し、
    抽出された構成データに定義されたIPを識別するIDに基づいて、IPのIDとIPのソースコードとを対応付けて複数のIPのソースコードを記憶するIPデータベースから、前記IPのソースコードを抽出し、
    抽出された構成データに定義された接続コードを識別する接続コードIDに基づいて、前記IP間の接続関係を示す接続コードと接続コードIDとを対応付けて記憶する接続属性データベースから、前記接続コードを抽出し、
    抽出されたIPのソースコードおよび抽出された接続コードを前記IPモデルとして出力する、
    処理を実行し、
    前記コンピュータは前記IPデータベースと、前記接続属性データベースと、前記IPと前記接続関係により定義された前記IPモデルの構成をあらわす前記構成データを記憶する前記IPモデル構成データベースと、前記IPの属性と前記IPのIDとを対応付けて記憶するIPテーブルと、前記接続コードの接続属性と前記接続コードIDとを対応付けて記憶する接続コードテーブルと、にアクセス可能であり、
    前記IPモデルはハードウェアの上位設計で利用される抽象度モデルであり、前記ハードウェアをモデル化することで得られ、
    各IPは前記IPモデルの構成要素であり、前記ハードウェアの機能の一つを表現しており、
    前記IPはデータの入出力機能をあらわすインターフェース、前記データを保持する機能をあらわすレジスタ、前記データに基づいて処理をおこなう機能をあらわすビヘイビア、および前記インターフェースからの時間情報に応じた待機処理をおこなう機能をあらわすステートを含む
    ことを特徴とするIPモデル生成装置。
  9. IPモデルの選択を受け付け、
    選択されたIPモデルに関する構成データをIPモデル構成データベースから抽出し、
    抽出された構成データに定義されたIPを識別するIDに基づいて、IPのIDとIPのソースコードとを対応付けて複数のIPのソースコードを記憶するIPデータベースから、前記IPのソースコードを抽出し、
    抽出された構成データに定義された接続コードを識別する接続コードIDに基づいて、前記IP間の接続関係を示す接続コードと接続コードIDとを対応付けて記憶する接続属性データベースから、前記接続コードを抽出し、
    抽出されたIPのソースコードおよび抽出された接続コードを前記IPモデルとして出力する、
    処理をコンピュータに実行させ、
    前記コンピュータは前記IPデータベースと、前記接続属性データベースと、前記IPと前記接続関係により定義された前記IPモデルの構成をあらわす前記構成データを記憶する前記IPモデル構成データベースと、前記IPの属性と前記IPのIDとを対応付けて記憶するIPテーブルと、前記接続コードの接続属性と前記接続コードIDとを対応付けて記憶する接続コードテーブルと、にアクセス可能であり、
    前記IPモデルはハードウェアの上位設計で利用される抽象度モデルであり、前記ハードウェアをモデル化することで得られ、
    各IPは前記IPモデルの構成要素であり、前記ハードウェアの機能の一つを表現しており、
    前記IPはデータの入出力機能をあらわすインターフェース、前記データを保持する機能をあらわすレジスタ、前記データに基づいて処理をおこなう機能をあらわすビヘイビア、および前記インターフェースからの時間情報に応じた待機処理をおこなう機能をあらわすステートを含む
    ことを特徴とするIPモデル生成方法。
JP2009038525A 2009-02-20 2009-02-20 Ipモデル生成プログラム、ipモデル生成装置、およびipモデル生成方法 Expired - Fee Related JP5521349B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009038525A JP5521349B2 (ja) 2009-02-20 2009-02-20 Ipモデル生成プログラム、ipモデル生成装置、およびipモデル生成方法
US12/626,989 US8881096B2 (en) 2009-02-20 2009-11-30 Computer product, IP model generating apparatus, and IP model generating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009038525A JP5521349B2 (ja) 2009-02-20 2009-02-20 Ipモデル生成プログラム、ipモデル生成装置、およびipモデル生成方法

Publications (2)

Publication Number Publication Date
JP2010191920A JP2010191920A (ja) 2010-09-02
JP5521349B2 true JP5521349B2 (ja) 2014-06-11

Family

ID=42632029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009038525A Expired - Fee Related JP5521349B2 (ja) 2009-02-20 2009-02-20 Ipモデル生成プログラム、ipモデル生成装置、およびipモデル生成方法

Country Status (2)

Country Link
US (1) US8881096B2 (ja)
JP (1) JP5521349B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111506966B (zh) * 2020-04-20 2024-03-22 成都飞机工业(集团)有限责任公司 工艺协调模型的判别方法、装置、电子设备和存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970875B1 (en) * 1999-12-03 2005-11-29 Synchronicity Software, Inc. IP library management system
JP2001202397A (ja) * 2000-01-20 2001-07-27 Toshiba Corp システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法
US7475000B2 (en) * 2002-04-25 2009-01-06 Arc International, Plc Apparatus and method for managing integrated circuit designs
JP4153732B2 (ja) * 2002-06-19 2008-09-24 株式会社東芝 ハードウェア動作記述変換方法及びそのためのプログラム
JP2006163523A (ja) * 2004-12-02 2006-06-22 Canon Inc 動作モデル生成方法および動作モデル生成方法
JP5163308B2 (ja) * 2008-06-23 2013-03-13 富士通セミコンダクター株式会社 Ipモデル生成装置、ipモデル生成方法、およびipモデル生成プログラム

Also Published As

Publication number Publication date
US20100218166A1 (en) 2010-08-26
JP2010191920A (ja) 2010-09-02
US8881096B2 (en) 2014-11-04

Similar Documents

Publication Publication Date Title
Fox et al. An R companion to applied regression
US6580440B1 (en) System and method for automatically creating and updating a graphical user interface
US8972930B2 (en) Generating text manipulation programs using input-output examples
US6289254B1 (en) Parts selection apparatus and parts selection system with CAD function
US8015203B2 (en) Document recognizing apparatus and method
US6910200B1 (en) Method and apparatus for associating selected circuit instances and for performing a group operation thereon
US6026220A (en) Method and apparatus for incremntally optimizing a circuit design
US20030090473A1 (en) Multiple screen automatic programming interface
US20080195377A1 (en) Method, device, and program product for verifying translation in resource file
WO1993023817A9 (en) Data interchange system
WO1993023817A1 (en) Data interchange system
US8996357B2 (en) Method for generating diagrams, and information processing apparatus for same
US20070203691A1 (en) Translator support program, translator support device and translator support method
JP3577400B2 (ja) システム設計装置及びデータウエアハウス設計システム
US10839124B1 (en) Interactive compilation of software to a hardware language to satisfy formal verification constraints
Chetverikov Detecting defects in texture
JP5521349B2 (ja) Ipモデル生成プログラム、ipモデル生成装置、およびipモデル生成方法
US6968518B2 (en) Method of resolving missing graphical symbols in computer-aided integrated circuit design
US6950995B2 (en) Method of resolving mismatched graphical symbols in computer-aided integrated circuit design
JP2010039751A (ja) ソフトウェア開発システム
JP5163308B2 (ja) Ipモデル生成装置、ipモデル生成方法、およびipモデル生成プログラム
JP4387324B2 (ja) プロパティ変換装置
JP2020115246A (ja) 生成装置、ソフトウェアロボットシステム、生成方法及び生成プログラム
JP2005202612A (ja) データベース生成プログラム作成装置
US7613709B2 (en) System and method for editing operations of a text object model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130909

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140324

R150 Certificate of patent or registration of utility model

Ref document number: 5521349

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees