JP2003233633A - Design method for integrated circuit - Google Patents

Design method for integrated circuit

Info

Publication number
JP2003233633A
JP2003233633A JP2002030387A JP2002030387A JP2003233633A JP 2003233633 A JP2003233633 A JP 2003233633A JP 2002030387 A JP2002030387 A JP 2002030387A JP 2002030387 A JP2002030387 A JP 2002030387A JP 2003233633 A JP2003233633 A JP 2003233633A
Authority
JP
Japan
Prior art keywords
integrated circuit
function
functional blocks
hardware
simulation
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.)
Pending
Application number
JP2002030387A
Other languages
Japanese (ja)
Inventor
Yoshifumi Kato
桂史 加藤
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2002030387A priority Critical patent/JP2003233633A/en
Publication of JP2003233633A publication Critical patent/JP2003233633A/en
Pending legal-status Critical Current

Links

Abstract

<P>PROBLEM TO BE SOLVED: To more easily and suitably assign functions required by specifications described in a program language to software and hardware. <P>SOLUTION: When the specifications of the integrated circuit are described in a C language (step 100), a database of a function block for dividing the function related to the specifications into a plurality of parts is created (step 110). A simulation model for simulating a designated function required by the above specifications with some of these functional blocks is created (step 120). Subsequently, the simulation model is operated on a computer, thereby detecting a part with a large number of communications between the function blocks (step 130, 140). Concerning the part with a large number of communications between the function blocks, grouping is performed taking a disable unit in assigning these function blocks to the software processing and hardware processing (step 150). <P>COPYRIGHT: (C)2003,JPO

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、中央処理装置(プ
ロセッサ)を備える集積回路の設計方法に関し、特にプ
ログラム言語で記述された仕様によって要求される機能
をハードウェアとソフトウェアとに割り当てる方法に関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for designing an integrated circuit having a central processing unit (processor), and more particularly to a method for assigning a function required by a specification written in a programming language to hardware and software.

【0002】[0002]

【従来の技術】図7に、従来のこの種の集積回路の設計
手順の一例を示す。同図7に示されるように、この一連
の処理手順では、まず、設計対象となる集積回路の仕様
が例えばC言語等のプログラム言語によって記述される
(ステップ300)。このようにプログラム言語によっ
て仕様が記述されると、これに基づいてシミュレーショ
ンモデルが作成される(ステップ310)。そして、こ
のシミュレーションモデルに基づいてシミュレーション
が実行され、上記記述されたプログラムが所望とする機
能を適切に満たしているか否かの確認がなされる(ステ
ップ320)。そして、シミュレーションの結果、同記
述されたプログラムが所望とする機能を適切に満たして
いると判断されると、この記述された仕様によって要求
される各機能をハードウェアによる処理とソフトウェア
による処理とに機能割当てする(ステップ330)。す
なわち、集積回路の備える中央処理装置(プロセッサ)
を介してソフトウェア処理する機能と、専用のハードウ
ェアによって実現する機能とを切り分ける。
2. Description of the Related Art FIG. 7 shows an example of a conventional design procedure for an integrated circuit of this type. As shown in FIG. 7, in this series of processing procedures, the specifications of the integrated circuit to be designed are first described in a programming language such as C language (step 300). When the specifications are described in the programming language in this way, a simulation model is created based on the specifications (step 310). Then, a simulation is executed based on this simulation model, and it is confirmed whether or not the program described above properly satisfies the desired function (step 320). Then, as a result of the simulation, when it is determined that the described program appropriately satisfies the desired function, each function required by the described specification is processed by hardware and software. Functions are assigned (step 330). That is, a central processing unit (processor) included in the integrated circuit
The function of software processing via the software and the function realized by dedicated hardware are separated.

【0003】[0003]

【発明が解決しようとする課題】ところで、上記中央処
理装置を備える集積回路の設計に関しては、その仕様に
基づきハードウェアで実現する機能とソフトウェアで実
現する機能との分割、割り当てを行う工程が、当該集積
回路の性能、コストなどに多大な影響を与えている。換
言すれば、中央処理装置を備える集積回路にとっては、
与えられた処理時間内での処理が実行でき、コスト要因
(回路規模、消費電力)を最小限とすることができるよ
うなハードウェアとソフトウェアとの機能割当ての組合
せを選択することが重要な命題となっている。
By the way, regarding the design of an integrated circuit having the above-mentioned central processing unit, the step of dividing and allocating the function realized by hardware and the function realized by software based on the specification is It has a great influence on the performance and cost of the integrated circuit. In other words, for an integrated circuit with a central processing unit,
It is important to select a combination of hardware and software function allocation that can perform processing within a given processing time and minimize cost factors (circuit scale, power consumption). Has become.

【0004】しかし、従来、このハードウェアで実現す
る機能とソフトウェアで実現する機能との分割、割り当
ては設計者の経験に基づいて行われているのが実情であ
った。このため、このように経験に基づいて機能割当て
が行われた後、更に詳細な設計を進めていくに従い、同
集積回路として上記設計制約が満たされなくなる事態も
少なからず生じていた。そして、このように設計制約が
満たされなくなる場合には、上記機能割当ての変更や上
流の設計工程からのやり直しが余儀なくされ、設計期間
の長期化を招くこととなっていた。
However, conventionally, it has been the actual situation that the function realized by the hardware and the function realized by the software are divided and assigned based on the experience of the designer. For this reason, after the function allocation is performed based on the experience as described above, as the further detailed design is advanced, the above-mentioned design constraint is not satisfied in the integrated circuit in some cases. Then, when the design constraint is not satisfied in this way, it is necessary to change the function allocation and redo from the upstream design process, resulting in a longer design period.

【0005】本発明はこうした実情に鑑みてなされたも
のであり、その目的は、中央処理装置を備える集積回路
の設計に際し、プログラム言語で記述された仕様によっ
て要求される機能をソフトウェアとハードウェアとへよ
り容易且つ適切に割り当てることのできる集積回路の設
計方法を提供することにある。
The present invention has been made in view of the above circumstances, and an object thereof is to design, in designing an integrated circuit having a central processing unit, functions required by software and hardware by a specification described in a programming language. It is an object of the present invention to provide a method of designing an integrated circuit that can be more easily and appropriately assigned to the integrated circuit.

【0006】[0006]

【課題を解決するための手段】以下、上記目的を達成す
るための手段及びその作用効果について記載する。請求
項1に記載の発明は、中央処理装置を備える集積回路の
設計に際し、プログラム言語を用いて記述された仕様に
よって要求される機能をハードウェアとソフトウェアと
に割り当てることによって同集積回路の設計を行う集積
回路の設計方法において、前記仕様によって要求される
機能が単位機能毎に分割された機能ブロックを前記仕様
の任意の動作に対応するように接続して計算機による動
作シミュレーションを行うとともに、このシミュレーシ
ョンの結果得られる情報に基づいて各々関連する機能ブ
ロックのグループ化を行い、それらグループ化した機能
ブロックを単位として前記ハードウェアとソフトウェア
とに割り当てることをその要旨とする。
[Means for Solving the Problems] Means for achieving the above-mentioned objects and their effects will be described below. According to the invention described in claim 1, when designing an integrated circuit having a central processing unit, the design of the integrated circuit is performed by assigning the functions required by the specifications described by using the programming language to the hardware and the software. In an integrated circuit designing method to be performed, a functional block in which a function required by the specification is divided for each unit function is connected so as to correspond to an arbitrary operation of the specification, and an operation simulation is performed by a computer. Based on the information obtained as a result, the related functional blocks are grouped, and the grouped functional blocks are assigned to the hardware and software as a unit.

【0007】上記構成によれば、単位機能毎に分割され
た機能ブロックを仕様の任意の動作に対応するように接
続してシミュレーション動作を行うことにより、仕様の
任意の動作がシミュレートされる。このシミュレーショ
ンの結果得られる情報によれば、同シミュレーションに
使用される機能ブロックをハードウェア又はソフトウェ
アへの機能割当てに際し不可分とした方がよい場合、こ
れらを各々関連する機能ブロックとして設計者の経験に
よらずとも判断できるようになる。したがって、上記構
成によれば、プログラム言語で記述された仕様によって
要求される機能をソフトウェアとハードウェアとに適切
に機能割り当てすることができるようになる。
According to the above configuration, the functional block divided for each unit function is connected so as to correspond to the arbitrary operation of the specification and the simulation operation is performed, whereby the arbitrary operation of the specification is simulated. According to the information obtained as a result of this simulation, if it is better to make the functional blocks used for the simulation inseparable when allocating the functions to hardware or software, these should be considered as the related functional blocks to the designer's experience. You will be able to judge it regardless. Therefore, according to the above configuration, the function required by the specification described in the programming language can be appropriately assigned to the software and the hardware.

【0008】なお、ここでソフトウェアへの割り当てと
は、集積回路の記憶装置に格納されるプログラムに基づ
いて同集積回路の備える中央処理装置によって行われる
処理への割り当てのことをいう。また、この記憶装置に
格納されるプログラムは、上記仕様を記述するプログラ
ムとは必ずしも一致しない。上記仕様を記述するプログ
ラム言語をC言語やC++言語のような高位記述言語と
し、上記記憶装置に格納されるプログラムを上記仕様を
記述するプログラム言語が翻訳されるなどして中央処理
装置によって実行可能となる言語とすることが望まし
い。
Here, the allocation to the software means the allocation to the processing performed by the central processing unit included in the integrated circuit based on the program stored in the storage device of the integrated circuit. Also, the program stored in this storage device does not necessarily match the program describing the above specifications. The programming language that describes the above specifications is a high-level description language such as C language or C ++ language, and the program stored in the storage device can be executed by the central processing unit by translating the programming language that describes the above specifications. It is desirable that the language be

【0009】請求項2記載の発明は、請求項1記載の発
明において、前記機能ブロックの各々は、その機能を定
義する機能定義部と該機能定義部を呼び出す通信定義部
とを有して記述されており、前記機能ブロックの接続
は、前記通信定義部間の接続の定義として行われること
をその要旨とする。
According to a second aspect of the present invention, in the first aspect of the invention, each of the functional blocks has a function definition part defining the function and a communication definition part for calling the function definition part. The gist is that the connection of the functional blocks is performed as a definition of the connection between the communication definition units.

【0010】上記構成によれば、機能ブロックが、その
機能にかかる処理を定義する機能定義部と、該機能定義
部を呼び出す通信定義部とを備えて構成される。そし
て、機能ブロックの接続は、通信定義部間の接続の定義
として行われる。このため、シミュレーションに際し、
実際の集積回路において行われる処理と、シミュレーシ
ョン時に必要ではあるが実際の集積回路においては行わ
れない処理とを簡易に区別することができる。換言すれ
ば、機能定義部によって定義されている処理と、それ以
外の処理とを簡易に区別することができるようになる。
したがって、上記計算機によるシミュレーション動作に
よって、実際の集積回路の動作特性を簡易に把握するこ
とができるようになる。
According to the above configuration, the functional block is configured to include a function defining section that defines a process related to the function and a communication defining section that calls the function defining section. Then, the connection of the functional blocks is performed as the definition of the connection between the communication definition units. Therefore, in the simulation,
It is possible to easily distinguish the processing performed in the actual integrated circuit from the processing required in the simulation but not performed in the actual integrated circuit. In other words, it becomes possible to easily distinguish the processing defined by the function definition unit from other processing.
Therefore, it is possible to easily grasp the actual operating characteristics of the integrated circuit by the simulation operation by the computer.

【0011】請求項3記載の発明は、請求項1又は2記
載の発明において、前記シミュレーションの結果得られ
る情報として、それら各機能ブロック毎にその通信対象
となる機能ブロック及びその通信数に関する情報を取得
し、該取得した各機能ブロック間の通信数に応じて前記
関連する機能ブロックのグループ化を行うことをその要
旨とする。
According to a third aspect of the present invention, in the first or second aspect of the present invention, as the information obtained as a result of the simulation, information regarding the functional blocks to be communicated and the number of communications for each functional block is provided. The gist is to acquire and group the related function blocks according to the number of communication between the acquired function blocks.

【0012】ハードウェア及びソフトウェア間で通信数
が多い場合、当該通信を有して行われる処理に要する時
間は長期化する。ここで、上記構成では、シミュレーシ
ョンの結果得られる情報として、それら各機能ブロック
毎にその通信対象となる機能ブロック及びその通信数に
関する情報を取得し、該取得した各機能ブロック間の通
信数に応じて前記関連する機能ブロックのグループ化を
行う。このため、機能ブロック間での通信数の多いもの
をグループ化することができるようになる。したがっ
て、ハードウェア及びソフトウェア間での通信のオーバ
ーヘッドを抑制することができるようになる。
When the number of communications between the hardware and the software is large, the time required for the processing performed with the communications becomes long. Here, in the above configuration, as information obtained as a result of the simulation, information regarding the functional blocks to be communicated and the number of communications thereof is acquired for each of the functional blocks, and according to the number of communications between the acquired functional blocks. The related functional blocks are grouped. For this reason, it becomes possible to group those having a large number of communication between the functional blocks. Therefore, it becomes possible to suppress the communication overhead between the hardware and the software.

【0013】請求項4記載の発明は、請求項3記載の発
明において、前記シミュレーションの結果得られる情報
として、前記各機能ブロックにおける処理時間に関する
情報を取得するとともに、該取得した各機能ブロックに
おける処理時間に関する情報をもとに前記グループ化さ
れた機能ブロックのグループ毎の処理時間の総量を算出
し、この算出した処理時間の総量の多いグループから優
先して前記ハードウェアに機能割当てを行うことをその
要旨とする。
According to a fourth aspect of the present invention, in the third aspect of the present invention, as information obtained as a result of the simulation, information regarding a processing time in each of the functional blocks is acquired, and the obtained processing in each of the functional blocks is acquired. It is possible to calculate the total amount of processing time for each group of the functional blocks grouped on the basis of time-related information, and preferentially perform function allocation to the hardware from a group having a larger total amount of calculated processing time. The summary will be given.

【0014】上記構成では、シミュレーションの結果得
られる情報として、各機能ブロックにおける処理時間に
関する情報を取得する。そして、取得した各機能ブロッ
クにおける処理時間に関する情報をもとにグループ化さ
れた機能ブロックのグループ毎の処理時間の総量を算出
する。そして、グループ毎の処理時間の総量の多いグル
ープから優先して前記ハードウェアに機能割当てを行
う。このように、処理時間の大きいグループにかかる機
能を優先してハードウェアに割り当てることで、集積回
路における処理時間を好適に抑制することができる。
In the above configuration, as the information obtained as a result of the simulation, the information regarding the processing time in each functional block is acquired. Then, the total amount of processing time for each group of the functional blocks grouped is calculated based on the acquired information regarding the processing time in each functional block. Then, the function is assigned to the hardware with priority given to the group having the largest total processing time for each group. As described above, the processing time in the integrated circuit can be appropriately suppressed by preferentially assigning the function related to the group having a long processing time to the hardware.

【0015】請求項5記載の発明は、請求項3記載の発
明において、前記グループ化の後、前記計算機による動
作シミュレーションを再度行うとともに、このシミュレ
ーションの結果得られる情報として前記グループ化され
た機能ブロックのグループ毎の処理時間の総量を取得
し、この取得した処理時間の総量の多いグループから優
先して前記ハードウェアに機能割当てを行うことをその
要旨とする。
According to a fifth aspect of the present invention, in the third aspect of the invention, after the grouping, the operation simulation by the computer is performed again, and the grouped functional blocks are obtained as information obtained as a result of the simulation. The gist of the present invention is to acquire the total amount of processing time for each group and preferentially allocate the function to the hardware from the group having the larger total amount of acquired processing time.

【0016】上記構成では、グループ化の後、計算機に
よる動作シミュレーションを再度行うとともに、このシ
ミュレーションの結果得られる情報として前記グループ
化された機能ブロックのグループ毎の処理時間の総量を
取得する。そして、処理時間の大きいグループにかかる
機能を優先してハードウェアに割り当てることで、処理
時間を好適に抑制することができる。
In the above configuration, after grouping, the operation simulation by the computer is performed again, and the total amount of processing time for each group of the grouped functional blocks is acquired as information obtained as a result of this simulation. Then, the processing time can be suitably suppressed by preferentially assigning the function related to the group having a long processing time to the hardware.

【0017】なお、上記各請求項4又は5記載の発明
は、請求項6記載の発明によるように、前記グループ化
された各機能ブロックに対するハードウェアへの機能割
当ては、当該集積回路としての設計制約が満たされるま
で、順次実行されるようにしてもよい。
According to the invention described in claim 4 or 5, the function allocation to the hardware for each of the grouped functional blocks is designed as the integrated circuit according to the invention described in claim 6. It may be executed sequentially until the constraint is satisfied.

【0018】請求項7記載の発明は、請求項1〜6のい
ずれかに記載の発明において、前記単位機能毎に分割さ
れた機能ブロックを予めデータベースに登録しておき、
所望とされる集積回路の仕様に応じて、その必要とされ
る機能ブロック群が前記データベースから選択されるこ
とをその要旨とする。
According to a seventh aspect of the invention, in the invention according to any one of the first to sixth aspects, the functional blocks divided for each unit function are registered in a database in advance,
The gist is that the required functional block group is selected from the database according to the desired specifications of the integrated circuit.

【0019】上記構成によれば、新たに集積回路を設計
する際に、プログラム言語による仕様の記述や、仕様の
記述後の上記シミュレーションにかかる工数を低減する
ことができる。
According to the above configuration, when newly designing an integrated circuit, it is possible to reduce the number of man-hours required for description of specifications in a programming language and for the simulation after description of specifications.

【0020】[0020]

【発明の実施の形態】以下、本発明にかかる集積回路の
設計方法の一実施形態について、図面を参照しつつ説明
する。
BEST MODE FOR CARRYING OUT THE INVENTION An embodiment of a method for designing an integrated circuit according to the present invention will be described below with reference to the drawings.

【0021】本実施形態では、設計対象となる集積回路
の仕様がC言語によって記述される。そして、このC言
語によって記述された仕様によって要求される機能を、
ハードウェアとソフトウェアとに割り当てる作業を行
う。換言すれば、上記要求される各機能について、ハー
ドウェアによって実現するか、集積回路の備える中央処
理装置を介してソフトウェア処理によって実現するかの
選択をする。
In this embodiment, the specification of the integrated circuit to be designed is described in C language. Then, the functions required by the specifications described in the C language are
Work on assigning to hardware and software. In other words, each of the required functions is selected to be realized by hardware or by software processing via a central processing unit included in the integrated circuit.

【0022】図1に、上記集積回路の設計を支援する設
計支援装置の構成を示す。同図1に示すように、この設
計支援装置は、C言語で記述されたプログラムを機械語
に翻訳し、同C言語で記述された処理を実行する計算機
10を備えている。また、この計算機10によってアク
セス可能なメモリ等の主記憶装置20と、ディスク媒体
等の補助記憶装置30とを備えている。更に、キーボー
ドやマウス等、外部から計算機10にアクセスするため
の手段である入力装置40と、計算機10の演算結果や
主記憶装置20に記憶されたデータ、補助記憶装置30
に記憶されたデータを出力するディスプレイ等の出力装
置50を備えている。
FIG. 1 shows the configuration of a design support device for supporting the design of the integrated circuit. As shown in FIG. 1, the design support apparatus includes a computer 10 that translates a program written in C language into a machine language and executes a process written in the C language. The computer 10 also includes a main storage device 20 such as a memory accessible by the computer 10 and an auxiliary storage device 30 such as a disk medium. Further, an input device 40, such as a keyboard or a mouse, for accessing the computer 10 from the outside, a calculation result of the computer 10, data stored in the main storage device 20, and an auxiliary storage device 30.
An output device 50, such as a display, that outputs the data stored in

【0023】図2に、上記設計支援装置を用いて行われ
る集積回路の設計手順を示す。同図2に示すように、ま
ず、ステップ100において、C言語によって設計対象
となる集積回路の仕様を記述する。次に、ステップ11
0において、この仕様によって要求される機能を複数に
分割して機能ブロックデータベースを作成し、先の図1
の補助記憶装置30に記憶する。この機能の分割は、上
記仕様によって要求される機能のうち、それ自身で所定
の機能を有する単位機能への分割を行うものである。例
えば上記仕様によって通信に関する機能が要求される場
合、これは送信機能と受信機能との単位機能に分割する
ことができる。また、この送信機能をフィルタ処理機
能、エンコード機能等の単位機能に分割するなど、送信
機能や受信機能を更に分割することもできる。
FIG. 2 shows a design procedure of an integrated circuit performed using the design support device. As shown in FIG. 2, first, in step 100, the specifications of the integrated circuit to be designed are described in C language. Next, step 11
0, a function block database is created by dividing the functions required by this specification into a plurality of blocks, and the function block database shown in FIG.
It is stored in the auxiliary storage device 30 of. This division of functions divides the functions required by the above specifications into unit functions that have predetermined functions by themselves. For example, when a function related to communication is required by the above specifications, this can be divided into a unit function of a transmission function and a reception function. Further, the transmission function and the reception function can be further divided by dividing the transmission function into unit functions such as a filter processing function and an encoding function.

【0024】図3に、こうして分割された機能ブロック
データベースの例を示す。同図3に示すように、データ
ベースを構成する各機能ブロックは、機能定義部と通信
定義部とからなる。ここで機能定義部は、その機能にか
かる処理を定義するデータからなる。また、通信定義部
は、同通信定義部の属する機能ブロックの機能定義部を
呼び出すためのデータからなる。
FIG. 3 shows an example of the functional block database thus divided. As shown in FIG. 3, each functional block forming the database is composed of a function definition section and a communication definition section. Here, the function definition section is made up of data that defines processing related to the function. Further, the communication definition part is composed of data for calling the function definition part of the function block to which the communication definition part belongs.

【0025】図4に、機能ブロックの一例を示す。ここ
では、入力される10個のデータの平均値を算出する機
能についての機能ブロックを示す。同図4に示すよう
に、この機能ブロックの機能定義部は、入力される10
個のデータの平均値を算出して出力するためのC言語で
記述されたプログラムからなる。ちなみに、ここでは、
入力される10個のデータの平均値を算出して出力する
関数として「fnc filter」が定義されている。
FIG. 4 shows an example of functional blocks. Here, a functional block for a function of calculating an average value of 10 pieces of input data is shown. As shown in FIG. 4, the function definition part of this function block is input 10
It is composed of a program written in C language for calculating and outputting the average value of each piece of data. By the way, here
“Fnc filter” is defined as a function that calculates and outputs an average value of 10 pieces of input data.

【0026】一方、同図4に示すように、通信定義部
は、機能定義部を呼び出すとともに、同機能定義部の処
理にかかる入力データと、同機能定義部の処理にかかる
出力データとを定義する。具体的には、図4に示す通信
定義部は、入力される10個のデータの平均値を算出し
て出力する機能としての上記関数「fnc filter」を呼び
出すとともに、同関数への入力データ及び同関数からの
出力データを定義するためのC言語で記述されたプログ
ラムからなる。
On the other hand, as shown in FIG. 4, the communication definition unit calls the function definition unit and defines the input data for the processing of the function definition unit and the output data for the processing of the function definition unit. To do. Specifically, the communication definition unit shown in FIG. 4 calls the above function “fnc filter” as a function of calculating and outputting an average value of 10 pieces of input data, and inputting data to the function and It is composed of a program written in C language for defining output data from the function.

【0027】こうして構成される機能ブロックを用いて
機能ブロックデータベースを構成すると、先の図2のス
テップ120に示すように、これらを用いて上記仕様に
基づき想定される集積回路の任意の動作(仕様の任意の
動作)の動作シミュレーションを行うシミュレーション
モデルを作成する。換言すれば、仕様によって要求され
る所定の機能についてのシミュレーションモデルを作成
する。ここで、所定の機能とは、上記仕様によって要求
される機能のうち設計対象の集積回路において想定され
る動作にかかる一連の機能である。
When the functional block database is constructed using the functional blocks constructed in this way, as shown in step 120 of FIG. 2 above, these are used to perform any operation (specification of the integrated circuit assumed based on the above specifications). Create a simulation model that simulates the behavior of any of the above). In other words, a simulation model for a predetermined function required by the specifications is created. Here, the predetermined function is a series of functions related to the operation assumed in the integrated circuit to be designed among the functions required by the above specifications.

【0028】例えば上記仕様によって通信に関する機能
が要求される場合、エンコード処理やフィルタ処理等、
送信にかかる一連の処理をシミュレーションするモデル
を作成する。このシミュレーションモデルは、設計対象
の集積回路において想定される動作が複数存在する場
合、これら各動作毎にシミュレーションモデルをそれぞ
れ作成する。この際、想定される動作の全てについての
シミュレーションモデルを作成することが望ましい。
For example, when a function relating to communication is required by the above specifications, encoding processing, filtering processing, etc.
Create a model that simulates a series of processing related to transmission. In this simulation model, when there are a plurality of expected operations in the integrated circuit to be designed, a simulation model is created for each of these operations. At this time, it is desirable to create a simulation model for all expected operations.

【0029】このシミュレーションモデルは、上記所定
の機能にかかる各機能ブロックの通信定義部間の接続を
定義することで構成される。すなわち、各通信定義部に
ついて、これにデータをインプットする通信定義部やこ
れがデータを出力する通信定義部が定義される。なお、
データの入力端となる通信定義部及びデータの出力端と
なる通信定義部については、その旨定義される。詳しく
は、こうした通信定義部間の接続の定義は、C言語によ
って記述される。これにより、シミュレーションモデル
は、設計対象の集積回路において想定される動作にかか
る一連の機能を記述するプログラムとなる。
This simulation model is constructed by defining the connections between the communication definition units of the respective functional blocks relating to the above-mentioned predetermined functions. That is, for each communication definition part, a communication definition part for inputting data to it and a communication definition part for outputting data are defined. In addition,
The communication definition part serving as the data input end and the communication definition part serving as the data output end are defined accordingly. Specifically, the definition of the connection between the communication definition units is described in C language. As a result, the simulation model becomes a program that describes a series of functions related to expected operations in the integrated circuit to be designed.

【0030】このようにシミュレーションモデルを通信
定義部間の接続を定義することによって構成すること
で、実際の集積回路において行われる処理と、シミュレ
ーション時に必要ではあるが実際の集積回路においては
行われない処理とを簡易に区別することができる。した
がって、上記シミュレーションモデルによるシミュレー
トによって、実際の集積回路の動作特性を簡易に把握す
ることができるようになる。
By constructing the simulation model by defining the connections between the communication definition units in this way, the processing performed in the actual integrated circuit and the processing required in the simulation but not performed in the actual integrated circuit are performed. It can be easily distinguished from processing. Therefore, it becomes possible to easily grasp the actual operating characteristics of the integrated circuit by the simulation using the simulation model.

【0031】こうして作成されたシミュレーションモデ
ルは、先の図1に示した主記憶装置20に記憶される。
そして、図2に示すステップ130において、このシミ
ュレーションモデルを先の図1に示した計算機10上で
動作させる。ここでは、シミュレーションモデルに対応
したテスト信号モデルを別に用意し先の図1に示した入
力装置40を介して計算機10に供給する。計算機10
においては、このテスト信号モデルを上記シミュレーシ
ョンモデルの入力端から入力させてシミュレートし、こ
のテスト信号モデルに所定の処理がなされるまでシミュ
レーションモデルの動作をモニタする。具体的には、こ
のモニタ動作は、機能ブロック間の通信伝送回数である
通信数と、各機能ブロックにおける処理にかかるサイク
ル数とである。なお、ここでサイクル数とは、当該機能
ブロックにデータが入力されてから所定の処理を完了し
てこれを出力するまでに要する上記計算機10の動作ク
ロック数である。
The simulation model created in this way is stored in the main storage device 20 shown in FIG.
Then, in step 130 shown in FIG. 2, the simulation model is operated on the computer 10 shown in FIG. Here, a test signal model corresponding to the simulation model is separately prepared and supplied to the computer 10 via the input device 40 shown in FIG. Calculator 10
In (1), the test signal model is input from the input end of the simulation model to be simulated, and the operation of the simulation model is monitored until a predetermined process is performed on the test signal model. Specifically, this monitor operation is the number of communications, which is the number of communication transmissions between the functional blocks, and the number of cycles required for processing in each functional block. Here, the number of cycles is the number of operating clocks of the computer 10 required from the input of data to the functional block to the completion of the predetermined processing and the output thereof.

【0032】上記各シミュレーションモデルに対応した
テスト信号モデルは、複数用意されることが望ましい。
これにより、当該シミュレーションモデルによってシミ
ュレートされる集積回路の動作が、与えられた入力信号
によって変化し得る場合に的確に対処することができる
ようになる。そして、このように複数のテスト信号モデ
ルを用いる場合には、動作のモニタ結果を統計処理する
などすればよい。すなわち、各テスト信号モデルを用い
た場合の上記通信数や処理サイクル数を統計処理するな
どすればよい。
It is desirable to prepare a plurality of test signal models corresponding to the above simulation models.
This makes it possible to accurately deal with the case where the operation of the integrated circuit simulated by the simulation model can be changed by a given input signal. Then, when a plurality of test signal models are used in this way, the monitor result of the operation may be statistically processed. That is, the number of communications and the number of processing cycles may be statistically processed when each test signal model is used.

【0033】こうしてシミュレーションが実行される
と、ステップ140において、先の図1に示した補助記
憶装置30に、シミュレーションの結果に関する情報が
記憶される。このシミュレーションの結果に関する情報
は、上記モニタされたシミュレーションモデルの動作に
関するデータである。すなわち、機能ブロック間の通信
数と、各機能ブロックにおける処理サイクル数とであ
る。
When the simulation is executed in this way, in step 140, information about the result of the simulation is stored in the auxiliary storage device 30 shown in FIG. The information regarding the result of this simulation is data regarding the operation of the monitored simulation model. That is, the number of communications between the functional blocks and the number of processing cycles in each functional block.

【0034】こうして補助記憶装置30に記憶されたシ
ミュレーションの結果に関する情報は、適宜、出力装置
50を介して出力される。そして、図2のステップ15
0において、この出力装置50によって出力されたシミ
ュレーションの結果に関する情報に基づいて機能ブロッ
クをハードウェアとソフトウェアとへの割り当ての単位
にグループ化する。詳しくは、このグループ化は、各シ
ミュレーションモデルの動作に際して通信数の多い機能
ブロック間から順にこれら機能ブロックを同一のグルー
プとしていく作業である。このグループ化は、例えば通
信数が所定以上となる機能ブロックについて行うなどす
ればよい。
The information regarding the result of the simulation stored in the auxiliary storage device 30 in this way is appropriately output through the output device 50. And step 15 of FIG.
At 0, the functional blocks are grouped into units of allocation to hardware and software based on the information regarding the result of the simulation output by the output device 50. More specifically, this grouping is an operation in which, in the operation of each simulation model, these functional blocks are grouped into the same group in order from the functional block having the largest number of communications. This grouping may be performed, for example, for functional blocks whose communication count is greater than or equal to a predetermined value.

【0035】図5に、このグループ化の例を示す。同図
5に示すように、機能ブロックB及び機能ブロックC間
は通信数が多いために、機能ブロックB及び機能ブロッ
クCは同一のグループ(グループ2)とされている。ま
た、機能ブロックD及び機能ブロックE間も通信数が多
いために、機能ブロックD及び機能ブロックEも同一の
グループ(グループ3)とされている。更に、機能ブロ
ックAについては、特に他の機能ブロックとの間での通
信数が多くないため、単独でグループ(グループ1)が
構成されている。
FIG. 5 shows an example of this grouping. As shown in FIG. 5, since the number of communications between the functional blocks B and C is large, the functional blocks B and C are in the same group (group 2). Further, since the number of communications between the functional blocks D and E is large, the functional blocks D and E are also in the same group (group 3). Further, regarding the functional block A, since the number of communications with other functional blocks is not particularly large, a group (group 1) is independently configured.

【0036】このように、機能ブロック間での通信数の
多いものをグループ化することで、集積回路においてハ
ードウェア及びソフトウェア間での通信のオーバーヘッ
ドを抑制することができるようになる。これにより、ハ
ードウェア及びソフトウェア間での通信を有して処理が
行われることに起因する処理時間の長期化の抑制を図
る。
As described above, by grouping those having a large number of communication between the functional blocks, it becomes possible to suppress the communication overhead between the hardware and the software in the integrated circuit. As a result, it is possible to prevent the processing time from being lengthened due to the processing being performed with communication between the hardware and the software.

【0037】なお、シミュレーションモデルが複数ある
場合には、各シミュレーションモデル毎にモニタされた
機能ブロック間の通信数を統計処理し、同統計処理され
た通信数に基づいてグループ化を行う。
When there are a plurality of simulation models, the number of communications between the functional blocks monitored for each simulation model is statistically processed, and grouping is performed based on the number of communications subjected to the statistical processing.

【0038】こうしてグループ化がなされると、このグ
ループ化された機能ブロックにかかるデータは、上記入
力装置40を介して上記主記憶装置20に記憶される。
そして、先の図2に示すステップ160において、グル
ープ化された機能ブロック毎にこれをハードウェアとソ
フトウェアとに割り当てる。
When the grouping is performed in this way, the data relating to the grouped functional blocks is stored in the main storage device 20 via the input device 40.
Then, in step 160 shown in FIG. 2, the functional blocks are assigned to hardware and software for each functional block.

【0039】次に、図6に基づいてこのハードウェアと
ソフトウェアとへの割り当てにかかる手順について説明
する。ここでは、まず、ステップ200において、上記
補助記憶装置30に記憶されたシミュレーション結果の
うち、各機能ブロックの処理サイクル数を用いて、各グ
ループ毎の処理サイクル数の総和を算出する。続いてス
テップ210において、グループ毎の処理サイクル数の
総和に基づきシミュレーションモデルの処理サイクル数
の総和を算出する。続いて、ステップ220において、
上記算出されたシミュレーションモデルの処理サイクル
数の総和に基づいて、これが設計制約を満たすか否かが
判断される。ここで、設計制約とは、当該シミュレーシ
ョンモデルによってシミュレートされる集積回路の動作
(処理)に対して要求される処理時間にかかる制約のこ
とである。なお、ここでは、この設計制約を所定のサイ
クル数として設定する。
Next, with reference to FIG. 6, a procedure for allocating the hardware and the software will be described. Here, first, in step 200, the total number of processing cycles of each group is calculated using the number of processing cycles of each functional block among the simulation results stored in the auxiliary storage device 30. Then, in step 210, the total number of processing cycles of the simulation model is calculated based on the total number of processing cycles for each group. Then, in step 220,
Based on the total number of processing cycles of the calculated simulation model, it is determined whether or not this satisfies the design constraint. Here, the design constraint is a constraint on the processing time required for the operation (processing) of the integrated circuit simulated by the simulation model. Note that here, this design constraint is set as a predetermined number of cycles.

【0040】そして、ステップ220においてシミュレ
ーションモデルの処理サイクル数(処理時間)が設計制
約を満たさないと判断されると、ステップ230に移行
する。このステップ230においては、当該シミュレー
ションモデルを構成するグループのうち、処理サイクル
数の総和が最大となるグループにかかる機能ブロックの
各機能をハードウェアに割り当てる。そして、ステップ
240において、ハードウェアに割り当てたグループの
処理サイクル数をシミュレーションモデルの処理サイク
ル数より減算する。このステップは、上記ステップ23
0により処理サイクル数の多いグループをハードウェア
に割り当てることでシミュレーションモデルの処理サイ
クル数が低減することを概算するものである。ここで
は、処理時間がソフトウェア処理よりもハードウェア処
理の方が速いことを考慮し、ハードウェア処理にかかる
処理時間を近似的に「0」とする。
If it is determined in step 220 that the number of processing cycles (processing time) of the simulation model does not satisfy the design constraint, the process proceeds to step 230. In this step 230, each function of the functional blocks related to the group having the maximum total number of processing cycles among the groups forming the simulation model is assigned to the hardware. Then, in step 240, the number of processing cycles of the group assigned to the hardware is subtracted from the number of processing cycles of the simulation model. This step is the same as step 23 above.
It is roughly estimated that the number of processing cycles of the simulation model is reduced by assigning a group having a large number of processing cycles to 0 by hardware. Here, considering that the processing time of hardware processing is faster than that of software processing, the processing time required for hardware processing is approximately set to “0”.

【0041】こうして、上記ステップ230により処理
サイクル数の多いグループをハードウェアに割り当てる
ことでシミュレーションモデルの処理サイクル数が低減
したことを見込んで、ステップ220において、再度設
計制約を満たすか否かが判断される。このステップ22
0〜240にかかる処理は、ステップ220において、
設計制約を満たすと判断されるまで行われる。そして、
設計制約を満たすと判断されると、ソフトウェアとハー
ドウェアとへの機能割り当てを終了する。すなわち、こ
の時点でハードウェアに割り当てられたグループにかか
る機能をハードウェアに割り当てるとともに、それ以外
の機能をソフトウェアに割り当てるものとする。なお、
このハードウェアに割り当てられる機能については、上
記主記憶装置20に記憶される。
In this manner, in consideration of the fact that the number of processing cycles of the simulation model is reduced by assigning the group having a large number of processing cycles to the hardware in the above step 230, it is judged in step 220 whether or not the design constraint is satisfied again. To be done. This step 22
The process of 0 to 240 is performed in step 220.
The process is repeated until it is determined that the design constraint is satisfied. And
When it is determined that the design constraint is satisfied, the function allocation to software and hardware is terminated. That is, at this time, the function related to the group assigned to the hardware is assigned to the hardware, and the other functions are assigned to the software. In addition,
The functions assigned to this hardware are stored in the main storage device 20.

【0042】このように、設計制約を満たすまで段階的
にハードウェアへの割り当てを増加させていくことで、
ハードウェアへの割り当てを極力抑制することができ、
ひいては、集積回路の回路規模を抑制することができ
る。
Thus, by gradually increasing the allocation to the hardware until the design constraint is satisfied,
It is possible to suppress allocation to hardware as much as possible,
As a result, the circuit scale of the integrated circuit can be suppressed.

【0043】なお、複数のシミュレーションモデルを有
する場合には、図6にかかる処理は、各シミュレーショ
ンモデル毎に行われる。そして、全てのシミュレーショ
ンモデルについて、設計制約を満たすと判断された時点
でのハードウェアに割り当てられたグループにかかる機
能を、ハードウェアへの割り当てとする。
When a plurality of simulation models are included, the process shown in FIG. 6 is performed for each simulation model. Then, for all simulation models, the function associated with the group assigned to the hardware at the time when it is determined that the design constraint is satisfied is assigned to the hardware.

【0044】また、上記ソフトウェアへ割り当てられた
機能を記述するC言語で書かれたデータは、これ以降の
設計工程において変更を受けるなどした後、集積回路に
備えられる中央処理装置によって実行可能なプログラム
言語に翻訳されて同集積回路内の記憶装置に格納され
る。
The data written in the C language that describes the functions assigned to the software is a program that can be executed by the central processing unit provided in the integrated circuit after being modified in the subsequent design process. It is translated into a language and stored in a storage device in the integrated circuit.

【0045】以上説明した本実施形態によれば、以下の
効果が得られるようになる。 (1)シミュレーションモデルの計算機による動作に際
しての各機能ブロック間の通信数の多いものをグループ
化した。このため、集積回路におけるハードウェア及び
ソフトウェア間での通信のオーバーヘッドを抑制するこ
とができるようになる。したがって、ハードウェア及び
ソフトウェア間での通信数が多い場合の処理時間の長期
化を抑制することができ、ひいては、ハードウェア及び
ソフトウェアへの機能割り当てを適切に行うことができ
る。
According to this embodiment described above, the following effects can be obtained. (1) Those in which the number of communications between the functional blocks is large when the simulation model is operated by the computer are grouped. Therefore, it becomes possible to suppress the communication overhead between hardware and software in the integrated circuit. Therefore, it is possible to suppress the extension of the processing time when the number of communications between the hardware and the software is large, and it is possible to appropriately perform the function allocation to the hardware and the software.

【0046】(2)シミュレーションモデルの計算機に
よる動作に際しての各機能ブロックの処理サイクル数に
基づき、各グループの処理サイクル数の総和を算出し
た。そして、ハードウェアとソフトウェアとへの前記各
グループの割り当てを、同グループ毎の処理サイクル数
の総和の大きいものから順に行った。これにより、集積
回路の回路規模を好適に抑制しつつ同集積回路における
処理時間を好適に抑制することができる。
(2) The total number of processing cycles of each group was calculated based on the number of processing cycles of each functional block when the simulation model was operated by the computer. Then, the allocation of each group to the hardware and the software was performed in order from the largest sum of the number of processing cycles for each group. As a result, the processing time in the integrated circuit can be appropriately suppressed while the circuit scale of the integrated circuit is preferably suppressed.

【0047】(3)機能ブロックを、その機能にかかる
処理を定義する機能定義部と、該機能定義部を呼び出す
通信定義部とを備えて構成した。そして、シミュレーシ
ョンモデルを、通信定義部間の接続を定義することで構
成した。このため、シミュレーションモデルにおいて、
実際の集積回路において行われる処理と、シミュレーシ
ョン時に必要ではあるが実際の集積回路においては行わ
れない処理とを簡易に区別することができる。したがっ
て、上記シミュレーションモデルによるシミュレートに
よって、実際の集積回路の動作特性を簡易に把握するこ
とができるようになる。
(3) The function block is configured to include a function definition section that defines the processing related to the function and a communication definition section that calls the function definition section. Then, the simulation model is constructed by defining the connection between the communication definition units. Therefore, in the simulation model,
It is possible to easily distinguish the processing performed in the actual integrated circuit from the processing required in the simulation but not performed in the actual integrated circuit. Therefore, it becomes possible to easily grasp the actual operating characteristics of the integrated circuit by the simulation using the simulation model.

【0048】(4)機能ブロックの処理時間の指標とし
て処理サイクル数を用いた。これにより、計算機の動作
速度と集積回路の中央処理装置の動作速度とが異なる場
合であれ、これら計算機の処理時間と中央処理装置の処
理時間とを簡易に対応付けることができる。
(4) The number of processing cycles was used as an index of the processing time of the functional block. Accordingly, even when the operating speed of the computer and the operating speed of the central processing unit of the integrated circuit are different, the processing time of these computers and the processing time of the central processing unit can be easily associated with each other.

【0049】なお、上記実施形態は、以下のように変更
して実施してもよい。 ・上記実施形態では、テスト信号モデルが複数ある場合
には、これら各テスト信号モデルによるモニタ結果を統
計処理したがこれに限られない。例えば、最も通信数の
多いものや最も処理サイクル数の多いもの等、モニタ結
果のうち最も設計制約を満たすうえで妨げとなる結果を
採用するようにしてもよい。
The above embodiment may be modified and implemented as follows. -In the above-mentioned embodiment, when there are a plurality of test signal models, the monitor result by each of these test signal models was statistically processed, but it is not limited to this. For example, it is possible to adopt the result that is the most obstructive in satisfying the design constraint among the monitoring results, such as the one with the largest number of communications or the one with the largest number of processing cycles.

【0050】・処理サイクル数の代わりに、処理時間を
示す任意のパラメータを用いてもよい。 ・上記実施形態では、複数のシミュレーションモデルが
ある場合、各シミュレーションモデル毎にモニタされた
機能ブロック間の通信数を統計処理し、同統計処理され
た通信数に基づいてグループ化を行ったがこれに限らな
い。例えば、通信数の多くなるシミュレーションモデル
の数を考慮せず、各シミュレーションモデルに対応した
機能ブロック間の通信数が多くなるものから順に、該当
する機能ブロックをグループ化していってもよい。ま
た、通信数の多くなることがある機能ブロック間につい
て、通信数の多くなるシミュレーションモデルの数が多
いものほど、これにかかる機能ブロックを優先してグル
ープ化してもよい。
An arbitrary parameter indicating the processing time may be used instead of the number of processing cycles. In the above embodiment, when there are a plurality of simulation models, the number of communications between the functional blocks monitored for each simulation model is statistically processed, and grouping is performed based on the number of communications subjected to the statistical processing. Not limited to For example, the corresponding functional blocks may be grouped in order from the one having the largest communication number between the functional blocks corresponding to each simulation model without considering the number of the simulation models having the large communication number. Further, among functional blocks that may have a large number of communications, the larger the number of simulation models having a large number of communications, the more functional blocks may be grouped with priority.

【0051】・上記実施形態では、シミュレーションの
結果に関する情報に基づくグループ化の作業に関して
は、特に計算機による処理を想定しなかった。しかし、
通信数等に基づいて自動的にグループ化を行うようにし
てもよい。
In the above-described embodiment, the processing by the computer is not particularly assumed for the grouping work based on the information about the result of the simulation. But,
Grouping may be automatically performed based on the number of communications.

【0052】・必ずしも処理サイクル数(処理時間)が
最大となるグループからハードウェアへの割り当てを行
わなくてもよい。例えば他の制約からハードウェア処理
とすることが望ましい機能がある場合、設計制約を満た
さないときにこれを含むグループの処理時間の大小にか
かわらずこれをハードウェア化するようにしてもよい。
要は、処理サイクル数(処理時間)が多いグループから
ハードウェアへの割り当てを優先して行えばよい。
Allocation from the group having the maximum number of processing cycles (processing time) to the hardware does not necessarily have to be performed. For example, if there is a function that is desired to be processed by hardware due to other constraints, it may be implemented by hardware when the design constraint is not satisfied, regardless of the processing time of the group including this.
In short, it is only necessary to give priority to the allocation from the group having a large number of processing cycles (processing time) to the hardware.

【0053】・先の図2に示したステップ140におけ
るシミュレーション結果には、機能ブロック毎の処理サ
イクル数(処理時間)が含まれなくてもよい。この場
合、グループ化後、再度シミュレーションを行い、各グ
ループ毎の処理サイクル数(処理時間)を算出する。そ
して、これに基づいて、処理サイクル数(処理時間)が
最大となるグループからハードウェアへの割り当てを優
先して行う。
The simulation result in step 140 shown in FIG. 2 may not include the number of processing cycles (processing time) for each functional block. In this case, after grouping, the simulation is performed again to calculate the number of processing cycles (processing time) for each group. Then, based on this, the group having the maximum number of processing cycles (processing time) is preferentially assigned to the hardware.

【0054】・上記実施形態では、シミュレーションの
結果に関する情報に基づくハードウェアとソフトウェア
とへの割り当ての作業に関しては、特に計算機による処
理を想定しなかった。しかし、処理時間等に基づいて自
動的に割り当てを行うようにしてもよい。
In the above-described embodiment, the processing by the computer is not particularly assumed for the work of allocating the hardware and the software based on the information about the result of the simulation. However, the allocation may be automatically performed based on the processing time and the like.

【0055】・上記実施形態では、C言語で記述された
シミュレーションモデルが翻訳された計算機10によっ
て実行可能なプログラム言語と、設計対象となる集積回
路の備える中央処理装置において実行可能なプログラム
言語との対応関係について得に指定しなかった。しか
し、これら両プログラム言語を等しくするなら、上記ハ
ードウェアとソフトウェアとへの機能割り当てにかかる
工程において、実際の集積回路の動作についてより適切
に把握することができる。
In the above embodiment, the program language executable by the computer 10 in which the simulation model described in C language is translated and the program language executable in the central processing unit included in the integrated circuit to be designed are provided. The correspondence was not specified. However, if these two programming languages are made equal, it is possible to more appropriately grasp the actual operation of the integrated circuit in the process of assigning functions to the above hardware and software.

【0056】・上記実施形態では、仕様を記述するプロ
グラム言語としてC言語を例示したが、これに限らな
い。この際、C++言語等、高位記述言語を用いること
が望ましく、この場合、集積回路の備える記憶装置に
は、この高位記述言語が翻訳されるなどして中央処理装
置によって実行可能となったプログラムが記憶されるこ
とが望ましい。また、この際、計算機では、この高位記
述言語を翻訳してシミュレートを行う機能を有するもの
を用いる。
In the above embodiment, the C language is illustrated as the programming language for describing the specifications, but the programming language is not limited to this. At this time, it is desirable to use a high-level description language such as a C ++ language. In this case, a program that can be executed by the central processing unit is translated into the storage device included in the integrated circuit. It is desirable to be stored. Further, at this time, a computer having a function of translating and simulating the high-level description language is used.

【0057】・集積回路は、仕様を記述するプログラム
言語が翻訳されるなどして中央処理装置によって実行可
能となったプログラムが記憶される構成に限らない。例
えば、集積回路が仕様を記述するプログラム言語を直ち
に解釈・実行するインタプリタを備える構成とし、仕様
を記述するプログラム言語を記憶するようにしてもよ
い。
The integrated circuit is not limited to the configuration in which the program that can be executed by the central processing unit is stored because the programming language that describes the specifications is translated. For example, the integrated circuit may be configured to include an interpreter that immediately interprets and executes the programming language that describes the specifications, and stores the programming language that describes the specifications.

【0058】・機能ブロックは、機能定義部及び通信定
義部を備える構成に限らない。例えば機能定義部のみを
備える構成であっても、シミュレーションモデルを作成
することはできる。
The function block is not limited to the configuration including the function definition section and the communication definition section. For example, a simulation model can be created even with a configuration including only the function definition unit.

【0059】・上記実施形態で一例を示したデータベー
ス等、機能ブロックのデータベースを保持することで、
所望とされる集積回路の仕様に応じて、その必要とされ
る機能ブロック群がデータベースから選択されるように
してもよい。これにより、新たに集積回路を設計する際
に、プログラム言語による仕様の記述や、仕様の記述後
の上記シミュレーションにかかる工数を低減することが
できる。
By holding a database of functional blocks such as the database shown as an example in the above embodiment,
The required functional block group may be selected from the database according to the desired specifications of the integrated circuit. As a result, when newly designing an integrated circuit, it is possible to reduce the number of man-hours required for description of specifications in a programming language and for the simulation after description of specifications.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明にかかる集積回路の設計方法の一実施形
態で用いる設計支援装置の全体構成を示すブロック図。
FIG. 1 is a block diagram showing the overall configuration of a design support apparatus used in an embodiment of an integrated circuit designing method according to the present invention.

【図2】同実施形態にかかる設計手順を示すフローチャ
ート。
FIG. 2 is a flowchart showing a design procedure according to the embodiment.

【図3】同実施形態における機能ブロックデータベース
を例示する図。
FIG. 3 is a diagram showing an example of a functional block database in the same embodiment.

【図4】同機能ブロックデータベースの構成を例示する
図。
FIG. 4 is a diagram illustrating a configuration of the same functional block database.

【図5】同実施形態における機能ブロックのグループ化
を例示する図。
FIG. 5 is a diagram showing an example of grouping of functional blocks in the same embodiment.

【図6】同実施形態にかかる設計手順を示すフローチャ
ート。
FIG. 6 is a flowchart showing a design procedure according to the embodiment.

【図7】従来の集積回路の設計手順を示すフローチャー
ト。
FIG. 7 is a flowchart showing a conventional integrated circuit design procedure.

【符号の説明】 10…計算機、20…主記憶装置、30…補助記憶装
置、40…入力装置、50…出力装置。
[Explanation of Codes] 10 ... Calculator, 20 ... Main storage device, 30 ... Auxiliary storage device, 40 ... Input device, 50 ... Output device.

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】中央処理装置を備える集積回路の設計に際
し、プログラム言語を用いて記述された仕様によって要
求される機能をハードウェアとソフトウェアとに割り当
てることによって同集積回路の設計を行う集積回路の設
計方法において、 前記仕様によって要求される機能が単位機能毎に分割さ
れた機能ブロックを前記仕様の任意の動作に対応するよ
うに接続して計算機による動作シミュレーションを行う
とともに、このシミュレーションの結果得られる情報に
基づいて各々関連する機能ブロックのグループ化を行
い、それらグループ化した機能ブロックを単位として前
記ハードウェアとソフトウェアとに割り当てることを特
徴とする集積回路の設計方法。
1. When designing an integrated circuit having a central processing unit, the function required by a specification written in a programming language is assigned to hardware and software, thereby designing the integrated circuit. In the design method, a function block in which the function required by the specification is divided for each unit function is connected so as to correspond to an arbitrary operation of the specification, an operation simulation is performed by a computer, and the result of this simulation is obtained. A method for designing an integrated circuit, comprising grouping functional blocks associated with each other based on information, and allocating the grouped functional blocks to the hardware and software as a unit.
【請求項2】前記機能ブロックの各々は、その機能を定
義する機能定義部と該機能定義部を呼び出す通信定義部
とを有して記述されており、前記機能ブロックの接続
は、前記通信定義部間の接続の定義として行われる請求
項1記載の集積回路の設計方法。
2. Each of the functional blocks is described as having a function defining section that defines the function and a communication defining section that calls the function defining section, and the connection of the functional blocks is defined by the communication definition. The method for designing an integrated circuit according to claim 1, which is performed as a definition of connection between parts.
【請求項3】前記シミュレーションの結果得られる情報
として、それら各機能ブロック毎にその通信対象となる
機能ブロック及びその通信数に関する情報を取得し、該
取得した各機能ブロック間の通信数に応じて前記関連す
る機能ブロックのグループ化を行う請求項1又は2記載
の集積回路の設計方法。
3. As information obtained as a result of the simulation, for each of the functional blocks, information regarding the functional block to be communicated and the number of communications is acquired, and according to the number of communications between the acquired functional blocks. 3. The integrated circuit design method according to claim 1, wherein the related functional blocks are grouped.
【請求項4】請求項3記載の集積回路の設計方法におい
て、 前記シミュレーションの結果得られる情報として、前記
各機能ブロックにおける処理時間に関する情報を取得す
るとともに、該取得した各機能ブロックにおける処理時
間に関する情報をもとに前記グループ化された機能ブロ
ックのグループ毎の処理時間の総量を算出し、この算出
した処理時間の総量の多いグループから優先して前記ハ
ードウェアに機能割当てを行うことを特徴とする集積回
路の設計方法。
4. The integrated circuit design method according to claim 3, wherein, as information obtained as a result of the simulation, information about processing time in each of the functional blocks is acquired, and the acquired processing time in each of the functional blocks is acquired. A feature is that a total amount of processing time for each group of the functional blocks grouped is calculated based on information, and a function having a larger total amount of the calculated processing time is preferentially assigned to the hardware. Integrated circuit design method.
【請求項5】請求項3記載の集積回路の設計方法におい
て、 前記グループ化の後、前記計算機による動作シミュレー
ションを再度行うとともに、このシミュレーションの結
果得られる情報として前記グループ化された機能ブロッ
クのグループ毎の処理時間の総量を取得し、この取得し
た処理時間の総量の多いグループから優先して前記ハー
ドウェアに機能割当てを行うことを特徴とする集積回路
の設計方法。
5. The integrated circuit design method according to claim 3, wherein after the grouping, the operation simulation by the computer is performed again, and the group of the functional blocks grouped as information obtained as a result of the simulation. A method for designing an integrated circuit, wherein a total amount of processing time for each is acquired, and a function having a larger total amount of the acquired processing time is preferentially assigned to the hardware.
【請求項6】前記グループ化された各機能ブロックに対
するハードウェアへの機能割当ては、当該集積回路とし
ての設計制約が満たされるまで、順次実行される請求項
4又は5記載の集積回路の設計方法。
6. The method for designing an integrated circuit according to claim 4, wherein the function assignment to the hardware for each of the grouped functional blocks is sequentially executed until a design constraint for the integrated circuit is satisfied. .
【請求項7】前記単位機能毎に分割された機能ブロック
を予めデータベースに登録しておき、所望とされる集積
回路の仕様に応じて、その必要とされる機能ブロック群
が前記データベースから選択される請求項1〜6のいず
れかに記載の集積回路の設計方法。
7. A functional block divided for each unit function is registered in a database in advance, and a required functional block group is selected from the database according to a desired integrated circuit specification. 7. The method for designing an integrated circuit according to claim 1, further comprising:
JP2002030387A 2002-02-07 2002-02-07 Design method for integrated circuit Pending JP2003233633A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002030387A JP2003233633A (en) 2002-02-07 2002-02-07 Design method for integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002030387A JP2003233633A (en) 2002-02-07 2002-02-07 Design method for integrated circuit

Publications (1)

Publication Number Publication Date
JP2003233633A true JP2003233633A (en) 2003-08-22

Family

ID=27774156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002030387A Pending JP2003233633A (en) 2002-02-07 2002-02-07 Design method for integrated circuit

Country Status (1)

Country Link
JP (1) JP2003233633A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242569A (en) * 2004-02-25 2005-09-08 Fujitsu Ltd Data processor design method and apparatus, and program
JP2008204111A (en) * 2007-02-19 2008-09-04 Ricoh Co Ltd Apparatus and method for supporting design of semiconductor integrated circuit, its manufacturing method, program, and recording medium
JP2014522029A (en) * 2011-07-22 2014-08-28 サムスン エレクトロニクス カンパニー リミテッド Simulation apparatus and simulation method thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242569A (en) * 2004-02-25 2005-09-08 Fujitsu Ltd Data processor design method and apparatus, and program
JP2008204111A (en) * 2007-02-19 2008-09-04 Ricoh Co Ltd Apparatus and method for supporting design of semiconductor integrated circuit, its manufacturing method, program, and recording medium
JP2014522029A (en) * 2011-07-22 2014-08-28 サムスン エレクトロニクス カンパニー リミテッド Simulation apparatus and simulation method thereof
US10162913B2 (en) 2011-07-22 2018-12-25 Samsung Electronics Co., Ltd. Simulation device and simulation method therefor

Similar Documents

Publication Publication Date Title
EP3447642B1 (en) System and method for predicting application performance for large data size on big data cluster
US10241852B2 (en) Automated qualification of a safety critical system
US7194726B2 (en) Method for automatically decomposing dynamic system models into submodels
CN108388509B (en) Software testing method, computer readable storage medium and terminal equipment
US9658834B2 (en) Program visualization device, program visualization method, and program visualization program
CN106095563B (en) Flexible physical function and virtual function mapping
JP2005242569A (en) Data processor design method and apparatus, and program
KR20050112522A (en) Method for controlling sequential object-oriented system-simulations
CN104156269B (en) A kind of method for visualizing of the software and hardware optimal dividing based on Timed Automata
CN113807046A (en) Test excitation optimization regression verification method, system and medium
CN115422866A (en) Method for simulating logic system design on simulator and related equipment
CN116911227B (en) Logic mapping method, device, equipment and storage medium based on hardware
CN109191078A (en) A kind of traffic flow modeling method, device and equipment
US8024158B2 (en) Management system and management method of CAD data used for a structural analysis
JP2005071370A (en) System and method for determining activity factor for circuit design
JP2003233633A (en) Design method for integrated circuit
US9501607B1 (en) Composite views for IP blocks in ASIC designs
US7895026B1 (en) Multi-rate simulation scheduler for synchronous digital circuits in a high level modeling system
CN110334018A (en) A kind of big data introduction method and relevant device
JP4870956B2 (en) Embedded program generation method, embedded program development system, and information table section
CN113296788B (en) Instruction scheduling method, device, equipment and storage medium
JP2008250838A (en) Software generation device, method and program
CN114492251A (en) Low-speed flow field divergence processing method, device, equipment and medium in supercomputing environment
CN112732242A (en) Wide table processing script generation method and device
CN105808318B (en) Information processing method and electronic equipment