JP2015076007A - Board design assistance system and board design assistance method - Google Patents

Board design assistance system and board design assistance method Download PDF

Info

Publication number
JP2015076007A
JP2015076007A JP2013213089A JP2013213089A JP2015076007A JP 2015076007 A JP2015076007 A JP 2015076007A JP 2013213089 A JP2013213089 A JP 2013213089A JP 2013213089 A JP2013213089 A JP 2013213089A JP 2015076007 A JP2015076007 A JP 2015076007A
Authority
JP
Japan
Prior art keywords
module
board
data flow
processing
control unit
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
JP2013213089A
Other languages
Japanese (ja)
Inventor
一秀 清水
Kazuhide Shimizu
一秀 清水
千秋 高橋
Chiaki Takahashi
千秋 高橋
鈴木 邦彦
Kunihiko Suzuki
邦彦 鈴木
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.)
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Information and Telecommunication Engineering 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 Hitachi Information and Telecommunication Engineering Ltd filed Critical Hitachi Information and Telecommunication Engineering Ltd
Priority to JP2013213089A priority Critical patent/JP2015076007A/en
Publication of JP2015076007A publication Critical patent/JP2015076007A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a board design assistance system and a board design assistance method capable of providing assistance for an optimal board design in cooperation of hardware with software.SOLUTION: A board compliant with specifications is designed by executing: a first step of determining a hardware module and a software module for executing data flow processing to be executed by an application according to a model base design, and mounting the hardware module in a logical unit of the board and mounting the software module in a control unit of the board; and a second step of performing the data flow processing while setting each of the mounted modules as a processing unit by prototyping.

Description

本発明は、ハードウェアとソフトウェアとを協調させて最適な基板の設計を支援する基板設計支援システムおよび基板設計支援方法に関するものである。   The present invention relates to a board design support system and a board design support method for supporting optimal board design by coordinating hardware and software.

各種組込み機器は、SOC(System On Chip)による専用LSI(Large Scale Integration)開発、特定CPU(Central Processing Unit)を対象としたソフトウェア開発、および両者の組合せにより、対象となるアプリケーション毎に開発されている。また、専用LSI開発にかかる費用と期間およびリスクが増大する中、成長著しいFPGA(Field-Programmable Gate Array)を用いた開発が現在主流となりつつある。専用LSI開発とFPGA利用のいずれにおいても、対象アプリケーションあるいはアルゴリズムのハードウェアとソフトウェアへの最適かつ短期間での分割、つまりアーキテクチャ設計と実装が必要である。この解決のために、特許文献1には、再利用可能なハードウェアモジュールとソフトウェアモジュールを活用したアーキテクチャ設計支援システムとその生成方法が開示されている。   Various embedded devices are developed for each target application through dedicated LSI (Large Scale Integration) development using SOC (System On Chip), software development for specific CPU (Central Processing Unit), and a combination of both. Yes. In addition, development using a field-programmable gate array (FPGA), which is growing rapidly, is becoming mainstream as the cost, time, and risk of dedicated LSI development increase. For both dedicated LSI development and FPGA use, it is necessary to divide the target application or algorithm into hardware and software optimally and in a short period, that is, architecture design and implementation. In order to solve this problem, Patent Document 1 discloses an architecture design support system using a reusable hardware module and software module, and a generation method thereof.

特開2001−202397号公報JP 2001-202397 A

特許文献1ではハードウェアモジュールとソフトウェアモジュールそれぞれの機能と制約条件を前提に組み合わせた結果としてのSOC設計支援は可能である。しかしながら、設計したSOCがアプリケーションとして当初要求仕様を満たしているかについては考慮が薄く、これでは当初要求仕様に合った現実的なSOCを開発出来ないという問題があった。また、特許文献1は、その着想が、対象とするアルゴリズムの仕様記述を、いかにハードウェアとソフトウェアとに実装するかという観点であるため、対象とするアプリケーションの特徴に対する考慮はなされておらず、必ずしも最適な方法でハードウェアとソフトウェアとを協調させて設計されていない。   In Patent Document 1, it is possible to support SOC design as a result of combining the functions and constraint conditions of the hardware module and software module. However, there is little consideration as to whether the designed SOC satisfies the initial required specifications as an application, and there has been a problem that it is not possible to develop a realistic SOC that meets the initial required specifications. In addition, since Patent Document 1 is based on the viewpoint of how to implement the specification description of the target algorithm in hardware and software, the feature of the target application is not considered, It is not necessarily designed by coordinating hardware and software in an optimal way.

本発明の目的は、上記問題点を解決し、例えば、画像や通信等のデータフロー処理を対象に、画像フレームや通信パケット等に対して行う処理の単位に着目し、ハードウェアとソフトウェアとを協調させて最適な基板の設計を支援する基板設計支援システムおよび基板設計支援方法を提供することにある。   An object of the present invention is to solve the above-mentioned problems, for example, focusing on a unit of processing performed on an image frame, a communication packet, etc., for data flow processing such as image and communication, and hardware and software. It is an object of the present invention to provide a board design support system and a board design support method that support the optimum board design in cooperation.

上述した課題を解決し、目的を達成するために、本発明にかかる基板設計支援方法は、アプリケーションの仕様にしたがってハードウェアモジュールとソフトウェアモジュールとを実装する基板の設計を支援する基板設計支援方法であって、モデルベースデザインにより、アプリケーションが実行するデータフロー処理を実行するハードウェアモジュールおよびソフトウェアモジュールを定め、前記ハードウェアモジュールを前記基板の論理部に実装するとともに前記ソフトウェアモジュールを前記基板の制御部に実装する第1のステップと、プロトタイピングにより、実装された各モジュールを処理単位としてデータフロー処理する第2のステップと、を実行することにより、前記仕様に合った基板を設計する、ことを特徴とする基板設計支援方法として把握される。   In order to solve the above-described problems and achieve the object, a board design support method according to the present invention is a board design support method for supporting the design of a board on which a hardware module and a software module are mounted in accordance with application specifications. A hardware module and a software module for executing a data flow process executed by an application are defined by a model-based design, the hardware module is mounted on a logic unit of the board, and the software module is mounted on a control unit of the board Designing a board that meets the above specifications by executing the first step of mounting in the second step and the second step of performing data flow processing using each mounted module as a processing unit by prototyping. Characteristic board design It is grasped as 援方 method.

また、本発明は、アプリケーションの仕様にしたがってハードウェアモジュールとソフトウェアモジュールとを実装する基板の設計を支援する基板設計支援システムであって、アプリケーションが実行するデータフロー処理を実行するハードウェアモジュールを実装する論理部およびソフトウェアモジュールを実装する制御部をモデルベースデザインにより定める設定制御部と、実装された各モジュールを処理単位としてデータフロー処理して前記基板をプロトタイピングする実行制御部と、を備えることを特徴とする基板設計支援システムとして構成される。   In addition, the present invention is a board design support system that supports the design of a board on which a hardware module and a software module are mounted according to the application specifications, and the hardware module that executes a data flow process executed by the application is mounted. A setting control unit that defines a logic unit and a control unit that implements a software module based on a model-based design, and an execution control unit that prototypes the board by performing data flow processing using each mounted module as a processing unit It is comprised as a board | substrate design support system characterized by this.

本発明によれば、ハードウェアとソフトウェアとを協調させて最適な基板の設計を支援することが可能となる。   According to the present invention, it is possible to support optimal board design by coordinating hardware and software.

本実施の形態における基板設計支援システムの全体構成を示す図である。It is a figure showing the whole substrate design support system composition in this embodiment. 本システムでデータフロー処理を実現するFPGAボードの論理構成例を示す図である。It is a figure which shows the logical structural example of the FPGA board which implement | achieves a data flow process with this system. 本システムでデータフロー処理を実現するFPGAボードの物理構成例を示す図である。It is a figure which shows the physical structural example of the FPGA board which implement | achieves a data flow process with this system. 図3に示した構成例を用いて制御タスクによるデータフロー処理の概念を示す図である。It is a figure which shows the concept of the data flow process by a control task using the structural example shown in FIG. 図4に示したタスクで定められたパイプライン処理の例を示す図である。FIG. 5 is a diagram illustrating an example of pipeline processing defined by the task illustrated in FIG. 4. 本実施の形態におけるデータフロー処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the data flow process in this Embodiment.

以下に添付図面を参照して、本発明にかかる基板設計支援システムおよび基板設計支援方法の実施の形態を詳細に説明する。   Exemplary embodiments of a substrate design support system and a substrate design support method according to the present invention will be explained below in detail with reference to the accompanying drawings.

図1に、本実施の形態における基板設計支援システムの全体構成を示す。基板設計支援システムは、画像や通信等に例示されるデータフロー処理において、最終的にハードウェアとソフトウェアとを協調させてFPGAボード等の基板をプロトタイピングするためのシステムである。基板設計支援システムは、一般的なPC1と汎用のFPGAボード2から構成され、PC1は、モデルベースデザインツールやFPGA開発ツールを搭載し、PC1が有する不図示のCPUによって実行される。FPGAボード2は、記憶部2A、論理部2Bおよび制御部2Cを有して構成される。PC1とFPGAボード2とは、Ethernet(登録商標)、PCI(Peripheral Component Interconnect)-Expressといった汎用高速インタフェースで接続され、相互にデータのやり取りが可能であり、FPGA in the loopとも呼ばれる構成である。記憶部2Aは、例えば、メモリであり、論理部2Bは、例えば、アクセラレータから構成され、制御部2Cは、例えば、CPUから構成されている。以下、記憶部2Aをメモリ2A、制御部2CをCPU2Cと表現することもある。   FIG. 1 shows the overall configuration of a board design support system in the present embodiment. The board design support system is a system for finally prototyping a board such as an FPGA board by coordinating hardware and software in data flow processing exemplified by images and communication. The board design support system includes a general PC 1 and a general-purpose FPGA board 2. The PC 1 is equipped with a model-based design tool and an FPGA development tool, and is executed by a CPU (not shown) included in the PC 1. The FPGA board 2 includes a storage unit 2A, a logic unit 2B, and a control unit 2C. The PC 1 and the FPGA board 2 are connected by a general-purpose high-speed interface such as Ethernet (registered trademark) or PCI (Peripheral Component Interconnect) -Express, and can exchange data with each other, and are also called FPGA in the loop. The storage unit 2A is, for example, a memory, the logic unit 2B is configured by, for example, an accelerator, and the control unit 2C is configured by, for example, a CPU. Hereinafter, the storage unit 2A may be expressed as the memory 2A, and the control unit 2C may be expressed as the CPU 2C.

図2は、本システムでデータフロー処理を実現するFPGAボード2の論理構成例を示す図である。図2に示すように、FPGAボード2は、PC1に接続するためのPCインタフェース部201、図1に示した記憶部2A、論理部2B、制御部2Cが、データバスおよび制御インタフェースで接続されている。ソフトウェア処理は、幾つかのソフトウェアモジュールに分割され制御部1から制御部mのそれぞれに実装される。また、ハードウェア処理も、幾つかのハードウェアモジュールに分割され論理部1から論理部nに実装される。これらのソフトウェア処理およびハードウェア処理は、アプリケーションがデータフロー処理するモジュールごとに各制御部や各論理部に割り当てられ、割り当てられた各制御部や各論理部で実行される。データフロー処理を実行、制御するタスク(制御タスク)は、CPU0に実装される。具体的には後述するが、制御タスクは、各制御部や各論理部に割り当てられたモジュールの実行状態を監視し、タスク内のモジュールによる処理の実行が終了すると、次のタスクを読み込んでデータフロー処理を開始し、モジュールごとにパイプライン処理する。   FIG. 2 is a diagram showing a logical configuration example of the FPGA board 2 that realizes data flow processing in the present system. As shown in FIG. 2, the FPGA board 2 has a PC interface unit 201 for connection to the PC 1, a storage unit 2A, a logic unit 2B, and a control unit 2C shown in FIG. 1 connected by a data bus and a control interface. Yes. The software processing is divided into several software modules and installed in each of the control unit 1 to the control unit m. Also, the hardware processing is divided into several hardware modules and mounted in the logic unit 1 to the logic unit n. These software processing and hardware processing are assigned to each control unit and each logic unit for each module for which the application performs data flow processing, and are executed by each assigned control unit and each logic unit. A task for executing and controlling data flow processing (control task) is implemented in CPU0. Although specifically described later, the control task monitors the execution state of the module assigned to each control unit and each logic unit, and when the execution of the process by the module in the task is finished, the next task is read and data Starts flow processing and pipelines each module.

尚、CPUリソースが少ない場合はCPU0からCPUmを共有してもよい。また、データのやり取りは、メモリを介し標準化したデータバスで実現される。データフロー処理を行う際の制御は、CPU0と各部(各制御部、各論理部)との間に、設定、起動、割込みおよびログ情報等からなる標準化した制御インタフェースにより実現される。メモリ2Aは、各部間でやりとりするデータの保持およびログ情報を格納する。この様に、データバスおよび制御インタフェースを標準化し、制御タスクにてデータフロー処理を一括管理することで、以下に示すハードウェアとソフトウェア協調プロトタイピング設計が可能となる。なお、本実施例では、制御タスクを1つの制御部に割り当てているが、FPGAボード2のリソースに合わせて、ハードウェアモジュールとソフトウェアモジュールや、同時起動する制御タスクの数を増減させてもよい。   If CPU resources are small, CPU0 to CPUm may be shared. Data exchange is realized by a standardized data bus via a memory. Control when data flow processing is performed is realized by a standardized control interface including setting, activation, interrupt, log information, and the like between the CPU 0 and each unit (each control unit, each logic unit). The memory 2A stores data holding and log information exchanged between the respective units. In this way, by standardizing the data bus and the control interface and collectively managing the data flow processing by the control task, the following hardware and software cooperative prototyping design becomes possible. In this embodiment, the control task is assigned to one control unit. However, the number of hardware modules and software modules, or simultaneously started control tasks may be increased or decreased according to the resources of the FPGA board 2. .

図3は、本システムでデータフロー処理を実現するFPGAボード2の物理構成例(ハードウェアおよびソフトウェアのモジュール構成例)を示す図である。図3に示すように、FPGAボード2は、メモリ2Aと、論理部2B(図3では、論理部2B−1および論理部2B−2)と、制御部2C(図3では、制御部2C−0、制御部2C−1、制御部2C−2)とを有している。メモリ2Aは、データフロー処理されるデータを格納したり、データフロー処理の際に出力されるログ情報を格納する。制御部2C−0は、制御タスクを実行し、各インタフェースを介してタスクごとにメモリ2Aにアクセスし、データフロー処理の実行、制御を行う。   FIG. 3 is a diagram showing a physical configuration example (hardware and software module configuration example) of the FPGA board 2 that realizes data flow processing in this system. As shown in FIG. 3, the FPGA board 2 includes a memory 2A, a logic unit 2B (in FIG. 3, a logic unit 2B-1 and a logic unit 2B-2), and a control unit 2C (in FIG. 3, the control unit 2C- 0, control unit 2C-1, control unit 2C-2). The memory 2A stores data to be subjected to data flow processing, and stores log information output during the data flow processing. The control unit 2C-0 executes a control task, accesses the memory 2A for each task via each interface, and executes and controls data flow processing.

論理部2B−1および論理部2B−2には、それぞれハードウェア処理を行うモジュールH1、モジュールH2が実装されている。また、制御部2C−1および制御部2C−2には、それぞれソフトウェア処理を行うモジュールS1、モジュールS2が実装されている。ここで、ハードウェア処理を行うモジュールおよびソフトウェア処理を行うモジュールの数は、FPGAボード2に実装可能な範囲で複数個作成可能である。   The logic unit 2B-1 and the logic unit 2B-2 are each equipped with a module H1 and a module H2 that perform hardware processing. In addition, the control unit 2C-1 and the control unit 2C-2 are each equipped with a module S1 and a module S2 that perform software processing. Here, a plurality of modules for performing hardware processing and modules for performing software processing can be created as long as they can be mounted on the FPGA board 2.

メモリ2AとモジュールH1との間は、インタフェース2A−Aおよびインタフェース2B−1Aにより接続される。メモリ2AとモジュールH2との間は、インタフェース2A−Cおよびインタフェース2B−2Aにより接続される。メモリ2AとモジュールS1との間は、インタフェース2A−Bおよびインタフェース2C−1Aにより接続される。メモリ2AとモジュールH2との間は、インタフェース2A−Dおよびインタフェース2C−2Aにより接続される。   The memory 2A and the module H1 are connected by an interface 2A-A and an interface 2B-1A. The memory 2A and the module H2 are connected by an interface 2A-C and an interface 2B-2A. The memory 2A and the module S1 are connected by an interface 2A-B and an interface 2C-1A. The memory 2A and the module H2 are connected by an interface 2A-D and an interface 2C-2A.

さらに、制御部0とモジュールH1との間は、インタフェース2C−0Aおよびインタフェース2B−1Bにより接続される。制御部0とモジュールH2との間は、インタフェース2C−0Cおよびインタフェース2B−2Bにより接続される。制御部0とモジュールS1との間は、インタフェース2C−0Bおよびインタフェース2C−1Bにより接続される。制御部0とモジュールH2との間は、インタフェース2C−0Dおよびインタフェース2C−2Bにより接続される。   Further, the control unit 0 and the module H1 are connected by an interface 2C-0A and an interface 2B-1B. The controller 0 and the module H2 are connected by an interface 2C-0C and an interface 2B-2B. The controller 0 and the module S1 are connected by an interface 2C-0B and an interface 2C-1B. The control unit 0 and the module H2 are connected by an interface 2C-0D and an interface 2C-2B.

図4に、図3に示した構成例を用いて制御タスクによるデータフロー処理の概念を示す。図4に示すように、制御部0は、処理対象となる複数のタスクTを順次読み込んでデータフロー処理を実行する。このとき、制御部0は、各モジュール(モジュールH1、H2およびモジュールS1、S2)における処理の状態をメモリ2Aに記憶する。図4では、モジュールH1での処理の状態をステートH1として表している。同様に、モジュールH2、S1、S2での処理の状態を、それぞれステートH2、S1、S2として表している。本実施の形態では、制御部0は、上述した各モジュールにおける処理の状態を監視し、図2に示した各制御部1〜mや論理部1〜n、メモリ2A等のリソースを随時割り当てて、複数のタスクTをパイプライン処理させている。なお、同時に起動するタスク数は、FPGAボード2のリソース制約のもと、メモリ2Aにあらかじめ設定されているものとする。   FIG. 4 shows a concept of data flow processing by the control task using the configuration example shown in FIG. As shown in FIG. 4, the control unit 0 sequentially reads a plurality of tasks T to be processed and executes data flow processing. At this time, the control unit 0 stores the processing state in each module (modules H1 and H2 and modules S1 and S2) in the memory 2A. In FIG. 4, the state of processing in the module H1 is represented as a state H1. Similarly, processing states in modules H2, S1, and S2 are represented as states H2, S1, and S2, respectively. In the present embodiment, the control unit 0 monitors the state of processing in each module described above, and allocates resources such as the control units 1 to m, the logic units 1 to n, and the memory 2A shown in FIG. A plurality of tasks T are pipeline processed. It is assumed that the number of tasks activated simultaneously is preset in the memory 2A under the resource constraints of the FPGA board 2.

図5は、図4に示したタスクTで定められたパイプライン処理の例を示す図である。図5に示す例では、まず、最初のタスク(タスク1)を処理対象とし、モジュールH1での処理を実行した後、モジュールH2およびモジュールS1での処理を実行し、その後、モジュールS2での処理を実行する。そして、モジュールH1での処理が終了すると、モジュールH2およびモジュールS1での処理を実行するとともに、次のタスク(タスク2)を処理対象とし、モジュールH1での処理の実行を開始していることを示している。なお、同時に複数のタスク(例えば、2タスク)を起動する設定となっている場合には、実際には起動するタスク1、2が同時に実行される。以下、同様に、タスクmが終了するまで、制御部0によってタスクTのパイプライン処理が実行される。図4では、各モジュールが処理を開始して実行している状態をSTARTと表現し、処理が終了して次のタスクの処理を開始するまでの状態をWAITと表現している。   FIG. 5 is a diagram showing an example of pipeline processing defined by the task T shown in FIG. In the example shown in FIG. 5, first, the first task (task 1) is set as a processing target, the processing in the module H1 is executed, the processing in the module H2 and the module S1 is executed, and then the processing in the module S2 is performed. Execute. When the processing in the module H1 is completed, the processing in the module H2 and the module S1 is executed, the next task (task 2) is set as the processing target, and the execution of the processing in the module H1 is started. Show. In addition, when it is set to start a plurality of tasks (for example, two tasks) at the same time, tasks 1 and 2 to be actually started are executed simultaneously. Hereinafter, similarly, the pipeline processing of the task T is executed by the control unit 0 until the task m ends. In FIG. 4, a state in which each module starts and executes processing is expressed as START, and a state from the end of processing to the start of processing of the next task is expressed as WAIT.

上述したように、モジュールH1での処理がスタートすると、その状態がステートH1としてメモリ2Aに書き込まれ、その後、実行中の処理が終了すると、ステートH1がその状態に更新される。同様に、モジュールH2、S1、S2についても、ステータスが、それぞれステートH2、ステートS1、ステートS2として、メモリ2Aに書き込まれる。そして、制御部0は、各モジュールのステータスがWAITになると次のタスクの処理を開始する。このように、本実施の形態では、制御部0が、タスクをパイプライン処理するように各モジュールを制御し、データフロー処理を順次実行する。   As described above, when the process in the module H1 is started, the state is written in the memory 2A as the state H1, and then when the process being executed is completed, the state H1 is updated to the state. Similarly, the statuses of the modules H2, S1, and S2 are written in the memory 2A as the state H2, the state S1, and the state S2, respectively. Then, when the status of each module becomes WAIT, the control unit 0 starts processing the next task. As described above, in this embodiment, the control unit 0 controls each module so as to pipeline the task, and sequentially executes the data flow process.

図6は、本実施の形態におけるデータフロー処理の処理手順を示すフローチャートである。以下では、ステップS1〜S9までの各処理は、PC1が有するキーボード等の入力部(不図示)がユーザからの操作を受け付け、PC1のCPU(設定制御部)が入力された情報に基づいて、モデルベースデザインによりデータフロー処理を行うためのFPGAボード2に対する定義や設定を行い、各ステップの処理を実行している。その後、ユーザが処理結果を解析した後、その解析結果に基づく指示を受けて、PC1のCPU(実行制御部)が、ステップS10〜13までの各処理においてFPGAボード2をプロトタイピングし、その結果をフィードバックしている。   FIG. 6 is a flowchart showing a processing procedure of data flow processing in the present embodiment. In the following, each process from step S1 to S9 is performed based on information input by the input unit (not shown) such as a keyboard of the PC 1 from the user and input by the CPU (setting control unit) of the PC 1. Definitions and settings are made for the FPGA board 2 for data flow processing by model-based design, and processing of each step is executed. After that, after the user analyzes the processing result, the CPU (execution control unit) of the PC 1 prototypes the FPGA board 2 in each processing up to steps S10 to 13 in response to an instruction based on the analysis result. Have feedback.

図6に示すように、入力部は、あらかじめ定められ、アプリケーションが行うデータフロー処理の仕様の入力を受け付け、CPUはその仕様を読み込み、どのようなデータフロー処理を行うのかを解析する(ステップS1)。例えば、CPUは、入力された仕様が、画像処理のデータフロー処理であるのか、通信処理のデータフロー処理であるのかを解析する。   As shown in FIG. 6, the input unit receives an input of a data flow processing specification that is determined in advance and performed by the application, and the CPU reads the specification and analyzes what data flow processing is performed (step S1). ). For example, the CPU analyzes whether the input specification is image processing data flow processing or communication processing data flow processing.

次に、入力部は、データフロー処理で同時に起動するタスク数の入力を受け付け、CPUは一度にデータフロー処理するタスク数を定義する(ステップS2)。例えば、CPUは、FPGAボード2のリソースを考慮し、画像処理であれば1フレーム、通信処理であれば1パケット等というように、図4に示した複数のタスクTのうち同時に起動するタスクの数(例えば、2タスク)を定める。   Next, the input unit accepts input of the number of tasks activated simultaneously in the data flow processing, and the CPU defines the number of tasks to be data flow processed at one time (step S2). For example, the CPU considers the resources of the FPGA board 2, and the task that is activated simultaneously among the plurality of tasks T shown in FIG. 4 such as one frame for image processing and one packet for communication processing. Define a number (eg, 2 tasks).

さらに、入力部は、データフロー処理で用いるデータバスやインタフェースの定義の入力を受け付け、CPUがデータフロー処理で使用するデータバスやインタフェースを定義する(ステップS3)。例えば、CPUは、図3、5に示した各モジュール(モジュールH1およびH2、モジュールS1およびS2)とメモリ2Aとの間の共通データバス仕様や、これらの各モジュールと制御部0との間の共通制御インタフェースを定義する。   Further, the input unit receives an input of definition of a data bus and interface used in the data flow process, and defines a data bus and interface used by the CPU in the data flow process (step S3). For example, the CPU uses a common data bus specification between each module (modules H1 and H2, modules S1 and S2) and the memory 2A shown in FIGS. Define a common control interface.

そして、入力部は、タスクを分割するモジュールの入力を受け付け、CPUは、入力されたモジュールでタスクを構成する(ステップS4)。例えば、CPUは、図4、5に示したタスクを、各モジュール(モジュールH1およびH2、モジュールS1およびS2)で構成するように定義する。   Then, the input unit receives an input of a module for dividing the task, and the CPU configures the task with the input module (step S4). For example, the CPU defines the tasks shown in FIGS. 4 and 5 to be configured by modules (modules H1 and H2, modules S1 and S2).

さらに、入力部は、ステップS2で定めたタスク、ステップS3で定義したデータバスやインタフェースに合わせて、ステップS4で定義したハードウェアモジュールやソフトウェアモジュールを作成する(ステップS5)。例えば、CPUは、図3に示した各種インタフェースの定義に合わせ、ハードウェアモジュールやソフトウェアモジュール(モジュールH1およびH2、モジュールS1およびS2)を作成する。   Furthermore, the input unit creates the hardware module or software module defined in step S4 in accordance with the task defined in step S2, the data bus or interface defined in step S3 (step S5). For example, the CPU creates hardware modules and software modules (modules H1 and H2, modules S1 and S2) in accordance with the definitions of various interfaces shown in FIG.

そして、CPUは、作成したモジュールごとに、モジュールの実行結果をログ情報として出力する定義をする(ステップS6)。例えば、CPUは、各モジュール(モジュールH1およびH2、モジュールS1およびS2)ごとに、処理結果をログ情報として記録し、メモリ2Aに格納する定義をする。   Then, the CPU defines for each created module that the execution result of the module is output as log information (step S6). For example, for each module (modules H1 and H2 and modules S1 and S2), the CPU records the processing result as log information and defines to store in the memory 2A.

さらに、CPUは、ステップS5で作成したモジュールを実行するための制御タスクを生成し(ステップS7)、上述した各ステップで作成したハードウェアモジュールやソフトウェアモジュール、および制御タスクを、それぞれ、FPGAボード2が有する制御部1〜mや論理部1〜n、および制御部0に実装する(ステップS8)。なお、これらのモジュールの作成と実装は、あらかじめPC1にインストールされているモデルベースデザインやFPGA開発するためのツールを利用することにより、自動化およびハードとソフト処理の変更が可能となっている。   Further, the CPU generates a control task for executing the module created in step S5 (step S7), and the hardware module, software module, and control task created in each of the steps described above are converted into the FPGA board 2 respectively. Are mounted on the control units 1 to m, the logic units 1 to n, and the control unit 0 (step S8). The creation and implementation of these modules can be automated and the hardware and software processing can be changed by using a model-based design and a tool for FPGA development that are installed in the PC 1 in advance.

次に、CPUは、FPGAボード2への実装が物理的に可能か否かを判定し(ステップS9)、実装が可能でないと判定した場合(ステップS9;No)、その原因に応じて上流の各ステップに戻り、修正された定義等に従って以降の処理を繰り返す。具体的にどのステップまで戻り、どの部分を修正するかは、FPGAボード2への実装が不可能な状況に依存するが、例えば、ハードリソースが不足している場合は、ハードウェアモジュール内部の並列処理の多重度を下げたり、ソフトウェアによる処理に変更することが考えられる。   Next, the CPU determines whether or not mounting on the FPGA board 2 is physically possible (step S9). When it is determined that mounting is not possible (step S9; No), the CPU determines whether the upstream is available depending on the cause. Returning to each step, the subsequent processing is repeated according to the revised definition. The specific steps to return to and the parts to be modified depend on the situation where mounting on the FPGA board 2 is impossible. For example, when hardware resources are insufficient, the parallelism inside the hardware module It is conceivable to reduce the multiplicity of processing or change to processing by software.

一方、CPUは、FPGAボード2への実装が可能であると判定した場合(ステップS9;Yes)、FPGAボード2がPC1からの指示を受けて、ステップS2で定めたタスクの数を同時に実行し、それぞれのモジュールでの処理が終了すると、例えば、図4、5に示したように、順次パイプラインでデータフロー処理を実行する(ステップS10)。このとき、各モジュールは、メモリ2Aにログ情報を記録する。   On the other hand, if the CPU determines that mounting on the FPGA board 2 is possible (step S9; Yes), the FPGA board 2 receives the instruction from the PC 1 and simultaneously executes the number of tasks determined in step S2. When the processing in each module ends, for example, as shown in FIGS. 4 and 5, data flow processing is sequentially executed in the pipeline (step S10). At this time, each module records log information in the memory 2A.

CPUは、各モジュールでの処理が終了すると、FPGAボード2に記録されたログ情報を取り込む(ステップS11)。ログ情報としては、FPGAボード2に実装された制御部0の動作履歴が記録される。例えば、各モジュールのデータ処理時間やリソース割当て待ち時間、各モジュールで利用しているバス帯域および全体としてのバス利用状況が記録されており、CPUがこれらの情報を収集することができる。また、制御部0が実行する制御タスクの実行結果以外に、メモリ2Aにモジュールごとにログ情報を格納することで、各モジュールに固有なログ情報も取得が可能となる。   When the processing in each module is completed, the CPU captures log information recorded on the FPGA board 2 (step S11). As log information, an operation history of the control unit 0 mounted on the FPGA board 2 is recorded. For example, the data processing time and resource allocation waiting time of each module, the bus bandwidth used by each module and the overall bus usage status are recorded, and the CPU can collect these information. In addition to the execution result of the control task executed by the control unit 0, log information unique to each module can be acquired by storing log information for each module in the memory 2A.

CPUは、これらのログ情報を元にデータフロー処理の実行状況を解析し(ステップS12)、データフロー処理の見直しが必要か否かを判定し(ステップS13)、ステップS9の場合と同様に、見直しが必要と判定された原因に応じて上流の各ステップに戻り、修正された定義等に従って以降の処理を繰り返す。例えば、CPUは、データフロー処理の実行結果や各モジュールの実行結果が、要求されているアプリケーションの仕様を満足するものでなく、あるモジュールのレスポンスが要求された基準を満たしていないため、モジュールの分割方法や使用するインタフェースの再定義が必要と判定した場合には、ステップS3やS4に戻って、再定義を促すメッセージや上述したログ情報をPC1の表示部(不図示)に表示する。そして、ユーザは表示されたメッセージやログ情報に従って、入力部を介してデータフロー処理を再定義することとなる。   The CPU analyzes the execution status of the data flow process based on the log information (step S12), determines whether the data flow process needs to be reviewed (step S13), and, similarly to the case of step S9, The process returns to each upstream step according to the cause determined that the review is necessary, and the subsequent processing is repeated according to the corrected definition. For example, the CPU does not satisfy the required application specifications because the execution result of data flow processing or the execution result of each module does not satisfy the required application specifications. If it is determined that the redefinition of the division method and the interface to be used is necessary, the process returns to steps S3 and S4 to display a message for prompting redefinition and the above-described log information on the display unit (not shown) of the PC1. Then, the user redefines the data flow process via the input unit according to the displayed message and log information.

このように、実装されるモジュールをアプリケーションの処理単位とし、上述した各ステップを繰り返し実行することにより、当該データフロー処理に最適なハードウェアとソフトウェアとを協調させてSOCやFPGA等の基板設計が可能となる。例えば、画像や通信等のデータフロー処理を対象に、画像フレームや通信パケット等に対して行う処理の単位に着目し、モデルベースデザイン手法とプロトタイピング手法を用いて、ハードウェアとソフトウェアとを協調させて最適なFPGAボードの設計が可能となる。   In this way, by implementing the above-mentioned steps repeatedly with the module to be implemented as the processing unit of the application, it is possible to design the board such as SOC and FPGA by coordinating the hardware and software optimal for the data flow processing. It becomes possible. For example, for data flow processing such as images and communication, focusing on the unit of processing performed on image frames and communication packets, etc., hardware and software are coordinated using model-based design methods and prototyping methods. This makes it possible to design an optimal FPGA board.

また、画像や通信等のデータフロー処理をFPGAボード上のハードウェアとソフトウェアに繰り返し実装および動作させることが可能となり、短期間で当該データフロー処理に最適なハードウェアとソフトウェアの協調設計を行うことができる。また、モジュールを纏めた処理をタスク化し、リソースの許す限り複数のタスクをモジュールごとにパイプライン処理することで、当該データフロー処理を高速に処理することも可能となる。また、利用するFPGAボードのリソースに合わせてハードウェアモジュールとソフトウェアモジュールおよび同時起動する制御タスク数を増やしたり、メモリを介さずモジュール間を専用接続すること等の個別のモジュールやインタフェースの最適化を図ることで、プロトタイピングにとどまるこことなく最終形としての設計も可能となる。   In addition, data flow processing such as images and communications can be repeatedly implemented and operated on the hardware and software on the FPGA board, and the hardware and software optimally designed for the data flow processing can be designed in a short period of time. Can do. In addition, by processing a group of modules into a task and pipelining a plurality of tasks for each module as long as the resource permits, the data flow process can be processed at high speed. In addition, optimization of individual modules and interfaces, such as increasing the number of hardware modules and software modules and control tasks to be started at the same time according to the resources of the FPGA board to be used, and dedicated connection between modules without using memory By doing so, it is possible to design as a final form as well as prototyping.

1 PC(コンピュータ)
2 FPGAボード
2A メモリ
2A〜D インタフェース(メモリ)
2B 論理部
2B−1A、2A インタフェース(ハードウェアモジュールのメモリ側)
2B−1B、2B インタフェース(ハードウェアモジュールの制御部側)
2C 制御部
2C−1A、2A インタフェース(ソフトウェアモジュールのメモリ側)
2C−1B、2B インタフェース(ソフトウェアモジュールの制御部側)
2C−0A〜D インタフェース(制御部)。
1 PC (computer)
2 FPGA board 2A Memory 2A-D Interface (memory)
2B logic unit 2B-1A, 2A interface (memory side of hardware module)
2B-1B, 2B interface (Hardware module controller)
2C control unit 2C-1A, 2A interface (memory side of software module)
2C-1B, 2B interface (software module controller side)
2C-0A to D interface (control unit).

Claims (10)

アプリケーションの仕様にしたがってハードウェアモジュールとソフトウェアモジュールとを実装する基板の設計を支援する基板設計支援方法であって、
モデルベースデザインにより、アプリケーションが実行するデータフロー処理を実行するハードウェアモジュールおよびソフトウェアモジュールを定め、前記ハードウェアモジュールを前記基板の論理部に実装するとともに前記ソフトウェアモジュールを前記基板の制御部に実装する第1のステップと、
プロトタイピングにより、実装された各モジュールを処理単位としてデータフロー処理する第2のステップと、を実行することにより、前記仕様に合った基板を設計する、
ことを特徴とする基板設計支援方法。
A board design support method for supporting design of a board on which a hardware module and a software module are mounted according to an application specification,
A hardware module and a software module for executing data flow processing executed by an application are determined by model-based design, and the hardware module is mounted on the logic unit of the board and the software module is mounted on the control unit of the board. A first step;
A board that meets the above specifications is designed by executing a second step of performing data flow processing using each mounted module as a processing unit by prototyping.
A board design support method characterized by the above.
前記第1のステップでは、前記処理単位が前記仕様に応じて定められ、
前記第2のステップでは、前記仕様に応じて定められた処理単位でデータフロー処理を実行する、
ことを特徴とする請求項1に記載の基板設計支援方法。
In the first step, the processing unit is determined according to the specification,
In the second step, a data flow process is executed in a processing unit determined according to the specification.
The substrate design support method according to claim 1.
前記第1のステップでは、前記データフロー処理を制御する制御タスクが前記制御部に実装され、
前記第2のステップでは、前記制御タスクによって、前記データフロー処理を前記処理単位で実行するとともに、前記各モジュールの処理状態に基づいて、前記処理単位ごとに前記データフロー処理をパイプライン処理させる、
ことを特徴とする請求項1または2に記載の基板設計支援方法。
In the first step, a control task for controlling the data flow process is implemented in the control unit,
In the second step, the control task executes the data flow processing in the processing unit, and pipelines the data flow processing for each processing unit based on the processing state of each module.
The substrate design support method according to claim 1, wherein
前記第2のステップでは、前記モジュールの実行結果を記録するログを出力してその出力結果を分析し、前記第1のステップにおいてハードウェアモジュールまたはソフトウェアモジュールを再定義する、
ことを特徴とする請求項1〜3のいずれか1項に記載の基板設計支援方法。
In the second step, a log that records the execution result of the module is output and the output result is analyzed, and the hardware module or the software module is redefined in the first step.
The substrate design support method according to any one of claims 1 to 3.
前記第2のステップでは、前記ログをモジュールごとに出力し、前記第1のステップにおいてモジュールごとに出力されたログに基づいて、各モジュールを再定義する、
ことを特徴とする請求項4に記載の基板設計支援方法。
In the second step, the log is output for each module, and each module is redefined based on the log output for each module in the first step.
The substrate design support method according to claim 4, wherein:
前記第1のステップでは、前記データフロー処理を実行するモジュール構成と、前記処理単位と、前記制御タスクの数との少なくとも1以上を、前記第2のステップによる分析結果に基づいて繰り返し定める、
ことを特徴とする請求項4または5に記載の基板設計支援方法。
In the first step, at least one of a module configuration for executing the data flow processing, the processing unit, and the number of control tasks is repeatedly determined based on an analysis result in the second step.
6. The substrate design support method according to claim 4 or 5, wherein:
アプリケーションの仕様にしたがってハードウェアモジュールとソフトウェアモジュールとを実装する基板の設計を支援する基板設計支援システムであって、
アプリケーションが実行するデータフロー処理を実行するハードウェアモジュールを実装する論理部およびソフトウェアモジュールを実装する制御部をモデルベースデザインにより定める設定制御部と、
実装された各モジュールを処理単位としてデータフロー処理して前記基板をプロトタイピングする実行制御部と、
を備えることを特徴とする基板設計支援システム。
A board design support system that supports the design of a board on which a hardware module and a software module are mounted according to application specifications,
A setting control unit that defines a logic unit that implements a hardware module that executes a data flow process executed by an application and a control unit that implements a software module based on a model-based design;
An execution control unit for prototyping the board by performing data flow processing on each mounted module as a processing unit;
A board design support system comprising:
前記基板はメモリを有し、前記論理部および前記制御部は前記メモリにインタフェースで接続され、
前記設定制御部は、さらに前記データフロー処理を制御する制御タスクを前記制御部に実装し、
前記実行制御部は、前記制御タスクにより、前記インタフェースを介して前記処理単位に前記メモリにアクセスし、前記データフロー処理を実行する、
ことを特徴とする請求項7に記載の基板設計支援システム。
The substrate includes a memory, and the logic unit and the control unit are connected to the memory through an interface,
The setting control unit further implements a control task for controlling the data flow processing in the control unit,
The execution control unit accesses the memory in the processing unit via the interface by the control task, and executes the data flow process.
The board design support system according to claim 7, wherein:
前記実行制御部は、前記モジュールの実行結果を記録するログを前記メモリに出力してその出力結果を分析し、
前記設定制御部は、出力されたログに基づいて、各モジュールを再定義する、
ことを特徴とする請求項8に記載の基板設計支援システム。
The execution control unit outputs a log recording the execution result of the module to the memory and analyzes the output result,
The setting control unit redefines each module based on the output log.
The board design support system according to claim 8, wherein:
前記設定制御部は、前記データフロー処理を実行するモジュール構成と、前記処理単位と、前記制御タスクの数との少なくとも1以上を、前記実行制御部による分析結果に基づいて繰り返し定める、
ことを特徴とする請求項9に記載の基板設計支援システム。
The setting control unit repeatedly determines at least one or more of a module configuration for executing the data flow process, the processing unit, and the number of control tasks based on an analysis result by the execution control unit.
The substrate design support system according to claim 9.
JP2013213089A 2013-10-10 2013-10-10 Board design assistance system and board design assistance method Pending JP2015076007A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013213089A JP2015076007A (en) 2013-10-10 2013-10-10 Board design assistance system and board design assistance method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013213089A JP2015076007A (en) 2013-10-10 2013-10-10 Board design assistance system and board design assistance method

Publications (1)

Publication Number Publication Date
JP2015076007A true JP2015076007A (en) 2015-04-20

Family

ID=53000791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013213089A Pending JP2015076007A (en) 2013-10-10 2013-10-10 Board design assistance system and board design assistance method

Country Status (1)

Country Link
JP (1) JP2015076007A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110531706A (en) * 2019-09-05 2019-12-03 肇庆学院 For the safe purse seine of Design of Intelligent Workshop and metal plate outer cover modularization 3D modeling system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002230063A (en) * 2001-01-31 2002-08-16 Toshiba Corp Device, method and program for localizing interruption structure
JP2003016122A (en) * 2001-06-29 2003-01-17 Matsushita Electric Ind Co Ltd Method for designing logic circuit
JP2006011840A (en) * 2004-06-25 2006-01-12 Mitsubishi Electric Corp Integrated system
JP2013125419A (en) * 2011-12-14 2013-06-24 Fuji Xerox Co Ltd Hardware-software collaborative design device and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002230063A (en) * 2001-01-31 2002-08-16 Toshiba Corp Device, method and program for localizing interruption structure
JP2003016122A (en) * 2001-06-29 2003-01-17 Matsushita Electric Ind Co Ltd Method for designing logic circuit
JP2006011840A (en) * 2004-06-25 2006-01-12 Mitsubishi Electric Corp Integrated system
JP2013125419A (en) * 2011-12-14 2013-06-24 Fuji Xerox Co Ltd Hardware-software collaborative design device and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110531706A (en) * 2019-09-05 2019-12-03 肇庆学院 For the safe purse seine of Design of Intelligent Workshop and metal plate outer cover modularization 3D modeling system

Similar Documents

Publication Publication Date Title
US10453010B2 (en) Computer device, method, and apparatus for scheduling business flow
Urunuela et al. Storm a simulation tool for real-time multiprocessor scheduling evaluation
Jackson Microsoft robotics studio: A technical introduction
EP3229150B1 (en) Streaming graph optimization method and apparatus
US20140095931A1 (en) Method and system for automating the process of testing a device
US9262220B2 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
US9323619B2 (en) Deploying parallel data integration applications to distributed computing environments
CN102279766B (en) Method and system for concurrently simulating processors and scheduler
US8204732B1 (en) Modeling communication interfaces for multiprocessor systems
US20080082663A1 (en) Management of tools that process data to describe a physical layout of a circuit
CN109117141A (en) Simplify method, apparatus, the electronic equipment, computer readable storage medium of programming
CN101727423B (en) System capable of preempting multiple hardware tasks on reconfigurable FPGA and implementing method thereof
JP2007011720A (en) System simulator, system simulation method, control program, and readable recording medium
CN113658351B (en) Method and device for producing product, electronic equipment and storage medium
EP1993038B1 (en) Data processing system and data processing method
JP6464739B2 (en) Information processing system control program, information processing apparatus, and information processing system
US9723043B2 (en) Streaming data on data processes
JP2015076007A (en) Board design assistance system and board design assistance method
US7552439B2 (en) System and method to allow non-deterministic execution in a process control system
Warrender et al. Job scheduling in a high performance computing environment
JP5540799B2 (en) Data input / output control method, data input / output control program, and data input / output control device
Igna et al. Verification of printer datapaths using timed automata
JP2022091301A (en) Control system and control method
EP4120078A1 (en) Method for scheduling feature services within a distributed data flow service framework
CN112825044B (en) Task execution method, device and computer storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160929

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171010

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180508