(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-19
(45)【発行日】2024-12-27
(54)【発明の名称】デジタル回路設計を支援する装置、デジタル回路設計を支援する方法、および、デジタル回路設計を支援するプログラム
(51)【国際特許分類】
G06F 30/32 20200101AFI20241220BHJP
【FI】
G06F30/32
(21)【出願番号】P 2024504086
(86)(22)【出願日】2022-03-02
(86)【国際出願番号】 JP2022008868
(87)【国際公開番号】W WO2023166609
(87)【国際公開日】2023-09-07
【審査請求日】2024-01-19
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】深井 哲人
(72)【発明者】
【氏名】石山 悠太
【審査官】合田 幸裕
(56)【参考文献】
【文献】特開2010-262412(JP,A)
【文献】特開2001-344298(JP,A)
【文献】国際公開第2021/131572(WO,A1)
【文献】特開2011-258124(JP,A)
【文献】特開2012-089054(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 - 30/398
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
デジタル回路設計を支援する装置であって、
メモリマップを生成するメモリマップ生成部と、
前記メモリマップに基づいて、ハードウェア記述を生成するハードウェア記述生成部とを備え、
前記ハードウェア記述生成部は、外部回路が前記メモリマップの回路と通信するためのポートの記述を生成し、
前記ポートの記述は、前記メモリマップに含まれるレジスタのバスを経由する書込回路および読込回路とは別の回路の記述である、装置。
【請求項2】
前記ポートの記述は、前記レジスタの現在値を、前記レジスタ単位で読み出すためのポートの記述を含む、請求項1に記載の装置。
【請求項3】
前記ポートの記述は、前記レジスタに対して前記読込回路を介した読込処理が発生したときに、前記読込回路に出力する値を入力するためのポートの記述を含む、請求項1または2に記載の装置。
【請求項4】
前記ポートの記述は、前記レジスタに更新値を入力するためのポートの記述を含む、請求項1~3のいずれか1項に記載の装置。
【請求項5】
前記ポートの記述は、前記レジスタに対して前記書込回路を介した書込処理が発生したときに、前記書込処理の発生を示す信号を前記外部回路に出力するためのポートの記述を含む、請求項1~4のいずれか1項に記載の装置。
【請求項6】
前記ポートの記述は、前記書込回路から入力された値を前記外部回路に出力するためのポートの記述を含む、請求項1~5のいずれか1項に記載の装置。
【請求項7】
前記ポートの記述は、前記レジスタに対して前記読込回路を介した読込処理が発生したときに、前記読込処理の発生を示す信号を前記外部回路に出力するためのポートの記述を含む、請求項1~6のいずれか1項に記載の装置。
【請求項8】
前記レジスタのオプションの入力を受け付けるインターフェイスをさらに備え、
前記メモリマップは、前記オプションを含み、
前記ハードウェア記述生成部は、前記オプションに基づいて、前記ポートの記述を生成する、請求項1~7のいずれか1項に記載の装置。
【請求項9】
前記オプションは、前記メモリマップに前記レジスタを生成しないためのオプションを含む、請求項8に記載の装置。
【請求項10】
コンピュータによって実行されるデジタル回路設計を支援する方法であって、
メモリマップを生成するステップと、
前記メモリマップに基づいて、ハードウェア記述を生成するステップとを含み、
前記ハードウェア記述を生成するステップは、外部回路が前記メモリマップの回路と通信するためのポートの記述を生成するステップを含み、
前記ポートの記述は、前記メモリマップに含まれるレジスタのバスを経由する書込回路および読込回路とは別の回路の記述である、方法。
【請求項11】
デジタル回路設計を支援するプログラムであって、
メモリマップを生成するステップと、
前記メモリマップに基づいて、ハードウェア記述を生成するステップとをコンピュータに実行させ、
前記ハードウェア記述を生成するステップは、外部回路が前記メモリマップの回路と通信するためのポートの記述を生成するステップを含み、
前記ポートの記述は、前記メモリマップに含まれるレジスタのバスを経由する書込回路および読込回路とは別の回路の記述である、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、デジタル回路設計を支援する技術に関し、より特定的には、各種ハードウェア記述を自動生成する技術に関する。
【背景技術】
【0002】
デジタル回路等のハードウェア設計の分野において、メモリマップまたはレジスタマップと呼ばれる、アドレスと記憶領域(レジスタ)の対をなした概念が存在する。メモリマップに含まれる各レジスタは、W(書込可:ライトオンリー)、R(読込可:リードオンリー)、RW(読書可)等の属性の他に、それ以外の様々な機能を有する場合がある。
【0003】
ハードウェアの設計過程では、一般的に、まずメモリマップが作成され、メモリマップ内で定義された各レジスタの属性および機能定義を元にハードウェア記述が作成される。さらに、ハードウェア記述に基づいて、ハードウェアが製造される。ハードウェア記述言語によっては、メモリマップで定義された各レジスタの属性情報等に基づいて、ハードウェア記述を自動生成する技術が存在する。
【0004】
従来のハードウェア記述の自動生成技術は、レジスタの主たる属性であるW(書込可)、R(読込可)、RW(読書可)の記述の生成にしか対応していなかった。そのため、書き込みを行う対象のレジスタと読み込みを行う対象のレジスタが異なる回路、または、通常の読込回路または書込回路とは異なる回路からのアクセスによるレジスタの書き換えが発生する回路といった特殊機能を有する回路のハードウェア記述を自動生成することはできなかった。その結果、これらの特殊機能を実現するには、ユーザが自動生成されたハードウェア記述に特殊機能の記述を加筆修正する必要があった。
【0005】
ハードウェア記述に手動での加筆修正を行う場合、特殊機能も実現可能になるが、一方で、ハードウェアの修正等が発生した場合に、ドキュメントまたは回路(ハードウェア記述)等への特殊機能の記述の反映漏れ、および、特殊機能の記述の反映作業による工数の増大が発生し得る。そのため、ハードウェア設計をより効率的に支援する技術が必要とされている。
【0006】
デジタル回路設計を支援する技術に関し、例えば、特開2005-309584号公報(特許文献1)は、「ハードウェア記述言語によって予め定義され、かつレジスタと組み合わせ回路との組み合わせからなるデジタル回路の内部における布線と、デジタル回路と外部との間の布線との双方もしくは何れか一方を示す未定の語を含んで構成されたテンプレートが予め登録されたデータベースと、内部における布線と、デジタル回路と外部との間の布線とがレジスタに対する情報の引き渡しとして予め定義されたデジタル回路の設計仕様が格納された記憶手段と、未定の語に設計仕様として定義されたレジスタに対する情報の引き渡しを示す語を代入することによって、デジタル回路をハードウェア記述言語で示すステートメントの列を生成する仕様反映手段とを備えて構成される」デジタル回路設計支援装置を開示している([要約]参照)。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1に開示された技術によると、読込回路または書込回路以外の特殊機能の回路についてのハードウェア記述を自動生成することができない。したがって、読込回路または書込回路以外の特殊機能の回路についてのハードウェア記述を自動生成するための技術が必要とされている。
【0009】
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、読込回路または書込回路以外の特殊機能の回路についてのハードウェア記述を自動生成するための技術を提供することにある。
【課題を解決するための手段】
【0010】
ある実施の形態に従うと、デジタル回路設計を支援する装置が提供される。装置は、メモリマップを生成するメモリマップ生成部と、メモリマップに基づいて、ハードウェア記述を生成するハードウェア記述生成部とを備える。ハードウェア記述生成部は、外部回路がメモリマップの回路と通信するためのポートの記述を生成する。ポートの記述は、メモリマップに含まれるレジスタのバスを経由する書込回路および読込回路とは別の回路の記述である。
【発明の効果】
【0011】
ある実施の形態に従うと、読込回路または書込回路以外の特殊機能の回路についてのハードウェア記述を自動生成することが可能である。
【0012】
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本開示に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0013】
【
図1】ある実施の形態に従うハードウェア設計支援のための装置100の機能の概要の一例を示す図である。
【
図2】装置100のハードウェア構成の一例を示す図である。
【
図3】ソフトウェア300の機能ブロックの一例を示す図である。
【
図4】UI(User Interface)304の第1の例を示す図である。
【
図6】レジスタ設定項目530に入力可能な設定値の一例を示す図である。
【
図7】ハードウェア記述における最上位階層の記述の一例を示す図である。
【
図8】ハードウェア記述におけるバスプロトコル制御の記述の一例を示す図である。
【
図9】RW属性のレジスタ121のハードウェア記述の一例を示す図である。
【
図10】ハードウェア記述900に対応する回路の一例を示す模式図である。
【
図11】W属性のレジスタ121のハードウェア記述の一例を示す図である。
【
図12】ハードウェア記述1100に対応する回路の一例を示す模式図である。
【
図14】オプション設定項目533の値が「sp」であるときのレジスタ121のハードウェア記述の第1の例を示す図である。
【
図15】ハードウェア記述1400に対応する回路の一例を示す模式図である。
【
図16】オプション設定項目533の値が「sp」であるときのレジスタ121のハードウェア記述の第2の例を示す図である。
【
図17】ハードウェア記述1600に対応する回路の一例を示す模式図である。
【
図18】オプション設定項目533の値が「sn」であるときのレジスタ121のハードウェア記述の一例を示す図である。
【
図19】ハードウェア記述1800に対応する回路の一例を示す模式図である。
【
図20】装置100によるハードウェア記述の生成手順の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0015】
<A.デジタル回路設計を支援する装置の機能の概要>
図1は、本実施の形態に従うハードウェア設計支援のための装置100の機能の概要の一例を示す図である。装置100は、ハードウェア設計支援用のソフトウェア300を実行することで、読込回路または書込回路以外の特殊機能の回路についての記述を含むハードウェア記述を生成する。
【0016】
なお、本明細書において、「装置」との用語は、1または複数の装置からなる構成、サーバ、クラウド環境に構築された仮想マシンもしくはコンテナ、または、これらの少なくとも一部から構成されるシステムを包含する。また、装置は、パーソナルコンピュータ、ワークステーション、サーバ装置、タブレット、スマートフォン等の情報処理装置を含んでいてもよく、また、これらの組合せであってもよい。ある局面において、装置100は、ディスプレイおよびキーボード等の入出力機器と接続されて、ユーザに使用されてもよい。他の局面において、装置100は、ネットワークを介して、クラウドサービスまたはウェブアプリケーションとして、ユーザに各種機能を提供してもよい。この場合、ユーザは、自身の端末にインストールされたブラウザまたはクライアントソフトウェアを介して、装置100の機能を使用し得る。
【0017】
また、本明細書において、「ハードウェア記述」または「記述」との用語は、ハードウェア記述言語(HDL: Hardware Description Language)によって記述された、回路全体の記述、回路の一部分もしくは一機能の記述、または、これらの記述を含むファイル(ハードウェア記述ファイル)を意味する。
【0018】
装置100(ソフトウェア300)は、主に3つの機能を提供する。第1の機能は、メモリマップに含まれる各レジスタに対して、読込回路または書込回路以外の特殊機能の回路を定義、および、レジスタの有無を定義するための第1の機能である。第2の機能は、読込回路または書込回路以外の特殊機能の回路を定義、および、レジスタの有無の情報を含むメモリマップを表すファイルを生成する機能である。第3の機能は、メモリマップを表すファイルから、読込回路または書込回路以外の特殊機能の回路、および/または、レジスタを内包しない回路を含むハードウェア記述を自動生成する機能である。ここでの「特殊機能の回路」とは、読込回路または書込回路と異なり、バスプロトコル制御回路およびバスを介さずに、レジスタと通信するポート(
図9~
図19に示される各ポート)等である。
【0019】
まず、第1の機能(メモリマップに含まれる各レジスタに対して、読込回路または書込回路以外の特殊機能の回路を定義、および、レジスタの有無を定義するための機能)について説明する。
【0020】
回路110は、ユーザが設計する予定の回路であり、主な構成として回路120およびユーザ回路130を含む。回路120は、装置100により生成されるメモリマップに基づいて設計される回路である。ユーザ回路130は、ユーザ定義の回路であり、必要に応じて回路120と通信し得る。
【0021】
回路120は、1つ以上のレジスタ121と、バスプロトコル制御回路122とを含む。ある局面において、レジスタ121は、1つ以上のフリップフロップ回路を含むレジスタであってもよい。この場合、1つのレジスタ121は、あるまとまった機能等を示す「レジスタの単位」として扱われ得る。他の局面において、レジスタ121は、1つのフリップフロップ回路を示していてもよい。この場合、複数のレジスタ121をまとめたものが、あるまとまった機能等を示す「レジスタの単位」として扱われ得る。バスプロトコル制御回路122は、レジスタ121に通信機能を提供する回路である。レジスタ121が、R属性(読込可)、W属性(書込可)またはRW属性(読書可)のいずれかの属性を備える場合、他の回路は、バスプロトコル制御回路122およびバスを介して、レジスタ121からのデータの読み込み、レジスタ121へのデータの書き込みを実行し得る。
【0022】
レジスタ121に対するR属性およびW属性の処理は、全てバスプロトコル制御回路122を介して実行される。しかしながら、回路110が備えるべき機能によっては、ユーザ回路130は、バスプロトコルを使用せずに(バスプロトコル制御回路122およびバスを経由せずに)レジスタ121と通信する必要がある。そこで、装置100は、ユーザに対して、メモリマップに含まれる各レジスタ121の各々について、R属性、W属性、RW属性に加えて、特殊機能を設定するための手段を提供する。ユーザは、UI304(
図3参照)を介して、R属性、W属性、RW属性に加えて、レジスタ121の各々に特殊機能を設定することができる。これにより、装置100は、R属性、W属性、RW属性の回路(回路140)に加えて、従来のハードウェア記述の自動生成技術では自動生成することができなかった回路145を生成することができる。装置100は、一例として、レジスタ121またはレジスタ121に含まれるビットごとのオプションを受け付けることで、特殊機能の回路の生成の有無を決定してもよい。
【0023】
さらに、装置100は、各レジスタ121に対するオプションを受け付けることで、レジスタ121を内包しない回路を生成し得る。レジスタ121を内包しない回路とは、記憶領域(フリップフロップ回路)を有さない回路である。ただし、レジスタ121を内包しない回路は、記憶領域以外のバスプロトコル制御回路、読込回路、書込回路、その他の特殊機能の回路を備えていてもよい。
【0024】
次に、第2の機能(読込回路または書込回路以外の特殊機能の回路を定義、および、レジスタの有無の情報を含むメモリマップを表すファイルを生成するための機能)について説明する。
【0025】
装置100は、第1の機能により定義されたメモリマップを表すファイルを生成する。ここでの「メモリマップを表すファイル」とは、例えば、IP-XACTファイル(xml(Extensible Markup Language)ファイル)である。IP-XACTファイルは、IEEE-1685規格(IP-XACT)によって定められた規格に従うファイルである。装置100は、R属性、W属性、RW属性以外の特殊機能を含む、および/または、一部または全てのレジスタ121を内包しないメモリマップを表すIP-XACTファイルを生成する。こうすることで、装置100は、メモリマップに含まれる特殊機能の記述についても、ハードウェア構成に依存せずに、再利用性を高めることができる。
【0026】
最後に、第3の機能(メモリマップを表すファイルから、読込回路または書込回路以外の特殊機能の回路、および/または、レジスタを内包しない回路を含むハードウェア記述を自動生成するための機能)について説明する。
【0027】
装置100は、特殊機能の記述を含むメモリマップを表すファイルを解釈し、ハードウェア記述を生成する。当該ハードウェア記述は、R属性、W属性、RW属性以外の特殊機能、および/または、レジスタ121の内包の有無等の従来自動生成できなかった記述も含む。
【0028】
装置100は、上記の3つの機能を備えることで、ユーザがメモリマップの記述を変更した場合でも、特殊機能、および/または、レジスタ121の内包の有無等を表す記述を自動生成し得る。これにより、装置100は、ハードウェアの修正等が発生した場合に、ドキュメントまたは回路(ハードウェア記述)等への特殊機能の記述の反映漏れ、および、反映作業による工数の増大を抑制し得る。
【0029】
<B.装置のハードウェアおよびソフトウェアの構成>
図2は、装置100のハードウェア構成の一例を示す図である。
図2を参照して、装置100のハードウェア構成について説明する。装置100は、主たる構成として、プロセッサ201と、メモリ202と、ストレージ203と、出力IF(Interface)204と、入力IF205と、通信IF206と、外部機器IF207と、内部バス208とを備える。ある局面において、装置100は、
図2に示されるハードウェアの組み合わせによりサーバ、クラスタ、クラウド環境として実現されてもよい。
【0030】
プロセッサ201は、装置100の各種機能を実現するためのソフトウェア300を実行し得る。プロセッサ201は、例えば、少なくとも1つの集積回路によって構成される。集積回路は、例えば、少なくとも1つのCPU(Central Processing Unit)、少なくとも1つのGPU(Graphics Processing Unit)、少なくとも1つのFPGA(Field Programmable Gate Array)、少なくとも1つのASIC(Application Specific Integrated Circuit)またはこれらの組み合わせによって構成されてもよい。
【0031】
メモリ202は、プロセッサ201によって実行されるソフトウェア300と、プロセッサ201によって参照されるデータとを格納する。ある局面において、メモリ202は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)等によって実現されてもよい。
【0032】
ストレージ203は、不揮発性メモリであり、プロセッサ201によって実行されるソフトウェア300およびプロセッサ201によって参照されるデータを格納してもよい。その場合、プロセッサ201は、ストレージ203からメモリ202に読み出されたソフトウェア300を実行し、ストレージ203からメモリ202に読み出されたデータを参照する。ある局面において、ストレージ203は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)またはフラッシュメモリ等によって実現されてもよい。
【0033】
出力IF204は、ブラウン管ディスプレイ、液晶ディスプレイまたは有機EL(Electro-Luminescence)ディスプレイ等の任意の出力装置に接続され得る。ある局面において、出力IF204は、USB(Universal Serial Bus)端子、D-sub端子、DVI(Digital Visual Interface)端子およびHDMI(登録商標)(High-Definition Multimedia Interface)端子等によって実現されてもよい。
【0034】
入力IF205は、キーボード、マウス、タッチパッドまたはゲームパッド等の任意の入力装置に接続され得る。ある局面において、入力IF205は、USB端子、PS/2端子およびBluetooth(登録商標)モジュール等によって実現されてもよい。
【0035】
通信IF206は、有線または無線のネットワーク機器と接続される。ある局面において、通信IF206は、有線LAN(Local Area Network)ポートおよびWi-Fi(登録商標)(Wireless Fidelity)モジュール等によって実現されてもよい。他の局面において、通信IF206は、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP(User Datagram Protocol)等の通信プロトコルを用いてデータを送受信してもよい。
【0036】
外部機器IF207は、プリンタ、スキャナおよび外付けHDD等の任意の外部機器に接続され得る。ある局面において、外部機器IF207は、USB端子等によって実現されてもよい。
【0037】
内部バス208は、プロセッサ201、メモリ202、ストレージ203、出力IF204、入力IF205と、通信IF206および外部機器IF207の一部または全てを、直接的にまたは間接的に相互に通信可能に接続する。
【0038】
図3は、ソフトウェア300の機能ブロックの一例を示す図である。
図3を参照して、ソフトウェア300が備える機能ブロックについて説明する。ある局面において、
図3に示される各機能ブロックの一部または全ては、プログラムモジュール、ライブラリ、独立して相互に通信可能なサービスとして実現されてもよい。
【0039】
ソフトウェア300は、主たる構成として、メモリマップ生成部301と、IP-XACT生成部302と、ハードウェア記述生成部303と、UI304とを備える。
【0040】
メモリマップ生成部301は、UI304を介して入力された各種設定から、メモリマップを生成する。生成されるメモリマップは、1つ以上のレジスタ121を含み得る。また、各レジスタ121には、初期値、属性(R属性、W属性、RW属性)、オプション(特殊機能の有無、レジスタ121(記憶領域)の有無)が設定される。メモリマップ生成部301は、生成したメモリマップをIP-XACT生成部302に出力する。
【0041】
IP-XACT生成部302(中間ファイル生成部とも呼べる)は、メモリマップ生成部301が出力したメモリマップをIP-XACTファイル(xmlファイル)に変換する。IP-XACT生成部302は、生成したIP-XACTファイルをハードウェア記述生成部303に出力する。生成されるIP-XACTファイルは、レジスタ121の初期値、属性、オプションの情報を含む。ある局面において、IP-XACT生成部302は、メモリマップからIP-XACT(xml)ファイル以外の任意のフォーマットのファイルを生成してもよい。この場合、装置100は、生成されたIP-XACT(xml)ファイル以外のフォーマットのファイルから、ハードウェア記述を生成する。
【0042】
ハードウェア記述生成部303は、IP-XACTファイル(xmlファイル)からハードウェア記述を生成する。生成されるハードウェア記述は、各レジスタ121の属性(R属性、W属性、RW属性)に加えて、オプションで指定された機能を実現するための記述を含む。ある局面において、ハードウェア記述生成部303は、メモリマップからハードウェア記述を直接生成してもよい。
【0043】
UI304は、メモリマップの各種設定を受付可能に構成される。ソフトウェア300がウェブアプリケーションである場合、装置100は、UI304をユーザの端末に配信する。端末は、ブラウザまたはクライアントソフトウェアを用いてUI304をディスプレイに表示し得る。また、UI304は、生成されたIP-XACTファイルおよびハードウェア記述の両方または片方を出力する。UI304は、ユーザからの操作に基づいて、生成されたIP-XACTファイルおよびハードウェア記述の両方を出力するか、いずれか片方を出力するかを決定してもよい。また、UI304は、ハードウェア記述を1つまたは複数のファイル(ハードウェア記述ファイル)として出力してもよい。
【0044】
<C.UI304の一例>
次に
図4~
図6を参照して、装置100(ソフトウェア300)が提供するUI304の一例について説明する。ユーザは、UI304を介して、初期値、属性(R属性、W属性、RW属性)に加えて、オプション(特殊機能の有無、レジスタ121の有無)を入力し得る。
【0045】
図4は、UI304の第1の例を示す図である。画面400は、UI304の一部である。画面400は、レジスタマップの最上位階層およびバスプロトコル情報等の設定画面である。画面400は、インターフェイス設定項目401と、モジュール名設定項目402と、データ幅設定項目403と、レジスタマップ設定項目404と、ポート設定項目405とを含む。各設定項目は、選択式の設定項目であってもよいし、入力式の設定項目であってもよい。
【0046】
インターフェイス設定項目401は、レジスタ121にアクセスするためのバスプロトコル情報を設定するための項目である。バスプロトコル情報は、一例として、AXI4-LiteおよびAvalon等を含み得る。ハードウェア記述生成部303は、インターフェイス設定項目401に設定されたバスプロトコル情報に基づいて、バスプロトコルに必要な信号群の記述を生成する。
【0047】
モジュール名設定項目402は、レジスタマップの最上位のモジュール名を設定するための項目である。
【0048】
データ幅設定項目403は、レジスタ121のデータ幅を設定するための項目である。
レジスタマップ設定項目404は、レジスタ121の初期値、属性、オプションを設定するための項目である。レジスタマップ設定項目404は、メモリマップごとに複数のレジスタ121の設定を受付可能であってもよいし、メモリマップごとに1つのレジスタ121の設定を受付可能であってもよい。ある局面において、レジスタマップ設定項目404が選択されたことに基づいて、ソフトウェア300は、画面500をダイアログまたはウィンドウとして装置100のディスプレイに表示してもよい。また、他の局面において、レジスタマップ設定項目404が選択されたことに基づいて、ソフトウェア300は、画面400を画面500に遷移させてもよい。
【0049】
ポート設定項目405は、ユーザ回路130に接続されるポートの種類である。ポート設定項目405で設定されるポートは、標準的な読込回路および書込回路以外の特殊機能の回路として使用され得る。
【0050】
図5は、UI304の第2の例を示す図である。画面500は、UI304の一部である。画面500は、各レジスタ121の設定画面である。装置100は、画面400,500を同時にディスプレイに表示してもよい。また、装置100は、ユーザの操作に基づいて、画面400および画面500を切り替えてディスプレイに表示してもよい。
【0051】
画面500は、アドレス設定項目510と、レジスタ名設定項目520と、レジスタ設定項目530とを含む。アドレス設定項目510は、絶対アドレス設定項目511と、オフセットアドレス設定項目512とを含む。また、レジスタ設定項目530は、属性設定項目531と、初期値設定項目532と、オプション設定項目533とを含む。
【0052】
アドレス設定項目510は、レジスタ121の先頭アドレスを設定するための項目である。ユーザは、絶対アドレスをレジスタ121の先頭アドレスとして絶対アドレス設定項目511に入力し得る。また、ユーザは、基準となるアドレスからのオフセットアドレスをレジスタ121の先頭アドレスとしてオフセットアドレス設定項目512に入力し得る。なお、ユーザは、絶対アドレス設定項目511およびオフセットアドレス設定項目512の片方のみにレジスタ121のアドレスを入力してもよいし、両方にレジスタ121のアドレスを入力してもよい。
【0053】
レジスタ名設定項目520は、レジスタ121の名称を設定するための項目である。レジスタ名設定項目520に設定されたレジスタ名は、IP-XACTファイルおよびハードウェア記述の生成に使用される。ある局面において、ソフトウェア300は、メモリマップからハードウェア記述を直接生成してもよい。
【0054】
レジスタ設定項目530は、レジスタ121の各種情報を設定するための項目である。属性設定項目531は、レジスタ121にR属性、W属性、RW属性のいずれかを設定するための項目である。初期値設定項目532は、レジスタ121の初期値(レジスタ121がリセットされたときにレジスタ121に入力される値)を設定するための項目である。初期値設定項目532は、レジスタ121の各ビットに初期値を設定可能に構成される。オプション設定項目533は、レジスタ121に特殊機能の回路を生成するか否か、メモリマップがレジスタ121を内包するか否か等を設定するための項目である。
【0055】
図6は、レジスタ設定項目530に入力可能な設定値の一例を示す図である。属性設定項目531は、「RW(読書可)」、「R(読込可)」、「W(書込可)」のいずれか1つを設定可能に構成される。初期値設定項目532は、各ビットに「0」または「1」を設定可能に構成される。オプション設定項目533は、一例として、「オプションなし」、「rc」、「rs」、「sp」、「sn」を設定可能に構成される。なお、
図6に示されるオプション設定項目533の選択項目は一例であり、オプション設定項目533の選択項目はこれに限られる訳ではない。ある局面において、オプション設定項目533は、特殊機能の回路、レジスタ121の有無の組み合わせに基づいて、
図6に例示されるオプション以外の任意のオプションを設定可能に構成されてもよい。また、オプションの種類は、「オプションなし」、「rc」、「rs」、「sp」、「sn」以外の英数字等の組み合わせで表現されてもよい。
【0056】
「sp」は、
図15または
図17に記載されるポートを有する回路を生成するためのオプションである。「sn」は、「sp」の構造からレジスタ121を排除した内部構造を有する回路を生成するためのオプションである。レジスタ121を排除した内部構造を有する回路とは、フリップフロップ回路による記憶領域を有さない回路であり、書込回路および読込回路は有していてもよい。「rs」は、「sp」と同じ回路を生成し、さらに、上位階層で読込時にレジスタ値を0にクリアする補助コードを自動生成するオプションである。「rs」は、「sp」と同じ回路を生成し、さらに、上位階層で読込時にレジスタ値を1にセットする補助コードを自動生成するオプションである。
【0057】
<D.生成されるハードウェア記述および回路の一例>
次に、
図7~
図19を参照して、装置100(ソフトウェア300)により生成されるハードウェア記述および当該ハードウェア記述に対応する回路について説明する。
図7および
図8に示されるハードウェア記述700,800は、主に画面400の設定内容に基づいて生成される(属性情報等は画面500の設定内容を含み得る)。
図9~19に示されるハードウェア記述および回路は、主に画面500の設定内容に基づいて生成される。
【0058】
図7は、ハードウェア記述における最上位階層の記述の一例を示す図である。ハードウェア記述生成部303は、画面400,500の設定内容に基づいて、
図7に示されるようなメモリマップの最上位階層のハードウェア記述700を生成する。
【0059】
図8は、ハードウェア記述におけるバスプロトコル制御の記述の一例を示す図である。ハードウェア記述生成部303は、インターフェイス設定項目401の設定内容に基づいて、
図8に示されるようなバスプロトコル制御のハードウェア記述800を生成する。バスプロトコル制御の記述は、メモリマップのサブ階層のハードウェア記述として生成される。
【0060】
装置100(ソフトウェア300)は、さらに、メモリマップのサブ階層のハードウェア記述の1つとして、レジスタ121のハードウェア記述を生成する。当該レジスタ121のハードウェア記述は、レジスタ121の属性、初期値、オプションの設定内容を含む。以下、レジスタ設定項目530の設定内容ごとに、レジスタ121のハードウェア記述および当該レジスタ121のハードウェア記述に対応する回路について説明する。
【0061】
(a.RW属性の回路例)
図9および
図10を参照して、属性設定項目531の値が「RW(読書可)」であるときの、レジスタ121のハードウェア記述および当該レジスタ121のハードウェア記述に対応する回路の一例について説明する。なお、オプション設定項目533の値は、「オプションなし」であるとする。
【0062】
図9は、RW属性のレジスタ121のハードウェア記述の一例を示す図である。ハードウェア記述900は、属性設定項目531の値が「RW(読書可)」であり、オプション設定項目533の値が「オプションなし」である場合に自動生成されるハードウェア記述の一例である。ハードウェア記述900は、通常のハードウェア記述(RW属性のレジスタ121の記述)に加えて、ユーザ回路130が、バスプロトコル制御回路122を使用せずにレジスタ121の現在値を読み出すためのポート1006(
図10参照)の記述910を含む。
【0063】
装置100は、メモリマップに基づいて、通常のRW属性以外の特殊機能の回路(レジスタ121の現在値をユーザ回路130に出力するポート)に関する記述910を生成する。当該記述910により、ユーザ回路130は、バスプロトコル制御回路122を介することなく、レジスタ121の現在値を利用可能になる。また、ハードウェアの設計変更が発生した場合でも、装置100は、画面400,500を介して入力された設定に基づいて、記述910を自動生成する。そのため、装置100は、ハードウェアの修正等が発生した場合に、ドキュメントまたは回路(ハードウェア記述)等への特殊機能の記述の反映漏れ等を防止し得る。
【0064】
図10は、ハードウェア記述900に対応する回路の一例を示す模式図である。回路1000は、RW属性のレジスタ121の回路である。より具体的には、回路1000は、レジスタ121におけるデータを保存するフリップフロップ回路1005およびその周辺回路からなる。また、回路1000は、回路120(メモリマップの回路)の一部(1つのレジスタ121に対応する回路)である。
【0065】
回路1000は、主な構成として、バス回路1001と、読込回路1002と、書込回路1003と、セレクタ1004と、フリップフロップ回路1005と、ポート1006とを備える。
図9の例では、図の簡略化のためにフリップフロップ回路1005を1つしか記載していないが、レジスタ121は、データ幅設定項目403で設定されたデータ幅に対応する記憶領域(フリップフロップ回路1005)を有する。
【0066】
バス回路1001は、インターフェイス設定項目401に設定されたプロトコルで通信するための回路である。バス回路1001は、バスプロトコル制御回路122の一部、または、レジスタ121ごとに生成されるバスプロトコル制御回路122である。外部の回路は、通常、バス回路1001を介して、レジスタ121に読込処理および書込処理を実行する。
【0067】
読込回路1002は、レジスタ121に格納されたデータ(フリップフロップ回路1005に保存された値)を読み出す処理(リードアクセス)のための回路である。読込回路1002は、バス回路1001(バスプロトコル制御回路122)を介して、レジスタ121(フリップフロップ回路1005)に格納されるデータを外部の回路に出力する。
【0068】
書込回路1003は、レジスタ121(フリップフロップ回路1005)にデータを書き込む処理(ライトアクセス)のための回路である。書込回路1003は、バス回路1001(バスプロトコル制御回路122)を介して、外部の回路から取得したデータをレジスタ121(フリップフロップ回路1005)に書き込む。
【0069】
セレクタ1004は、フリップフロップ回路1005へのデータの書き込みタイミングを制御する。例えば、セレクタ1004は、書込回路1003からライトアクセス通知を入力されたタイミングでフリップフロップ回路1005へのデータの書き込みを実行してもよい。
【0070】
フリップフロップ回路1005は、1ビットの情報を保存する。レジスタ121は、1つ以上のフリップフロップ回路1005を記憶領域として備える。
【0071】
ポート1006は、ユーザ回路130がレジスタ121(フリップフロップ回路1005)の現在値を取得するためのポート(通信回路)である。ポート1006は、読込回路1002および書込回路1003と異なり、バス回路1001を経由せずに、ユーザ回路130に接続される。ポート1006は、記述910に対応する。ある局面において、ポート1006は、レジスタ121単位でデータを読み出す回路であってもよい。この場合、レジスタ121のデータ幅が16ビットであるとき、ポート1006は、16ビット単位でデータを読み出す。他の局面において、ポート1006は、レジスタ121の各ビット単位でデータを読み出す回路であってもよい。
【0072】
(b.W属性の回路例)
図11および
図12を参照して、属性設定項目531の値が「W(書込可)」であるときの、レジスタ121のハードウェア記述および当該レジスタ121のハードウェア記述に対応する回路の一例について説明する。なお、オプション設定項目533の値は、「オプションなし」であるとする。
【0073】
図11は、W属性のレジスタ121のハードウェア記述の一例を示す図である。ハードウェア記述1100は、属性設定項目531の値が「W(書込可)」であり、オプション設定項目533の値が「オプションなし」である場合に自動生成されるハードウェア記述の一例である。ハードウェア記述1100は、通常のハードウェア記述(W属性(ライトオンリー)のレジスタ121の記述)に加えて、ユーザ回路130が、バスプロトコル制御回路122を使用せずにレジスタ121の現在値を読み出すためのポート1006の記述1110を含む。
【0074】
装置100は、メモリマップに基づいて、通常のW属性以外の特殊機能の回路(レジスタ121の現在値をユーザ回路130に出力するポート)に関する記述1110を生成する。当該記述1110により、ユーザ回路130は、バスプロトコル制御回路122を介することなく、レジスタ121の現在値を利用可能になる。また、ハードウェアの設計変更が発生した場合でも、装置100は、画面400,500を介して入力された設定に基づいて、記述1110を自動生成する。そのため、装置100は、ハードウェアの修正等が発生した場合に、ドキュメントまたは回路(ハードウェア記述)等への特殊機能の記述の反映漏れ等を防止し得る。
【0075】
図12は、ハードウェア記述1100に対応する回路の一例を示す模式図である。回路1200は、W属性のレジスタ121の回路である。回路1200は、回路1000に対して、読込回路1002の接続が異なる。読込回路1002は、フリップフロップ回路1005に接続されておらず、常に初期値(または読込不可を示す値)を読み出すように構成される。
【0076】
なお、
図9~
図12の例において、装置100(ソフトウェア300)は、オプション設定項目533の値が「オプションなし」の場合でも、レジスタ121(フリップフロップ回路1005)の現在値を取得するためのポート(通信回路)の記述を生成している。しかしながら、装置100は、オプション設定項目533の値が「オプションなし」の場合、必ずしもレジスタ121の現在値を取得するためのポート(通信回路)の記述を生成しなくてもよい。ある局面において、オプション設定項目533は、レジスタ121(フリップフロップ回路1005)の現在値を取得するためのポート(通信回路)の記述を生成するか否かを選択可能に構成されてもよい。
【0077】
(c.R属性の回路例)
図13は、R属性の回路の一例を示す模式図である。回路1300は、属性設定項目531の値が「R(読込可)」であり、オプション設定項目533の値が「オプションなし」である場合に自動生成されるハードウェア記述に対応する回路である。回路1300は、回路1000,1200と異なり、バス回路1001、読込回路1002、ポート1310を備え、書込回路1003およびフリップフロップ回路1005等を備えない。
【0078】
装置100は、属性設定項目531の値が「R(読込可)」であるとき、R属性の記述に加えて、特殊機能の回路(ユーザ回路から入力された値を、読込回路1002に出力するためのポート1310)の記述を生成する。多くのベンダーは、R属性(リードオンリー)の回路に、他の回路と接続するためのポートを設ける。その際、他の回路と接続するためのポートのハードウェア記述は手動で追加される。これに対して、装置100は、IP-XACTファイルを介して、ポート1310の記述を含むハードウェア記述を生成することで、ハードウェアに依存せずに、他の回路と接続するためのポート1310の記述を自動生成し得る。ある局面において、ポート1310は、レジスタ121単位でデータをレジスタ121に入力する回路であってもよい。この場合、レジスタ121のデータ幅が16ビットであるとき、ポート1310は、16ビット単位でデータをレジスタ121に入力する。他の局面において、ポート1310は、レジスタ121の各ビット単位でデータをレジスタ121に入力する回路であってもよい。
【0079】
ポート1310のハードウェア記述により、ユーザ回路130は、リードアクセス発生時に読込回路1002にユーザ回路130から入力された値を出力することが可能となる。また、装置100は、ハードウェアの修正等が発生した場合に、ドキュメントまたは回路(ハードウェア記述)等への特殊機能の記述の反映漏れ等を防止し得る。
【0080】
(d.「sp」オプションの第1の回路例)
図14よび
図15を参照して、オプション設定項目533の値が「sp」であるときの、レジスタ121のハードウェア記述および当該レジスタ121のハードウェア記述に対応する回路の第1の例について説明する。
【0081】
図14は、オプション設定項目533の値が「sp」であるときのレジスタ121のハードウェア記述の第1の例を示す図である。ハードウェア記述1400は、オプション設定項目533の値が「sp」である場合に自動生成されるハードウェア記述の一例である。
【0082】
ハードウェア記述1400は、通常のハードウェア記述(RW属性等)に加えて、特殊機能の回路であるポート1501,1502,1503,1504,1505(
図15参照)のハードウェア記述を含む。各ポートの機能については
図15を参照して後述する。ある局面において、オプション設定項目533の値が「sp」である場合、装置100は、特殊機能の回路であるポート1501,1502,1503,1504,1505の記述を全て生成してもよい。他の局面において、オプション設定項目533は、ポート1501,1502,1503,1504,1505の有無を個別に設定可能に構成されてもよい。この場合、装置100は、ポート1501,1502,1503,1504,1505のうち、オプション設定項目533で有効にされたポートの記述のみを生成する。また、他の局面において、各ポートは、レジスタ121に対してレジスタ121単位でデータを入力または出力する回路であってもよい。この場合、レジスタ121のデータ幅が16ビットであるとき、各ポートは、レジスタ121に対して16ビット単位でデータを入力または出力する。他の局面において、各ポートは、レジスタ121に対してビット単位でデータを入力または出力する回路であってもよい。
【0083】
装置100は、メモリマップに基づいて、通常のR,W,RW属性以外の特殊機能の回路(ポート1501,1502,1503,1504,1505の少なくとも一部)に関する記述を生成する。また、ハードウェアの設計変更が発生した場合でも、装置100は、画面400,500を介して入力された設定に基づいて、特殊機能の回路に関する記述を自動生成する。そのため、装置100は、ハードウェアの修正等が発生した場合に、ドキュメントまたは回路(ハードウェア記述)等への特殊機能の記述の反映漏れ等を防止し得る。
【0084】
図15は、ハードウェア記述1400に対応する回路の一例を示す模式図である。回路1500は、オプション設定項目533の値が「sp」の場合のレジスタ121の回路である。回路1500は、バス回路1001と、読込回路1002と、書込回路1003と、フリップフロップ回路1005と、ポート1501,1502,1503,1504,1505とを備える。
【0085】
ポート1501は、ユーザ回路130から読込回路1002に値を出力するためのポートである。外部の回路からバス回路1001を介するリードアクセスが発生した場合、回路1500は、読込回路1002およびバス回路1001を介して、ポート1501から入力された値を外部の回路に出力する。
【0086】
ポート1502は、ユーザ回路130がレジスタ121(フリップフロップ回路1005)の現在値を取得するためのポートである。ポート1502は、バス回路1001を経由せずに、ユーザ回路130に接続される。ユーザ回路130は、ポート1502を使用することで、バスプロトコル制御回路122を介することなく、レジスタ121の現在値を取得し得る。
【0087】
ポート1503は、ユーザ回路130がレジスタ121(フリップフロップ回路1005)に更新値を入力するためのポートである。フリップフロップ回路1005の値は、書込回路1003から入力される信号ではなく、ポート1503から入力される信号によって書き換えられる。ユーザ回路130は、ポート1502を使用することで、バスプロトコル制御回路122を介することなく、レジスタ121の値を更新し得る。
【0088】
ポート1504は、書込回路1003によるライトアクセスが発生したことをユーザ回路130に通知するためのポートである。ユーザ回路130は、ポート1504から取得するライトアクセスが発生したことを示す信号に基づいて、ライトアクセス発生時に任意の処理(フリップフロップ回路1005の値を更新する処理等)を実行し得る。
【0089】
ポート1505は、書込回路1003によって入力された値をユーザ回路130に出力するためのポートである。ユーザ回路130は、ポート1505から取得した値に基づいて、任意の処理(ポート1503に出力する値を変更する処理等)を実行し得る。
【0090】
(e.「sp」オプションの第2の回路例)
図16よび
図17を参照して、オプション設定項目533の値が「sp」であるときの、レジスタ121のハードウェア記述および当該レジスタ121のハードウェア記述に対応する回路の第2の例について説明する。
【0091】
図16は、オプション設定項目533の値が「sp」であるときのレジスタ121のハードウェア記述の第2の例を示す図である。ハードウェア記述の第2の例は、ハードウェア記述1400にさらにハードウェア記述1600を加えた記述である。ハードウェア記述1600は、ポート1706(
図17参照)に関する記述である。ポート1706の機能については
図17を参照して後述する。
【0092】
ある局面において、オプション設定項目533の値が「sp」である場合、装置100は、特殊機能の回路であるポート1501,1502,1503,1504,1505,1706のハードウェア記述を全て生成してもよい。他の局面において、オプション設定項目533は、ポート1501,1502,1503,1504,1505,1706の有無を個別に設定可能に構成されてもよい。この場合、装置100は、ポート1501,1502,1503,1504,1505,1706のうち、オプション設定項目533で有効にされたポートのハードウェア記述のみを生成する。また、他の局面において、各ポートは、レジスタ121に対してレジスタ121単位でデータを入力または出力する回路であってもよい。この場合、レジスタ121のデータ幅が16ビットであるとき、各ポートは、レジスタ121に対して16ビット単位でデータを入力または出力する。他の局面において、各ポートは、レジスタ121に対してビット単位でデータを入力または出力する回路であってもよい。
【0093】
装置100は、メモリマップに基づいて、通常のR,W,RW属性以外の特殊機能の回路(ポート1501,1502,1503,1504,1505,1706の少なくとも一部)に関する記述を生成する。また、ハードウェアの設計変更が発生した場合でも、装置100は、画面400,500を介して入力された設定に基づいて、特殊機能の回路に関する記述を自動生成する。そのため、装置100は、ハードウェアの修正等が発生した場合に、ドキュメントまたは回路(ハードウェア記述)等への特殊機能の記述の反映漏れ等を防止し得る。
【0094】
図17は、ハードウェア記述1600に対応する回路の一例を示す模式図である。回路1700は、オプション設定項目533の値が「sp」の場合のレジスタ121の回路である。回路1700は、回路1500の構成に加えてポート1706を備える。
【0095】
ポート1706は、読込回路1002によるリードアクセスが発生したことをユーザ回路130に通知するためのポートである。ユーザ回路130は、ポート1706から取得するリードアクセスが発生したことを示す信号に基づいて、リードアクセス発生時に任意の処理(リードアクセス発生時にフリップフロップ回路1005の値をクリアする処理等)を実行し得る。
【0096】
(f.「sn」オプションの回路例)
図18よび
図19を参照して、オプション設定項目533の値が「sn」であるときの、レジスタ121のハードウェア記述および当該レジスタ121のハードウェア記述に対応する回路の一例について説明する。
【0097】
図18は、オプション設定項目533の値が「sn」であるときのレジスタ121のハードウェア記述の一例を示す図である。ハードウェア記述1800は、オプション設定項目533の値が「sn」である場合に自動生成されるハードウェア記述の一例である。「sn」オプションは、メモリマップの回路(回路120)にレジスタ121を内包させないためのオプションである。「sn」オプションが有効である場合、装置100は、レジスタ121(1つ以上のフリップフロップ回路1005)のハードウェア記述を生成せずに、レジスタ121の周辺回路のハードウェア記述を生成する。また、「sn」オプションが有効である場合、装置100は、「sp」オプションが有効である場合と同様に、特殊機能の回路(ポート1501,1502,1503,1504,1505、1706等)のハードウェア記述を生成する。
【0098】
ある局面において、オプション設定項目533の値が「sn」である場合、装置100は、特殊機能の回路であるポート1501,1502,1503,1504,1505,1706のハードウェア記述を全て生成してもよい。他の局面において、オプション設定項目533は、ポート1501,1502,1503,1504,1505,1706の有無を個別に設定可能に構成されてもよい。この場合、装置100は、ポート1501,1502,1503,1504,1505,1706のうち、オプション設定項目533で有効にされたポートのハードウェア記述のみを生成する。また、他の局面において、各ポートは、レジスタ121に対してレジスタ121単位でデータを入力または出力する回路であってもよい。この場合、レジスタ121のデータ幅が16ビットであるとき、各ポートは、レジスタ121に対して16ビット単位でデータを入力または出力する。他の局面において、各ポートは、レジスタ121に対してビット単位でデータを入力または出力する回路であってもよい。
【0099】
装置100は、メモリマップに基づいて、通常のR,W,RW属性以外の特殊機能の回路に関するハードウェア記述を生成する。また、ハードウェアの設計変更が発生した場合でも、装置100は、画面400,500を介して入力された設定に基づいて、特殊機能の回路に関する記述を自動生成する。そのため、装置100は、ハードウェアの修正等が発生した場合に、ドキュメントまたは回路(ハードウェア記述)等への特殊機能の記述の反映漏れ等を防止し得る。
【0100】
図19は、ハードウェア記述1800に対応する回路の一例を示す模式図である。回路1700は、オプション設定項目533の値が「sn」の場合のレジスタ121の回路である。回路1900は、回路1700と同様にポート1501,1502,1503,1504,1505、1706を備える。ただし、回路1900は、フリップフロップ回路1005を備えない。また、ポート1503は、フリップフロップ回路1005の代わりに、ポート1502に接続される。
【0101】
回路120(メモリマップの回路)がレジスタ121を内包する場合において、レジスタ121が使用されないとき、ポート1503の入力信号には何らかの処置が施される必要がある。なぜならば、ポート1503の入力電圧が、不定、または、ハイインピーダンス等による中間電位になると、CMOS回路の特性上、貫通電流が発生する可能性があるためである。そこで、装置100は、回路120(メモリマップの回路)がレジスタ121を含む場合に発生し得る問題を解消するために、回路120(メモリマップの回路)にレジスタ121を内包させない「sn」オプションを提供する。ある局面において、「sn」オプションが有効にされた場合、装置100は、ポート1503のハードウェア記述自体を生成しなくてもよい。
【0102】
<E.フローチャート>
図20は、装置100によるハードウェア記述の生成手順の一例を示す図である。ある局面において、プロセッサ201は、
図20の処理を行うためのプログラムをストレージ203からメモリ202に読み込んで、当該プログラムを実行してもよい。他の局面において、当該処理の一部または全部は、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。
【0103】
ステップS2010において、装置100は、メモリマップの設定入力を受け付ける。より具体的には、装置100は、画面400,500を介して、メモリマップおよび当該メモリマップに含まれるレジスタ121の設定の入力を受け付ける。レジスタ121の設定は、レジスタ121の属性、初期値、特殊機能の回路の生成等のためのオプションを含む。
【0104】
ステップS2020において、装置100は、オプションを含むメモリマップを生成する。装置100は、画面400,500を介して受け付けた設定に基づいて、任意のフォーマットでメモリマップを生成する。
【0105】
ステップS2030において、装置100は、レジスタ121の属性を取得する。より具体的には、装置100は、画面500において、属性設定項目531に入力された内容(R属性、W属性、RW属性のいずれか)を取得する。
【0106】
ステップS2040において、装置100は、レジスタ121の初期値を取得する。より具体的には、装置100は、画面500において、初期値設定項目532に入力された内容(レジスタ121のビット毎に「0」または「1」のいずれかがセットされる)を取得する。
【0107】
ステップS2050において、装置100は、レジスタ121のオプションを取得する。より具体的には、装置100は、画面500において、オプション設定項目533に入力された内容(「オプションなし」、「rc」、「rs」、「sp」、「sn」またはその他の任意のオプション)を取得する。
【0108】
ステップS2060において、装置100は、メモリマップからIP-XACT(xml)ファイルを生成する。IP-XACTファイルは、IP-XACTフォーマットで表されるレジスタ121のオプション(特殊機能)を含む。ある局面において、装置100は、メモリマップからIP-XACT(xml)ファイル以外の任意のフォーマットのファイルを生成してもよい。この場合、装置100は、生成されたIP-XACT(xml)ファイル以外のフォーマットのファイルから、ハードウェア記述を生成する。
【0109】
ステップS2070において、装置100は、IP-XACTファイルからハードウェア記述を生成する。ハードウェア記述は、レジスタ121のオプション(特殊機能)の記述を含む。ある局面において、装置100は、メモリマップからハードウェア記述を直接生成してもよい。この場合、装置100は、IP-XACTファイルを生成しなくてもよい。
【0110】
ステップS2080において、装置100は、生成したハードウェア記述を出力する。ある局面において、装置100は、ハードウェア記述のみを出力してもよいし、IP-XACTファイルのみを出力してもよいし、ハードウェア記述およびIP-XACTファイルの両方を出力してもよい。他の局面において、装置100は、装置100に接続されたディスプレイに生成したハードウェア記述を出力してもよいし、他の装置にハードウェア記述に関する情報を送信してもよい。
【0111】
以上説明した通り、本実施の形態に従う装置100(ソフトウェア300)は、レジスタ121のR属性,W属性およびRW属性に関する記述以外の特殊機能の回路の記述を含むハードウェア記述を自動生成する。ユーザは、装置100を使用することで、バスプロトコル制御回路122を使用しない特殊機能を有するレジスタ121を備える回路を容易に設計し得る。さらに、装置100は、メモリマップのオプションに基づいて、バスプロトコル制御回路122を使用しない特殊機能の記述を含むハードウェア記述を自動生成するため、ハードウェアの修正等が発生した場合に、ドキュメントまたは回路(ハードウェア記述)等への特殊機能の記述の反映漏れ等を防止し得る。
【0112】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【0113】
100 装置、110,120,140,145,1000,1200,1300,1500,1700,1900 回路、121 レジスタ、122 バスプロトコル制御回路、130 ユーザ回路、201 プロセッサ、202 メモリ、203 ストレージ、204 出力IF、205 入力IF、206 通信IF、207 外部機器IF、208 内部バス、300 ソフトウェア、301 メモリマップ生成部、302 IP-XACT生成部、303 ハードウェア記述生成部、400,500 画面、401 インターフェイス設定項目、402 モジュール名設定項目、403 データ幅設定項目、404 レジスタマップ設定項目、405 ポート設定項目、510 アドレス設定項目、511 絶対アドレス設定項目、512 オフセットアドレス設定項目、520 レジスタ名設定項目、530 レジスタ設定項目、531 属性設定項目、532 初期値設定項目、533 オプション設定項目、700,800,900,1100,1400,1600,1800 ハードウェア記述、910,1110 記述、1001 バス回路、1002 読込回路、1003 書込回路、1004 セレクタ、1005 フリップフロップ回路、1006,1310,1501,1502,1503,1504,1505,1706 ポート。