JP2007018440A - Architecture verification apparatus - Google Patents

Architecture verification apparatus Download PDF

Info

Publication number
JP2007018440A
JP2007018440A JP2005201945A JP2005201945A JP2007018440A JP 2007018440 A JP2007018440 A JP 2007018440A JP 2005201945 A JP2005201945 A JP 2005201945A JP 2005201945 A JP2005201945 A JP 2005201945A JP 2007018440 A JP2007018440 A JP 2007018440A
Authority
JP
Japan
Prior art keywords
description
hardware
data
timing
architecture
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
JP2005201945A
Other languages
Japanese (ja)
Inventor
Kozo Ishida
耕三 石田
Osamu Toyama
治 遠山
Midori Ono
みどり 小野
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2005201945A priority Critical patent/JP2007018440A/en
Publication of JP2007018440A publication Critical patent/JP2007018440A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To obtain an architecture verification apparatus capable of easily correcting a hardware model. <P>SOLUTION: Each of hardware models 200a, 200b performs simulation based on description indicating the operation, data processing unit and timing of hardware. As the description, algorithm operation description 211, data access description 212 and timing generation description 213 are separately constituted. Consequently, the correction of operation description is not required for the change of a data processing unit and the change of operation timing. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

この発明は、ハードウェアとソフトウェアで構成されるシステムのアーキテクチャを検証するアーキテクチャ検証装置に関するものである。   The present invention relates to an architecture verification device that verifies the architecture of a system composed of hardware and software.

一般に、LSI(Large Scale Integrated circuit)等の論理装置を設計する上でその機能や性能の検証を目的として動作シミュレーションが行われている。
アルゴリズム検証用CプログラムをLSIとして実現するアーキテクチャに合わせたハードウェアモデルにマッピングし、アーキテクチャレベルのシミュレーションを行うことにより、実現されるLSIの性能、必要メモリ容量、バス混雑度合いを論理設計前に評価することが可能となる。このようなアーキテクチャ検証においては、例えば、特許文献1に記載されているように、ソフト/ハードの処理分割、ハードウェア・ブロックの処理単位、バスのビット幅/アービトレーション等、アーキテクチャの構成を変更することにより、最適なアーキテクチャを導き出すことが可能となる。
In general, when a logic device such as an LSI (Large Scale Integrated circuit) is designed, an operation simulation is performed for the purpose of verifying its function and performance.
By mapping the algorithm verification C program to a hardware model that matches the architecture to be realized as an LSI and performing an architecture-level simulation, the performance of the realized LSI, the required memory capacity, and the degree of bus congestion are evaluated before logical design It becomes possible to do. In such architecture verification, for example, as described in Patent Document 1, the architecture configuration is changed such as software / hardware processing division, hardware block processing unit, bus bit width / arbitration, and the like. This makes it possible to derive an optimum architecture.

特開2004−38390号公報JP 2004-38390 A

しかしながら、アルゴリズム検証用Cプログラムを単純にハードウェア・モデルにマッピングした場合、アーキテクチャの構成変更によるハードウェアモデルの修正に多大な労力を要する。また、アーキテクチャの要素となる各ハードウェアブロック間のデータ転送はバスを介して行われるが、シミュレーション時において、バスのハードウェア・モデルにデータを転送させることは、シミュレーション実行を遅くさせる原因となる。   However, when the algorithm verification C program is simply mapped to the hardware model, a great amount of labor is required to correct the hardware model by changing the architecture configuration. In addition, data transfer between each hardware block that is an element of the architecture is performed via the bus, but transferring data to the hardware model of the bus at the time of simulation causes the simulation execution to be delayed. .

この発明は上記のような課題を解決するためになされたもので、ハードウェアモデルの修正を容易に行うことのできるアーキテクチャ検証装置を得ることを目的とする。   The present invention has been made to solve the above-described problems, and an object of the present invention is to provide an architecture verification apparatus that can easily modify a hardware model.

この発明に係るアーキテクチャ検証装置は、ハードウェアの動作とデータ処理単位とタイミングとを示す記述に基づいて、ハードウェアモデルでシミュレーションを行う場合、記述を、アルゴリズム動作記述とデータアクセス記述とに分けるようにしたものである。   The architecture verification device according to the present invention divides a description into an algorithm operation description and a data access description when a simulation is performed with a hardware model based on a description indicating a hardware operation, a data processing unit, and timing. It is a thing.

この発明のアーキテクチャ検証装置は、ハードウェアモデルの記述を、アルゴリズム動作記述とデータアクセス記述とに分けたので、ハードウェアモデルの修正を容易に行うことができる。   In the architecture verification apparatus of the present invention, since the description of the hardware model is divided into the algorithm operation description and the data access description, the hardware model can be easily corrected.

実施の形態1.
図1は、この発明の実施の形態1によるアーキテクチャ検証装置におけるハードウェアモデルの説明図であるが、この説明に先立ち、アーキテクチャ検証装置における概念を説明する。
図2は、アーキテクチャ検証装置でアルゴリズム検証用Cプログラムをマッピングする場合の説明図である。
Embodiment 1 FIG.
FIG. 1 is an explanatory diagram of a hardware model in the architecture verification apparatus according to Embodiment 1 of the present invention. Prior to this description, the concept in the architecture verification apparatus will be described.
FIG. 2 is an explanatory diagram for mapping an algorithm verification C program in the architecture verification apparatus.

ハードウェアイメージのないアルゴリズム検証用Cプログラム1を、ソフトウェア処理とハードウェア処理に分割し、ソフトウェア処理をCPU100に割り当て、ハードウェア処理を各ハードウェアブロックのハードウェアモデル200a,200b,200cに割り当てる。CPU100、ハードウェアモデル200a,200b,200cが参照するデータ領域は、主メモリモデル300、もしくはCPU100のレジスタ101や各ハードウェアモデル200a,200b,200c内の個別メモリ201、レジスタ202に割り当てられる。また、データはバスモデル400を介して参照される。   The algorithm verification C program 1 without a hardware image is divided into software processing and hardware processing, the software processing is assigned to the CPU 100, and the hardware processing is assigned to the hardware models 200a, 200b, and 200c of each hardware block. The data area referred to by the CPU 100 and the hardware models 200a, 200b, and 200c is assigned to the main memory model 300, the register 101 of the CPU 100, the individual memory 201 and the register 202 in each hardware model 200a, 200b, and 200c. Data is referred to via the bus model 400.

アルゴリズム検証用Cプログラム1の動作がCPU100とハードウェアモデル200a,200b,200cに割り当てられ、データ領域が主メモリモデル300、個別メモリ201、レジスタ101、202に割り当てられた後、各モデルにクロックをベースとした時間単位で全体の動作をシミュレーションできるようにすれば、実現されるLSIと同じ動作をシミュレーションできるようになる。   The operation of the algorithm verification C program 1 is assigned to the CPU 100 and the hardware models 200a, 200b, and 200c, and the data area is assigned to the main memory model 300, the individual memory 201, and the registers 101 and 202. If the entire operation can be simulated in the unit of time, the same operation as that of the realized LSI can be simulated.

これにより、LSIの論理設計前であるアーキテクチャ設計段階にて、実現されるLSIの動作の確認ができ、LSIの処理速度、メモリ使用量、バス混雑度の性能を評価できる。本評価を行うことにより、実現しようとするLSIの処理能力、ボトルネック等の問題点、改善点を明確にすることが可能になる。問題点、改善点が明確になれば、アーキテクチャを変更する(ソフトウェアとハードウェアの分割変更、ハードウェアの処理単位変更、バスのデータ幅/処理優先順位変更)ことにより、最適なLSIのアーキテクチャを見出すことが可能となる。   As a result, the operation of the realized LSI can be confirmed at the architecture design stage before the logic design of the LSI, and the performance of the LSI processing speed, memory usage, and bus congestion can be evaluated. By performing this evaluation, it becomes possible to clarify the processing capability of the LSI to be realized, problems such as bottlenecks, and improvements. If problems and improvements are clarified, the architecture can be changed (software and hardware division change, hardware processing unit change, bus data width / processing priority change), and the optimal LSI architecture can be achieved. It is possible to find out.

上記のような構成において、アルゴリズム検証用Cプログラム1を、単純にハードウェアモデル200a,200b,200cにマッピングした場合、各ハードウェアモデル200a,200b,200cの記述に、動作、データ処理単位、タイミングが混在した形となり、アーキテクチャの変更によるハードウェアモデルの修正に多大な労力を要することになる。そこで、本発明では、図1に示すように、各ハードウェアモデル200a,200bの記述を、アルゴリズム動作記述211、データアクセス記述212、タイミング生成記述213に分けるよう構成している。   In the configuration as described above, when the algorithm verification C program 1 is simply mapped to the hardware models 200a, 200b, and 200c, the description of each hardware model 200a, 200b, and 200c includes the operation, data processing unit, and timing. It takes a lot of effort to modify the hardware model due to the architecture change. Therefore, in the present invention, as shown in FIG. 1, the description of each hardware model 200a, 200b is divided into an algorithm operation description 211, a data access description 212, and a timing generation description 213.

図1において、アルゴリズム動作記述211は、LSIで実現する動作/機能、および、動作の順序を示した記述である。例えば、変数Aと変数Bとを加算し、結果が正の値であれば、加算結果と変数Cとを乗算して変数Mに格納する、といったことを示す記述である。   In FIG. 1, an algorithm operation description 211 is a description showing operations / functions realized by LSI and the order of operations. For example, it is a description indicating that the variable A and the variable B are added, and if the result is a positive value, the addition result and the variable C are multiplied and stored in the variable M.

また、データアクセス記述212とは、次のような記述である。即ち、アーキテクチャ検証では、変数の参照手順、格納手順の詳細は必ずしも記述する必要はないが、各変数がレジスタであるのか、メモリであるのかを示す必要があり、かつ、レジスタの場合は演算処理をしているハードウェアモデル内に存在するレジスタであるのか、他のハードウェアモデル内に存在するレジスタであるのかを示す必要がある。そこで、このような変数の参照と格納を示す記述としてデータアクセス記述を用意している。   The data access description 212 is the following description. That is, in architecture verification, it is not always necessary to describe details of the variable reference procedure and storage procedure, but it is necessary to indicate whether each variable is a register or a memory. It is necessary to indicate whether it is a register that exists in the hardware model that is being used or a register that exists in another hardware model. Therefore, a data access description is prepared as a description indicating such variable reference and storage.

また、タイミング生成記述213とは次のような記述である。即ち、上述したアルゴリズム動作記述211、データアクセス記述212は論理的な動作を記述しており、実現されるLSIで何サイクルで処理されるかといった点については記述されていない。そこで、このようなタイミングを指定するためにタイミング生成記述213を用意する。また、このタイミング生成記述213は、データアクセスに対するタイミング生成記述と、アルゴリズム動作に対するタイミング生成記述がある。   The timing generation description 213 is the following description. That is, the algorithm operation description 211 and the data access description 212 described above describe logical operations, and do not describe the number of cycles that are processed in the realized LSI. Therefore, a timing generation description 213 is prepared to designate such timing. The timing generation description 213 includes a timing generation description for data access and a timing generation description for algorithm operation.

図1に示すようなハードウェアモデルにおいて、ハードウェアで処理されるデータの単位が変更された場合、動作そのものは変更とならないが、データのアクセス単位が変更となり、これに伴い、他のハードウェアとの同期タイミングが変更となる。   In the hardware model as shown in FIG. 1, when the data unit processed by the hardware is changed, the operation itself is not changed, but the data access unit is changed. The synchronization timing with is changed.

例えば、画像データの処理において、1画面のデータを一気に読み込んでデータの処理をする場合と、1ラインずつデータを読み込んでデータ処理を行う場合の2ケースが考えられる。LSIの中には、複数のハードウェアブロックが存在し、それぞれ固有の処理機能を持っている。1画面のデータを一気に読み込んで処理する場合は、1個のハードウェアブロックが1画面のデータを全て処理した後に別のハードウェアブロックにデータ転送するという方法をとる。一方、1ラインずつデータを読み込んで処理する場合は、1ラインずつの処理を行って別のハードウェアブロックにデータ転送するという方法をとる。   For example, in image data processing, there are two cases where data for one screen is read at a time and data processing is performed, and data processing is performed by reading data line by line. A plurality of hardware blocks exist in an LSI, and each has a unique processing function. When processing one screen of data at a time, one hardware block processes all the data of one screen and then transfers the data to another hardware block. On the other hand, when data is read and processed line by line, a process is performed in which data is transferred line by line to another hardware block.

この両ケースにおいて、LSI全体でみれば処理内容(動作)は同じであるが、1画面のデータで処理する場合は、各ハードウェアブロックが1画面全ての処理が終了するまではデータ転送が発生しないため、同期をとるタイミングが長くなり、かつ、1回のデータ転送量(=アクセスの単位)が多くなる。一方、1ラインずつのデータで処理する場合は、1ライン処理後にデータ転送が発生するため、1画面ずつの場合に比べて同期をとるタイミングが短くなり、1回のデータ転送量も少なくなる。   In both cases, the processing contents (operations) are the same for the entire LSI, but when processing with one screen of data, data transfer occurs until each hardware block finishes processing all of the one screen. Therefore, the synchronization timing becomes longer and the data transfer amount (= access unit) per time increases. On the other hand, in the case of processing with data for each line, data transfer occurs after the processing for one line, so the timing for synchronization is shortened and the amount of data transferred at one time is also smaller than in the case of each screen.

また、実現するハードウェアの回路に依存して、ハードウェアモデルの同期タイミングが変更となる。例えば、特定のハードウェアブロックのパイプライン制御において、3段のパイプラインで処理していた回路を4段のパイプラインに変更した場合、そのハードウェアブロック内のパイプライン用同期信号の発生が3回を1単位とした処理から4回を1単位とした処理に変更となる。このことを影響して、メモリへのアクセス頻度も変更となる。   Further, the synchronization timing of the hardware model is changed depending on the hardware circuit to be realized. For example, in a pipeline control of a specific hardware block, when a circuit processed in a three-stage pipeline is changed to a four-stage pipeline, the generation of a pipeline synchronization signal in the hardware block is 3 The processing is changed from processing with one unit as one unit to processing with four units as one unit. As a result, the access frequency to the memory is also changed.

このような、ハードウェアで処理されるデータの単位が変更された場合や、実現するハードウェアの回路に依存するような場合でも、本実施の形態では、アルゴリズム動作記述211、データアクセス記述212、タイミング生成記述213を分けて記述しているため、アーキテクチャ変更時において、モデル全体の記述を変更することなく、データアクセス記述もしくはタイミング生成記述のみの変更により、シミュレーションを行うことが可能となる。   Even when the unit of data processed by hardware is changed or when it depends on the hardware circuit to be realized, in this embodiment, the algorithm operation description 211, the data access description 212, Since the timing generation description 213 is described separately, a simulation can be performed by changing only the data access description or the timing generation description without changing the description of the entire model when the architecture is changed.

以上のように、実施の形態1のアーキテクチャ検証装置によれば、ハードウェアの動作とデータ処理単位とタイミングとを示す記述に基づいて、ハードウェアモデルでシミュレーションを行うアーキテクチャ検証装置において、記述を、アルゴリズム動作記述とデータアクセス記述とに分けたので、データ処理単位の変更に対し、動作記述の修正を不要とし、データアクセス記述のみの修正により対応が可能である等、アーキテクチャ変更時でも、ハードウェアモデル全体の記述を変更することなく対応できるという効果がある。   As described above, according to the architecture verification apparatus of the first embodiment, based on the description indicating the hardware operation, the data processing unit, and the timing, in the architecture verification apparatus that performs the simulation with the hardware model, the description is Since the algorithm behavior description and the data access description are separated, it is not necessary to modify the behavior description for the change of the data processing unit, and it is possible to cope by modifying only the data access description. There is an effect that it can cope without changing the description of the entire model.

また、実施の形態1のアーキテクチャ検証装置によれば、ハードウェアの動作とデータ処理単位とタイミングとを示す記述に基づいて、ハードウェアモデルでシミュレーションを行うアーキテクチャ検証装置において、記述を、アルゴリズム動作記述とタイミングを示す記述とに分けたので、動作タイミングの変更に対し、動作記述の修正を不要とし、タイミング生成記述のみの修正により対応が可能である等、アーキテクチャ変更時でも、ハードウェアモデル全体の記述を変更することなく対応できるという効果がある。   In addition, according to the architecture verification apparatus of the first embodiment, in the architecture verification apparatus that performs the simulation with the hardware model based on the description indicating the hardware operation, the data processing unit, and the timing, the description is converted into the algorithm operation description. Since the timing description is divided into the timing description, it is not necessary to modify the behavior description for the change of the operation timing, and it is possible to cope with the modification of only the timing generation description. There is an effect that it can cope without changing the description.

実施の形態2.
図3は、実施の形態2のアーキテクチャ検証装置を示す説明図である。
図において、メモリ領域501とレジスタ領域502は、それぞれ複数のハードウェアモデル200a,200bに共通に設けられたメモリ/レジスタ領域である。また、バスモデル400におけるアクセス優先順位制御401は、一般にアービトレーションと言われている機能と同等である。即ち、複数のハードウェアモデル200a,200bからバスへのアクセス要求が発生し、ある特定のアクセス要求の処理が終了する前に別のアクセス要求が発生した場合、後に発生したアクセス要求は待ちの状態となる。そこで、待ちの状態になったアクセス要求が複数存在した場合、待ち状態にあるどのアクセス要求を優先して処理するかを決める制御がこのアクセス優先順位制御401である。尚、この制御は、待ち状態のアクセス要求の処理順番決めであって、アクセス要求の処理を行う時間(タイミング)は考慮されていない。
Embodiment 2. FIG.
FIG. 3 is an explanatory diagram illustrating the architecture verification apparatus according to the second embodiment.
In the figure, a memory area 501 and a register area 502 are memory / register areas provided in common for a plurality of hardware models 200a and 200b, respectively. The access priority control 401 in the bus model 400 is equivalent to a function generally called arbitration. That is, when an access request to the bus is generated from a plurality of hardware models 200a and 200b and another access request is generated before the processing of a specific access request is completed, the access request generated later is in a waiting state. It becomes. Therefore, when there are a plurality of waiting access requests, this access priority control 401 is a control that determines which access request in the waiting state is processed with priority. This control is for determining the processing order of waiting access requests, and does not consider the time (timing) for processing the access requests.

バスモデル400のタイミング生成記述402a,402bは、各ハードウェアモデル200a,200bのタイミング生成記述213に対応したタイミング生成記述であり、基本的にはこれらのタイミング生成記述213と同様の機能を有するものである。尚、図3においては、図2に示したCPU100や主メモリモデル300およびアルゴリズム検証用Cプログラム1の図示は省略している。   The timing generation descriptions 402a and 402b of the bus model 400 are timing generation descriptions corresponding to the timing generation descriptions 213 of the hardware models 200a and 200b, and basically have functions similar to those of the timing generation descriptions 213. It is. In FIG. 3, the CPU 100, main memory model 300, and algorithm verification C program 1 shown in FIG. 2 are not shown.

このように構成されたアーキテクチャ検証装置では、バスを介したハードウェア間のデータ転送動作に対し、シミュレーション上はバスモデル400にデータを転送することなく、ハードウェアモデル200a,200bが、共通のメモリ/レジスタ領域501,502にデータを転送することにより、シミュレーション時間の短縮を可能とする。   In the architecture verification apparatus configured as described above, the hardware models 200a and 200b do not transfer data to the bus model 400 in the simulation for the data transfer operation between the hardware via the bus, and the hardware models 200a and 200b have a common memory. By transferring data to the / register areas 501 and 502, simulation time can be shortened.

例えば、ハードウェアモデル200aのレジスタの値を、ハードウェアモデル200bが読み込むとした場合。実際のハードウェアの動作に合わせたシミュレーションを実行すれば、ハードウェアモデル200aのレジスタ値を、一旦、バスモデル400に転送し、その後、バスモデル400にあるレジスタ値をハードウェアモデル200bが読み込むことになる。   For example, when the hardware model 200b reads the register value of the hardware model 200a. If a simulation according to the actual hardware operation is executed, the register value of the hardware model 200a is once transferred to the bus model 400, and then the register value in the bus model 400 is read by the hardware model 200b. become.

一方、図3に示すように、各ハードウェアモデル200a,200bに共通のレジスタ領域502を持ち、このレジスタ領域502に読み書きできるようにすれば、上記例において、ハードウェアモデル200bが共通のレジスタ領域502から読み込むだけで良いことになる。本実施の形態によれば、ハードウェアモデル200a,200b間のデータ転送は共通のメモリ領域501への読み書きのみでよく、バスを経由した実際のデータの流れを模擬する必要はない。   On the other hand, as shown in FIG. 3, if each hardware model 200a, 200b has a common register area 502 and can read and write to this register area 502, in the above example, the hardware model 200b has a common register area. It is only necessary to read from 502. According to the present embodiment, data transfer between the hardware models 200a and 200b only needs to be read and written to the common memory area 501, and it is not necessary to simulate the actual data flow via the bus.

ところで、本実施の形態では、バスにデータが流れていないため、バスのデータ転送処理時間が無視されることになれば、ハードウェア全体の処理時間に大きな誤差が生じ、バスの混雑度も評価できなくなる。そこで、バスモデル400において、ハードウェアモデル200a,200bからバスへのアクセスタイミングの処理のみを行う。これは、各ハードウェアモデル200a,200bのタイミング生成記述213と、バスモデル400のタイミング生成記述402a,402bとの間において、要求/許可(req/ack)の信号によりタイミングを合わせる。また、バスモデル400内において、アクセス優先順位制御401がバスモデル400内のタイミング生成記述402a,402bに対し、バスアクセス許可信号を発生させる順序を制御することにより、ハードウェア全体のタイミングを合わせることが可能となる。   By the way, in this embodiment, since no data flows on the bus, if the data transfer processing time of the bus is ignored, a large error occurs in the processing time of the entire hardware, and the degree of congestion of the bus is also evaluated. become unable. Therefore, in the bus model 400, only processing of access timing from the hardware models 200a and 200b to the bus is performed. This synchronizes the timing between the timing generation description 213 of each hardware model 200a, 200b and the timing generation description 402a, 402b of the bus model 400 by a request / permission (req / ack) signal. In the bus model 400, the access priority control 401 controls the order of generating bus access permission signals for the timing generation descriptions 402a and 402b in the bus model 400, thereby matching the timing of the entire hardware. Is possible.

即ち、実施の形態2では、バスにデータを流していないため、バスモデル400はハードウェアが実際に行うデータ転送処理に必要な動作をしていないことになる。このため、ハードウェアではデータ転送に何サイクルか何十サイクルかを必要とするデータ転送に対し、バスモデル400では、0サイクルで処理をしてしまうことになる(これが処理時間の誤差となる)。そこで、バスへのアクセス・タイミングの処理において、データ転送処理に必要なサイクルを消費させることにより、バスのデータ転送処理のトータルにおいて、処理サイクル(処理時刻)を整合させるようにしている。   In other words, in the second embodiment, since data is not sent to the bus, the bus model 400 does not perform an operation necessary for data transfer processing actually performed by hardware. For this reason, in the case of data transfer that requires several or tens of cycles for data transfer in hardware, the bus model 400 performs processing in 0 cycles (this is an error in processing time). . Therefore, in the processing of access timing to the bus, a cycle necessary for data transfer processing is consumed, so that the processing cycle (processing time) is matched in the total data transfer processing of the bus.

また、図3中に示すデータアクセスライブラリ600は、ハードウェアモデル200a,200bのデータアクセス記述212で使用される関数ライブラリを示す。このデータアクセスライブラリ600は、データアクセス記述212により指定されたデータ量に合わせて、メモリ領域501、レジスタ領域502への読み込み、書き出しを行う。   A data access library 600 shown in FIG. 3 indicates a function library used in the data access description 212 of the hardware models 200a and 200b. The data access library 600 reads and writes data in the memory area 501 and the register area 502 in accordance with the data amount specified by the data access description 212.

例えば、アルゴリズム検証用Cプログラム1において、
a=b[3];
のようにデータの参照(読み込み)があった場合、アルゴリズム動作記述211では、データアクセス記述212で定義されるメモリへの読み込み関数を用いた記述となる。尚、b[3]とは、bという名前の配列(変数の集合)のうち、3番目の要素を意味している。データアクセス記述212で定義される配列bに対するメモリへの読み込み関数をread_mem_b()と仮定すると、上記データ参照は、アルゴリズム動作記述では以下のように記述される。
a=read_mem_b(3);
For example, in C program 1 for algorithm verification,
a = b [3];
When the data is referred to (read) as described above, the algorithm operation description 211 is a description using a read function to the memory defined by the data access description 212. Note that b [3] means the third element in the array named b (a set of variables). Assuming that the read function to the memory for the array b defined in the data access description 212 is read_mem_b (), the data reference is described as follows in the algorithm operation description.
a = read_mem_b (3);

データアクセス記述212では、メモリ領域501より、b[3]を含む一つの要素または複数要素のデータを読み込み、b[3]の値のみをaに返す。データ処理単位がbの1要素である場合、read_mem_b()はメモリ領域501からb[3]のみを読み込み、データ処理単位がbの10要素であった場合、b[3]を含むb[]の10要素(例:b[0]−b[9])をメモリ領域501から読み込む。また、データ処理単位がbの10要素(b[0]−b[9])であり、かつ、read_mem_b(3)の後、read_mem_b(5)のアクセスが発生した場合、メモリ領域501からの読み込みをせずに、b[3]をメモリ領域501から読み込んだ時に得ているb[5]の値を返す。   In the data access description 212, data of one element or a plurality of elements including b [3] is read from the memory area 501, and only the value of b [3] is returned to a. When the data processing unit is one element of b, read_mem_b () reads only b [3] from the memory area 501, and when the data processing unit is 10 elements of b, b [] including b [3] 10 elements (example: b [0] -b [9]) are read from the memory area 501. If the data processing unit is 10 elements of b (b [0] -b [9]) and read_mem_b (5) is accessed after read_mem_b (3), reading from the memory area 501 is performed. Without returning, the value of b [5] obtained when b [3] is read from the memory area 501 is returned.

データアクセス記述212で定義されるread_mem_b()はデータアクセスライブラリ600に定義されるメモリ領域501への直接読み込み/書き出し関数を用いてメモリ領域501から読み込みを行う。データアクセスライブラリ600は上述のように、データアクセス記述212により指定されたデータ量に合わせて、メモリ領域501、レジスタ領域502への読み込み/書き出しを行い、読み込みの場合には、メモリ領域501から読み込んだデータを返す。   Read_mem_b () defined in the data access description 212 is read from the memory area 501 using a direct read / write function to the memory area 501 defined in the data access library 600. As described above, the data access library 600 reads / writes data from / to the memory area 501 and the register area 502 according to the data amount specified by the data access description 212. In the case of reading, the data access library 600 reads from the memory area 501. Return the data.

以上のように、実施の形態2のアーキテクチャ検証装置によれば、複数のハードウェアモデルに共通のメモリ領域とレジスタ領域を設け、複数のハードウェアモデルがバスを介してデータ転送する場合のシミュレーションでは、共通のメモリ領域またはレジスタ領域のうち少なくともいずれか一方を用いてデータ転送するようにしたので、シミュレーション時間の短縮を可能とする効果がある。   As described above, according to the architecture verification device of the second embodiment, in a simulation in which a plurality of hardware models are provided with a common memory area and a register area, and a plurality of hardware models transfer data via a bus. Since the data transfer is performed using at least one of the common memory area and the register area, the simulation time can be shortened.

この発明の実施の形態1によるアーキテクチャ検証装置を示す説明図である。It is explanatory drawing which shows the architecture verification apparatus by Embodiment 1 of this invention. この発明の実施の形態1によるアーキテクチャ検証装置でアルゴリズム検証用Cプログラムをマッピングする場合の説明図である。It is explanatory drawing in the case of mapping C program for algorithm verification with the architecture verification apparatus by Embodiment 1 of this invention. この発明の実施の形態2によるアーキテクチャ検証装置を示す説明図である。It is explanatory drawing which shows the architecture verification apparatus by Embodiment 2 of this invention.

符号の説明Explanation of symbols

1 アルゴリズム検証用Cプログラム、200a,200b,200c ハードウェアモデル、211 アルゴリズム動作記述、212 データアクセス記述、213 タイミング生成記述、400 バスモデル、501 メモリ領域、502 レジスタ領域。
1 Algorithm verification C program, 200a, 200b, 200c Hardware model, 211 Algorithm operation description, 212 Data access description, 213 Timing generation description, 400 Bus model, 501 Memory area, 502 Register area

Claims (3)

ハードウェアの動作とデータ処理単位とタイミングとを示す記述に基づいて、ハードウェアモデルでシミュレーションを行うアーキテクチャ検証装置において、
前記記述を、アルゴリズム動作記述とデータアクセス記述とに分けたことを特徴とするアーキテクチャ検証装置。
In an architecture verification device that performs a simulation with a hardware model based on a description indicating the hardware operation, data processing unit, and timing,
An architecture verification apparatus characterized in that the description is divided into an algorithm operation description and a data access description.
ハードウェアの動作とデータ処理単位とタイミングとを示す記述に基づいて、ハードウェアモデルでシミュレーションを行うアーキテクチャ検証装置において、
前記記述を、アルゴリズム動作記述とタイミングを示す記述とに分けたことを特徴とするアーキテクチャ検証装置。
In an architecture verification device that performs a simulation with a hardware model based on a description indicating the hardware operation, data processing unit, and timing,
An architecture verification apparatus, wherein the description is divided into an algorithm operation description and a description indicating timing.
複数のハードウェアモデルに共通のメモリ領域とレジスタ領域を設け、
前記複数のハードウェアモデルがバスを介してデータ転送する場合のシミュレーションでは、前記共通のメモリ領域またはレジスタ領域のうち少なくともいずれか一方を用いてデータ転送するようにしたことを特徴とする請求項1または請求項2記載のアーキテクチャ検証装置。
A common memory area and register area are provided for multiple hardware models.
The data transfer is performed using at least one of the common memory area and the register area in a simulation in which the plurality of hardware models transfer data via a bus. Or the architecture verification apparatus of Claim 2.
JP2005201945A 2005-07-11 2005-07-11 Architecture verification apparatus Pending JP2007018440A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005201945A JP2007018440A (en) 2005-07-11 2005-07-11 Architecture verification apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005201945A JP2007018440A (en) 2005-07-11 2005-07-11 Architecture verification apparatus

Publications (1)

Publication Number Publication Date
JP2007018440A true JP2007018440A (en) 2007-01-25

Family

ID=37755536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005201945A Pending JP2007018440A (en) 2005-07-11 2005-07-11 Architecture verification apparatus

Country Status (1)

Country Link
JP (1) JP2007018440A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014064788A1 (en) * 2012-10-24 2014-05-01 富士通株式会社 Simulation program, simulation device, simulation method, bus model and bus circuit
JP2014142725A (en) * 2013-01-22 2014-08-07 Fujitsu Ltd Simulation program, simulation method, and simulation device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014064788A1 (en) * 2012-10-24 2014-05-01 富士通株式会社 Simulation program, simulation device, simulation method, bus model and bus circuit
JP5949933B2 (en) * 2012-10-24 2016-07-13 富士通株式会社 Simulation program, simulation apparatus, and simulation method
JP2014142725A (en) * 2013-01-22 2014-08-07 Fujitsu Ltd Simulation program, simulation method, and simulation device

Similar Documents

Publication Publication Date Title
JP4007483B2 (en) High level synthesis apparatus and high level synthesis method
US9690722B2 (en) Memory controller and memory access method
JP2010244238A (en) Reconfigurable circuit and system of the same
JP2007034392A (en) Information processor and data processing method
JP2006018413A (en) Processor and pipeline reconfiguration control method
US20060129720A1 (en) Data buffer circuit, interface circuit and control method therefor
JP2008282314A (en) Simulator and simulation method
JP3803196B2 (en) Information processing apparatus, information processing method, and recording medium
JP2007018440A (en) Architecture verification apparatus
US11093276B2 (en) System and method for batch accessing
JP3824122B2 (en) DMA device
JPH06348593A (en) Data transfer controller
JP5979965B2 (en) Circuit design support apparatus, circuit design support method, and program
CN101562034B (en) Method and device for positioning data consistency errors
KR100606163B1 (en) Direct memory access device, system and method for transmitting and receiving data through direct memory access device
JP4229242B2 (en) Direct memory access controller
JP6862951B2 (en) Memory control device, information processing device and memory control method
CN111625411A (en) Semiconductor device and debug system
JP2007172430A (en) Semiconductor integrated circuit
JP2006202329A (en) Method for designing system lsi and recording medium storing the same
US9442788B2 (en) Bus protocol checker, system on chip including the same, bus protocol checking method
JP2006227668A (en) Memory model, program and logic circuit verification method
JP2010140440A (en) Bus arbitration device
JP5935319B2 (en) Circuit emulation apparatus, circuit emulation method, and circuit emulation program
US11048843B1 (en) Dynamic netlist modification of compacted data arrays in an emulation system

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071005

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080624