JP2010039678A - Design support program, design support device, and design support method - Google Patents

Design support program, design support device, and design support method Download PDF

Info

Publication number
JP2010039678A
JP2010039678A JP2008200605A JP2008200605A JP2010039678A JP 2010039678 A JP2010039678 A JP 2010039678A JP 2008200605 A JP2008200605 A JP 2008200605A JP 2008200605 A JP2008200605 A JP 2008200605A JP 2010039678 A JP2010039678 A JP 2010039678A
Authority
JP
Japan
Prior art keywords
architecture
domain
execution
traffic
design support
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008200605A
Other languages
Japanese (ja)
Other versions
JP5071297B2 (en
Inventor
Koichiro Yamashita
浩一郎 山下
Jungo Kuwahara
純吾 桑原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008200605A priority Critical patent/JP5071297B2/en
Publication of JP2010039678A publication Critical patent/JP2010039678A/en
Application granted granted Critical
Publication of JP5071297B2 publication Critical patent/JP5071297B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce a design period by increasing the speed of design at an early stage. <P>SOLUTION: An architecture 100 is divided by domain. The division is performed in a bus system or/and a clock system. An arbitrary domain is selected among the divided domains 101, 102. The domain 101, for example, is selected. An ESL simulation is performed on the domain 101, and the domain is replaced to a traffic generation device G which generates a traffic equivalent to that of the domain 101. The traffic generation device G and the domain 102 which is not replaced are combined to obtain a new architecture 110. The evaluation result 120 is obtained by performing an ESL simulation again to the new architecture 110. Thereby, the speed of ESL simulation can be increased. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、システムアーキテクチャを探求する際に最適なアーキテクチャ構成を求める設計支援プログラム、設計支援装置、および設計支援方法に関する。   The present invention relates to a design support program, a design support apparatus, and a design support method for obtaining an optimum architecture configuration when searching for a system architecture.

近年、システムLSI(Large Scale Integration)の開発時におけるシミュレーションによる設計技術が進められている。この技術は主にESL(Electronic System Level)技術と呼ばれ、システムLSIの設計を、段階ごとに詳細性(抽象性)を変えながら設計を行うシステム上流工程設計での高速シミュレーション技術である。一方で、抽象度の低い構成では、処理速度は遅いが、実際のハードウェアロジックに近い、ハード詳細設計の段階で用いられる(たとえば、下記特許文献1,2を参照。)。   In recent years, a design technique by simulation at the time of development of a system LSI (Large Scale Integration) has been advanced. This technology is mainly called ESL (Electronic System Level) technology, and is a high-speed simulation technology in system upstream process design in which the design of a system LSI is designed while changing the detail (abstraction) at each stage. On the other hand, in a configuration with a low level of abstraction, the processing speed is slow, but it is used at the stage of detailed hardware design close to the actual hardware logic (see, for example, Patent Documents 1 and 2 below).

ESL技術では、詳細なクロック動作などを適宜スキップ、隠蔽することで高速動作を行うことができる。CPU(Central Processing Unit)のインストラクションシミュレータと連動させることで、ソフト動作可能なシミュレーション環境として利用されており、SoC(System on a Chip)などの大規模システムLSI開発に適用される。   In the ESL technology, high-speed operation can be performed by appropriately skipping and concealing detailed clock operations. It is used as a simulation environment capable of operating software by linking with an instruction simulator of a CPU (Central Processing Unit), and is applied to development of a large-scale system LSI such as a SoC (System on a Chip).

この技術を用いてシステム全体の挙動を開発の初期段階で見極め、詳細な動作は後工程で実施を行う。設計者は開発上流段階でのブロック図構成レベルの情報でハードウェアを表記することができる。ESLなどで用いられるシミュレーションでハードウェアを表現する場合、SystemCおよびXML(Extensible Markup Language)スクリプトによるハードウェア記述によりハードウェアをプログラマブルに表現できるため、容易にシステム構成を変更した評価を行うことができる。またこれらのハードウェア表現は一般的なソフトウェアのプログラムと同様の表現がなされる。   Using this technology, the behavior of the entire system is determined at the initial stage of development, and detailed operations are performed in a later process. The designer can describe the hardware with block diagram configuration level information at the upstream development stage. When hardware is expressed by simulations used in ESL, etc., hardware can be expressed by hardware description using SystemC and XML (Extensible Markup Language) scripts, so that it is possible to easily evaluate the system configuration. . These hardware expressions are similar to general software programs.

また、ESLでは、CPUのインストラクションシミュレータと連動させることで、ソフト動作可能なシミュレーション環境として利用されており、SoCなどの大規模システムLSI開発に適用される。さらに、シミュレーションを高速化する技術として、バスやメモリのアクセスタイミングを無視し、CPUの命令セット実行のみに注力したバックドアモデル技術も提案されている。   Further, ESL is used as a simulation environment capable of operating software by linking with an instruction simulator of a CPU, and is applied to development of a large-scale system LSI such as SoC. Furthermore, as a technique for speeding up the simulation, a back door model technique that ignores bus and memory access timing and focuses only on execution of a CPU instruction set has been proposed.

これらの技術を用いてシステム全体の挙動を開発の初期段階で見極め、詳細な動作は後工程で実施をおこなう。設計者は開発上流段階でのブロック図構成レベルの情報でハードウェアを表記することができる。ESLなどで用いられるシミュレーションでハードウェアを表現する場合、SystemCおよびXML(Extensible Markup Language)スクリプトによるハードウェア記述が適用される。これにより、ハードウェアをプログラマブルに表現できるため、容易にシステム構成を変更した評価を行うことができる。また、これらのハードウェア表現は一般的なソフトウェアのプログラムと同様の表現がなされる。   Using these technologies, the behavior of the entire system is determined at the initial stage of development, and detailed operations are performed in a later process. The designer can describe the hardware with block diagram configuration level information at the upstream development stage. When hardware is expressed by simulation used in ESL or the like, hardware description by SystemC and XML (Extensible Markup Language) script is applied. Thereby, since hardware can be expressed in a programmable manner, it is possible to easily perform evaluation with the system configuration changed. In addition, these hardware expressions are similar to general software programs.

以上の技術を利用し、RTL(Register Transfer Level)など実設計モデルを用いたシミュレーションで、実時間の数百万分の一の速度で実施されていたものが数千分の一ほどまで高速化することが可能である。   Using the above technology, simulations using actual design models such as RTL (Register Transfer Level), which were implemented at speeds that are several millionths of real time, have been accelerated to several thousandths. Is possible.

特開2001−22808号公報Japanese Patent Laid-Open No. 2001-22808 特開2003−67438号公報JP 2003-67438 A

しかしながら、上述した従来技術では、トランザクションの詳細動作を割愛することや、インストラクションレベルのシミュレーションと並装することで概略的な動作傾向をみるESLにおいても、解析を行うシステムが大規模化するにあたってシミュレーション時間が指数的に増大していく現象が発生するケースがあるという問題があった。   However, in the above-described conventional technology, even in ESL in which a detailed operation trend is omitted by omitting the detailed operation of a transaction or paralleling with an instruction level simulation, a simulation is performed when an analysis system is enlarged. There has been a problem that a phenomenon occurs in which time increases exponentially.

また、ある程度以上の規模になった場合、RTLシミュレーションにおける実行時間制約や、実行環境リソースの制約と同じ問題が起こり、本来実施を行いたい上流設計レベルでの概略的な動作解析を行うことに適さないケースが発生してしまうという問題があった。   In addition, when the scale exceeds a certain level, the same problems as the execution time constraint and the execution environment resource constraint in the RTL simulation occur, and it is suitable for performing a rough operation analysis at the upstream design level where the original implementation is desired. There was a problem that no case would occur.

この発明は、上述した従来技術による問題点を解消するため、設計期間の短縮化を図ることができる設計支援プログラム、設計支援装置、および設計支援方法を提供することを目的とする。   An object of the present invention is to provide a design support program, a design support apparatus, and a design support method that can shorten the design period in order to solve the above-described problems caused by the prior art.

上述した課題を解決し、目的を達成するため、この設計支援プログラム、設計支援装置、および設計支援方法は、設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて評価ソフトウェアに関するESLシミュレーションを実行し、実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成し、前記選択ドメインを生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築し、再構築されたアーキテクチャを出力することを要件とする。   In order to solve the above-described problems and achieve the object, the design support program, the design support apparatus, and the design support method evaluate a selected domain selected from a domain group divided into domains from the architecture to be designed. Performing an ESL simulation on the software, generating a single traffic generator that generates traffic equivalent to the traffic of the selected domain based on the execution results, and replacing the selected domain with the generated traffic generator To reconstruct the architecture and output the reconstructed architecture.

この設計支援プログラム、設計支援装置、および設計支援方法によれば、設計期間の短縮化を図ることができるという効果を奏する。   According to the design support program, the design support apparatus, and the design support method, there is an effect that the design period can be shortened.

以下に添付図面を参照して、この設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。   Exemplary embodiments of a design support program, a design support apparatus, and a design support method will be described below in detail with reference to the accompanying drawings.

(本実施の形態の概要)
図1は、本実施の形態にかかる設計支援の概要を示す説明図である。設計対象のアーキテクチャ100をドメイン分割する。ドメイン分割はバス系統または/およびクロック系統でおこなう。つぎに、ドメイン分割されたドメイン101,102のうち任意のドメインを選択する。ここでは、ドメイン101が選択されたとする。ドメイン101についてESLシミュレーションを実行し、その実行結果から、ドメイン101のトラフィックと同等のドラフィックを生成するトラフィック生成器Gに置換する。
(Outline of this embodiment)
FIG. 1 is an explanatory diagram showing an outline of design support according to the present embodiment. The architecture 100 to be designed is divided into domains. Domain division is performed by a bus system or / and a clock system. Next, an arbitrary domain is selected from the divided domains 101 and 102. Here, it is assumed that the domain 101 is selected. An ESL simulation is executed for the domain 101, and the result is replaced with a traffic generator G that generates traffic equivalent to the traffic of the domain 101.

ドメイン101が複数のハードウェアブロックA,B,X,Y,Mの集合であるのに対し、トラフィック生成器Gは、単一のハードウェアブロックである。トラフィック生成器Gは、置換元であるドメイン101のトラフィックと同等なトラフィックを生成しており、トラフィック内のデータの種類や中身がどのような内容であるかは意識していない。   While the domain 101 is a set of a plurality of hardware blocks A, B, X, Y, and M, the traffic generator G is a single hardware block. The traffic generator G generates traffic equivalent to the traffic of the domain 101 that is the replacement source, and is unaware of the type of data and the content of the data in the traffic.

このあと、トラフィック生成器Gと置換されなかったドメイン102とを結合して置換後のアーキテクチャ110を得る。この置換後のアーキテクチャ110に対して、再度ESLシミュレーションを実行することで、評価結果120を得る。これにより、ESLシミュレーションの高速化を実現する。   Thereafter, the traffic generator G and the domain 102 that has not been replaced are combined to obtain the replaced architecture 110. An evaluation result 120 is obtained by executing the ESL simulation again for the architecture 110 after the replacement. As a result, high-speed ESL simulation is realized.

(設計支援装置のハードウェア構成)
図2は、本実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。図2において、設計支援装置は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ(Flexible Disk Drive)206と、光ディスク207と、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
(Hardware configuration of design support device)
FIG. 2 is a block diagram showing a hardware configuration of the design support apparatus according to the present embodiment. In FIG. 2, the design support apparatus includes a CPU (Central Processing Unit) 201, a ROM (Read-Only Memory) 202, a RAM (Random Access Memory) 203, a magnetic disk drive 204, a magnetic disk 205, and an optical disk drive. (Flexible Disk Drive) 206, optical disk 207, display 208, I / F (Interface) 209, keyboard 210, mouse 211, scanner 212, and printer 213. Each component is connected by a bus 200.

ここで、CPU201は、設計支援装置の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。   Here, the CPU 201 governs overall control of the design support apparatus. The ROM 202 stores a program such as a boot program. The RAM 203 is used as a work area for the CPU 201. The magnetic disk drive 204 controls reading / writing of data with respect to the magnetic disk 205 according to the control of the CPU 201. The magnetic disk 205 stores data written under the control of the magnetic disk drive 204.

光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。   The optical disk drive 206 controls reading / writing of data with respect to the optical disk 207 according to the control of the CPU 201. The optical disk 207 stores data written under the control of the optical disk drive 206, or causes the computer to read data stored on the optical disk 207.

ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。   The display 208 displays data such as a document, an image, and function information as well as a cursor, an icon, or a tool box. As the display 208, for example, a CRT, a TFT liquid crystal display, a plasma display, or the like can be adopted.

インターフェース(以下、「I/F」と略する。)209は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。   An interface (hereinafter abbreviated as “I / F”) 209 is connected to a network 214 such as a LAN (Local Area Network), a WAN (Wide Area Network), and the Internet through a communication line. Connected to other devices. The I / F 209 controls an internal interface with the network 214 and controls data input / output from an external device. For example, a modem or a LAN adapter may be employed as the I / F 209.

キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。   The keyboard 210 includes keys for inputting characters, numbers, various instructions, and the like, and inputs data. Moreover, a touch panel type input pad or a numeric keypad may be used. The mouse 211 performs cursor movement, range selection, window movement, size change, and the like. A trackball or a joystick may be used as long as they have the same function as a pointing device.

スキャナ212は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ212は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。   The scanner 212 optically reads an image and takes in the image data into the design support apparatus. The scanner 212 may have an OCR (Optical Character Reader) function. The printer 213 prints image data and document data. As the printer 213, for example, a laser printer or an ink jet printer can be employed.

(設計支援装置の機能的構成)
図3は、本実施の形態にかかる設計支援装置の機能的構成を示すブロック図である。設計支援装置300は、取得部301と、分割部302と、実行部303と、実行制御部304と、生成部305と、再構築部306と、出力部307と、を含む構成である。この制御部となる機能(取得部301〜出力部307)は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、I/F209により、その機能を実現する。
(Functional configuration of design support device)
FIG. 3 is a block diagram showing a functional configuration of the design support apparatus according to the present embodiment. The design support apparatus 300 includes an acquisition unit 301, a division unit 302, an execution unit 303, an execution control unit 304, a generation unit 305, a reconstruction unit 306, and an output unit 307. Specifically, the functions (acquisition unit 301 to output unit 307) serving as the control unit are, for example, a program stored in a storage area such as the ROM 202, RAM 203, magnetic disk 205, and optical disk 207 shown in FIG. The function is realized by executing the function or by the I / F 209.

取得部301は、ハードウェアモデル情報やハードウェアモデル間の接続情報、評価ソフトウェアを取得する機能を有する。具体的には、たとえば、ハードウェアモデル情報や接続情報を記憶領域から読み出したり、外部から受信したりする。取得される情報は、SystemCや状態記述言語(XML)などにより記述されている。   The acquisition unit 301 has a function of acquiring hardware model information, connection information between hardware models, and evaluation software. Specifically, for example, hardware model information and connection information are read from the storage area or received from the outside. The acquired information is described in SystemC, state description language (XML), or the like.

図4は、ハードウェアモデル情報を示す説明図である。ハードウェアモデル情報400とは、アーキテクチャを構成するハードウェアモデルのソースコードの集合である。ここでは、例として、ペリフェラルX,Y,Zと、共有リソースM,Nのソースコードを示している。   FIG. 4 is an explanatory diagram showing hardware model information. The hardware model information 400 is a set of source codes of hardware models constituting the architecture. Here, as an example, source codes of peripherals X, Y, and Z and shared resources M and N are shown.

図5は、設計対象となるアーキテクチャを示すブロック構成図である。図5では、図4に示したハードウェアモデル情報400を適用したアーキテクチャを示している。図5に示したアーキテクチャ500では、バスやクロックの接続情報が与えられていないため、単にペリフェラルX,Y,Zと共有リソースM,Nとバスとブリッジ(図中太矢印)とクロック供給ブロック(波形図を含むブロック)が含まれていることが表現されているだけである。   FIG. 5 is a block diagram showing an architecture to be designed. FIG. 5 shows an architecture to which the hardware model information 400 shown in FIG. 4 is applied. In the architecture 500 shown in FIG. 5, since connection information of buses and clocks is not given, peripherals X, Y, Z, shared resources M, N, buses, bridges (thick arrows in the figure), and clock supply blocks ( It is only expressed that a block including a waveform diagram) is included.

図6は、接続情報を示す説明図であり、図7は、接続情報が与えられたアーキテクチャを示すブロック構成図である。符号601はバスAの接続情報、符号602はバスCの接続情報、符号603はブリッジBの接続情報である。これらの接続情報601〜603をバス系統の接続情報600と称す。また、符号611〜614は、クロック供給ブロックP〜Sの接続情報である。これらの接続情報611〜614をクロック系統の接続情報610と称す。   FIG. 6 is an explanatory diagram showing connection information, and FIG. 7 is a block configuration diagram showing an architecture to which connection information is given. Reference numeral 601 is connection information of the bus A, reference numeral 602 is connection information of the bus C, and reference numeral 603 is connection information of the bridge B. These pieces of connection information 601 to 603 are referred to as bus system connection information 600. Reference numerals 611 to 614 denote connection information of the clock supply blocks P to S. These pieces of connection information 611 to 614 are referred to as clock system connection information 610.

なお、以降、クロック供給ブロックからのクロックの符号は、クロック供給ブロックの符号を用いる。たとえば、クロック供給ブロックPからは、クロックPが供給される。なお、ハードウェアモデルのソースコードのブロック化は、既存の構造分析により実現可能である。以降、ブロック化されたハードウェアモデルをハードウェアブロックと称す。   In the following description, the clock supply block code is used as the clock code from the clock supply block. For example, the clock P is supplied from the clock supply block P. It should be noted that the hardware model source code can be blocked by an existing structural analysis. Hereinafter, the blocked hardware model is referred to as a hardware block.

評価ソフトウェアとは、アーキテクチャに実行させるベンチマークプログラムである。評価ソフトウェアがソースコードではなく評価ソフトウェアの設計情報であった場合、想定される負荷を発生するような代替ソフトウェアを用いてもよい。本実施の形態で対象とする設計が上流工程であり、入力情報そのものにあいまい性を含むものであり、また、得られる結果も概略的な結果をもとめるあいまい性を許容している設計フェーズであるため、代替ソフトウェアを利用することについての問題性、あるいは誤差、精度については許容範囲とみなす。   Evaluation software is a benchmark program that causes an architecture to execute. When the evaluation software is not the source code but the design information of the evaluation software, alternative software that generates an assumed load may be used. The target design in this embodiment is an upstream process, the input information itself includes ambiguity, and the obtained result is also a design phase that allows ambiguity to obtain a rough result. Therefore, the problem of using alternative software, error, and accuracy are considered acceptable.

分割部302は、取得部301によって取得された接続情報に基づいて、アーキテクチャ100をドメイン分割する機能を有する。具体的には、たとえば、接続情報から得られるハードウェアモデル間を接続するバスの共通性やハードウェアモデルに供給されるクロックの共通性に基づいて、アーキテクチャ100をドメイン分割する。   The dividing unit 302 has a function of dividing the architecture 100 into domains based on the connection information acquired by the acquiring unit 301. Specifically, for example, the architecture 100 is divided into domains based on commonality of buses connecting between hardware models obtained from connection information and commonality of clocks supplied to the hardware models.

ここで、分割部302によるドメイン分割について詳細に説明する。図7に示したアーキテクチャ100の場合、接続状態はバスへの接続モデル記述ソースを解析することで分割の基準を得ることができる。この解析は、たとえば、XMLパーサへの組み込みやコンパイラの中のLint(ソースコード検査プログラム)等の技術を用いて実行することができる。   Here, domain division by the dividing unit 302 will be described in detail. In the case of the architecture 100 shown in FIG. 7, the connection state can be obtained by analyzing the connection model description source to the bus. This analysis can be executed, for example, using a technique such as incorporation into an XML parser or Lint (source code inspection program) in a compiler.

図8は、図7に示したアーキテクチャ100の接続解析結果を示す説明図である。図7のアーキテクチャ100では、接続解析結果800は、ペリフェラルX,Yと共有リソースMはバスAに接続されているため、バスAのグループに属する。ペリフェラルZと共有リソースNはバスCに接続されているため、バスCのグループに属する。   FIG. 8 is an explanatory diagram showing a connection analysis result of the architecture 100 shown in FIG. In the architecture 100 of FIG. 7, the connection analysis result 800 belongs to the group of the bus A because the peripherals X and Y and the shared resource M are connected to the bus A. Since the peripheral Z and the shared resource N are connected to the bus C, they belong to the group of the bus C.

一方、クロック供給ブロックPはバスグループAのペリフェラルXにクロックPを供給する。クロック供給ブロックQはバスグループAの共有リソースMにクロックQを供給する。クロック供給ブロックRは、バスグループAのペリフェラルYとバスグループCのペリフェラルZにクロックRを供給する。クロック供給ブロックSは、バスグループCの共有リソースNにクロックRを供給する。   On the other hand, the clock supply block P supplies the clock P to the peripheral X of the bus group A. The clock supply block Q supplies the clock Q to the shared resource M of the bus group A. The clock supply block R supplies the clock R to the peripheral Y of the bus group A and the peripheral Z of the bus group C. The clock supply block S supplies the clock R to the shared resource N of the bus group C.

これにより、ペリフェラルXと共有リソースMはともにバスAに接続されているため、ドメインDaに分類される。ペリフェラルY,ZはそれぞれバスA,Cに接続されているが、同一クロックRの供給を受けている。したがって、図7のアーキテクチャのハードウェア構成については、バスおよびクロックの共通性では分類不可能となる。このようなケースでは、評価ソフトウェアに関するインストラクションレベルのESLシミュレーションをおこない、その実行結果を用いて再度分類する。   Accordingly, since the peripheral X and the shared resource M are both connected to the bus A, they are classified into the domain Da. Peripherals Y and Z are connected to buses A and C, respectively, but are supplied with the same clock R. Therefore, the hardware configuration of the architecture of FIG. 7 cannot be classified by the commonality of the bus and clock. In such a case, an instruction level ESL simulation related to the evaluation software is performed, and classification is performed again using the execution result.

図9は、評価ソフトウェアのソースコード群を示す説明図である。ソースコード群900において、評価ソフトウェア901とは、アーキテクチャ100が実行するベンチマークプログラムである。ソースコード902〜904は、評価ソフトウェア901内のハードウェアの動作や接続先を示している。「Driver X」,「Driver Y」および「Driver Z」は、それぞれペリフェラルX〜Zに相当する。たとえば、ソースコード902では、Driver X(ペリフェラルX)が共有リソースM,Nにアクセスすることが記述されている。   FIG. 9 is an explanatory diagram showing a source code group of evaluation software. In the source code group 900, the evaluation software 901 is a benchmark program executed by the architecture 100. Source codes 902 to 904 indicate hardware operations and connection destinations in the evaluation software 901. “Driver X”, “Driver Y”, and “Driver Z” correspond to the peripherals X to Z, respectively. For example, the source code 902 describes that the Driver X (peripheral X) accesses the shared resources M and N.

実行部303は、評価ソフトウェア901に関するESLシミュレーションを実行する機能を有する。実行部303は、後述する実行制御部304により指定された方法で、評価ソフトウェア901に関するESLシミュレーションを実行する。   The execution unit 303 has a function of executing an ESL simulation related to the evaluation software 901. The execution unit 303 executes an ESL simulation related to the evaluation software 901 by a method specified by the execution control unit 304 described later.

実行制御部304は、実行部303を制御して、分割されたドメイン群の中から選ばれた選択ドメインについて評価ソフトウェア901に関するESLシミュレーションを実行する機能を有する。具体的には、たとえば、アーキテクチャ100について評価ソフトウェア901に関するインストラクションレベルのESLシミュレーションを実行する。   The execution control unit 304 has a function of controlling the execution unit 303 to execute an ESL simulation related to the evaluation software 901 for a selected domain selected from the divided domain group. Specifically, for example, an instruction level ESL simulation related to the evaluation software 901 is executed for the architecture 100.

ここで、インストラクションレベルのESLシミュレーションについて説明する。インストラクションレベルのESLシミュレーションは通常、評価ソフトウェア901のトレース実行によるデバッグに用いるシミュレーションで、通常、アーキテクチャ100の評価には用いられないが、本実施の形態では、アーキテクチャ100が生成するトラフィック負荷のみを利用する。インストラクションレベルのESLシミュレーションを実行することによって、ハードウェアモデルからハードウェアモデルへのデータトラフィック量が明らかになる。   Here, an instruction level ESL simulation will be described. The instruction level ESL simulation is usually used for debugging by executing trace of the evaluation software 901 and is not normally used for evaluating the architecture 100. However, in this embodiment, only the traffic load generated by the architecture 100 is used. To do. By executing the instruction level ESL simulation, the amount of data traffic from the hardware model to the hardware model is revealed.

この実行結果では、バスA,Cや共有リソースM,Nなど、複数のアクセスタイミングにより発生する衝突現象は得られない。なお、このインストラクションレベルのESLシミュレーションは、バックドアモデルによるESLシミュレーションであり、最低限1個のクロックを用いて実行する。   In this execution result, a collision phenomenon that occurs due to a plurality of access timings such as the buses A and C and the shared resources M and N cannot be obtained. The instruction level ESL simulation is an ESL simulation based on a backdoor model, and is executed using at least one clock.

図10は、アーキテクチャにおける評価ソフトウェア901のESLシミュレーションを示す説明図である。図10中、バス上の矢印はハードウェアブロック間のデータ依存関係を示している。このESLシミュレーションは、クロック1系統のシミュレーションである。すなわち、クロックP〜Sは考慮されていないバックドアモデルによるESLシミュレーションである(したがって、図10において、クロックP〜Sの符号は付していない。)。   FIG. 10 is an explanatory diagram showing an ESL simulation of the evaluation software 901 in the architecture. In FIG. 10, the arrows on the bus indicate data dependency relationships between hardware blocks. This ESL simulation is a simulation of one clock system. That is, the clocks P to S are ESL simulations based on a backdoor model in which the clocks P to S are not considered (therefore, the symbols of the clocks P to S are not attached in FIG. 10).

図11および図12は、図10に示したインストラクションレベルのESLシミュレーションの実行結果を示す説明図である。この実行結果により図8において分類が不確定に終わったペリフェラルY,Zの分類をおこなう。   11 and 12 are explanatory diagrams showing the execution results of the instruction level ESL simulation shown in FIG. Based on this execution result, the peripherals Y and Z whose classification has ended indefinitely in FIG. 8 are classified.

図11に示した実行結果1100では、ペリフェラルYは共有リソースMにアクセスデータ量として100[MB]分のデータを保存しており、共有リソースNに10[MB]分のデータを保存している。したがって、共有リソースMへのデータ依存比率の方が高いため、ペリフェラルYはバスAのグループに分類される。同様に、ペリフェラルZは共有リソースMにアクセスデータ量として0[MB]分のデータを保存しており、共有リソースNに100[MB]分のデータを保存している。したがって、共有リソースNへのデータ依存比率の方が高いため、ペリフェラルZはバスCのグループに分類される。   In the execution result 1100 illustrated in FIG. 11, the peripheral Y stores data of 100 [MB] as the access data amount in the shared resource M, and stores data of 10 [MB] in the shared resource N. . Therefore, since the data dependency ratio to the shared resource M is higher, the peripheral Y is classified into the bus A group. Similarly, the peripheral Z stores data of 0 [MB] as an access data amount in the shared resource M, and stores data of 100 [MB] in the shared resource N. Therefore, since the data dependency ratio to the shared resource N is higher, the peripheral Z is classified into the bus C group.

図12に示した実行結果1200では、ペリフェラルYは共有リソースMにアクセスデータ量として10[MB]分のデータを保存しており、共有リソースNに100[MB]分のデータを保存している。したがって、共有リソースNへのデータ依存比率の方が高いため、ペリフェラルYはバスCのグループに分類される。同様に、ペリフェラルZは共有リソースMにアクセスデータ量として0[MB]分のデータを保存しており、共有リソースNに100[MB]分のデータを保存している。したがって、共有リソースNへのデータ依存比率の方が高いため、ペリフェラルZもバスCのグループに分類される。   In the execution result 1200 shown in FIG. 12, the peripheral Y stores 10 [MB] of data as the access data amount in the shared resource M, and stores 100 [MB] of data in the shared resource N. . Therefore, since the data dependency ratio to the shared resource N is higher, the peripheral Y is classified into the group of the bus C. Similarly, the peripheral Z stores data of 0 [MB] as an access data amount in the shared resource M, and stores data of 100 [MB] in the shared resource N. Therefore, since the data dependency ratio to the shared resource N is higher, the peripheral Z is also classified into the group of the bus C.

このように、ハードウェア構成では分類不可能であった場合、評価ソフトウェア901の実行結果、特にデータ依存比率の高さにより分類する。このデータ依存比率の高さに応じて分類することにより、ESLシミュレーションを実行する際に、ブロック間を跨るデータアクセスの低減化を図ることができ、評価精度の低下を回避することができる。   As described above, when the classification cannot be performed by the hardware configuration, the classification is performed based on the execution result of the evaluation software 901, particularly the height of the data dependency ratio. By classifying according to the height of the data dependence ratio, when executing the ESL simulation, it is possible to reduce the data access across the blocks and avoid the deterioration of the evaluation accuracy.

また、ブロック間を跨ぐデータアクセスデータを小さくすることで、次のフェーズでドメインをトラフィック生成器Gで置き換えた場合に、トラフィックを模擬化したときの誤差を必要最小限に抑制することができる。   In addition, by reducing the data access data straddling the blocks, when the domain is replaced with the traffic generator G in the next phase, it is possible to suppress the error when the traffic is simulated to the minimum necessary.

図13および図14は、アーキテクチャ100のドメイン分割結果を示すブロック構成図である。図13のドメイン分割結果は、図8および図11により確定された分類に基づく分割である。ドメインDa1は、バスAにのみ接続されるペリフェラルX,Yおよび共有リソースM、クロック供給ブロックP〜Rを有する。ドメインDc1は、バスCにのみ接続されるペリフェラルZおよび共有リソースN、クロック供給ブロックR,Sを有する。   13 and 14 are block configuration diagrams showing domain division results of the architecture 100. FIG. The domain division result in FIG. 13 is a division based on the classification determined by FIGS. 8 and 11. The domain Da1 has peripherals X and Y connected only to the bus A, shared resources M, and clock supply blocks P to R. The domain Dc1 has a peripheral Z, a shared resource N, and clock supply blocks R and S that are connected only to the bus C.

図14のドメイン分割結果は、図8および図12により確定された分類に基づく分割である。ドメインDa2は、バスAにのみ接続されるペリフェラルXおよび共有リソースM、クロック供給ブロックP,Qを有する。ドメインDc2は、バスA,Cに接続されるペリフェラルY,Zおよび共有リソースN、クロック供給ブロックP,R,Sを有する。   The domain division result in FIG. 14 is a division based on the classification determined by FIGS. 8 and 12. The domain Da2 includes a peripheral X, a shared resource M, and clock supply blocks P and Q that are connected only to the bus A. The domain Dc2 includes peripherals Y and Z connected to the buses A and C, a shared resource N, and clock supply blocks P, R, and S.

なお、実行制御部304では、分割されたドメイン群の中から選ばれた選択ドメインについて、トランザクションレベルのESLシミュレーションを実行する。この実行結果により、トラフィック生成器Gが生成されることとなる。   The execution control unit 304 executes a transaction level ESL simulation for a selected domain selected from the divided domain groups. As a result of this execution, the traffic generator G is generated.

図3に戻って、生成部305は、実行制御部304によって実行された実行結果に基づいて、選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器Gを生成する機能を有する。トラフィック生成器Gは、対応するドメインに置き換わる単一のハードウェアブロックである。したがって、ドメインを簡略化しているため、ハードウェアブロック数によって増大するESLシミュレーション時間を短縮することができる。   Returning to FIG. 3, the generation unit 305 has a function of generating a single traffic generator G that generates traffic equivalent to the traffic of the selected domain based on the execution result executed by the execution control unit 304. The traffic generator G is a single hardware block that replaces the corresponding domain. Therefore, since the domain is simplified, the ESL simulation time that increases depending on the number of hardware blocks can be shortened.

トラフィック生成器Gは、与えられたパラメタにより、無作為なデータを作成し、アーキテクチャにトラフィックの負荷を与えるシミュレーション用のハードウェアブロックである。また、データ入力を行うアドレス空間、データ出力を行うアドレス空間を指定できる。   The traffic generator G is a simulation hardware block that creates random data according to given parameters and applies a traffic load to the architecture. Further, an address space for inputting data and an address space for outputting data can be designated.

さらに、置換元のドメインのデータパターンのトラフィック負荷を生成する。具体的には、接続されるバスと同周期のクロックが与えられ、そのクロックに沿って、あらかじめ内部に保存しておいたシナリオデータと呼ばれるトラフィックパターンをもとに、起動時から周期的に負荷をあたえることができる。また、トラフィック生成器Gにはシナリオデータを生成するプログラマブルな領域が用意してあり、ドメインと置換する際に、ハードウェアブロックとともに、シナリオ生成プログラムが入力される仕組みをもつ。以下、トラフィック生成器Gについて詳細に説明する。   Further, the traffic load of the data pattern of the replacement source domain is generated. Specifically, a clock with the same period as the bus to be connected is given, and the load is periodically loaded from the time of startup based on the traffic pattern called scenario data stored in advance along the clock. Can be given. The traffic generator G has a programmable area for generating scenario data, and has a mechanism for inputting a scenario generation program together with hardware blocks when replacing with a domain. Hereinafter, the traffic generator G will be described in detail.

図15は、トラフィック生成器Gを示す説明図である。トラフィック生成器Gは4つのインターフェースをもつ。スレーブ端子1501は、代替するハードウェアブロックを模擬するためのコマンド1500を入力するためのインターフェースである。マスター端子1502は、入力されたコマンド1500を処理し、所望のトラフィックを生成するためのインターフェースである。クロック端子1503は、動作のための基本周期を取り込むインターフェースである。割込端子1504は、動作状況を報告するインターフェースである。   FIG. 15 is an explanatory diagram showing the traffic generator G. The traffic generator G has four interfaces. The slave terminal 1501 is an interface for inputting a command 1500 for simulating an alternative hardware block. The master terminal 1502 is an interface for processing an input command 1500 and generating desired traffic. The clock terminal 1503 is an interface that captures a basic period for operation. The interrupt terminal 1504 is an interface for reporting the operation status.

コマンド1500はシナリオデータに与えるパラメタの列であり、アクセスパターンap、インターバルint、周期f、データ長l、アクセス空間addr、反復回数rptを要素として構成される。   A command 1500 is a sequence of parameters given to the scenario data, and includes an access pattern ap, an interval int, a period f, a data length 1, an access space addr, and an iteration count rpt.

コマンド1500はレジスタイメージ1511として外部から参照できる。表現を行おうとする代替トラフィックは複数のコマンド列で表現されるため、これらを連続して入力可能なようにコマンドバッファ1512に蓄える仕組みをもつ。コマンドバッファ1512に蓄えられたコマンド列は順次読み出され、あらかじめ準備されたシナリオデータ1513に基づき、クロック端子1503から入力されたクロックCLKに従って、マスター端子1502から出力されることになる。   The command 1500 can be referred to as the register image 1511 from the outside. Since the alternative traffic to be expressed is expressed by a plurality of command strings, the traffic is stored in the command buffer 1512 so that these can be continuously input. The command sequence stored in the command buffer 1512 is sequentially read and output from the master terminal 1502 according to the clock CLK input from the clock terminal 1503 based on the scenario data 1513 prepared in advance.

すなわち、コマンド1500で指定されたアクセス空間addrに対して反復回数rpt回のアクセスパターンapの形式で出力される。総アクセス量に対する単位アクセス量は、バスのパケットサイズに相当する。   That is, it is output in the form of an access pattern ap having the number of iterations rpt for the access space addr specified by the command 1500. The unit access amount with respect to the total access amount corresponds to the packet size of the bus.

図16は、シナリオデータを示す説明図である。図16において、シナリオデータは、アクセスパターンAP、インターバルINT、周期F、データ長L、アクセス空間ADDR、反復回数RPTのパラメタをもたない仮想的なロジックで構成される。これらをパラメタとして選択する理由は、次のような理由によるものである。   FIG. 16 is an explanatory diagram showing scenario data. In FIG. 16, the scenario data is composed of virtual logic having no parameters of access pattern AP, interval INT, period F, data length L, access space ADDR, and number of repetitions RPT. The reason for selecting these as parameters is as follows.

アクセスパターンを示す水平(H)方向、垂直(V)方向、ランダム(R)では、アクセスの連続性を示したものである。多くのハードウェアデバイス、とくにメモリ装置では、連続したアドレス(水平方向に対して連続)であるか、周期的にとびとびの空間にアクセス(垂直方向に対して連続)するか、ランダムかによってパフォーマンスが異なることが知られている。これは、実際の回路接続において、連続空間へのアクセス、あるいは空間に対して周期性のあるアクセスであれば、バッファやキャッシュ機構により、ランダムにアクセスすることによりページング切り替えに伴うレイテンシが発生せず、より高速にアクセスできるためである。   In the horizontal (H) direction, vertical (V) direction, and random (R) indicating the access pattern, the continuity of access is shown. In many hardware devices, especially memory devices, performance depends on whether they are consecutive addresses (continuous in the horizontal direction), periodically access to discrete spaces (continuous in the vertical direction), or random. It is known to be different. In actual circuit connection, if access to continuous space or access to space is periodic, latency due to paging switching does not occur by random access using a buffer or cache mechanism. This is because it can be accessed at higher speed.

ただし、トラフィック生成器Gからはアクセス先のデバイスの特性は不明であるため、元々発生していたトラフィックがどのようなアクセスパターンをもっていたかの特徴のみを抽出する。実際のパフォーマンスの変化については、接続先のデバイスの特性を引き出すことにより解決することになる。   However, since the characteristics of the access destination device are unknown from the traffic generator G, only the characteristics indicating what access pattern the originally generated traffic had were extracted. The actual performance change is solved by extracting the characteristics of the connected device.

インターバルINT、周期F、データ長L、アクセス空間ADDR、反復回数RPTについては、実際のトラフィックに対する時間的空間的な属性を示した一般的な表現である。本実施の形態のESLシミュレーションで利用されるハードウェアはSystemCなどの記述言語で表現される。これはソフトウェアの関数と同じ構成であり、実際に動作を行う場合には、ESLシミュレーションを発生させる関数がコールされる仕組みになっている。   The interval INT, the period F, the data length L, the access space ADDR, and the number of repetitions RPT are general expressions indicating temporal and spatial attributes for actual traffic. Hardware used in the ESL simulation of this embodiment is expressed in a description language such as SystemC. This has the same configuration as a software function, and when an operation is actually performed, a function for generating an ESL simulation is called.

トラフィック生成器Gの内部で、コマンドバッファ1512からアクセスパターンが読み出された場合、シナリオデータとして定義されている関数から、図16に示すアクセスパターンに相当する関数にリンクする。この時点ではパターンのみを生成する仮想回路が接続されているだけである。続いてコマンドバッファ1512から読み出されたインターバルint、周期f、反復回数rpt、アクセス空間addrを読み取り、このパラメタをリンクした関数への引数として渡すことで、指定されたアドレス空間ADDRに対して、アクセスデータのインターバルINT、周期F、反復回数RPTのトラフィックが生成可能になる。   When an access pattern is read from the command buffer 1512 inside the traffic generator G, a function defined as scenario data is linked to a function corresponding to the access pattern shown in FIG. At this point, only a virtual circuit that generates only a pattern is connected. Subsequently, the interval int, the period f, the number of iterations rpt, and the access space addr read from the command buffer 1512 are read, and this parameter is passed as an argument to the linked function, whereby the designated address space ADDR is Traffic of the access data interval INT, period F, and number of repetitions RPT can be generated.

図17は、実際のデータパターンからトラフィック生成器Gに置換する場合のアクセスパターン、周期、反復回数、アクセス空間を生成する方式の説明図である。実際のアクセスデータを1回のESLシミュレーションで得た場合、シミュレータはクロックに応じた詳細なアクセスログを生成する。本実施の形態で対象としている検証評価では、クロック単位での詳細データではなく、複数のハードウェアブロックの相互干渉において、大概的にどのようなパフォーマンスを示すかを検証する目的があるため、クロック単位での詳細なパターンを追従する必要がない。   FIG. 17 is an explanatory diagram of a method of generating an access pattern, a period, the number of repetitions, and an access space when replacing the actual data pattern with the traffic generator G. When actual access data is obtained by one ESL simulation, the simulator generates a detailed access log corresponding to the clock. In the verification evaluation targeted in the present embodiment, since the purpose is to verify not only the detailed data in clock units but also the performance generally shown in the mutual interference of multiple hardware blocks, the clock There is no need to follow detailed patterns in units.

図13に示したドメインDa1を単一のトラフィック生成器Gに置き換える場合、まず、周期パターンを探索する。厳密な周期パターン探索では、測定区間のすべての特性を読み出す手法が利用されるが、本実施の形態でのフェーズでは、誤差を許容しながらも概略的な傾向をみるためのシミュレーションであるため、厳密な周期パターンを抽出する必要がない。そこで、ドメインDa1に対する1回目のESLシミュレーションで得られたアクセス波形1700をNサイクル周期で分割する。nは定数で、経験的に定められた初期値は1000とし、シミュレーション環境により値を変更可能とする。   When the domain Da1 shown in FIG. 13 is replaced with a single traffic generator G, first, a periodic pattern is searched. In the strict periodic pattern search, a method of reading all the characteristics of the measurement interval is used, but in the phase in this embodiment, since it is a simulation to see a general tendency while allowing an error, There is no need to extract a precise periodic pattern. Therefore, the access waveform 1700 obtained by the first ESL simulation for the domain Da1 is divided by N cycle periods. n is a constant, the initial value determined empirically is 1000, and the value can be changed depending on the simulation environment.

これは、置換を行おうとしているドメインDa1内の各ハードウェアブロックが発生するアクセスパターンの解析に重要であり、たとえば、(A)において、パターンの波形が視覚的に周期性を持つ場合、これは既存の数学的アルゴリズムにより周期を求めることができるが、視覚的に周期性を持たない場合、周期を求めることが困難になる。一方で、周期性を見出すことは本問題を解決する主旨ではないため、あえて初期値として、たとえば、n=1000を設定することで、その間隔でアクセスパターンを簡略化する。   This is important for the analysis of the access pattern generated by each hardware block in the domain Da1 to be replaced. For example, in (A), when the waveform of the pattern is visually periodic, The period can be obtained by an existing mathematical algorithm, but it is difficult to obtain the period if it does not have a periodicity visually. On the other hand, finding the periodicity is not the main purpose of solving this problem. Therefore, for example, by setting n = 1000 as an initial value, the access pattern is simplified at that interval.

このように、周期nの初期値を定数(n=1000)とするのは、視覚的にも周期パターンを見出せない場合のモデル数値化のための手法である。周期パターンがあるか否かは、既存の数学的手法を行い、適当な収束値が得られなかったケースで判断を行う。そして、nサイクルで分割した場合の1つのパターンを平均化する。区間平均化するときの1つのアクセス単位は、接続先の転送パケット単位となる。たとえば、32ビットアクセスを行うものであれば、4バイト単位、64ビットアクセスであれば8バイト単位となる。   In this way, the initial value of the period n is set to a constant (n = 1000) is a method for model quantification when the periodic pattern cannot be found visually. Whether or not there is a periodic pattern is determined based on a case where an appropriate mathematical value is not obtained by using an existing mathematical method. Then, one pattern when divided by n cycles is averaged. One access unit for the interval averaging is the transfer packet unit of the connection destination. For example, in the case of performing 32-bit access, the unit is 4 bytes, and in the case of 64-bit access, the unit is 8 bytes.

たとえば、図17の(A)において、全アクセスが1600ビット(200バイト)であり、接続先が32ビット(4バイト)単位であったとすると、(B)において、トラフィック生成器Gで得られる模擬波形1800は、全アクセス量を平均化したものである。区間である周期nは1000サイクルであるため、4バイトのアクセスを20サイクルの周期で50回送ることになるため、1サイクルで4バイトを転送し、19サイクルのインターバルをもつことになる。このときのトラフィックは、(C)に示したように、データ長L=4、インターバルINT=19、周期F=20、反復回数RPT=50となる。   For example, in FIG. 17A, if all accesses are 1600 bits (200 bytes) and the connection destination is a unit of 32 bits (4 bytes), a simulation obtained by the traffic generator G in FIG. A waveform 1800 is obtained by averaging the total access amount. Since the period n, which is a section, is 1000 cycles, a 4-byte access is sent 50 times in a cycle of 20 cycles. Therefore, 4 bytes are transferred in one cycle and an interval of 19 cycles is provided. As shown in (C), the traffic at this time has a data length L = 4, an interval INT = 19, a period F = 20, and a repetition count RPT = 50.

このようにして、すべての区間のパターンについて模擬波形を生成し、これらの値をコマンド1500としてトラフィック生成器Gに順次与えることで、置換されたトラフィック生成器Gが、元々存在していたドメインDa1のデータアクセス負荷(トラフィック)を表現することができる。   In this way, simulated waveforms are generated for the patterns of all the sections, and these values are sequentially given to the traffic generator G as the command 1500, so that the replaced traffic generator G has been originally present in the domain Da1. The data access load (traffic) can be expressed.

以下、具体的なトラフィック生成器Gの操作事例を示す。実行制御部304によるドメインDa1についての1回目のESLシミュレーションにより、ドメインDa1からの出力波形を測定する。図17のアクセス波形1700がブリッジBにおける測定波形となる。図17では、ランダムな波形ではなく、周期的なパターンを示しているため、上述した既存の数学的アルゴリズムにより周期を求めることができる。   Hereinafter, a specific operation example of the traffic generator G will be described. The output waveform from the domain Da1 is measured by the first ESL simulation for the domain Da1 by the execution control unit 304. An access waveform 1700 in FIG. In FIG. 17, since a periodic pattern is shown instead of a random waveform, the period can be obtained by the existing mathematical algorithm described above.

図17で得られるアクセス波形の黒い部分は実際にデータが通過した点の集合である。具体的なデータ内容については関係なく、データが通過すること、すなわち置換を行おうとするハードウェアブロックから発生するアクセス負荷により、他のハードウェアブロックのアクセスが影響を受けることになる。   The black portion of the access waveform obtained in FIG. 17 is a set of points through which data has actually passed. Regardless of the specific data contents, the access of other hardware blocks is affected by the passage of data, that is, the access load generated from the hardware block to be replaced.

実際には3種類のクロックP〜Rが導入され、調停(アービトレーション)の結果発生するデータアクセス負荷である。しかし、アクセス波形1700だけで見れば、単なる一つの負荷の帯であり、この帯を模式化してしまうことでアクセス負荷を簡素化することができる。   Actually, three types of clocks P to R are introduced, which is a data access load generated as a result of arbitration. However, if only the access waveform 1700 is viewed, it is just one load band, and the access load can be simplified by schematically representing this band.

なお、トラフィック生成器Gは以下のようなレジスタをもつものとする。レジスタは以下の構成である必要はなく、実装環境に応じて形態を変更することも可能である。   It is assumed that the traffic generator G has the following registers. The register does not need to have the following configuration, and the form can be changed according to the mounting environment.

CTL:コントロールレジスタ
トラフィック生成器Gに制御コマンド1500を設定する。
0x00:制御停止
0x01:実行開始
0x02:コマンド1500の入力モード
CTL: Control register A control command 1500 is set in the traffic generator G.
0x00: Control stop 0x01: Start of execution 0x02: Command 1500 input mode

DPR:データパターンレジスタ
1つの負荷パターンがどのようなアクセスをするか指定する。
0x00:指定されたSTAR/SBAR/DTAR/DBARに対して連続
0x01:指定されたSTAR/SBAR/DATR/DBARに対して断続
0x02:指定されたSTAR/SBAR/DATR/DBARに対してランダム
断続データの場合、断続データの間隔を上位ビットに指定する。
下位ビットが0x01以外の場合、上位ビットは無視される。
DPR: Data pattern register This specifies how one load pattern accesses.
0x00: Continuous for specified STAR / SBAR / DTAR / DBAR 0x01: Intermittent for specified STAR / SBAR / DATR / DBAR 0x02: Random intermittent data for specified STAR / SBAR / DATR / DBAR In the case of, specify the interval of intermittent data in the upper bits.
If the lower bit is other than 0x01, the upper bit is ignored.

TWR:トラフィック・ワイズ・レジスタ
1つの負荷パターンに対するアクセス量を実数で指定する。
TWR: Traffic wise register Specifies the amount of access to one load pattern as a real number.

ITR:インターバルタイムレジスタ
1つの負荷パターン同士の感覚を実数で指定する。
ITR: Interval time register The sense of one load pattern is specified by a real number.

RTR:リピートタイムレジスタ
1つのパターンを何回リピートするかを指定する。
RTR: Repeat time register Specifies how many times a pattern is repeated.

STAR:ソーストップアドレスレジスタ(置換元のアドレス空間の先頭アドレス)
SBAR:ソースボトムアドレスレジスタ(置換元のアドレス空間の最終アドレス)
DTAR:デスティネーショントップアドレスレジスタ(置換先以外のアドレス空間の先頭アドレス)
DBAR:デスティネーションボトムアドレスレジスタ(置換先以外のアドレス空間の最終アドレス)
STAR: Source top address register (start address of replacement source address space)
SBAR: Source bottom address register (last address of replacement source address space)
DTAR: Destination top address register (first address in the address space other than the replacement destination)
DBAR: Destination bottom address register (last address in the address space other than the replacement destination)

BUF:コマンドバッファ1512(上記パターンを記述するためのバッファ。)
レジスタに書き込むことにより、順にスタックされる。実行時にはFIFO(First−In First−Out)読み出しされる。
BUF: Command buffer 1512 (buffer for describing the above pattern)
By writing to the registers, they are stacked in order. At the time of execution, FIFO (First-In First-Out) is read.

実験環境のトラフィック生成器Gは以下のような仕様で動作する。
1.コントロールレジスタCTLにコマンド1500の入力モードに変更する。
2.コマンドバッファBUFに各レジスタに与える値を順に記述する。
3.コントロールレジスタCTLを実行モードにする。
The traffic generator G in the experimental environment operates with the following specifications.
1. The input mode of the command 1500 is changed to the control register CTL.
2. The value given to each register is described in order in the command buffer BUF.
3. The control register CTL is set to the execution mode.

トラフィック生成器Gにはシナリオを生成するプログラマブルな領域が用意してあり、実際のハードウェアブロックと置換する際に、ハードウェアブロックとともに、シナリオ生成プログラムが入力される仕組みをもつ。上記1〜3のような仕様のトラフィック生成器Gへのプログラムの記述を容易に表現するために、アセンブラ風の記述をする。「Set XXX,YYY」と記述した場合、「XXX」に「YYY」を設定することを意味する。また「#」はコメント行とする。   The traffic generator G has a programmable area for generating a scenario, and has a mechanism for inputting a scenario generation program together with the hardware block when replacing the actual hardware block. In order to easily express the description of the program in the traffic generator G having the specifications as described in the above 1 to 3, an assembler-like description is given. When “Set XXX, YYY” is described, it means that “XXX” is set to “YYY”. “#” Is a comment line.

Set CTL, 00 # 停止
Set CTL, 02 # コマンド1500の入力モード
Set Buf, 00 # 連続アクセスするパターンを生成する。
Set Buf, 04 # データ長L=4のアクセス。実行時にトラフィック・ワイズ・レジスタTWRに代入される。
# 自動インクリメント
Set Buf, 19 # インターバル時間19。実行時にインターバルタイムレジスタITRに代入される。
# 自動インクリメント
Set Buf, 255 # 繰り返し回数255回。実行時にリピートタイムレジスタRTRに代入される。
Set Buf, 0xff00 # ペリフェラルX,Yのアドレス空間。実行時にソーストップアドレスレジスタSTARに代入される
# 自動インクリメント
Set Buf, 0xffff # ペリフェラルX,Yのアドレス空間。実行時にソースボトムアドレスレジスタSBARに代入される。
# 自動インクリメント
Set Buf, 0x0000 # ペリフェラルX,Y以外のアドレス空間。実行時にデスティネーショントップアドレスレジスタDTARに代入される。
# 自動インクリメント
Set Buf, 0x00ff # ペリフェラルX,Y以外のアドレス空間。実行時にデスティネーションボトムアドレスレジスタDBARに代入される。
# 自動インクリメント
Set CTL, 01 # 実行開始
Set CTL, 00 # Stop Set CTL, 02 # Command 1500 input mode Set Buf, 00 # Generates a pattern for continuous access.
Set Buf, 04 # Access with data length L = 4. Assigned to the traffic-wise register TWR at runtime.
# Autoincrement Set Buf, 19 # Interval time 19. It is substituted into the interval time register ITR at the time of execution.
# Auto-increment Set Buf, 255 # 255 iterations. Assigned to the repeat time register RTR at the time of execution.
Set Buf, 0xff00 # Peripheral X, Y address space. Assigned to the source top address register STAR when executed
# Auto-increment Set Buf, 0xffff # Peripheral X, Y address space. Assigned to the source bottom address register SBAR at the time of execution.
# Auto-increment Set Buf, 0x0000 # Address space other than peripherals X and Y. It is substituted into the destination top address register DTAR at the time of execution.
# Autoincrement Set Buf, 0x00ff # Address space other than peripherals X and Y. It is substituted into the destination bottom address register DBAR at the time of execution.
# Auto-increment Set CTL, 01 # Start execution

実行開始することによって、Bufにスタックされた命令を順に読み出し、各レジスタに値を読み込んで実際のトラフィックを生成することになる。以上1つのパターンを再現する例であるが、ランダムアクセスを周期化したときのように、1つのパターンの周期は1回ずつで、毎回アクセス幅やインターバルが異なるケースでは、「Set Buf」に相当するセンテンスを必要な回数分繰り返せばよい。   By starting the execution, the instructions stacked in the Buf are sequentially read, and the actual traffic is generated by reading the values into the respective registers. This is an example of reproducing one pattern. However, in the case where the period of one pattern is once and the access width and interval are different each time, as in the case of periodic random access, it corresponds to “Set Buf”. You can repeat the sentence you want as many times as you want.

図18は、ドメインDa1についてのシミュレーション波形を示す説明図である。このシミュレーション波形は、ブリッジBにおいて測定される。図19はドメインDa1についてのシミュレーション波形とトラフィック生成器Gからのトラフィック波形との比較を示す説明図である。   FIG. 18 is an explanatory diagram showing a simulation waveform for the domain Da1. This simulation waveform is measured at bridge B. FIG. 19 is an explanatory diagram showing a comparison between a simulation waveform for the domain Da1 and a traffic waveform from the traffic generator G.

(A1)が実際の全体トラフィックの波形、(A2)が測定を行いたい置換されたハードウェアブロック以外のアクセスを示す波形、(A3)が実際のアクセスを示す波形である。また、(B1)はトラフィック生成器Gにより影響を受けた全体トラフィックの波形、(B2)が測定を行いたい置換されたブロック以外のアクセスを示す波形、(B3)がトラフィック生成器Gの生成した負荷を示す波形である。   (A1) is a waveform of actual overall traffic, (A2) is a waveform indicating access other than the replaced hardware block to be measured, and (A3) is a waveform indicating actual access. (B1) is a waveform of the entire traffic affected by the traffic generator G, (B2) is a waveform indicating access other than the replaced block to be measured, and (B3) is generated by the traffic generator G. It is a waveform which shows load.

このように、測定を行いたい影響を受けるアクセスが、実際のペリフェラルX,Yによる負荷での影響と同様の影響をトラフィック生成器Gにより影響をうけていることが観測できる。結果として、3つの処理系統を1つに集約、簡略化することにより、よりESLシミュレーション時間を短縮することが可能になる。   In this way, it can be observed that the access affected by the measurement to be measured is affected by the traffic generator G in the same manner as the load caused by the actual peripherals X and Y. As a result, the ESL simulation time can be further shortened by consolidating and simplifying the three processing systems into one.

図3に戻って、再構築部306は、選択ドメインをトラフィック生成器Gに置換することにより、アーキテクチャを再構築する機能を有する。具体的には、たとえば、各選択ドメインに固有のトラフィック生成器Gと非選択ドメインとを結合することで、アーキテクチャを再構築する。   Returning to FIG. 3, the reconstruction unit 306 has a function of reconstructing the architecture by replacing the selected domain with the traffic generator G. Specifically, for example, the architecture is reconstructed by combining a traffic generator G and a non-selected domain specific to each selected domain.

図20は、アーキテクチャの再構築を示す説明図である。再構築前のアーキテクチャのドメインDa1(図13)をトラフィック生成器Ga1に置換することで、再構築後のアーキテクチャ110が得られる。また、実行制御部304は、再構築後のアーキテクチャ110についてトランザクションレベルのESLシミュレーションを実行することで、図1に示した評価結果120を得る。   FIG. 20 is an explanatory diagram showing the reconstruction of the architecture. By replacing the domain Da1 (FIG. 13) of the architecture before the reconstruction with the traffic generator Ga1, the architecture 110 after the reconstruction is obtained. The execution control unit 304 obtains the evaluation result 120 shown in FIG. 1 by executing a transaction level ESL simulation for the architecture 110 after the reconstruction.

図3に戻って、出力部307は、再構築後のアーキテクチャ110や評価結果120を出力する機能を有する。出力形式は、ディスプレイへの表示や外部への送信、記憶領域への書き込みがある。   Returning to FIG. 3, the output unit 307 has a function of outputting the reconstructed architecture 110 and the evaluation result 120. Output formats include display on a display, transmission to the outside, and writing to a storage area.

(ESLシミュレーション時間の比較)
図21は、ESLシミュレーション時間の比較を示すグラフである。横軸はシミュレーションモデル、縦軸は実行時間(対数)である。バックドアモデルでは、評価ソフトウェア901を実行させるのに必要な最低限1系統のクロックを用いてESLシミュレーションを行った結果である。グラフの右にいくに従ってクロック系統が追加され、この増加にともなって実行時間が指数的に増加していく。
(Comparison of ESL simulation time)
FIG. 21 is a graph showing a comparison of ESL simulation times. The horizontal axis is the simulation model, and the vertical axis is the execution time (logarithm). The backdoor model is a result of performing an ESL simulation using a minimum of one system clock necessary for executing the evaluation software 901. The clock system is added as it goes to the right of the graph, and the execution time increases exponentially with this increase.

すなわち、複数のクロック依存のハードウェアブロックがある場合、クロック系統が複数あると、シミュレーション内部の時間も時系列に沿った結果をもつこととなり、そのクロック系統が異なれば、シミュレーション内部での同期を取るために処理量が増大することとなる。   In other words, when there are multiple clock-dependent hardware blocks, if there are multiple clock systems, the time within the simulation will also have a time-series result, and if the clock systems are different, synchronization within the simulation will occur. Therefore, the amount of processing increases.

図20の再構築においては、再構築前では、4つのクロック系統(P〜S)および8種類のハードウェアブロック(X,Y,Z,M,N,A,B,C)のESLシミュレーションを実行することになる。図21の実際のトランザクションレベルのESLシミュレーション時間をもとに換算すると、10の3.5乗のオーダーで実行時間がかかることになる。   In the reconstruction of FIG. 20, before the reconstruction, ESL simulation of four clock systems (P to S) and eight types of hardware blocks (X, Y, Z, M, N, A, B, and C) is performed. Will be executed. When converted based on the actual transaction level ESL simulation time in FIG. 21, the execution time is in the order of 10 to the power of 3.5.

図20の再構築後では、ドメインDa1についてのインストラクションレベルのシミュレーション1回と3系統クロック(P,R,S)および5つのハードウェアブロック(G,Z,N,B,C)についてのトランザクションレベルのシミュレーション1回を実行することになる。図21のESLシミュレーション時間をもとに換算すると、10の3乗のオーダーの実行時間ですむことになる。   After the reconstruction in FIG. 20, one instruction level simulation for the domain Da1, three system clocks (P, R, S) and five hardware blocks (G, Z, N, B, C) transaction levels This simulation is executed once. When converted based on the ESL simulation time of FIG. 21, an execution time of the order of 10 to the third power is sufficient.

なお、本実施の形態では、評価ソフトウェア901の実行においてデータトラフィックのパターンを算出するため、図21におけるバックドア相当の実行を1回だけ実施することになるが、この実行に要する時間はたかだか10の1乗のオーダーである。したがって、本実施の形態では、ESLシミュレーション時間の大幅な短縮が可能となる。   In this embodiment, since the data traffic pattern is calculated in the execution of the evaluation software 901, the execution corresponding to the back door in FIG. 21 is executed only once. The time required for this execution is at most 10 Is the first power of. Therefore, in this embodiment, the ESL simulation time can be greatly shortened.

(設計支援処理手順)
図22は、本実施の形態にかかる設計支援装置による設計支援処理手順を示すフローチャートである。図22において、情報取得処理(ステップS2201)、ドメイン分割処理(ステップS2202)、トラフィック生成器G生成処理(ステップS2203)、アーキテクチャ再構築処理(ステップS2204)の順に実行する。
(Design support processing procedure)
FIG. 22 is a flowchart showing a design support processing procedure by the design support apparatus according to this embodiment. In FIG. 22, information acquisition processing (step S2201), domain division processing (step S2202), traffic generator G generation processing (step S2203), and architecture reconstruction processing (step S2204) are executed in this order.

なお、情報取得処理(ステップS2201)では、図4に示したハードウェアモデル情報、図6に示した接続情報、図9に示した評価ソフトウェア901を取得する。このあと、再構築アーキテクチャについてサイクルモデルのESLシミュレーションを実行する(ステップS2205)。そして、実行結果を出力する(ステップS2206)。これにより、一連の設計支援処理を終了する。   In the information acquisition process (step S2201), the hardware model information shown in FIG. 4, the connection information shown in FIG. 6, and the evaluation software 901 shown in FIG. 9 are acquired. Thereafter, an ESL simulation of the cycle model is executed for the reconstructed architecture (step S2205). Then, the execution result is output (step S2206). Thereby, a series of design support processing ends.

図23は、ドメイン分割処理(ステップS2202)の詳細な処理手順を示すフローチャートである。まず、ハードウェア接続解析結果があるか否かを判断する(ステップS2301)。一方、ない場合(ステップS2301:No)、構造分析をおこなう(ステップS2302)。そして、ハードェアブロック間依存解析をおこなって(ステップS2303)、ステップS2301に戻る。   FIG. 23 is a flowchart showing a detailed processing procedure of the domain division processing (step S2202). First, it is determined whether there is a hardware connection analysis result (step S2301). On the other hand, when there is not (step S2301: No), a structural analysis is performed (step S2302). Then, dependency analysis between hardware blocks is performed (step S2303), and the process returns to step S2301.

ステップS2301において、ハードウェア接続解析結果がある場合(ステップS2301:Yes)、ESL実行結果があるか否かを判断する(ステップS2304)。ない場合(ステップS2304:No)、バックドアモデルによるESLシミュレーションを実行して(ステップS2305)、ステップS2301に戻る。ESL実行結果がある場合(ステップS2304:Yes)、ドメイン分割を実行する(ステップS2306)。そして、トラフィック生成器生成処理(ステップS2203)に移行する。   In step S2301, if there is a hardware connection analysis result (step S2301: Yes), it is determined whether there is an ESL execution result (step S2304). If there is not (step S2304: No), an ESL simulation based on the back door model is executed (step S2305), and the process returns to step S2301. If there is an ESL execution result (step S2304: YES), domain division is executed (step S2306). And it transfers to a traffic generator production | generation process (step S2203).

図24は、トラフィック生成器生成処理(ステップS2203)の詳細な処理手順を示すフローチャートである。まず、評価対象ドメインを分割されたドメイン群の中から抽出する(ステップS2401)。抽出されるドメインは、設計者が指定したドメインでもよく、すべてのドメインでもよい。   FIG. 24 is a flowchart showing a detailed processing procedure of the traffic generator generation process (step S2203). First, the evaluation target domain is extracted from the divided domain group (step S2401). The extracted domain may be a domain designated by the designer or all domains.

そして、未処理の評価対象ドメインがあるか否かを判断する(ステップS2402)。未処理の評価対象ドメインがある場合(ステップS2402:Yes)、未処理の評価対象ドメインを1つ選択し(ステップS2403)、サイクルモデルによるESLシミュレーションを実行する(ステップS2404)。すなわち、トランザクションレベルのESLシミュレーションを実行する。   Then, it is determined whether or not there is an unprocessed evaluation target domain (step S2402). When there is an unprocessed evaluation target domain (step S2402: Yes), one unprocessed evaluation target domain is selected (step S2403), and an ESL simulation is performed using a cycle model (step S2404). That is, a transaction level ESL simulation is executed.

そして、その実行結果に基づいて評価対象ドメインのトラフィックと同等のトラフィック生成器Gを生成して(ステップS2405)、ステップS2402に戻る。ステップS2402において、未処理の評価対象ドメインがない場合(ステップS2402:No)、アーキテクチャ再構築処理(ステップS2204)に移行する。   Based on the execution result, a traffic generator G equivalent to the traffic in the evaluation target domain is generated (step S2405), and the process returns to step S2402. In step S2402, when there is no unprocessed evaluation target domain (step S2402: No), the process proceeds to the architecture reconstruction process (step S2204).

図25は、アーキテクチャ再構築処理(ステップS2204)の詳細な処理手順を示すフローチャートである。まず、非評価対象ドメインを抽出する(ステップS2501)。図13の例では、ドメインDc1を抽出する。そして、評価対象ドメイン固有のトラフィック生成器Gと非評価対象ドメインとを結合する(ステップS2502)。図20に示したように、ドメインDa1固有のトラフィック生成器Ga1とドメインDc1とを結合することで、再構築後のアーキテクチャを得る。   FIG. 25 is a flowchart showing a detailed processing procedure of the architecture restructuring process (step S2204). First, a non-evaluation target domain is extracted (step S2501). In the example of FIG. 13, the domain Dc1 is extracted. Then, the traffic generator G unique to the evaluation target domain and the non-evaluation target domain are combined (step S2502). As shown in FIG. 20, the traffic generator Ga1 unique to the domain Da1 and the domain Dc1 are combined to obtain a reconstructed architecture.

このように、本実施の形態によれば、設計対象となるアーキテクチャから分割されたドメインの一部または全部をそのドメインのトラフィックと同等のトラフィックを生成するトラフィック生成器Gに置換することで、アーキテクチャを簡略化することができる。これにより、簡略化されたアーキテクチャについてトランザクションレベルのESLシミュレーションを実行することで、上流設計におけるESLシミュレーション速度の高速化を図ることができる。したがって、設計期間の短縮化を図ることができる。   As described above, according to the present embodiment, a part or all of the domain divided from the architecture to be designed is replaced with the traffic generator G that generates traffic equivalent to the traffic of the domain. Can be simplified. As a result, the ESL simulation speed in the upstream design can be increased by executing the transaction level ESL simulation for the simplified architecture. Therefore, the design period can be shortened.

なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。   The design support method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer. The program may be a medium that can be distributed through a network such as the Internet.

上述した実施の形態に関し、さらに以下の付記を開示する。   The following additional notes are disclosed with respect to the embodiment described above.

(付記1)コンピュータを、
評価ソフトウェアに関するESLシミュレーションを実行する実行手段、
前記実行手段を制御して、設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するESLシミュレーションを実行する実行制御手段、
前記実行制御手段によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成手段、
前記選択ドメインを前記生成手段によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築手段、
前記再構築手段によって再構築されたアーキテクチャを出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
(Appendix 1) Computer
Execution means for executing ESL simulation on evaluation software;
Execution control means for controlling the execution means to execute an ESL simulation related to the evaluation software for a selected domain selected from a domain group divided from the architecture to be designed;
Generating means for generating a single traffic generator for generating traffic equivalent to the traffic of the selected domain based on the execution result executed by the execution control means;
Reconstructing means for reconstructing the architecture by replacing the selected domain with a traffic generator generated by the generating means;
Output means for outputting the architecture reconstructed by the restructuring means;
Design support program characterized by functioning as

(付記2)前記コンピュータを、
前記アーキテクチャを構成するハードウェアモデル間の接続情報を取得する取得手段、
前記取得手段によって取得された接続情報に基づいて、前記アーキテクチャをドメイン分割する分割手段として機能させ、
前記実行制御手段は、
前記実行手段を制御して、前記分割手段によって分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するESLシミュレーションを実行することを特徴とする付記1に記載の設計支援プログラム。
(Appendix 2)
Obtaining means for obtaining connection information between hardware models constituting the architecture;
Based on the connection information acquired by the acquisition means, function as a dividing means for dividing the architecture into domains,
The execution control means includes
The design support program according to appendix 1, wherein the execution means is controlled to execute an ESL simulation related to the evaluation software for a selected domain selected from the domain group divided by the dividing means.

(付記3)前記分割手段は、
前記接続情報から得られる前記ハードウェアモデル間を接続するバスの共通性に基づいて、前記アーキテクチャをドメイン分割することを特徴とする付記2に記載の設計支援プログラム。
(Supplementary Note 3) The dividing means includes
The design support program according to appendix 2, wherein the architecture is divided into domains based on commonality of buses connecting the hardware models obtained from the connection information.

(付記4)前記分割手段は、
前記接続情報から得られる前記ハードウェアモデルに供給されるクロックの共通性に基づいて、前記アーキテクチャをドメイン分割することを特徴とする付記2または3に記載の設計支援プログラム。
(Supplementary Note 4) The dividing means includes:
The design support program according to appendix 2 or 3, wherein the architecture is divided into domains based on commonality of clocks supplied to the hardware model obtained from the connection information.

(付記5)前記実行制御手段は、
前記実行手段を制御して、前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのESLシミュレーションを実行し、
前記分割手段は、
前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのESLシミュレーションにより得られる前記ハードウェアモデル間のデータ依存量に基づいて、前記アーキテクチャをドメイン分割することを特徴とする付記2〜4のいずれか一つに記載の設計支援プログラム。
(Supplementary Note 5) The execution control means includes:
Controlling the execution means to execute an instruction level ESL simulation for the evaluation software for the architecture;
The dividing means includes
The architecture according to any one of appendices 2 to 4, wherein the architecture is divided into domains based on a data dependency amount between the hardware models obtained by an instruction level ESL simulation for the evaluation software. Design support program.

(付記6)前記実行制御手段は、
前記分割手段により、前記いずれのドメインにも分類できない不確定ハードウェアモデルがある場合、前記実行手段を制御して、前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのESLシミュレーションを実行し、
前記分割手段は、
前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのESLシミュレーションにより得られる前記ハードウェアモデル間のデータ依存量に基づいて、前記アーキテクチャをドメイン分割することを特徴とする付記2〜4のいずれか一つに記載の設計支援プログラム。
(Appendix 6) The execution control means includes:
When there is an indeterminate hardware model that cannot be classified into any of the domains by the dividing means, the execution means is controlled to execute an instruction level ESL simulation for the evaluation software for the architecture;
The dividing means includes
The architecture according to any one of appendices 2 to 4, wherein the architecture is divided into domains based on a data dependency amount between the hardware models obtained by an instruction level ESL simulation for the evaluation software. Design support program.

(付記7)前記実行制御手段は、
前記実行手段を制御して、前記再構築されたアーキテクチャについて前記評価ソフトウェアに関するESLシミュレーションを実行し、
前記出力手段は、
前記再構築されたアーキテクチャについて実行された前記評価ソフトウェアに関するESLシミュレーションの実行結果を出力することを特徴とする付記1〜6のいずれか一つに記載の設計支援プログラム。
(Appendix 7) The execution control means includes:
Controlling the execution means to execute an ESL simulation for the evaluation software for the reconstructed architecture;
The output means includes
The design support program according to any one of appendices 1 to 6, wherein an execution result of an ESL simulation related to the evaluation software executed for the reconstructed architecture is output.

(付記8)評価ソフトウェアに関するESLシミュレーションを実行する実行手段と、
前記実行手段を制御して、設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するESLシミュレーションを実行する実行制御手段と、
前記実行制御手段によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成手段と、
前記選択ドメインを前記生成手段によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築手段と、
前記再構築手段によって再構築されたアーキテクチャを出力する出力手段と、
を備えることを特徴とする設計支援装置。
(Supplementary Note 8) Execution means for executing ESL simulation related to evaluation software;
Execution control means for controlling the execution means to execute an ESL simulation related to the evaluation software for a selected domain selected from among a group of domains divided from the architecture to be designed;
Generating means for generating a single traffic generator for generating traffic equivalent to the traffic of the selected domain based on the execution result executed by the execution control means;
Reconstructing means for reconstructing the architecture by replacing the selected domain with a traffic generator generated by the generating means;
Output means for outputting the architecture reconstructed by the restructuring means;
A design support apparatus comprising:

(付記9)コンピュータが、
設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて評価ソフトウェアに関するESLシミュレーションを実行する実行工程、
前記実行工程によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成工程、
前記選択ドメインを前記生成工程によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築工程、
前記再構築工程によって再構築されたアーキテクチャを出力する出力工程、
を実行することを特徴とする設計支援方法。
(Supplementary note 9)
An execution step of executing an ESL simulation related to the evaluation software for a selected domain selected from a group of domains divided into domains from the architecture to be designed;
A generating step of generating a single traffic generator that generates traffic equivalent to the traffic of the selected domain based on the execution result executed by the executing step;
A rebuilding step of rebuilding the architecture by replacing the selected domain with a traffic generator generated by the generating step;
An output step of outputting the architecture reconstructed by the restructuring step;
A design support method characterized by executing

本実施の形態にかかる設計支援の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of the design support concerning this Embodiment. 本実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the design support apparatus concerning this Embodiment. 本実施の形態にかかる設計支援装置の機能的構成を示すブロック図である。It is a block diagram which shows the functional structure of the design assistance apparatus concerning this Embodiment. ハードウェアモデル情報を示す説明図である。It is explanatory drawing which shows hardware model information. 設計対象となるアーキテクチャを示すブロック構成図である。It is a block block diagram which shows the architecture used as a design object. 接続情報を示す説明図である。It is explanatory drawing which shows connection information. 接続情報が与えられたアーキテクチャを示すブロック構成図である。It is a block block diagram which shows the architecture to which connection information was given. 図7に示したアーキテクチャの接続解析結果を示す説明図である。It is explanatory drawing which shows the connection analysis result of the architecture shown in FIG. 評価ソフトウェアのソースコード群を示す説明図である。It is explanatory drawing which shows the source code group of evaluation software. アーキテクチャにおける評価ソフトウェアのESLシミュレーションを示す説明図である。It is explanatory drawing which shows the ESL simulation of the evaluation software in an architecture. 図10に示したインストラクションレベルのESLシミュレーションの実行結果(その1)を示す説明図である。It is explanatory drawing which shows the execution result (the 1) of the ESL simulation of the instruction level shown in FIG. 図10に示したインストラクションレベルのESLシミュレーションの実行結果(その2)を示す説明図である。It is explanatory drawing which shows the execution result (the 2) of the instruction level ESL simulation shown in FIG. アーキテクチャのドメイン分割結果(その1)を示すブロック構成図である。It is a block block diagram which shows the domain division | segmentation result (the 1) of an architecture. アーキテクチャのドメイン分割結果(その2)を示すブロック構成図である。It is a block block diagram which shows the domain division | segmentation result (the 2) of an architecture. トラフィック生成器を示す説明図である。It is explanatory drawing which shows a traffic generator. シナリオデータを示す説明図である。It is explanatory drawing which shows scenario data. 実際のデータパターンからトラフィック生成器に置換する場合のアクセスパターン、周期、反復回数、アクセス空間を生成する方式の説明図である。It is explanatory drawing of the system which produces | generates an access pattern, a period, the repetition frequency, and an access space at the time of replacing with a traffic generator from an actual data pattern. ドメインDa1についてのシミュレーション波形を示す説明図である。It is explanatory drawing which shows the simulation waveform about the domain Da1. ドメインDa1についてのシミュレーション波形とトラフィック生成器からのトラフィック波形との比較を示す説明図である。It is explanatory drawing which shows the comparison with the simulation waveform about the domain Da1, and the traffic waveform from a traffic generator. アーキテクチャの再構築を示す説明図である。It is explanatory drawing which shows the reconstruction of an architecture. ESLシミュレーション時間の比較を示すグラフである。It is a graph which shows the comparison of ESL simulation time. 本実施の形態にかかる設計支援装置による設計支援処理手順を示すフローチャートである。It is a flowchart which shows the design assistance processing procedure by the design assistance apparatus concerning this Embodiment. ドメイン分割処理(ステップS2202)の詳細な処理手順を示すフローチャートである。It is a flowchart which shows the detailed process sequence of a domain division | segmentation process (step S2202). トラフィック生成器生成処理(ステップS2403)の詳細な処理手順を示すフローチャートである。It is a flowchart which shows the detailed process sequence of a traffic generator production | generation process (step S2403). アーキテクチャ再構築処理(ステップS2204)の詳細な処理手順を示すフローチャートである。It is a flowchart which shows the detailed process sequence of an architecture reconstruction process (step S2204).

符号の説明Explanation of symbols

300 設計支援装置
301 取得部
302 分割部
303 実行部
304 実行制御部
305 生成部
306 再構築部
307 出力部
DESCRIPTION OF SYMBOLS 300 Design support apparatus 301 Acquisition part 302 Dividing part 303 Execution part 304 Execution control part 305 Generation part 306 Reconstruction part 307 Output part

Claims (5)

コンピュータを、
評価ソフトウェアに関するESLシミュレーションを実行する実行手段、
前記実行手段を制御して、設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するESLシミュレーションを実行する実行制御手段、
前記実行制御手段によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成手段、
前記選択ドメインを前記生成手段によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築手段、
前記再構築手段によって再構築されたアーキテクチャを出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
Computer
Execution means for executing ESL simulation on evaluation software;
Execution control means for controlling the execution means to execute an ESL simulation related to the evaluation software for a selected domain selected from a domain group divided from the architecture to be designed;
Generating means for generating a single traffic generator for generating traffic equivalent to the traffic of the selected domain based on the execution result executed by the execution control means;
Reconstructing means for reconstructing the architecture by replacing the selected domain with a traffic generator generated by the generating means;
Output means for outputting the architecture reconstructed by the restructuring means;
Design support program characterized by functioning as
前記コンピュータを、
前記アーキテクチャを構成するハードウェアモデル間の接続情報を取得する取得手段、
前記取得手段によって取得された接続情報に基づいて、前記アーキテクチャをドメイン分割する分割手段として機能させ、
前記実行制御手段は、
前記実行手段を制御して、前記分割手段によって分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するESLシミュレーションを実行することを特徴とする請求項1に記載の設計支援プログラム。
The computer,
Obtaining means for obtaining connection information between hardware models constituting the architecture;
Based on the connection information acquired by the acquisition means, function as a dividing means for dividing the architecture into domains,
The execution control means includes
The design support program according to claim 1, wherein the execution means is controlled to execute an ESL simulation related to the evaluation software for a selected domain selected from the domain group divided by the dividing means.
前記実行制御手段は、
前記実行手段を制御して、前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのESLシミュレーションを実行し、
前記分割手段は、
前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのESLシミュレーションにより得られる前記ハードウェアモデル間のデータ依存量に基づいて、前記アーキテクチャをドメイン分割することを特徴とする請求項2に記載の設計支援プログラム。
The execution control means includes
Controlling the execution means to execute an instruction level ESL simulation for the evaluation software for the architecture;
The dividing means includes
3. The design support program according to claim 2, wherein the architecture is domain-divided based on a data dependence amount between the hardware models obtained by instruction level ESL simulation related to the evaluation software for the architecture.
評価ソフトウェアに関するESLシミュレーションを実行する実行手段と、
前記実行手段を制御して、設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するESLシミュレーションを実行する実行制御手段と、
前記実行制御手段によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成手段と、
前記選択ドメインを前記生成手段によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築手段と、
前記再構築手段によって再構築されたアーキテクチャを出力する出力手段と、
を備えることを特徴とする設計支援装置。
Execution means for executing an ESL simulation relating to the evaluation software;
Execution control means for controlling the execution means to execute an ESL simulation related to the evaluation software for a selected domain selected from among a group of domains divided from the architecture to be designed;
Generating means for generating a single traffic generator for generating traffic equivalent to the traffic of the selected domain based on the execution result executed by the execution control means;
Reconstructing means for reconstructing the architecture by replacing the selected domain with a traffic generator generated by the generating means;
Output means for outputting the architecture reconstructed by the restructuring means;
A design support apparatus comprising:
コンピュータが、
設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて評価ソフトウェアに関するESLシミュレーションを実行する実行工程、
前記実行工程によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成工程、
前記選択ドメインを前記生成工程によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築工程、
前記再構築工程によって再構築されたアーキテクチャを出力する出力工程、
を実行することを特徴とする設計支援方法。
Computer
An execution step of executing an ESL simulation related to the evaluation software for a selected domain selected from a group of domains divided into domains from the architecture to be designed;
A generating step of generating a single traffic generator that generates traffic equivalent to the traffic of the selected domain based on the execution result executed by the executing step;
A rebuilding step of rebuilding the architecture by replacing the selected domain with a traffic generator generated by the generating step;
An output step of outputting the architecture reconstructed by the restructuring step;
A design support method characterized by executing
JP2008200605A 2008-08-04 2008-08-04 Design support program, design support apparatus, and design support method Expired - Fee Related JP5071297B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008200605A JP5071297B2 (en) 2008-08-04 2008-08-04 Design support program, design support apparatus, and design support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008200605A JP5071297B2 (en) 2008-08-04 2008-08-04 Design support program, design support apparatus, and design support method

Publications (2)

Publication Number Publication Date
JP2010039678A true JP2010039678A (en) 2010-02-18
JP5071297B2 JP5071297B2 (en) 2012-11-14

Family

ID=42012176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008200605A Expired - Fee Related JP5071297B2 (en) 2008-08-04 2008-08-04 Design support program, design support apparatus, and design support method

Country Status (1)

Country Link
JP (1) JP5071297B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011114478A1 (en) * 2010-03-17 2011-09-22 富士通株式会社 Generation method, scheduling method, generation program, scheduling program, generation device, and information processing device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129653A (en) * 1993-11-08 1995-05-19 Mitsubishi Electric Corp System design supporting system by simulation
JPH09269954A (en) * 1996-04-01 1997-10-14 Hitachi Ltd Method for generating logical simulation model
JP2003132108A (en) * 2001-10-29 2003-05-09 Matsushita Electric Ind Co Ltd Simulation method of system design and its device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129653A (en) * 1993-11-08 1995-05-19 Mitsubishi Electric Corp System design supporting system by simulation
JPH09269954A (en) * 1996-04-01 1997-10-14 Hitachi Ltd Method for generating logical simulation model
JP2003132108A (en) * 2001-10-29 2003-05-09 Matsushita Electric Ind Co Ltd Simulation method of system design and its device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011114478A1 (en) * 2010-03-17 2011-09-22 富士通株式会社 Generation method, scheduling method, generation program, scheduling program, generation device, and information processing device
JPWO2011114478A1 (en) * 2010-03-17 2013-06-27 富士通株式会社 Generating method, scheduling method, generating program, scheduling program, generating apparatus, and information processing apparatus

Also Published As

Publication number Publication date
JP5071297B2 (en) 2012-11-14

Similar Documents

Publication Publication Date Title
US7558719B1 (en) System and method for runtime analysis of system models for variable fidelity performance analysis
US7934179B2 (en) Systems and methods for logic verification
US8122398B2 (en) Conversion of circuit description to an abstract model of the circuit
US7483823B2 (en) Building integrated circuits using logical units
US8701084B1 (en) Preview of auto-fix changes to software code
EP2218024A1 (en) System level power evaluation method
JP4393450B2 (en) Logic circuit model conversion apparatus and logic circuit model conversion program
Behal et al. An automated setup for large-scale simulation-based fault-injection experiments on asynchronous digital circuits
CN1815480B (en) System and method for generating assertions using waveforms
JP2009140388A (en) Method for generating performance evaluation model, method for evaluating system performance, and device for generating performance evaluation model
US8886512B2 (en) Simulation apparatus, computer-readable recording medium, and method
JP5071297B2 (en) Design support program, design support apparatus, and design support method
US20210375341A1 (en) Phase-Aware DDR Command Dynamic Scheduling
JP5001126B2 (en) Hardware verification programming description generation apparatus, hardware verification programming description generation method, control program, and readable recording medium
US7051301B2 (en) System and method for building a test case including a summary of instructions
Yuan et al. Automatic enhanced CDFG generation based on runtime instrumentation
Hu et al. A performance prototyping approach to designing concurrent software architectures
TWI427496B (en) Method and system of generating a model of an integrated circuit
US20240111660A1 (en) Managing high performance simulation representation of an emulation system
US20220300690A1 (en) Incremental compilation for fpga-based systems
Jenihhin et al. PSL Assertion Checking Using Temporally Extended High-Level Decision Diagrams
US20240201965A1 (en) Method for generating source code
Sjölund Tools for Understanding, Debugging, and Simulation Performance Improvement of Equation-Based Models
Goli et al. Design Understanding Methodology
JP5287132B2 (en) Design support program, design support device, and simulation model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120710

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120806

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees