JP3825328B2 - プロセッサ合成装置、システムlsi合成装置、プロセッサ合成方法、システムlsi合成方法、及び記録媒体 - Google Patents
プロセッサ合成装置、システムlsi合成装置、プロセッサ合成方法、システムlsi合成方法、及び記録媒体 Download PDFInfo
- Publication number
- JP3825328B2 JP3825328B2 JP2002014750A JP2002014750A JP3825328B2 JP 3825328 B2 JP3825328 B2 JP 3825328B2 JP 2002014750 A JP2002014750 A JP 2002014750A JP 2002014750 A JP2002014750 A JP 2002014750A JP 3825328 B2 JP3825328 B2 JP 3825328B2
- Authority
- JP
- Japan
- Prior art keywords
- interface
- processor
- description
- synthesis
- behavioral
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、プロセッサ合成装置、システムLSI合成装置、プロセッサ合成方法、システムLSI合成方法、及び記録媒体に関し、特に外部インタフェースを柔軟に設計できるプロセッサ合成装置、システムLSI合成装置、プロセッサ合成方法、システムLSI合成方法、及び記録媒体に関する。
【0002】
【従来の技術】
近年、SOC(System On Chip)又はシステムLSIと呼ばれる、1つのチップでシステムの回路機能の全てを実現するLSIが実現している。システムLSIは、用途や処理のアルゴリズムに適したものとして設計され、その設計では、後々の再利用を前提に設計されたハードウェアマクロであるハードウェアIP(Intellectual Property)が活用される。
【0003】
図13は、従来のシステムLSIの内部構成を示している。システムLSIは、プロセッサ10と、入出力の信号処理を行う信号処理回路や記憶装置などを含む周辺ハードウェア21、22、23とで構成され、これらはバス30を介して相互に接続されている。
【0004】
プロセッサ10は、ソフトウェアプログラムに基づいて動作し、システムLSIの中核をなす。プロセッサ10は、ハードウェアIPを再利用し、またその設計は、プロセッサ設計を専門にするプロセッサ部門によりRT(Register Transfer)設計で設計される。RT設計とは、レジスタ等のメモリ部や、加算器等の実行処理部による資源を用いてハードウェアを設計する設計手法である。
【0005】
バス30は、プロセッサ10のバスインタフェースにより、その仕様が決定される。プロセッサ10は、前述の通り再利用されるものであるから、バス30の仕様は決定している。システムLSIの設計に際して、新たに設計される周辺ハードウェア21、23、23は、バス30の仕様に合わせて、そのバスインタフェースが設計される。プロセッサ10と、周辺ハードウェア21、22、23とは、バス30の仕様に合わせた通信方法でデータの送受信を行う。
【0006】
異なるバス仕様を有する2以上のプロセッサ、周辺ハードウェアの間では、直接にデータの送受信をすることはできない。そこで、異なるバスを接続するために、バスブリッジを配置する方法がある。図14は、バスブリッジによる2つのプロセッサの接続を示している。プロセッサA(10)と、プロセッサB(15)とは、異なるバスインタフェースを有しており、それぞれのバス30、35に接続されている。バスブリッジ40は、バス30とバス35の間に接続され、一方のデータを他方に通過させる。このようなバスブリッジ40を使用することにより、プロセッサ10とプロセッサ15の間で、データの送受信が可能となる。
【0007】
【発明が解決しようとする課題】
ところで、バスブリッジを介して異なる2つのバスを接続すると、バスブリッジの分だけハード規模が大きくなるという問題がある。また、バスブリッジは、一般のバスに比べてデータ転送速度が低いため、処理速度の面でボトルネックとなることが多かった。
【0008】
上述のように、バス30の仕様は、プロセッサのバスインタフェースによって決定される。プロセッサはRT設計で設計されるため、容易にバスインタフェースのみを変更することはできなかった。このため、システムLSIで、プロセッサ10とはバスインタフェースが異なる別のプロセッサ15を使用しようとする場合には、バスの仕様を変更し、周辺ハードウェア21、22、23は、それぞれのバスインタフェースをプロセッサ15に合わせて設計をやり直す必要が生じた。
【0009】
ここで、例えば、システムLSIで、プロセッサと周辺ハードウェアとが同時には動作せず、かつ、双方が同じハードウェア資源を使用するような場合には、演算器やレジスタなどのハードウェア資源を互いに共有すると、ハードウェア資源を有効に使用できる。しかし、システムLSIの設計では、上述のように、プロセッサ10と、周辺ハードウェア21、22、23とは、別々に設計され、プロセッサと、周辺ハードウェアとが、バスを介して接続される。このため、従来のシステムLSIの設計では、ハードウェア資源の共有は困難であった。
【0010】
また、周辺ハードウェアの機能をプロセッサに組み込み、プロセッサの命令の1つとしてその機能を実行可能なプロセッサが知られている。このプロセッサの設計では、新たに組み込む組みたいハードウェアの機能を、すでに設計済みのプロセッサの基本構成に追加するという設計手法が採られている。プロセッサは、命令を1つずつ読み込んで実行するため、組み込み命令と、基本構成の命令とは同時には動作しない。従って、双方の命令間でハードウェア資源を共有するための条件は、備わっている。しかし、プロセッサの基本構成部分は、ハードウェアマクロとして固定化されているため、組み込み命令と基本構成の命令とが同じハードウェア資源を共有することは困難であった。
【0011】
また、プロセッサと周辺ハードウェアとが、割り込み信号等によって動作を開始し、その動作の少なくとも一部が重なるようなシステムLSIも知られている。このようなシステムLSIで、プロセッサと周辺ハードウェアとがハードウェア資源を共有する際には、動作タイミングか重ならないような調整が必要である。しかし、一般に、割り込み信号が発生するタイミングは不定であるため、この調整は複雑なものであり、ハードウェア資源の共有は困難であった。
【0012】
上記した何れの場合であっても、プロセッサの命令間、又は、プロセッサと周辺ハードウェアとの間のハードウェア資源の共有は困難であり、同じ種類のハードウェア資源を、それぞれのプロセッサや周辺ハードウェアに与えていた。このため、ハードウェア資源の利用率が低く、無駄が生じており、プロセッサやシステムLSIの回路規模の縮小の妨げとなっていた。
【0013】
本発明は、上記課題を解決し、任意に特定の仕様に適合したバスインタフェースを有するプロセッサを合成し、ハードウェア資源を容易に共有可能なプロセッサ合成装置、システムLSI合成装置、プロセッサ合成方法、システムLSI合成方法、及び記録媒体を提供することを目的とする。
【0014】
【課題を解決するための手段】
上記目的を達成するために、本発明のプロセッサ合成装置は、複数のインタフェースライブラリを保存するデータベースと、プロセッサの外部条件で定まるインタフェース定義に基づいて前記データベースからインタフェースライブラリを抽出し、該抽出されたインタフェースライブラリをプロセッサの機能を記述した動作記述に組み込んで動作合成する動作合成手段とを備えることを特徴とする。
【0015】
また、本発明のプロセッサ合成方法は、プロセッサの外部条件で定まるインタフェース定義に基づいてデータベースからインタフェースライブラリを抽出し、該抽出されたインタフェースライブラリを、プロセッサの機能を記述した動作記述に組み込んで動作合成することを特徴とする。
【0016】
本発明のプロセッサ合成装置及びプロセッサ合成方法では、プロセッサの機能は同じで、そのインタフェースのみを変更したプロセッサを得ることができる。このため、プロセッサの使用条件に合わせて、複数種類のインタフェースを有するプロセッサを簡易に設計できる。
【0017】
更に、本発明のプロセッサ合成装置は、複数のインタフェースライブラリを保存するデータベースと、プロセッサの外部条件で定まるインタフェース定義に基づいて前記データベースからインタフェースライブラリを抽出し、該抽出されたインタフェースライブラリを、少なくとも1つのプロセッサを含む複数のハードウェアの機能を記述した動作記述に組み込んで動作合成する動作合成手段とを備えることを特徴とする。
【0018】
本発明のプロセッサ合成方法は、プロセッサの外部条件で定まるインタフェース定義に基づいてデータベースからインタフェースライブラリを抽出し、該抽出されたインタフェースライブラリを、少なくとも1つのプロセッサを含む複数のハードウェアの機能を記述した動作記述に組み込んで動作合成することを特徴とする。
【0019】
本発明のプロセッサ合成装置及びプロセッサ合成方法は、プロセッサの機能に、プロセッサとは別の処理を行うハードウェアの機能を追加して動作合成する。このため、プロセッサの機能を簡易に拡張できる。
【0020】
本発明のシステムLSI合成装置は、複数のインタフェースライブラリを保存するデータベースと、LSIの外部条件で定まるインタフェース定義に基づいて前記データベースからインタフェースライブラリを抽出し、該抽出されたインタフェースライブラリをプロセッサ及び周辺ハードウェアの機能を記述した動作記述に組み込んで動作合成する動作合成手段とを備えることを特徴とする。
【0021】
本発明のシステムLSI合成方法は、LSIの外部条件で定まるインタフェース定義に基づいてデータベースからインタフェースライブラリを抽出し、該抽出されたインタフェースライブラリを、プロセッサ及び周辺ハードウェアの機能を記述した動作記述に組み込んで動作合成することを特徴とする。
【0022】
本発明のシステムLSI合成装置及びシステムLSI合成方法は、プロセッサの機能に、システムLSIを構成する周辺ハードウェアの機能を追加して動作合成するため、回路規模の縮小が可能となる。
【0023】
本発明のプロセッサ合成方法では、前記複数のハードウェアが逐次動作又は並列動作をすることが好ましい。何れの場合にも、資源の共有化がなされるため、回路規模の縮小が図れる。
【0024】
また、本発明のプロセッサ合成方法では、前記動作記述が、周辺ハードウェアの配列アクセスとして記述されることが好ましい。この場合、動作記述が容易となる。
【0025】
本発明のプロセッサ合成方法では、前記インタフェースは、バス、メモリ、レジスタ、又は、ネットワークの何れかとプロセッサとを接続することが好ましい。
インタフェースは、バス以外のメモリやレジスタやネットワークなどに直接アクセスするインタフェースであってもよく、その場合、バスを介することによるデータ転送速度の低下を回避することができる。
【0026】
本発明のプロセッサ合成方法では、前記複数のハードウェアは、少なくとも1つのハードウェア資源を共有することが好ましい。この場合、同時には動作しないハードウェア資源が共有できるので、ハードウェア資源の無駄を省くことができる。
【0027】
本発明のプロセッサ合成方法では、前記複数のハードウェアは、動作タイミングが相互に重ならないことが好ましい。
動作合成の際に、動作タイミングが重ならないように調整されるため、効率よくハードウェア資源を使用できる。
【0028】
本発明のプロセッサ合成方法及びシステムLSI合成方法では、前記動作記述が、RTL記述、ゲートレベル記述、プログラミング言語で記述された回路モデル、及び/又は回路図として合成されることが好ましい。プログラミング言語としては、C言語やC++言語などを使用することができる。
【0029】
本発明の好ましい態様のプロセッサ合成装置は、上記好ましい態様のプロセッサ合成方法を採用して動作合成を行うことにより、上記プロセッサ合成方法と同様の効果が得られる。
【0030】
また、本発明のプロセッサ合成装置及びシステムLSI合成装置は、前記動作記述と前記インタフェース定義及び/又は抽出されたインタフェースライブラリとを記憶する記憶装置を更に備えることが好ましい。この場合、動作記述やインタフェース定義などを作業用データベースなどの記憶装置に記憶しておき、記憶されたものを呼び出して使用することで動作合成を行うことができる。また、記憶装置に、動作合成装置の動作記述の記述言語、又は、出力形式の切り換えなどの合成条件を記憶させておくと、作業性が向上する。
【0031】
本発明の記録媒体は、上記プロセッサ及びシステムLSI合成方法を実現するプログラムを記録することを特徴とする。
【0032】
【発明の実施の形態】
以下、図面を参照し、本発明の実施形態例に基づいて、本発明を更に詳細に説明する。図1は、本発明の第1実施形態例のプロセッサ合成装置を示している。プロセッサ合成装置は、動作合成手段7と、ライブラリデータベース3とを備える。動作合成装置は、動作記述1とインタフェース定義2とに基づいて、ハードウェア記述であるRTL記述4を出力する。
【0033】
動作記述1には、プロセッサの全機能が、C言語やC++言語などの高級言語で記述されている。インタフェース定義2は、得るべきプロセッサが使用される際の、バス仕様などの外部条件により決定されるインタフェースの構成を定義する。動作記述1とインタフェース定義2とは、動作合成手段7に入力される。
【0034】
ライブラリデータベース3は、インタフェースライブラリを保存する。動作合成手段7は、入力されたインタフェース定義2に対応するインタフェースライブラリを抽出する。動作合成手段7は、動作記述1に、抽出されたインタフェースライブラリ3を組み込んで動作合成する。RTL記述には、ハードウェア化するのに適したRTL記述と、シミュレーションを行うのに適したRTL記述とがあり、動作合成装置は、何れか一方、又は、双方のRTL記述を出力する。
【0035】
図2は、図1のプロセッサ合成装置を使用したプロセッサ合成方法の手順を示している。まず、得るべきプロセッサの機能を記述している動作記述1と、インタフェース定義2とを、動作合成を行うプロセッサ合成装置に入力する(ステップS1)。次いで、動作合成手段7は、動作記述1を言語解析し、インタフェースを規定する記述部分があるか否かを調べる(ステップS2)。インタフェースを規定する記述部分がない場合には、ステップS11に進んで、動作記述1をそのまま動作合成し、RTL記述4を出力する。
【0036】
言語解析の結果、インタフェース記述部分が存在することが判明した場合には、インタフェース記述部分から、内部データバスのビット幅dw1と、内部アドレスバスのビット幅aw1とを抽出する(ステップS3)。次に、インタフェース定義2を参照して、データバスのポート数とその方向、及び、データバスのビット幅dw2を抽出する(ステップS4)。データバスのポート数とその方向により、リード及びライト制御信号が、それぞれ独立であるか、共用であるかが決定される。
【0037】
内部データバスのビット幅dw1と、データバスのビット幅dw2とを比較し(ステップS5)、内部データバスビット幅dw1のほうが小さいときには、データバスのアクセスサイクル数Tを1に設定し(ステップS6)、大きいときには、アクセスサイクル数Tをdw1/dw2(小数点以下切り上げ)に設定する(ステップS7)。
【0038】
アクセスサイクル数Tが決定すると、動作合成手段7はライブラリデータベース3を検索し、アドレスバスのビット幅がaw1以上で、データバスのビット幅がdw2で、データバスのポート数とその方向がインタフェース定義2に指定されたもので、かつ、アクセスサイクル数がTである全ての条件を満たすインタフェースライブラリを抽出する(ステップS8)。該当するインタフェースライブラリが存在しない場合には、エラーとなり(ステップS9)、存在する場合には、抽出されたインタフェースライブラリを組み込む(ステップS10)。動作合成手段7は、動作記述1に、抽出されたインタフェースライブラリを組み込んで動作合成し、プロセッサのRTL記述4を得る(ステップS11)。
【0039】
図3は、上記プロセッサ合成方法によりCPUが合成される様子を模式的に示している。同図において、動作記述1に、インタフェース定義2を与えると、ライブラリデータベース3から抽出された、インタフェース定義2に該当するインタフェースライブラリを組み込んで動作合成し、CPU1、CPU2、又は、CPU3の何れかのプロセッサが合成される。CPU1、CPU2、及び、CPU3はそれぞれ、機能は同じで、そのインタフェースの構成のみが異なるプロセッサである。
【0040】
図2及び図3を更に参照して、インタフェース生成について、具体的に説明する。動作記述1には、CPUの全機能が記述されている。この例では、アクセスメモリ空間は、65536(16ビット)で、命令語には、ADDと、SUBと、MOVとがあり、それぞれ専用の実行処理回路により実行される。また、short型変数は16ビットの変数であるため、プロセッサは、メモリから16ビットの命令語をフェッチし、その内容に従って処理を実行する。
【0041】
インタフェース定義2は、CPUのインタフェースを定義し、データバスの幅、及び、データバスのポート数とその方向を定義する。インタフェース定義2aは、データバスが8ビットで、リード及びライト兼用で、かつ、データ転送が双方向のインタフェースを定義している。インタフェース定義2bは、データバスが8ビットで、リード及びライト独立で、かつ、データ転送が片方向のインタフェースを定義している。インタフェース定義2cは、データバスが16ビットで、データバスはリード及びライト独立で、かつ、データ転送が片方向のインタフェースを定義している。動作合成の際には、インタフェース定義2a、2b、2cのうち、何れか1つのインタフェース定義が指定される。ライブラリデータベース3には、それぞれのインタフェース定義2に対応するインタフェースライブラリが登録されている。
【0042】
動作合成装置は、ステップS3で、動作記述1から、アクセスメモリ空間を規定する内部アドレスバス幅aw1と、命令語長により定まる内部データバス幅dw1とを抽出する。このCPUでは、内部アドレスバス幅aw1は16ビット、内部データバス幅dw1も16ビットである。次いでステップS4で、インタフェース定義から、データバスのポート数とその方向を抽出する。ここでは、インタフェース定義2aに示すインタフェース、つまり、データバス幅dw2は8ビットで、リード及びライト兼用で、かつ、データ転送が双方向のインタフェースが指定されたとする。
【0043】
内部データバス幅dw1(16ビット)とデータバス幅dw2(8ビット)とを比較すると、dw1>dw2なので、ステップS7へ進み、アクセスサイクル数Tを計算し、アクセスサイクル数Tは2と決まる。ステップS8で、以上の条件、つまり、アドレスバス幅が16ビット以上で、データバス幅が8ビットで、リード及びライト兼用で、データ転送が双方向で、かつ、アクセスサイクル数Tは2であるインタフェースライブラリを、ライブラリデータベース3から探す。この場合、該当するインタフェースライブラリは、インタフェースライブラリ3aである。
【0044】
組み込むべきインタフェースライブラリが決定すると、ステップS11では、動作記述1に、インタフェースライブラリ3aを組み込んで動作合成する。動作合成により、CPU1が得られる。ステップS1で、インタフェース定義2bを指定した場合には、インタフェースライブラリ3bが組み込まれ、CPU2が得られる。インタフェース定義2cを指定した場合には、インタフェースライブラリ3cが組み込まれ、CPU3が得られる。
【0045】
ここで、インタフェースライブラリ3aを組み込むステップS10について、図4から図7を参照して更に詳しく説明する。インタフェースライブラリの構成には、バスにつながる端子の宣言部分と、インタフェースの動作で動作記述を書き換えるための書換え規則部分とが含まれる。動作記述にインタフェースライブラリを組み込むと、動作記述に端子の宣言部分が追加され、メモリアクセスなどのインタフェースを介したデータのやり取りが、書換え規則に従って書き換えられる。
【0046】
図4は、インタフェースライブラリ3aの端子の宣言の記述例を示している。1行目及び3〜5行目のoutputは出力端子であることを示し、2行目のinoutは、入出力端子であることを示している。1行目及び2行目の[m:n]は、MSBがmで、LSBがnである複数ビットのバス線を示し、1行目では16ビットのアドレスバスを、2行目では8ビットのデータバスをそれぞれ定義している。
【0047】
図5は、データの読み取り動作の書換え規則を示している。ライブラリの組み込みの際に、動作記述中の、X=mem[Y];の記述は、1行目から13行目に示す処理に書き換えられる。なお、X及びYは変数を示し、動作記述中の変数に適宜置き換えられる。
【0048】
1行目では、8ビットの中間変数msb_X及びlsb_Xが宣言される。2行目ではバスを使用中である旨を示す信号を出力し、3行目ではデータバスをリードで使用する旨の信号を出力し、3行目では16ビットのデータのうち下位の8ビットのデータを使用する旨の信号を出力する。
【0049】
5行目ではアドレスバスにY+OFFSET(mem)で示されるアドレスを出力する。ここで、OFFSET(mem)は、メモリの配置されるアドレスの先頭番地を示し、動作記述中のコメントとして、動作記述中の宣言部分として、又は、動作記述とは別の記述として与えられる。6行目では中間変数lsb_Xにデータバスの値、つまりアドレスバスの示す番地のメモリのデータが代入される。7行目は、クロックサイクルが1つ進むことを意味する。
【0050】
8行目から12行目までは、上位8ビットのデータを中間変数msb_Xに代入する点を除いて、2行目から6行目までと同様の動作をする。13行目では、中間変数msb_Xを上位8ビット、lsb_Xを下位8ビットとして結合した16ビットのデータが、変数Xに代入される。
【0051】
図6は、データの書き込み動作の書換え規則を示している。図5に示すデータの読み込み動作とは、4行目及び10行目でデータバスをライトで使用する旨の信号を出力する点と、メモリへデータを書き込む点が相違する。動作記述中に、mem[Y]=Xの記述がある場合には、1行目から13行目の処理に書き換えられる。
【0052】
図7は、図3の動作記述1にインタフェースライブラリ3aを組み込んだ例を示している。動作記述1は、先頭に図4に示す端子の宣言の部分が追加されて、fetch=mem[pc++];の部分がfetch=mem[pc];pc++;に変換された後に、図5に示す書換え規則に従って書き換えられる。書き換えの際には、X及びYは前述したように動作記述の変数に置き換えられる。つまり、Xはfetchに、Yはpcにそれぞれ置き換えられる。以上のようにして、インタフェースライブラリが組み込まれる。なお、上記したfetch=mem[pc++];の書き換えは、ステップS10より前の段階で行われていてもよい。
【0053】
上記プロセッサ合成方法を使用してプロセッサを合成すると、プロセッサのバスインタフェースが柔軟に設計できる。例えば、図13に示すプロセッサ10をプロセッサ15に置き換える場合には、プロセッサ15の動作記述に、プロセッサ10のバスインタフェースと同じインタフェース定義2を与えて動作合成してプロセッサ15を合成する。これにより、プロセッサ10のバス30に、プロセッサ15を直接に接続できるようになり、周辺ハードウェア21、22、23を設計し直す必要はなくなる。
【0054】
プロセッサの動作記述1には、プロセッサ単体の機能だけでなく、システムLSIを構成する周辺ハードウェアの機能を、併せて記述することができる。図8は、本発明の第2実施形態例のプロセッサ合成方法の具体例を示し、周辺ハードウェアの機能とプロセッサの機能とが逐次動作する例を示している。第1実施形態例のプロセッサ合成方法とは、動作記述の内容が異なる。
【0055】
図8に示すように、動作記述中のmain関数には、HW関数とprocessor関数とを連続して記述する。このような記述を動作合成し、HW関数及びprocessor関数が逐次動作するプロセッサを得る。HW関数には、周辺ハードウェアの機能が記述され、2つの計算式に基づいて演算を行うことを定義している。processor関数には、CPUの機能が記述され、命令語に基づいて、加算や乗算などを行う処理を定義している。また、読み込んだ命令語がHALTであるときには、CPUの動作を終了することが定義されている。
【0056】
第2実施形態例のプロセッサ合成方法で得られたプロセッサは、はじめに周辺ハードウェアの機能が動作し、その動作が終了すると、CPUの機能が動作する。CPUの機能では、命令語を読み取り、その命令語に従って処理をする。命令語がHALTでないときには、次の命令語を読み取り処理を続け、HALTのときには、CPUの動作を終了し、はじめに戻り、周辺ハードウェアの機能が動作する。
【0057】
図8の記述例では、周辺ハードウェアとCPUとで同じハードウェア資源である、加算器(+)及び乗算器(*)の演算資源を使用する。動作合成の際には、動作合成の対象となる動作記述中に、同じ演算資源を使用し、かつ、その演算資源は同時には使用されないような場合には、演算資源を共有するような合成が行われる。このため、動作記述1を動作合成すると、周辺ハードウェアの機能とCPUの機能とでハードウェア資源を共有するRTL記述が生成される。なお、動作合成の方法として、動作記述1の演算の実行順序を、同じ演算資源を共有するようにスケジューリングした後に、動作合成を行う方法も知られている。この動作合成の方法を、本実施形態例のプロセッサ合成方法の動作合成の際に適用することも可能である。
【0058】
図9は、本発明の第3実施形態例のプロセッサ合成方法の具体例を示し、CPUの機能から周辺ハードウェアの機能が実行可能な例を示している。第3実施形態例で得られるプロセッサは、CPUが、組み込み命令として周辺ハードウェアの機能を実行できる点で、第2実施形態例のプロセッサ合成方法と相違する。図9に示すような記述を動作合成することで、第2実施形態例のようにハードウェア資源の共有がなされると共に、CPUの機能を簡易に拡張可能となる。
【0059】
図10は、本発明の第4実施形態例のプロセッサ合成方法の具体例を示し、周辺ハードウェアの機能と、CPUの機能とが並列動作する、(a)は記述例、(b)は動作フローを示している。第4実施形態例で得られるプロセッサは、周辺ハードウェアの機能とCPUの機能とが並列動作する点で、第1実施形態例から第3実施形態例で得られるプロセッサとは相違する。第4実施形態例で得られるプロセッサは、同図(b)に示すように、周辺ハードウェアの機能である処理1が実行され、所定のタイミングで、CPUが動作を開始する。処理1とCPUの動作とは一部並列に実行され、処理1は終了する。CPUが、命令語AWAKEを読み取ると、周辺ハードウェアの機能である処理2の実行が開始する。CPUの動作と処理2とは、一部並列に実行され、CPUは動作を終了する。
【0060】
並列に実行されるCPUと周辺ハードウェアとが、同じハードウェア資源を共有する場合には、その動作タイミングが重ならないようにしなければならない。例えば、同じハードウェア資源である共有メモリを共有し、共有メモリに並列にアクセスする場合には、そのアクセスタイミングが重ならないようなスケジューリングが必要となる。本実施形態例では、処理1と、処理2と、CPUの機能とが、まとめて動作合成され、動作合成の際には、共有メモリへのアクセスが、同じ配列へのアクセスとして認識される。このため、設計者がプログラムを調整して共有メモリへのアクセスタイミングをスケジューリングする必要はなく、動作合成の際の並列化の仕組みにより、自動的にアクセスタイミングがスケジューリングされる。これにより、ハードウェア資源の共有が容易になると共に、メモリアクセスが効率よく行える。
【0061】
図11は、本発明の第5実施形態例のプロセッサ合成装置を示している。本実施形態例のプロセッサ合成装置は、図1に示すプロセッサ合成装置とは、データが作業用データベース9を介してやり取りされる点で相違する。
【0062】
作業用データベース9は、動作記述1、インタフェース定義2、及び、ライブラリデータベース3から抽出されたインタフェースライブラリの少なくとも1つを記憶する。これらのデータは、任意のときに保存することが可能である。また、作業用データベース9は、動作合成手段7が、動作合成を行う際の中間結果を保存するために用いることもできる。設計者は、例えば、作業用データベース9に記憶されたインタフェース定義2と、新たに記述した動作記述1とを、動作合成手段7に入力して動作合成を行うことができる。このため、過去の設計資産が容易に再利用可能となり、作業効率が向上する。
【0063】
また、RTL記述4に、ハードウェア化に適したRTL記述と、シミュレーションを行うのに適したRTL記述とがある場合には、動作合成手段7が何れのRTL記述を出力すべきかを、合成条件として作業用データベース9に記憶させることができる。作業用データベース9に合成条件を記憶させることで、動作合成手段7に合成条件を毎回入力する手間が省ける。
【0064】
なお、上記実施形態例では、インタフェース定義2として、バスインタフェースを例に挙げて説明したが、インタフェース定義2は、これに限られず、さまざまなインタフェースを定義できる。図12は、バス以外のインタフェースを組み込んだ例を示し、(a)は共有メモリインタフェースを、(b)はLANインタフェースを組み込んだ例をそれぞれ示している。
【0065】
図12(a)は、インタフェース定義2として、共有メモリインタフェースを定義して、動作合成した例である。プロセッサ及び周辺ハードウェアにそれぞれ共有メモリインタフェースを設けている。バスを介した接続では、バスの帯域の問題で、性能の面でのネックとなることが多いが、バスを介することなく、直接に共有メモリにアクセスできるため、性能が向上する。
【0066】
共有メモリ以外にも、図12(b)に示すように、LANインタフェースを定義し、これを組み込むこともできる。更に、共有レジスタや、FIFO(First In First Out)などのインタフェースを定義し、これを組み込んで動作合成することも可能である。更に、LANなどの複雑なプロトコルを有するインタフェースを生成する際には、ライブラリデータベース中にハンドシェイク形式のインタフェースライブラリを用意し、プロセッサとLANインタフェースとがハンドシェイク形式インタフェースを介して接続されるインタフェースを生成することもできる。
【0067】
上記実施形態例のプロセッサ合成装置は、ワークステーションやパーソナルコンピュータなどのコンピュータシステムを用いて構成できる。また、ライブラリデータベースは、コンピュータシステムに接続された外部記憶装置として構成することもできる。動作記述やインタフェース定義は、電子ファイルとして保存されたものをプロセッサ合成装置に入力してもよいし、コンピュータに接続されたキーボードから直接入力してもよい。更に、動作合成装置の出力は、RTL記述に限定されず、これに代えて、又は、これに加えてゲートレベル記述や、C言語又はC++言語などのプログラミング言語で記述された回路モデルや、回路図などを出力できるように構成してもよい。この場合、動作合成装置の設定によって、何れを出力するのかを決定するように構成することが好ましい。
【0068】
上記プロセッサ合成方法を用いて、システムLSIを構成する周辺ハードウェアの全て又は一部を、プロセッサの動作記述に含めることによって、システムLSIが合成される。つまり、まず、プロセッサ及び周辺ハードウェアの機能を動作記述として記述し、LSIの外部条件に基づいてハードウェアのインタフェースを定義し、この定義されたインタフェースに基づいて、所定のデータベースからインタフェースライブラリを検索し、この検索されたインタフェースライブラリを動作記述に組み込んで動作合成することにより、システムLSIが得られる。
【0069】
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明のプロセッサ合成装置、システムLSI合成装置、プロセッサ合成方法、システムLSI合成方法、及び記録媒体は、上記実施形態例にのみ限定されるものでなく、上記実施形態例の構成から種々の修正及び変更を施したプロセッサ合成装置、システムLSI合成装置、プロセッサ合成方法、システムLSI合成方法、及び記録媒体も、本発明の範囲に含まれる。
【0070】
【発明の効果】
以上説明したように、本発明のプロセッサ合成装置、システムLSI合成装置、プロセッサ合成方法、システムLSI合成方法、及び記録媒体では、バスの仕様に合わせてプロセッサを動作合成できるため、そのインタフェースを柔軟に設計できる。このため、異なるバス仕様を有するプロセッサや周辺ハードウェアに、本来バス仕様の異なるプロセッサを容易に接続できる。また、動作合成の際に、プロセッサの機能と、周辺ハードウェアの機能とをまとめて動作合成することで、ハードウェア資源の共有が容易になり、ハードウェア資源の無駄が省かれると共に、回路規模の縮小が可能になる。
【図面の簡単な説明】
【図1】本発明の第1実施形態例のプロセッサ合成装置を示すブロック図。
【図2】図1のプロセッサ合成装置を使用したプロセッサ合成方法の手順を示すフローチャート。
【図3】図2のプロセッサ合成方法の様子を示す模式図。
【図4】インタフェースライブラリの端子の宣言部分を示す記述例。
【図5】インタフェースライブラリのバスリード時の書換え規則を示す記述例。
【図6】インタフェースライブラリのバスライト時の書換え規則を示す記述例。
【図7】図3の動作記述1にインタフェースライブラリを組み込んだ記述例。
【図8】本発明の第2実施形態例のプロセッサ合成方法で動作合成する動作記述の例で、プロセッサと周辺ハードウェアとが逐次動作する記述例。
【図9】本発明の第3実施形態例のプロセッサ合成方法で動作合成する動作記述の例で、プロセッサと周辺ハードウェアとが逐次動作し、プロセッサに周辺ハードウェアの機能を組み込んだ記述例。
【図10】本発明の第4実施形態例のプロセッサ合成方法で得られたプロセッサの、(a)はプロセッサと周辺ハードウェアとが並列動作する動作記述例、(b)はプロセッサの動作フローを示す図。
【図11】本発明の第5実施形態例のプロセッサ合成装置を示すブロック図。
【図12】バス以外のインタフェースを組み込んだ例で、(a)は共有メモリインタフェース、(b)はLANインタフェースを組み込んだ例を示すブロック図。
【図13】従来のシステムLSIの構成を示すブロック図。
【図14】異なるバスインタフェースを持つプロセッサの接続を示すブロック図。
【符号の説明】
1:動作記述
2:インタフェース定義
3:ライブラリデータベース
4:RTL記述
7:動作合成手段
9:作業用データベース
10、15:プロセッサ
21、22、23:周辺ハードウェア
30:プロセッサ10のバス
35:プロセッサ15のバス
Claims (16)
- 複数のインタフェースライブラリを保存するデータベースと、
プロセッサのインタフェースを定義したインタフェース定義に基づいて前記データベースからインタフェースライブラリを抽出し、該抽出されたインタフェースライブラリをプロセッサの機能を記述した動作記述に組み込むための書き換えを行う組み込み手段と、
前記組み込み手段でインタフェースライブラリが組み込まれた動作記述を動作合成する動作合成手段とを備えることを特徴とするプロセッサ合成装置。 - 複数のインタフェースライブラリを保存するデータベースと、
プロセッサのインタフェースを定義したインタフェース定義に基づいて前記データベースからインタフェースライブラリを抽出し、該抽出されたインタフェースライブラリを、少なくとも1つのプロセッサを含む複数のハードウェアの機能を記述した動作記述に組み込むための書き換えを行う組み込み手段と、
前記組み込み手段でインタフェースライブラリが組み込まれた動作記述を動作合成する動作合成手段とを備えることを特徴とするプロセッサ合成装置。 - 前記プロセッサとプロセッサ以外のハードウェアが逐次動作又は並列動作をする、請求項2に記載のプロセッサ合成装置。
- 前記動作記述が、外部メモリへのアクセスの記述を含み、前記外部メモリは配列で記述され、前記外部メモリへのアクセスの記述は、前記配列の指定であることを特徴とする、請求項1〜3の何れかに記載のプロセッサ合成装置。
- 前記動作合成により得られたインタフェースは、バス、メモリ、レジスタ、又は、ネットワークの何れかとプロセッサとを接続する、請求項1〜4の何れかに記載のプロセッサ合成装置。
- 前記動作合成手段は、RTL記述、ゲートレベル記述で記述された回路モデル、及び/又は回路図を出力する、請求項1〜5の何れかに記載のプロセッサ合成装置。
- 前記動作記述と前記インタフェース定義及び/又は抽出されたインタフェースライブラリとを記憶する記憶装置を更に備える、請求項1〜6の何れかに記載のプロセッサ合成装置。
- 複数のインタフェースライブラリを保存するデータベースと、
LSIのインタフェースを定義したインタフェース定義に基づいて前記データベースからインタフェースライブラリを抽出し、該抽出されたインタフェースライブラリをプロセッサ及び周辺ハードウェアの機能を記述した動作記述に組み込むための書き換えを行う組み込み手段と、
前記組み込み手段でインタフェースライブラリを組み込んだ動作記述を動作合成する動作合成手段とを備えることを特徴とするシステムLSI合成装置。 - 前記動作合成手段は、RTL記述、ゲートレベル記述で記述された回路モデル、及び/又は回路図を出力する、請求項8に記載のシステムLSI合成装置。
- 前記動作記述と前記インタフェース定義及び/又は抽出されたインタフェースライブラリとを記憶する記憶装置を更に備える、請求項8又は9に記載のシステムLSI合成装置。
- 前記インタフェースライブラリは、端子の宣言部分と前記動作記述を書き換えるための書き換え規則部分とを含んでいることを特徴とする、請求項1又は2に記載のプロセッサ合成装置。
- 前記動作記述は、インタフェースを規定する記述部分を含み、前記組み込み手段は、前記インタフェース定義と前記インタフェースを規定する記述部分とに基づいて、前記データベースからインタフェースライブラリを抽出して、当該抽出されたインタフェースライブラリを前記動作記述に組み込むための書き換えを行うことを特徴とする、請求項1又は2に記載のプロセッサ合成装置。
- 前記動作合成手段は、前記動作記述よりも抽象度の低い回路モデルを出力する、請求項1〜5の何れかに記載のプロセッサ合成装置。
- 前記動作記述は、インタフェースを規定する記述部分を含み、前記組み込み手段は、前記インタフェース定義と前記インタフェースを規定する記述部分とに基づいて、前記データベースからインタフェースライブラリを抽出して、当該抽出されたインタフェースライブラリを前記動作記述に組み込むための書き換えを行うことを特徴とする、請求項8に記載のシステムLSI合成装置。
- 前記インタフェースライブラリは、端子の宣言部分と前記動作記述を書き換えるための書き換え規則部分とを含んでいることを特徴とする、請求項8に記載のシステムLSI合成装置。
- 前記動作合成手段は、前記動作記述よりも抽象度の低い回路モデルをを出力する、請求項8に記載のシステムLSI合成装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002014750A JP3825328B2 (ja) | 2002-01-23 | 2002-01-23 | プロセッサ合成装置、システムlsi合成装置、プロセッサ合成方法、システムlsi合成方法、及び記録媒体 |
US10/349,465 US20030140054A1 (en) | 2002-01-23 | 2003-01-22 | Processor composing apparatus, system LSI composing apparatus, processor composing method, system LSI composing method, and program therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002014750A JP3825328B2 (ja) | 2002-01-23 | 2002-01-23 | プロセッサ合成装置、システムlsi合成装置、プロセッサ合成方法、システムlsi合成方法、及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003216669A JP2003216669A (ja) | 2003-07-31 |
JP3825328B2 true JP3825328B2 (ja) | 2006-09-27 |
Family
ID=19191901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002014750A Expired - Fee Related JP3825328B2 (ja) | 2002-01-23 | 2002-01-23 | プロセッサ合成装置、システムlsi合成装置、プロセッサ合成方法、システムlsi合成方法、及び記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20030140054A1 (ja) |
JP (1) | JP3825328B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016151830A (ja) * | 2015-02-16 | 2016-08-22 | 三菱電機株式会社 | 設計支援装置及び設計支援方法及び設計支援プログラム |
US10796044B2 (en) * | 2018-09-28 | 2020-10-06 | Mentor Graphics Corporation | Interface connectivity for printed circuit board schematic |
JP7178379B2 (ja) * | 2020-02-05 | 2022-11-25 | 株式会社日立製作所 | バスインタフェース装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03186928A (ja) * | 1989-12-16 | 1991-08-14 | Mitsubishi Electric Corp | データ処理装置 |
US5841663A (en) * | 1995-09-14 | 1998-11-24 | Vlsi Technology, Inc. | Apparatus and method for synthesizing integrated circuits using parameterized HDL modules |
JP2954894B2 (ja) * | 1996-12-13 | 1999-09-27 | 株式会社半導体理工学研究センター | 集積回路設計方法、集積回路設計のためのデータベース装置および集積回路設計支援装置 |
US6477683B1 (en) * | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
FR2809904B1 (fr) * | 2000-05-30 | 2005-04-29 | Cit Alcatel | Procede de synchronisation du fonctionnement d'au moins deux interfaces |
US6742104B2 (en) * | 2000-08-21 | 2004-05-25 | Texas Instruments Incorporated | Master/slave processing system with shared translation lookaside buffer |
JP3852741B2 (ja) * | 2000-10-31 | 2006-12-06 | シャープ株式会社 | 高位合成方法および高位合成装置 |
US20030033588A1 (en) * | 2001-01-29 | 2003-02-13 | John Alexander | System, method and article of manufacture for using a library map to create and maintain IP cores effectively |
US6832280B2 (en) * | 2001-08-10 | 2004-12-14 | Freescale Semiconductor, Inc. | Data processing system having an adaptive priority controller |
-
2002
- 2002-01-23 JP JP2002014750A patent/JP3825328B2/ja not_active Expired - Fee Related
-
2003
- 2003-01-22 US US10/349,465 patent/US20030140054A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2003216669A (ja) | 2003-07-31 |
US20030140054A1 (en) | 2003-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7478351B2 (en) | Designing system and method for designing a system LSI | |
US7484186B2 (en) | Method for designing a system LSI | |
Liu et al. | SimRPU: A simulation environment for reconfigurable architecture exploration | |
JP2002140379A (ja) | 高位合成方法および高位合成装置 | |
JP2004054755A (ja) | システムレベル設計方法及びシステムレベル設計装置 | |
JP3825328B2 (ja) | プロセッサ合成装置、システムlsi合成装置、プロセッサ合成方法、システムlsi合成方法、及び記録媒体 | |
JP4865960B2 (ja) | データ処理装置およびその制御方法 | |
Lysecky et al. | Prefetching for improved bus wrapper performance in cores | |
WO2022198447A1 (zh) | 一种数字电路的综合方法及综合装置 | |
JP4531715B2 (ja) | システムlsiの設計方法及びこれを記憶した記録媒体 | |
Viskic et al. | Design exploration and automatic generation of MPSoC platform TLMs from Kahn Process Network applications | |
JP4227789B2 (ja) | 集積回路装置およびデータ処理システム | |
US20050272197A1 (en) | Semiconductor device | |
JP2020140380A (ja) | 半導体装置及びデバッグシステム | |
Faure et al. | A generic hardware/software communication mechanism for Multi-Processor System on Chip, Targeting Telecommunication Applications. | |
JP2004310568A (ja) | シミュレータ装置、シミュレーション方法および性能解析方法 | |
US11373024B1 (en) | Circuit simulation based on a high-level language circuit specification | |
Wilkes et al. | Application of high level interface-based design to telecommunications system hardware | |
Neuendorffer | FPGA platforms for embedded systems | |
Nicolescu et al. | FPGA Platforms for Embedded Systems | |
Lewis et al. | CADRE: an asynchronous embedded DSP for mobile phone applications | |
Acher et al. | PCI-SCI protocol translations: Applying microprogramming concepts to FPGAs | |
Coelho et al. | Redesigning hardware-software systems | |
CN115496646A (zh) | 一种基于dsp的多核协同和并行计算的图像处理方法 | |
JP2005182359A (ja) | データ処理装置の設計方法及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060105 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060306 |
|
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: 20060608 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060629 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100707 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100707 Year of fee payment: 4 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100707 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110707 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120707 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120707 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130707 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |