JP5577619B2 - Logic circuit design device - Google Patents

Logic circuit design device Download PDF

Info

Publication number
JP5577619B2
JP5577619B2 JP2009111580A JP2009111580A JP5577619B2 JP 5577619 B2 JP5577619 B2 JP 5577619B2 JP 2009111580 A JP2009111580 A JP 2009111580A JP 2009111580 A JP2009111580 A JP 2009111580A JP 5577619 B2 JP5577619 B2 JP 5577619B2
Authority
JP
Japan
Prior art keywords
logic circuit
register
hardware
source code
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.)
Expired - Fee Related
Application number
JP2009111580A
Other languages
Japanese (ja)
Other versions
JP2010262412A (en
Inventor
俊一 藤内
士郎 瓜生
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 JP2009111580A priority Critical patent/JP5577619B2/en
Publication of JP2010262412A publication Critical patent/JP2010262412A/en
Application granted granted Critical
Publication of JP5577619B2 publication Critical patent/JP5577619B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、論理回路設計装置に関する。   The present invention relates to a logic circuit design apparatus.

従来より、システム設計者は、システムレベル設計装置で作成される論理合成可能なRTL(Register Transfer Level)と、論理合成ができないがRTLと同等の機能を発揮するクロックベースモデルとを使用してシステムレベルの設計を行っている。   Conventionally, system designers have used RTL (Register Transfer Level) that can be synthesized by a system level design device and a clock-based model that cannot perform logic synthesis but exhibits the same functions as RTL. We are designing the level.

具体的には、システムレベル設計装置は、コ・デザイン装置を用いて、システムのハードウェア部分とソフトウェア部分とを分割するとともに、アーキテクチャ情報、マッピング情報、アドレス情報などを含むデータベースを自動生成する。そして、システムレベル設計装置は、トップレベル記述生成装置を用いて、上記データベースの情報からクロックベースシミュレーション用の記述を自動生成する。   Specifically, the system level design apparatus uses the co-design apparatus to divide the hardware part and the software part of the system, and automatically generates a database including architecture information, mapping information, address information, and the like. The system level design apparatus automatically generates a description for clock-based simulation from the information in the database using the top level description generation apparatus.

また、上記したシステムレベル設計装置では、ハードウェアの動作合成を行い、RTLとクロックベースのモデルを作成する装置であるハードウェア生成装置や、CPU(Central Processing Unit)モデルを作成する装置であるソフトウェア装置も用いられる。   In the system level design apparatus described above, a hardware generation apparatus that is an apparatus that performs hardware behavioral synthesis and generates an RTL and a clock-based model, and a software that is an apparatus that generates a CPU (Central Processing Unit) model A device is also used.

上記したシステムレベル設計装置以外には、例えば、CPUを搭載するLSI製造時のテスト用の入力ベクタを作成する自動生成装置なども開示されている。具体的には、自動生成装置は、ソフトウェアからハードウェア回路にアクセスするメモリマップドレジスタ情報を抽出し、C言語で利用可能なマクロ定義に自動変換する。その後、自動生成装置は、全てのメモリマップドレジスタに順次アクセスするルールに従って、プログラムソースコードを自動生成する。   In addition to the system level design apparatus described above, for example, an automatic generation apparatus that creates an input vector for testing when manufacturing an LSI equipped with a CPU is also disclosed. Specifically, the automatic generation apparatus extracts memory mapped register information for accessing the hardware circuit from software, and automatically converts it into a macro definition that can be used in C language. Thereafter, the automatic generation device automatically generates program source code according to a rule for sequentially accessing all memory mapped registers.

特開2004−54755号公報JP 2004-54755 A 特開2004−257822号公報JP 2004-257822 A

しかしながら、従来の技術では、ハードウェアとソフトウェアを含むシステム全体を設計する場合には、手作業の工数が多くなってしまい、結果として、システム全体の設計に多くの工数が必要であるという課題があった。   However, in the conventional technology, when designing the entire system including hardware and software, the number of man-hours is increased. As a result, there is a problem that many man-hours are required for designing the entire system. there were.

具体的には、従来の技術では、クロックベースシミュレーション用の記述やアーキテクチャ情報、マッピング情報、アドレス情報などを含むデータベースを自動生成することができる。ところが、システム全体を設計するには、回路構成(ハードウェア部分)やデバイスドライバ(ソフトウェア部分)をさらに設計する必要があり、これらを手作業で設計する必要がある。特に大規模システムの場合には、多くの手作業工数が必要となる。   Specifically, in the conventional technique, a database including a description for clock-based simulation, architecture information, mapping information, address information, and the like can be automatically generated. However, in order to design the entire system, it is necessary to further design a circuit configuration (hardware part) and a device driver (software part), and these must be designed manually. Particularly in the case of a large-scale system, a large amount of manual labor is required.

また、従来の技術では、全てのメモリマップドレジスタに順次アクセスするルールに従って、プログラムソースコードを自動生成することができるが、実際のデバイスドライバやアプリケーションで全てのメモリマップドレジスタに順次アクセスすることがほとんどない。したがって、このような手法をソフトウェアの開発に流用することができず、ソフトウェア開発を手作業で行う必要があるので、システム全体としては多くの工数が必要となる。   In addition, in the conventional technology, program source code can be automatically generated according to a rule for sequentially accessing all memory-mapped registers, but all memory-mapped registers are accessed sequentially by an actual device driver or application. There is almost no. Therefore, such a method cannot be diverted to software development, and software development needs to be performed manually. Therefore, the entire system requires a lot of man-hours.

開示の技術は、上記に鑑みてなされたものであって、システム全体の設計に必要な工数を削減することが可能である論理回路設計装置を提供することを目的とする。   The disclosed technique has been made in view of the above, and an object thereof is to provide a logic circuit design apparatus capable of reducing the man-hours required for designing the entire system.

本願の開示する論理回路設計装置は、一つの態様において、入力された論理回路ブロックのレジスタ情報を解析して論理回路の構成情報を取得するレジスタ解析手段と、前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路のレジスタ部と、前記論理回路のコア機能部の雛形と、前記レジスタ部とコア機能部とを包含するトップモジュールの雛形とのそれぞれについて、ハードウェアソースコードを生成するハードウェア記述生成手段と、前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成するソフトウェア記述生成手段と、を有する。   In one aspect, the logic circuit design apparatus disclosed in the present application analyzes register information of an input logic circuit block and acquires configuration information of the logic circuit, and a logic acquired by the register analyzing means. Based on the circuit configuration information, each of the register unit of the logical circuit, the core function unit model of the logic circuit, and the top module model including the register unit and the core function unit, hardware Based on the configuration information of the logic circuit acquired by the hardware description generating means for generating the source code and the register analyzing means, the software source code is generated for the template of the device driver function for initializing the logical circuit. Software description generation means.

本願の開示する論理回路設計装置の一つの態様によれば、システム全体の設計に必要な工数を削減することが可能であるという効果を奏する。   According to one aspect of the logic circuit design apparatus disclosed in the present application, it is possible to reduce the man-hours required for designing the entire system.

図1は、実施例1に係る論理回路設計装置の構成を示すブロック図である。FIG. 1 is a block diagram illustrating the configuration of the logic circuit design apparatus according to the first embodiment. 図2は、メモリマップ設定画面例を示す図である。FIG. 2 is a diagram illustrating an example of a memory map setting screen. 図3は、システムメモリマップDBに記憶される情報の例を示す図である。FIG. 3 is a diagram illustrating an example of information stored in the system memory map DB. 図4は、バスマスターのアクセス優先度を設定する画面例を示す図である。FIG. 4 is a diagram showing an example of a screen for setting the access priority of the bus master. 図5は、システムメモリマップに記憶されるアクセス優先度の例を示す図である。FIG. 5 is a diagram illustrating an example of access priorities stored in the system memory map. 図6は、バス種別DBに記憶される情報の例を示す図である。FIG. 6 is a diagram illustrating an example of information stored in the bus type DB. 図7は、レジスタ一覧の入力を受け付けるGUIの例を示す図である。FIG. 7 is a diagram illustrating an example of a GUI that receives an input of a register list. 図8は、ユーザにより入力されたレジスタ一覧の例を示す図である。FIG. 8 is a diagram illustrating an example of a register list input by the user. 図9は、レジスタ種別の例を示す図である。FIG. 9 is a diagram illustrating an example of register types. 図10は、論理回路レジスタマップ一覧DBに記憶される情報の例を示す図である。FIG. 10 is a diagram illustrating an example of information stored in the logic circuit register map list DB. 図11は、レジスタ詳細の入力を受け付けるGUIの例を示す図である。FIG. 11 is a diagram illustrating an example of a GUI that receives input of register details. 図12は、論理回路レジスタマップ詳細DBに記憶される情報の例を示す図である。FIG. 12 is a diagram illustrating an example of information stored in the logic circuit register map detail DB. 図13は、論理回路割り込み情報DBに記憶される情報の例を示す図である。FIG. 13 is a diagram illustrating an example of information stored in the logic circuit interrupt information DB. 図14は、バスモデルのRTL記述のハードウェアソースコードを生成する処理の流れを示すフローチャートである。FIG. 14 is a flowchart showing a flow of processing for generating a hardware source code of RTL description of a bus model. 図15は、バスモデルの雛形ファイルの例を示す図である。FIG. 15 is a diagram showing an example of a bus model template file. 図16は、バスモデルの雛形ファイルの別例(Loop処理)を示す図である。FIG. 16 is a diagram showing another example (Loop processing) of a bus model template file. 図17は、最終的に作成されるバスモデルのRTL記述のハードウェアソースコードの例を示す図である。FIG. 17 is a diagram illustrating an example of the hardware source code of the RTL description of the bus model that is finally created. 図18は、簡易割り込みコントローラのレジスタマップを示す図である。FIG. 18 is a diagram showing a register map of the simple interrupt controller. 図19−1は、論理回路レジスタマップ詳細DBに記憶される情報の例を示す図である。FIG. 19A is a diagram illustrating an example of information stored in the logic circuit register map detail DB. 図19−2は、論理回路割り込みDBに記憶される情報の例を示す図である。FIG. 19B is a diagram of an example of information stored in the logic circuit interrupt DB. 図20は、割込み処理関数生成に必要な部分を抜粋した定義ファイルを示す図である。FIG. 20 is a diagram illustrating a definition file in which portions necessary for generating an interrupt processing function are extracted. 図21は、割込み処理関数を多段構成で生成する場合の例を示す図である。FIG. 21 is a diagram illustrating an example in which an interrupt processing function is generated in a multi-stage configuration. 図22は、割り込み処理のエントリ関数の生成例を示した図である。FIG. 22 is a diagram illustrating an example of generating an entry function for interrupt processing. 図23は、論理回路ブロック単位の割り込み処理関数の例を示す図である。FIG. 23 is a diagram illustrating an example of an interrupt processing function in units of logic circuit blocks. 図24は、生成される割り込み処理関数の実態を示した図である。FIG. 24 is a diagram showing the actual state of the generated interrupt processing function. 図25は、ソフトウェア記述生成部22による初期化関数生成処理の流れを示すフローチャートである。FIG. 25 is a flowchart showing a flow of initialization function generation processing by the software description generation unit 22. 図26は、初期化関数の生成イメージを例示した図である。FIG. 26 is a diagram illustrating an image of generating the initialization function. 図27は、初期化関数生成に必要な部分を抜粋した定義ファイルを示す図である。FIG. 27 is a diagram showing a definition file in which portions necessary for generating an initialization function are extracted. 図28は、生成される初期化関数の例を示した図である。FIG. 28 is a diagram showing an example of the generated initialization function. 図29は、擬似CPU及び割り込みコントローラ関係のファイル群を示す図である。FIG. 29 is a diagram illustrating a file group related to the pseudo CPU and the interrupt controller. 図30は、バスモデル及びユーザロジック関係のファイル群を示す図である。FIG. 30 shows a file group related to the bus model and user logic. 図31は、論理回路ブロック関係のファイル群を示す図である。FIG. 31 is a diagram showing a group of files related to logic circuit blocks. 図32は、テストベンチ関係のファイル群を示す図である。FIG. 32 is a diagram showing a file group related to the test bench. 図33は、論理検証トップ及びデバイスドライバ関係のファイル群を示す図である。FIG. 33 is a diagram illustrating a logical verification top and a device driver related file group. 図34は、論理検証用テストプログラム及び論理検証関係ファイル群を示す図である。FIG. 34 is a diagram showing a logic verification test program and a logic verification related file group. 図35は、実施例1に係る論理回路設計装置による全体的な処理の流れを示すフローチャートである。FIG. 35 is a flowchart illustrating an overall processing flow performed by the logic circuit design device according to the first embodiment. 図36は、最終的に生成されるシステムの構成を示す図である。FIG. 36 is a diagram illustrating a configuration of a system finally generated. 図37は、精度検証用検証環境の構成例を示す図である。FIG. 37 is a diagram illustrating a configuration example of a verification environment for accuracy verification. 図38は、機能検証用検証環境の構成例を示す図である。FIG. 38 is a diagram illustrating a configuration example of a verification environment for function verification. 図39は、単体用検証環境の構成例を示す図である。FIG. 39 is a diagram illustrating a configuration example of a single-use verification environment.

以下に、本願の開示する論理回路設計装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。   Hereinafter, embodiments of a logic circuit design apparatus disclosed in the present application will be described in detail with reference to the drawings. Note that the present invention is not limited to the embodiments.

本願が開示する論理回路設計装置は、入力された論理回路ブロックのレジスタ情報(レジスタマップ)を解析して論理回路の構成情報を取得する。そして、論理回路設計装置は、取得された論理回路の構成情報に基づいて、論路回路のレジスタ部と、論理回路のコア機能部の雛形とのそれぞれについて、ハードウェアソースコードを生成する。また、論理回路設計装置は、レジスタ部とコア機能部とを包含するトップモジュールの雛形についても、ハードウェアソースコードを生成する。さらに、論理回路設計装置は、取得された論理回路の構成情報に基づいて、論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成する。   The logic circuit design apparatus disclosed in the present application analyzes register information (register map) of an input logic circuit block and acquires configuration information of the logic circuit. Then, the logic circuit design device generates hardware source code for each of the register unit of the logic circuit and the template of the core function unit of the logic circuit based on the acquired configuration information of the logic circuit. The logic circuit design device also generates hardware source code for the top module template that includes the register unit and the core function unit. Furthermore, the logic circuit design device generates a software source code for the template of the device driver function for initializing the logic circuit based on the acquired configuration information of the logic circuit.

つまり、本願が開示する論理回路設計装置は、論理回路ブロックのレジスタ情報を受け付けると、論理回路のコア機能部などハードウェア設計用及び論理回路ブロック用のデバイスドライバ開発に流用可能なソフトウェア設計用のソースコードを作成することができる。したがって、設計者は、設計対象の論理回路ブロックのレジスタ情報を本願が開示する論理回路設計装置に入力することで、ハードウェア設計用及びソフトウェア設計用のソースコードを取得することができ、取得した各ソースコードを用いて論理回路設計を行うことができる。   That is, the logic circuit design apparatus disclosed in the present application, when receiving the register information of the logic circuit block, is used for hardware design such as a core function unit of the logic circuit and software design that can be diverted to device driver development for the logic circuit block. Source code can be created. Therefore, the designer can acquire the source code for hardware design and software design by inputting the register information of the logic circuit block to be designed into the logic circuit design apparatus disclosed in the present application. Logic circuit design can be performed using each source code.

なお、論理回路ブロックとは、ある特定の機能を実現するための、論理回路(組み合わせ回路と順序回路)の集合体であり、例えば、DMAコントローラ、タイマ、UART、各種エンコーダ/デコーダなどのように、プロセッサのバスに接続されるものである。また、論理回路ブロックのレジスタ部とは、論理回路ブロックの機能を適切に実現するための設定値を保持する順序回路や、論理回路ブロックの内部情報を保持する順序回路の値を、バス経由でプロセッサがアクセス可能な構成を保持するものである。例えば、論理回路ブロックのレジスタ部とは、デバイスのデータシートに「レジスタマップ」等として記載され、デバイスドライバ等のソフトウェアからアクセス可能な部分のことである。   A logic circuit block is a collection of logic circuits (combination circuits and sequential circuits) for realizing a specific function. For example, a DMA controller, a timer, a UART, various encoders / decoders, etc. , Connected to the processor bus. In addition, the register part of the logic circuit block refers to the value of the sequential circuit that holds the setting value for appropriately realizing the function of the logic circuit block and the value of the sequential circuit that holds the internal information of the logic circuit block via the bus. It holds the configuration accessible to the processor. For example, the register portion of the logic circuit block is a portion described as a “register map” or the like in the device data sheet and accessible from software such as a device driver.

また、論理回路ブロックのコア機能部とは、その「論理回路ブロック」が持つ、ある特定の機能を果たす本質的な回路を実装している部分のことである。例えば、「レジスタ部」に設定された値によって、その振る舞いや出力結果が変わり、出力結果の一部やコア機能部の内部状態の一部は、「レジスタ部」に保持されてソフトウェアからアクセス可能なものもある。また、論理回路ブロックのトップモジュールとは、「論理回路ブロック」の最上位階層となる部分である。例えば、「レジスタ部」、「コア機能部」、「バスインターフェイス部」のそれぞれの接続を行い(場合によっては内部RAMとの接続も含む)、「論理回路ブロック」としての外部インターフェイスを提供するモジュールである。   In addition, the core function unit of the logic circuit block is a part in which an essential circuit that performs a specific function of the “logic circuit block” is mounted. For example, the behavior and output result change depending on the value set in the “register part”, and part of the output result and part of the internal state of the core function part are held in the “register part” and can be accessed from software. There is also a thing. The top module of the logic circuit block is a portion that is the highest layer of the “logic circuit block”. For example, a module that connects each of the “register unit”, “core function unit”, and “bus interface unit” (including connection to an internal RAM in some cases) and provides an external interface as a “logic circuit block” It is.

このように、本願が開示する論理回路設計装置は、ハードウェアとソフトウェアを含むシステム全体を設計する場合でも、論理回路ブロックのレジスタ情報からハードウェアとソフトウェア両方とのソースコードを作成することができる。その結果、従来に比べて、設計者による手作業の工数を削減することができるので、システム全体の設計に必要な工数を削減することが可能である。   As described above, the logic circuit design apparatus disclosed in the present application can create source codes of both hardware and software from the register information of the logic circuit block even when designing the entire system including hardware and software. . As a result, it is possible to reduce the man-hours for manual work by the designer as compared with the prior art, and therefore, the man-hours required for designing the entire system can be reduced.

次に、図1を用いて、実施例1に係る論理回路設計装置の構成について説明する。図1は、実施例1に係る論理回路設計装置の構成を示すブロック図である。   Next, the configuration of the logic circuit design apparatus according to the first embodiment will be described with reference to FIG. FIG. 1 is a block diagram illustrating the configuration of the logic circuit design apparatus according to the first embodiment.

図1に示すように、論理回路設計装置1は、データベースとして、システムメモリマップDB10とバス種別DB11と論理回路レジスタマップ一覧DB12と論理回路レジスタマップ詳細DB13と論理回路割り込み情報DB14と検証種別DB15とを有する。また、論理回路設計装置1は、各種制御を実施する制御部として、ハードウェア記述生成部(システム関連)20と、ハードウェア記述生成部(論理回路関連)21と、ソフトウェア記述生成部22と、検証環境生成部25とを有する。   As shown in FIG. 1, the logic circuit design device 1 includes, as databases, a system memory map DB10, a bus type DB11, a logic circuit register map list DB12, a logic circuit register map details DB13, a logic circuit interrupt information DB14, and a verification type DB15. Have In addition, the logic circuit design apparatus 1 includes a hardware description generation unit (system related) 20, a hardware description generation unit (logic circuit related) 21, a software description generation unit 22, And a verification environment generation unit 25.

[各データベースの説明]
システムメモリマップDB10は、バススレーブ(論理回路ブロック)のブロックごとに空間が分割されたシステムのメモリマップをユーザ(設計者)から受け付けて記憶する。具体的には、システムメモリマップDB10は、システム上の当該バススレーブにアクセス可能とするために、バススレーブ毎に開始アドレスと終了アドレスを記憶する。また、システムメモリマップDB10は、CPUの他にDMA(ダイレクト・メモリ・アクセス)コントローラなどバスマスターとなりうる論理回路ブロックが存在する場合は、当該バスマスターがどのバススレーブにアクセス可能かという情報を記憶する。
[Description of each database]
The system memory map DB 10 receives and stores a memory map of a system in which a space is divided for each block of a bus slave (logic circuit block) from a user (designer). Specifically, the system memory map DB 10 stores a start address and an end address for each bus slave so that the bus slave on the system can be accessed. In addition to the CPU, the system memory map DB 10 stores information on which bus slave the bus master can access when there is a logical circuit block that can be a bus master such as a DMA (direct memory access) controller. To do.

例えば、論理回路設計装置1は、ユーザから論理回路設計要求を受信した場合、図2に示すようなGUI上でメモリマップの基本情報が設定できる画面をディスプレイなどの表示部に出力する。そして、論理回路設計装置1は、図2に示したGUI上で、バススレーブ(Slave)やバスマスター(Master)などの情報をユーザから受け付ける。その結果、システムメモリマップDB10は、図3に示したように、「Slave_name、start_addr、end_addr」として「Slave_0、0000_0000、0001_fffe」や「Slave_1、0002_0000、0003_fffe」などを記憶する。   For example, when receiving a logic circuit design request from a user, the logic circuit design apparatus 1 outputs a screen on which a basic information of a memory map can be set on a GUI as shown in FIG. 2 to a display unit such as a display. Then, the logic circuit design device 1 receives information such as a bus slave (Slave) and a bus master (Master) from the user on the GUI shown in FIG. As a result, the system memory map DB 10 stores “Slave_0, 0000_0000, 0001_fffe”, “Slave_1, 0002_0000, 0003_fffe”, etc. as “Slave_name, start_addr, end_addr” as shown in FIG.

ここで記憶される「Slave_name」は、バススレーブを特定する情報であり、「start_addr」は、バススレーブの開始アドレスであり、「end_addr」は、バススレーブの終了アドレスであり、いずれの情報も図2のGUIによってユーザから指定された情報である。なお、図2は、メモリマップ設定画面例を示す図であり、図3は、システムメモリマップDBに記憶される情報の例を示す図である。   “Slave_name” stored here is information for identifying the bus slave, “start_addr” is the start address of the bus slave, “end_addr” is the end address of the bus slave, and any information is shown in FIG. 2 is information specified by the user using the GUI. 2 is a diagram illustrating an example of a memory map setting screen, and FIG. 3 is a diagram illustrating an example of information stored in the system memory map DB.

また、システムメモリマップDB10は、図2などで指定されたバスマスターの優先度も記憶する。具体的には、論理回路設計装置1は、図2よってメモリマップの基本情報がシステムメモリマップDB10に登録された場合、図4に示すようなバスマスターのアクセス優先度をユーザに設定させる画面を表示し、アクセス優先度の設定をユーザから受け付ける。その結果、システムメモリマップDB10は、図5に示したように、「Slave_name、master_name、priority」として「Slave_0、Master_0、1」や「Slave_0、Master_1、0」、「Slave_0、Master_2、2」などを記憶する。   The system memory map DB 10 also stores the priority of the bus master designated in FIG. Specifically, when the basic information of the memory map is registered in the system memory map DB 10 according to FIG. 2, the logic circuit designing device 1 displays a screen for setting the access priority of the bus master as shown in FIG. Display and accept the access priority setting from the user. As a result, as shown in FIG. 5, the system memory map DB 10 displays “Slave_0, Master_0, 1”, “Slave_0, Master_1, 0”, “Slave_0, Master_2, 2” as “Slave_name, master_name, priority”. Remember.

ここで記憶される「Slave_name」は、バススレーブを特定する情報であり、「master_name」は、バスマスターを特定する情報であり、「priority」は、優先度を示す情報であり、いずれの情報も図4のGUIによってユーザから指定された情報である。なお、図4の「priority」では、「0」が最も優先度が高く、「2」が最も優先度が低い。また、図4は、バスマスターのアクセス優先度を設定する画面例を示す図であり、図5は、システムメモリマップに記憶されるアクセス優先度の例を示す図である。   “Slave_name” stored here is information for identifying a bus slave, “master_name” is information for identifying a bus master, “priority” is information indicating a priority, and any information This is information specified by the user through the GUI shown in FIG. In “priority” in FIG. 4, “0” has the highest priority, and “2” has the lowest priority. 4 is a diagram showing an example of a screen for setting the access priority of the bus master, and FIG. 5 is a diagram showing an example of the access priority stored in the system memory map.

バス種別DB11は、本願ではバスモデルや論理回路ブロックのバスインタフェースを生成するが、その際に使用されるバス種別を記憶する。具体的には、論理回路設計装置1は、図2や図4と同様の手法で、バス種別をGUIでユーザに入力させることが可能であり、例えば、論理回路設計装置1が提供可能なバス種別が提示される単純なドロップダウンリストでユーザに選択させることができる。その結果、バス種別DB11は、図6に示すように、バス種別を特定する「bus_name」として「AMBA AHB」や「AMBA APB」などを記憶する。なお、図6は、バス種別DBに記憶される情報の例を示す図である。   In this application, the bus type DB 11 generates a bus model and a bus interface of a logic circuit block, and stores the bus type used at that time. Specifically, the logic circuit design device 1 can allow the user to input the bus type using a GUI in the same manner as in FIG. 2 or FIG. 4. For example, the logic circuit design device 1 can provide a bus A simple drop-down list in which the type is presented can be selected by the user. As a result, as shown in FIG. 6, the bus type DB 11 stores “AMBA AHB”, “AMBA APB”, and the like as “bus_name” for specifying the bus type. FIG. 6 is a diagram illustrating an example of information stored in the bus type DB.

論理回路レジスタマップ一覧DB12は、論理回路ブロックで使用するレジスタ一覧情報を記憶する。具体的には、論理回路設計装置1は、例えば図7に示すようなGUIを表示部に出力する。そして、論理回路設計装置1は、図7に示したGUI上で、「アドレス、名称、Read/Write、機能、初期値、マッピング先(種別)」などを受け付けることで、図8に示すような情報を作成することができる。その結果、論理回路レジスタマップ一覧DB12は、図9に示すように、「Slave_name、address、reg_name、attribute、function、reset_value、init_value」として「Slave_0、0x0010_0000、TEST、rw0、アクセステスト、0000_0000、−」などと記憶する。   The logic circuit register map list DB 12 stores register list information used in the logic circuit block. Specifically, the logic circuit design device 1 outputs a GUI as shown in FIG. 7 to the display unit, for example. Then, the logic circuit design device 1 accepts “address, name, read / write, function, initial value, mapping destination (type)”, etc. on the GUI shown in FIG. Information can be created. As a result, as shown in FIG. 9, the logic circuit register map list DB 12 has “Slave_name, address, reg_name, attribute, function, reset_value, init_value” as “Slave_0, 0x0010_0000, TEST, rw0, access test, 0000_0000, −”. And remember.

ここで記憶される「Slave_name」は、バススレーブを特定する情報であり、「address」は、レジスタの開始アドレスを示しており、「reg_name」は、ユーザにより指定されたレジスタの名称である。また、「attribute」は、ユーザによって指定されるレジスタ種別であり、例えば、図10に示したレジスタ種別の中から指定されたものを記憶する。また、「function」は、レジスタの機能を示しており、「reset_value」は、ハードウェアによる初期化値を示しており、「init_value」は、デバイスドライバで設定される初期値を示している。上述したいずれの情報も、図7のようなGUIを用いて、ユーザにより入力された情報である。   “Slave_name” stored here is information for identifying the bus slave, “address” indicates the start address of the register, and “reg_name” is the name of the register designated by the user. “Attribute” is a register type specified by the user, and stores, for example, one specified from among the register types shown in FIG. “Function” indicates a register function, “reset_value” indicates an initialization value by hardware, and “init_value” indicates an initial value set by the device driver. Any of the above-described information is information input by the user using the GUI as shown in FIG.

なお、図7は、レジスタ一覧の入力を受け付けるGUIの例を示す図であり、図8は、ユーザにより入力されたレジスタ一覧の例を示す図である。また、図9は、レジスタ種別の例を示す図であり、図10は、論理回路レジスタマップ一覧DBに記憶される情報の例を示す図である。   FIG. 7 is a diagram illustrating an example of a GUI that receives an input of a register list, and FIG. 8 is a diagram illustrating an example of a register list input by a user. FIG. 9 is a diagram illustrating an example of register types, and FIG. 10 is a diagram illustrating an example of information stored in the logic circuit register map list DB.

論理回路レジスタマップ詳細DB13は、論理回路ブロックで使用するレジスタの詳細情報を記憶する。具体的には、論理回路レジスタマップ詳細DB13は、レジスタの情報をbit単位で記憶するものであり、例えば、bit位置、幅、名称、属性などを記憶する。例えば、論理回路設計装置1は、図8に示したレジスタ一覧GUI上でレジスタがクリックされると、図11に示すようなGUIを表示部に出力する。そして、論理回路設計装置1は、図11に示すGUI上で、「bit位置、幅、名称、初期値、Read/Write、機能、操作」などを受け付ける。その結果、論理回路レジスタマップ詳細DB13は、図12に示すように、「Slave_name、address、lsb、width、name、attribute、function、interrupt、reset_value、init_value」として「Slave_0、0x0010_0010、0、1、BUFFEMPTY、rw0、バッファempty、0、0、−」などと記憶する。   The logic circuit register map detail DB 13 stores detailed information of registers used in the logic circuit block. Specifically, the logic circuit register map detail DB 13 stores register information in units of bits, and stores, for example, bit positions, widths, names, attributes, and the like. For example, when the register is clicked on the register list GUI shown in FIG. 8, the logic circuit design device 1 outputs a GUI as shown in FIG. 11 to the display unit. Then, the logic circuit design device 1 accepts “bit position, width, name, initial value, read / write, function, operation” and the like on the GUI shown in FIG. As a result, as shown in FIG. 12, the logic circuit register map detail DB 13 sets “Slave_0, 0x0010_0010, 0, 1, BUFFEMPTY as“ Slave_name, address, lsb, width, name, attribute, function, interrupt, reset_value, init_value ”. , Rw0, buffer empty, 0, 0, − ”and the like.

ここで記憶される「Slave_name」は、バススレーブを特定する情報であり、「address」は、レジスタの開始アドレスを示しており、「lsb」は、最下位のビットを示しており、「width」は、ビット幅を示している。また、「name」は、レジスタの名称であり、「attribute」は、ユーザによって指定されるレジスタ種別であり、「function」は、レジスタの機能を示している。また、「interrupt」は、割込みの有無(例えば、0なら無し)を示しており、「reset_value」は、ハードウェアによる初期化値を示しており、「init_value」は、デバイスドライバで設定される初期値を示している。上述したいずれの情報も、図11のようなGUIを用いて、ユーザにより入力された情報である。   “Slave_name” stored here is information for identifying the bus slave, “address” indicates the start address of the register, “lsb” indicates the least significant bit, and “width” Indicates the bit width. “Name” is the name of the register, “attribute” is the register type specified by the user, and “function” indicates the function of the register. In addition, “interrupt” indicates the presence or absence of an interrupt (for example, if it is 0), “reset_value” indicates an initialization value by hardware, and “init_value” indicates an initial value set by the device driver. The value is shown. Any of the above-described information is information input by the user using a GUI as shown in FIG.

なお、図11は、「アドレス」が「7E10_0044」、「名称」が「MODEB0」、「初期値」が「0000_0000」であるリードライト可能な動作モード設定用レジスタの詳細設定例を示している。また、図11は、レジスタ詳細の入力を受け付けるGUIの例を示す図であり、図12は、論理回路レジスタマップ詳細DBに記憶される情報の例を示す図である。   FIG. 11 shows a detailed setting example of the read / write operation mode setting register whose “address” is “7E10_0044”, “name” is “MODEB0”, and “initial value” is “0000_0000”. FIG. 11 is a diagram illustrating an example of a GUI that receives input of register details, and FIG. 12 is a diagram illustrating an example of information stored in the logic circuit register map detail DB.

論理回路割り込み情報DB14は、論理回路ブロックで使用する割込み情報を記憶する。具体的には、論理回路設計装置1は、図12に示したレジスタ詳細情報から「interrupt」に0以外の数値が設定されている情報を抽出し、その「address」に対応する「reg_name」を図9から抽出して、論理回路割り込み情報DB14に出力する。その結果、論理回路割り込み情報DB14は、図13に示したように、「slave_name、address、regname、type」として「Slave_0、0x0010_0010、ISR、0」などを記憶する。なお、「type=0」は、割り込み要因(割り込みステータス)を示しており、「type=1」は、割り込みイネーブル(割り込みマスク)を示しており、「type=2」は、割り込みクリアを示している。また、図13は、論理回路割り込み情報DBに記憶される情報の例を示す図である。   The logic circuit interrupt information DB 14 stores interrupt information used in the logic circuit block. Specifically, the logic circuit design device 1 extracts information in which a numerical value other than 0 is set in “interrupt” from the detailed register information shown in FIG. 12, and sets “reg_name” corresponding to the “address”. Extracted from FIG. 9 and output to the logic circuit interrupt information DB 14. As a result, as shown in FIG. 13, the logic circuit interrupt information DB 14 stores “Slave_0, 0x0010_0010, ISR, 0” and the like as “slave_name, address, regname, type”. “Type = 0” indicates an interrupt factor (interrupt status), “type = 1” indicates an interrupt enable (interrupt mask), and “type = 2” indicates an interrupt clear. Yes. FIG. 13 is a diagram illustrating an example of information stored in the logic circuit interrupt information DB.

検証種別DB15は、ハードウェアソースコードやソフトウェアソースコードの記述形式を記憶する。具体的には、検証種別DB15は、検証目的に応じて機能検証用に高速動作可能なTL記述、性能検証用にサイクルベースで動作可能でかつ論理合成可能なRTL記述などの種別を記憶する。なお、RTL記述とは、レジスタ転送水準(Register Transfer Level)で記述したソースファイルのことであり、TL記述とは、モジュール間の通信を捉えて機能を記述するトランザクションレベルで記述されたソースファイルである。   The verification type DB 15 stores a description format of hardware source code or software source code. Specifically, the verification type DB 15 stores types such as a TL description that can be operated at high speed for function verification and an RTL description that can be operated on a cycle basis and can be logically synthesized for performance verification. The RTL description is a source file described at a register transfer level, and the TL description is a source file described at a transaction level that describes communication between modules. is there.

[ハードウェア記述生成部(システム関連)20]
ハードウェア記述生成部(システム関連)20は、システム関連のバスモデルのハードウェアソースコード20a、論理回路バスI/F部のハードウェアソースコード20b、簡易割込みコントローラのハードウェアソースコード20cをRTL記述やTL記述で作成する。なお、バスモデルとは、LSI(Large Scale Integration)内部で使用されるオンチップバスのことである。また、バスI/F部(バスインタフェース部)とは、論理回路のバスモデルとレジスタ部との間を論理的に接続するものであり、例えば、バスモデルで指定されたプロトコルを吸収し、レジスタ部に対して統一したインタフェース(プロトコル)を提供する。
[Hardware description generator (system related) 20]
The hardware description generation unit (system-related) 20 RTL describes the hardware source code 20a of the system-related bus model, the hardware source code 20b of the logic circuit bus I / F unit, and the hardware source code 20c of the simple interrupt controller. Or TL description. The bus model is an on-chip bus used inside an LSI (Large Scale Integration). The bus I / F unit (bus interface unit) logically connects the bus model of the logic circuit and the register unit. For example, the bus I / F unit (bus interface unit) absorbs a protocol specified by the bus model and registers Provides a unified interface (protocol) for the department.

ここで、図14を用いて、ハードウェア記述生成部(システム関連)20が雛形ファイル(図16参照)を用いて、バスモデルのハードウェアソースコード20a(図17参照)を作成する処理の流れについて説明する。図14は、バスモデルのRTL記述のハードウェアソースコードを生成する処理の流れを示すフローチャートである。   Here, referring to FIG. 14, the hardware description generator (system-related) 20 uses the template file (see FIG. 16) to create the bus model hardware source code 20a (see FIG. 17). Will be described. FIG. 14 is a flowchart showing a flow of processing for generating a hardware source code of RTL description of a bus model.

図14に示すように、ハードウェア記述生成部(システム関連)20は、ユーザが指定したバス種別をバス種別DB11から読み込んだ後(ステップS101)、ユーザにより格納されたメモリマップをシステムメモリマップDB10から読み込む(ステップS102)。さらに、ハードウェア記述生成部(システム関連)20は、読み込んだバス種別に対応するRTL記述用の雛形ファイルをメモリなどの記憶部から読み出す(ステップS103)。   As shown in FIG. 14, the hardware description generation unit (system-related) 20 reads the bus type specified by the user from the bus type DB 11 (step S101), and then stores the memory map stored by the user in the system memory map DB 10 (Step S102). Further, the hardware description generation unit (system related) 20 reads a template file for RTL description corresponding to the read bus type from a storage unit such as a memory (step S103).

そして、ハードウェア記述生成部(システム関連)20は、読み込んだ雛形ファイルの最終行(EOF)に到達するまで、ステップS105〜ステップS108の処理を実行する(ステップS104)。   Then, the hardware description generation unit (system-related) 20 executes the processing from step S105 to step S108 until the last line (EOF) of the read template file is reached (step S104).

具体的には、ハードウェア記述生成部(システム関連)20は、読み込んだ雛形ファイルからキーワードを検出すると(ステップS105肯定)、検出したキーワードに対応する情報をシステムメモリマップDB10から抽出する(ステップS106)。そして、ハードウェア記述生成部(システム関連)20は、例えば、システムメモリマップDB10に記憶されるバススレーブの数から1を減じるなどloop処理を実施する(ステップS107)。その後、ハードウェア記述生成部(システム関連)20は、抽出した情報を1行出力していくことでバスモデルのハードウェアソースコード20aを作成する(ステップS108)。   Specifically, when the hardware description generation unit (system-related) 20 detects a keyword from the read template file (Yes at Step S105), it extracts information corresponding to the detected keyword from the system memory map DB 10 (Step S106). ). Then, the hardware description generation unit (system-related) 20 performs loop processing such as subtracting 1 from the number of bus slaves stored in the system memory map DB 10 (step S107). After that, the hardware description generation unit (system related) 20 creates the hardware source code 20a of the bus model by outputting one line of the extracted information (step S108).

次に、上述したバスモデルのハードウェアソースコード20aのRTL記述作成処理を例にして具体的に説明する。ハードウェア記述生成部(システム関連)20は、バス種別に応じたバスモデルの雛形ファイルをメモリなどに記憶させておく。そして、ハードウェア記述生成部(システム関連)20は、ソースコード作成を開始すると、バス種別DB11に記憶されるバス種別を取得し、取得したバス種別に対応する雛形ファイル(図15参照)をメモリなどから読み込む。その後、ハードウェア記述生成部(システム関連)20は、システムメモリマップDB10に記憶されるバススレーブ(図3や図5)の数から1を減じた値によって、図15の「__SlaveNum__の部分」を書き換える。上述した手法を実施することで、ハードウェア記述生成部(システム関連)20は、バスモデルのハードウェアソースコード20aを作成することができる。   Next, the RTL description creation process of the hardware source code 20a of the bus model described above will be specifically described. The hardware description generation unit (system related) 20 stores a model file of a bus model corresponding to the bus type in a memory or the like. When the hardware description generation unit (system-related) 20 starts creating the source code, it acquires the bus type stored in the bus type DB 11 and stores the template file (see FIG. 15) corresponding to the acquired bus type. Read from etc. Thereafter, the hardware description generation unit (system-related) 20 uses the value obtained by subtracting 1 from the number of bus slaves (FIGS. 3 and 5) stored in the system memory map DB 10 to indicate “__SlaveNum__” in FIG. Rewrite. By implementing the above-described method, the hardware description generation unit (system-related) 20 can create the hardware source code 20a of the bus model.

上述した雛形ファイルは、図15に示したファイルだけでなく、例えば、図16のようなファイルを用いることもできる。ハードウェア記述生成部(システム関連)20は、図16に示した「__Start__SlaveNum__」と「__End_SlaveNum__」をペアで使用し、この2つのキーワードで囲まれた部分の記述を「__SlaveNum__」の数だけ繰り返す。いわゆる「for-loop文」相当となる。「__SlaveId__」は、上記繰り返し処理中で使用されるいわゆるloop変数に相当する。ハードウェア記述生成部(システム関連)20は、システムメモリマップDB10に記憶されるバススレーブ(図3や図5)から1を減じた値分繰り返し、キーワード(__SlaveId__など)に対応する情報をシステムメモリマップDB10から抽出する。その結果、ハードウェア記述生成部(システム関連)20は、図17に示すようなRTL記述(バスモデルのハードウェアソースコード20a)を作成することができる。また、例えば、ハードウェア記述生成部(システム関連)20は、ファイル名やディレクトリ名をinput_stage.vやoutput_stage.vなどとするハードウェアソースコード20aを作成する。   As the template file described above, not only the file shown in FIG. 15 but also a file as shown in FIG. 16, for example, can be used. The hardware description generation unit (system-related) 20 uses “__Start__SlaveNum__” and “__End_SlaveNum__” shown in FIG. 16 as a pair, and repeats the description surrounded by these two keywords by the number of “__SlaveNum__”. This is equivalent to a so-called “for-loop statement”. “__SlaveId__” corresponds to a so-called loop variable used in the above iterative process. The hardware description generation unit (system related) 20 repeats a value obtained by subtracting 1 from the bus slave (FIGS. 3 and 5) stored in the system memory map DB 10, and stores information corresponding to the keyword (such as __SlaveId__) in the system. Extracted from the memory map DB 10. As a result, the hardware description generation unit (system-related) 20 can create an RTL description (bus model hardware source code 20a) as shown in FIG. Further, for example, the hardware description generation unit (system related) 20 creates a hardware source code 20a having file names and directory names such as input_stage.v and output_stage.v.

上述したようにハードウェア記述生成部(システム関連)20は、図14〜図17を用いて説明した手法で、バスモデルのRTL記述ハードウェアソースコード20aを作成することができる。また、TL記述の雛形ファイルを用意しておき、図14と同様の処理を実行することで、バスモデルのTL記述ハードウェアソースコード20aを作成することができる。さらに、上記ではバスモデルを例として示したが、簡易割り込みコントローラ20c、論理回路ブロックのバスインタフェース部20bついても同様に作成することができる。具体的には、他の部分のRTL記述やTL記述を生成する際にも、それぞれのファイル生成に必要な規則をあらかじめ定めた雛型ファイルを用意しておくことで、生成することができる。   As described above, the hardware description generation unit (system-related) 20 can create the RTL description hardware source code 20a of the bus model by the method described with reference to FIGS. Also, a TL description hardware source code 20a of the bus model can be created by preparing a template file of TL description and executing the same processing as in FIG. Furthermore, although the bus model is shown as an example in the above, the simple interrupt controller 20c and the bus interface unit 20b of the logic circuit block can be similarly created. Specifically, when generating RTL descriptions and TL descriptions of other parts, they can be generated by preparing a template file in which rules necessary for generating each file are prepared in advance.

また、ハードウェア記述生成部(システム関連)20は、簡易割り込みコントローラ20cを生成することもできる。簡易割込みコントローラとは、論理回路ブロックからの割込み通知を受けると当該論理回路ブロック用に生成した割込み処理関数を呼び出し、以降の処理をソフトウェアに渡す処理を行う。一般に、割り込みコントローラは、プロセッサに付属する論理回路ブロックとして提供されるか、あるいはユーザがシステムに合わせて作りこむことが多い。   The hardware description generation unit (system related) 20 can also generate a simple interrupt controller 20c. When a simple interrupt controller receives an interrupt notification from a logic circuit block, it calls an interrupt processing function generated for the logic circuit block, and performs processing for passing the subsequent processing to software. In general, an interrupt controller is often provided as a logic circuit block attached to a processor, or a user often makes it in accordance with a system.

本願では、ソフトウェア/ハードウェア協調検証を早期に実現させるため、簡易割り込みコントローラ20cを自動作成可能としている。ハードウェア記述生成部(システム関連)20は、各論理回路ブロックにおけるレジスタマップで割り込みが設定されると、その情報をもとに割り込みの端子名を推定し、簡易割り込みコントローラ20cのトップモジュールを生成する。具体的には、ハードウェア記述生成部(システム関連)20は、メモリマップ上で複数の論理回路ブロック(Slave_0、Slave_1、Slave_2)が定義された場合、図12および図13で示された各論理回路ブロックの割込み情報を抽出する。そして、ハードウェア記述生成部(システム関連)20は、抽出した情報を簡易割り込みコントローラ20cのレジスタマップとして図18のようなデータ構造を生成し、データベースに格納する。ここで、簡易割り込みコントローラ20cが自身に対して割り込みを通知することはないため、「interrupt」の欄は空白で構わない。図18は、簡易割り込みコントローラのレジスタマップを示す図である。   In the present application, the simple interrupt controller 20c can be automatically created in order to realize software / hardware cooperative verification at an early stage. When an interrupt is set in the register map in each logic circuit block, the hardware description generation unit (system-related) 20 estimates the terminal name of the interrupt based on the information and generates the top module of the simple interrupt controller 20c. To do. Specifically, the hardware description generation unit (system-related) 20 performs the logic shown in FIGS. 12 and 13 when a plurality of logical circuit blocks (Slave_0, Slave_1, and Slave_2) are defined on the memory map. Extracts circuit block interrupt information. Then, the hardware description generation unit (system related) 20 generates a data structure as shown in FIG. 18 using the extracted information as a register map of the simple interrupt controller 20c, and stores it in the database. Here, since the simple interrupt controller 20c does not notify itself of an interrupt, the “interrupt” field may be left blank. FIG. 18 is a diagram showing a register map of the simple interrupt controller.

[ハードウェア記述生成部(論理回路関連)21]
図1に戻り、ハードウェア記述生成部(論理回路関連)21は、論理回路関連のハードウェアソースコードの自動生成を実行する。具体的には、ハードウェア記述生成部(論理回路関連)21は、論理回路レジスタ部のハードウェアソースコード21a、論理回路コア機能ブロックのハードウェアソースコード雛形21bをRTL記述やTL記述で作成する。また、ハードウェア記述生成部(論理回路関連)21は、論理回路トップモジュールのハードウェアソースコード雛形21cをRTL記述やTL記述で作成する。
[Hardware description generator (logic circuit related) 21]
Returning to FIG. 1, the hardware description generation unit (logic circuit related) 21 executes automatic generation of logic circuit related hardware source code. Specifically, the hardware description generation unit (logic circuit related) 21 creates the hardware source code 21a of the logic circuit register unit and the hardware source code template 21b of the logic circuit core functional block by RTL description or TL description. . In addition, the hardware description generation unit (logic circuit related) 21 creates a hardware source code template 21c of the logic circuit top module with an RTL description or a TL description.

なお、具体的な処理手順は、上述したハードウェア記述生成部(システム関連)20と同じフローで作成することができるので、詳細な説明は省略する。簡単に説明すると、ハードウェア記述生成部(論理回路関連)21は、論理回路レジスタマップ一覧DB12(図9)、論理回路レジスタマップ詳細DB13(図12)、論理回路割り込み情報DB14(図13)に記憶される情報を読み込む。また、ハードウェア記述生成部(論理回路関連)21は、作成対象となるハードウェアソースコード21a〜21cそれぞれの雛形ファイルをメモリなどから読み込み、雛形ファイルと各DBの情報を用いて、図17と同様のフローを実施する。その結果、ハードウェア記述生成部(論理回路関連)21は、ハードウェアソースコード21a〜21cをRTL記述やTL記述で作成することができる。   Note that a specific processing procedure can be created in the same flow as the hardware description generation unit (system-related) 20 described above, and detailed description thereof will be omitted. Briefly, the hardware description generation unit (logic circuit related) 21 stores the logic circuit register map list DB 12 (FIG. 9), the logic circuit register map details DB 13 (FIG. 12), and the logic circuit interrupt information DB 14 (FIG. 13). Read stored information. In addition, the hardware description generation unit (logic circuit related) 21 reads a template file of each of the hardware source codes 21a to 21c to be created from a memory or the like, and uses the template file and information of each DB, as shown in FIG. A similar flow is performed. As a result, the hardware description generation unit (logic circuit related) 21 can create the hardware source code 21a to 21c by RTL description or TL description.

[ソフトウェア記述生成部22]
ソフトウェア記述生成部22は、論理回路の割り込み処理関数の雛形22aや初期化関数の雛形22bの自動生成を論理回路ブロックごとに実行する。本来、割込み処理関数(一般に、割り込みハンドラなどと呼ばれる)は、OS(オペレーティング・システム)やCPU(中央処理装置)に強く依存するため、汎用的なものを作ることは困難である。また、割込み処理とは現在実行中の処理を止めて「割り込」んでまで処理しなければならない性質のものなので、割込み処理関数は処理速度優先な実装になることが多い。
[Software description generator 22]
The software description generating unit 22 executes automatic generation of a logic circuit interrupt processing function template 22a and an initialization function template 22b for each logic circuit block. Originally, an interrupt processing function (generally called an interrupt handler or the like) strongly depends on an OS (operating system) and a CPU (central processing unit), so it is difficult to make a general purpose one. In addition, since interrupt processing is a property that requires processing to be stopped until processing that is currently being executed is interrupted, interrupt processing functions are often implemented with priority given to processing speed.

そこで、ソフトウェア記述生成部22が生成する割り込み処理関数の雛形22aや初期化関数の雛形22bは、ソフトウェア/ハードウェア協調検証や論理回路ブロックの論理検証用に使用するのを主な目的としている。すなわち、処理速度よりも検証の容易性や保守性に重きを置いているため、関数を多段構成としている。生成された割込み処理関数をデバイドドライバ(割り込みハンドラ)開発に流用するためには、処理速度を改善させるために多段構成になっている部分を一つの関数内に集約させるなどの変更を行えばよい。   Therefore, the interrupt processing function template 22a and the initialization function template 22b generated by the software description generation unit 22 are mainly used for software / hardware cooperative verification and logic circuit block logic verification. That is, since the emphasis is on ease of verification and maintainability rather than processing speed, the function has a multi-stage configuration. In order to divert the generated interrupt processing function to the development of the divide driver (interrupt handler), it is only necessary to make changes such as consolidating the multi-stage parts into one function in order to improve the processing speed. .

(割り込み処理関数の雛形22aの生成)
具体的には、ソフトウェア記述生成部22は、図9と図13に示した情報をもとに、図21に示す各種定義情報をC言語で生成する。例えば、割込み関連の情報が図19−1及び図19−2に示す値で与えられた場合で説明する。この場合、ソフトウェア記述生成部22は、システムメモリマップDB10と論理回路レジスタマップ一覧DB12と論理回路レジスタマップ詳細DB13と論理回路割込み情報DB14のそれぞれから情報を取得する。そして、ソフトウェア記述生成部22は、各DBから取得した情報をもとに、ソフトウェアソースコードで使用する各種定義情報を記述したソースコード(図20参照)を生成する。なお、図19−1は、論理回路レジスタマップ詳細DBに記憶される情報の例を示す図であり、図19−2は、論理回路割り込みDBに記憶される情報の例を示す図である。また、図20は、割込み処理関数生成に必要な部分を抜粋した定義ファイルを示す図である。
(Generation of the interrupt processing function template 22a)
Specifically, the software description generation unit 22 generates various definition information shown in FIG. 21 in C language based on the information shown in FIG. 9 and FIG. For example, the case where the interrupt-related information is given by the values shown in FIGS. 19A and 19B will be described. In this case, the software description generation unit 22 acquires information from each of the system memory map DB10, the logic circuit register map list DB12, the logic circuit register map details DB13, and the logic circuit interrupt information DB14. And the software description production | generation part 22 produces | generates the source code (refer FIG. 20) which described the various definition information used with a software source code based on the information acquired from each DB. 19A is a diagram illustrating an example of information stored in the logic circuit register map detail DB, and FIG. 19B is a diagram illustrating an example of information stored in the logic circuit interrupt DB. FIG. 20 is a diagram illustrating a definition file in which portions necessary for generating an interrupt processing function are extracted.

また、割込み処理関数を多段構成で生成する場合の例を図21に示す。この場合、まず簡易割り込みコントローラから割込み処理のエントリ関数である「irq_hdlr()」を呼び出す。「irq_hdlr()」は、図22に示すように簡易割り込みコントローラのレジスタを読み出し、図18に従ってどの論理回路ブロックから割り込みが発生しているのかを判定する。そして、当該論理回路ブロックの割込み処理関数を呼び出す。図22のエントリ関数「irq_hdlr()」から呼び出される各論理回路ブロックの割込み処理関数のイメージを図23に示す。この関数は、当該論理回路ブロック内でどの割込み要因が発生しているのかを判定し、該当する割込み要因に応じた割込み処理関数を呼び出す。   FIG. 21 shows an example in which an interrupt processing function is generated in a multistage configuration. In this case, first, “irq_hdlr ()” that is an entry function for interrupt processing is called from the simple interrupt controller. “Irq_hdlr ()” reads the register of the simple interrupt controller as shown in FIG. 22, and determines from which logic circuit block the interrupt is generated according to FIG. Then, the interrupt processing function of the logic circuit block is called. FIG. 23 shows an image of the interrupt processing function of each logic circuit block called from the entry function “irq_hdlr ()” of FIG. This function determines which interrupt factor is occurring in the logic circuit block and calls an interrupt processing function corresponding to the corresponding interrupt factor.

次に、図23の各論理回路ブロックの割込み処理関数から呼び出される割込み処理関数の実態のイメージを図24に示す。この関数は、当該割込み要因に応じた処理を行う関数となる。   Next, FIG. 24 shows an image of the actual state of the interrupt processing function called from the interrupt processing function of each logic circuit block of FIG. This function is a function that performs processing according to the interrupt factor.

以上のように、ソフトウェア記述生成部22は、図21に示した構造の関数群をメモリマップやレジスタマップや割込み情報から生成することができる。なお、図24の割込み処理関数の実態において関数本文は、その割り込みの動作仕様に沿って実装される必要があるが、この動作仕様は当該論理回路ブロックの設計者にしかわからない。このため、ファイル生成後に割込み処理内容本体を追加で実装することができる。なお、図20の定義名や図21〜図24における太字部分については、メモリマップやレジスタマップなどから抽出されたものである。したがって、ソフトウェア記述生成部22は、太字以外の部分を雛型ファイルとしてあらかじめ準備して必要なキーワードを設定しておき、抽出したデータをもとに図20から図21〜図24に示したファイルを生成していく。   As described above, the software description generation unit 22 can generate a function group having the structure shown in FIG. 21 from a memory map, a register map, and interrupt information. In the actual state of the interrupt processing function of FIG. 24, the function text needs to be implemented in accordance with the operation specification of the interrupt, but this operation specification is known only to the designer of the logic circuit block. For this reason, an interrupt processing content body can be additionally implemented after the file is generated. The definition names in FIG. 20 and the bold portions in FIGS. 21 to 24 are extracted from the memory map, the register map, and the like. Therefore, the software description generation unit 22 prepares a part other than bold as a template file in advance and sets necessary keywords, and the files shown in FIGS. 20 to 21 to 24 based on the extracted data. Will be generated.

なお、図21は、割込み処理関数を多段構成で生成する場合の例を示す図であり、図22は、割り込み処理のエントリ関数の生成例を示した図である。また、図23は、論理回路ブロック単位の割り込み処理関数の例を示す図であり、図24は、生成される割り込み処理関数の実態を示した図である。   FIG. 21 is a diagram illustrating an example in which an interrupt processing function is generated in a multistage configuration, and FIG. 22 is a diagram illustrating a generation example of an entry function for interrupt processing. FIG. 23 is a diagram illustrating an example of an interrupt processing function in units of logic circuit blocks, and FIG. 24 is a diagram illustrating an actual state of a generated interrupt processing function.

(初期化関数の雛形22bの生成)
次に、初期化関数の雛形22bの生成について説明する。ここでは、まず、図25を用いて、ソフトウェア記述生成部22による初期化関数生成処理の流れについて説明する。図25は、ソフトウェア記述生成部22による初期化関数生成処理の流れを示すフローチャートである。
(Generation of initialization function template 22b)
Next, the generation of the initialization function template 22b will be described. Here, first, the flow of initialization function generation processing by the software description generation unit 22 will be described with reference to FIG. FIG. 25 is a flowchart showing a flow of initialization function generation processing by the software description generation unit 22.

図25に示すように、ソフトウェア記述生成部22は、論理回路レジスタマップ一覧DB12に記憶される情報を1行読み込み(ステップS201)、読み込んだ行が最終行(EOF)か否かを判定する(ステップS202)。そして、ソフトウェア記述生成部22は、読み込んだ1行の「init_value」に値が設定されている(初期化設定情報が有効である)場合(ステップS203肯定)、上述した初期化処理を生成してファイルに出力する(ステップS204とステップS205)。なお、ソフトウェア記述生成部22は、初期化設定情報が有効でない場合(ステップS203否定)、次の行を読み込んでステップS202以降の処理を実行する。また、ソフトウェア記述生成部22は、読み込んだ行が最終行である場合(ステップS202肯定)、処理を終了する。   As shown in FIG. 25, the software description generation unit 22 reads one line of information stored in the logic circuit register map list DB 12 (step S201), and determines whether or not the read line is the last line (EOF) ( Step S202). Then, when a value is set in “init_value” of the read one line (initialization setting information is valid) (Yes in step S203), the software description generation unit 22 generates the initialization process described above. Output to a file (steps S204 and S205). If the initialization setting information is not valid (No at Step S203), the software description generation unit 22 reads the next line and executes the processes after Step S202. If the read line is the last line (Yes at Step S202), the software description generating unit 22 ends the process.

次に、図25に示した処理の流れを具体的に説明する。ソフトウェア記述生成部22は、システムメモリマップDB10と論理回路レジスタマップ一覧DB12と論理回路レジスタマップ詳細DB13のそれぞれから情報を取得する。そして、ソフトウェア記述生成部22は、各DBから取得した情報をもとに、初期化関数の雛形22bを生成する。例えば、図26のアドレス「0x0011_0014」のレジスタIERのように、「init_value」欄に何らかの値が設定されているものが処理対象となり、「init_value」欄に設定されている値が初期化関数内で当該論理回路ブロックのレジスタに設定される値となる。   Next, the process flow shown in FIG. 25 will be described in detail. The software description generation unit 22 acquires information from each of the system memory map DB 10, the logic circuit register map list DB 12, and the logic circuit register map details DB 13. Then, the software description generation unit 22 generates a template 22b of the initialization function based on the information acquired from each DB. For example, like the register IER of the address “0x0011_0014” in FIG. 26, a value set in the “init_value” column is a processing target, and the value set in the “init_value” column is set in the initialization function. This value is set in the register of the logic circuit block.

そして、ソフトウェア記述生成部22は、図20と同様に、初期化関数生成に必要なファイル(図27)を生成する。そして、ソフトウェア記述生成部22は、図27の情報を元に、図28のようなソースコードを生成する。割込み処理関数の生成と同じように、図28における太字部分は、メモリマップやレジスタマップなどから抽出されたものである。したがって、ソフトウェア記述生成部22は、太字以外の部分を雛型ファイルとしてあらかじめ準備して必要なキーワードを設定しておき、抽出したデータをもとに図28に示したファイルを生成していく。また、例えば、ソフトウェア記述生成部22は、ファイル名やディレクトリ名をinit_*.hやinit_*.c(*には論理回路ブロックなどの名称が入る)などとする初期化関数の雛形22bを作成する。   And the software description production | generation part 22 produces | generates a file (FIG. 27) required for initialization function production | generation similarly to FIG. And the software description production | generation part 22 produces | generates a source code like FIG. 28 based on the information of FIG. As in the generation of the interrupt processing function, the bold portion in FIG. 28 is extracted from a memory map, a register map, or the like. Therefore, the software description generation unit 22 prepares parts other than bold as template files in advance and sets necessary keywords, and generates the file shown in FIG. 28 based on the extracted data. In addition, for example, the software description generation unit 22 creates a template 22b of an initialization function with file names and directory names such as init _ *. H and init _ *. C (* is the name of a logic circuit block or the like). To do.

なお、図26は、初期化関数の生成イメージを例示した図であり、図27は、初期化関数生成に必要な部分を抜粋した定義ファイルを示す図であり、図28は、生成される初期化関数の例を示した図である。   26 is a diagram illustrating an image of generating an initialization function, FIG. 27 is a diagram illustrating a definition file excerpted from a portion necessary for generating an initialization function, and FIG. It is the figure which showed the example of the optimization function.

[検証環境生成部25]
次に、検証環境生成部25について説明する。検証環境生成部25は、生成部20〜22によって生成されたソースコードの情報を解析して、検証環境(機能検証、性能検証)を構築する。また、検証環境生成部25は、検証目的に応じて機能検証用の環境と性能検証用の環境を必要に応じて生成する。
[Verification environment generation unit 25]
Next, the verification environment generation unit 25 will be described. The verification environment generation unit 25 analyzes the information of the source code generated by the generation units 20 to 22 and constructs a verification environment (functional verification, performance verification). In addition, the verification environment generation unit 25 generates an environment for function verification and an environment for performance verification as necessary according to the verification purpose.

具体的には、検証環境生成部25は、ファイル名やディレクトリ名の命名規則やディレクトリの階層構成の規則などを予め定義しておき、その定義した情報に従って、生成部20〜22によって生成されたソースコードから検証環境および検証環境用のファイル構成を作成する。例えば、検証環境生成部25は、ファイル名について、バスインタフェース部の場合には「論理回路ブロック名_bt.v」、レジスタ部の場合には「論理回路ブロック名_rt.v」などと規則性を定義しておく。また、コア機能部の場合には「論理回路ブロック名_core.v」、トップモジュールの場合には「論理回路ブロック名.v」などと規則性を定義しておく。また、例えば、初期化関数雛形については「init_論理回路ブロック名.[ch]」、割り込み処理関数雛形については「irq_論理回路ブロック名.[ch]」、レジスタアクセス確認関数雛形については「reg_rw_論理回路ブロック名.[ch]」などと定義しておく。   Specifically, the verification environment generation unit 25 defines file name and directory name naming rules, directory hierarchy configuration rules, and the like in advance, and is generated by the generation units 20 to 22 according to the defined information. Create verification environment and verification environment file configuration from source code. For example, the verification environment generation unit 25 uses a rule such as “logic circuit block name_bt.v” for the bus interface unit and “logic circuit block name_rt.v” for the register unit. Define gender. Also, the regularity is defined as “logic circuit block name_core.v” in the case of the core function unit and “logic circuit block name.v” in the case of the top module. Also, for example, “init_logic circuit block name. [Ch]” for the initialization function template, “irq_logic circuit block name. [Ch]” for the interrupt processing function template, and “ It is defined as “reg_rw_logical circuit block name. [ch]” or the like.

上述した規則性に従って、検証環境生成部25が作成した検証用ファイルの例を図29〜図34に示す。図29は、擬似CPU(Central Processing Unit)及び割り込みコントローラ関係のファイル群を示す図であり、図30は、バスモデル及びユーザロジック関係のファイル群を示す図であり、図31は、論理回路ブロック関係のファイル群を示す図である。また、図32は、テストベンチ関係のファイル群を示す図である。また、図33は、論理検証トップ及びデバイスドライバ関係のファイル群を示す図であり、図34は、論理検証用テストプログラム及び論理検証関係ファイル群を示す図である。   Examples of verification files created by the verification environment generation unit 25 in accordance with the regularity described above are shown in FIGS. FIG. 29 is a diagram illustrating a file group related to a pseudo CPU (Central Processing Unit) and an interrupt controller, FIG. 30 is a diagram illustrating a file group related to a bus model and a user logic, and FIG. It is a figure which shows the related file group. FIG. 32 shows a file group related to the test bench. FIG. 33 is a diagram showing a logical verification top and device driver related file group, and FIG. 34 is a logical verification test program and logical verification related file group.

[論理回路設計装置による処理の流れ]
次に、図35を用いて、実施例1に係る論理回路設計装置による全体的な処理の流れを説明する。図35は、実施例1に係る論理回路設計装置による全体的な処理の流れを示すフローチャートである。
[Flow of processing by logic circuit design equipment]
Next, the overall processing flow of the logic circuit design apparatus according to the first embodiment will be described with reference to FIG. FIG. 35 is a flowchart illustrating an overall processing flow performed by the logic circuit design device according to the first embodiment.

図35に示すように、論理回路設計装置1は、各データベースからレジスタマップやメモリマップを読み込むと(ステップS301肯定)、読み込んだ情報に従って、システム構成を解析し(ステップS302)、論理回路構成を解析する(ステップS303)。なお、このとき使用するバス種別の情報も取得する。   As shown in FIG. 35, when the logic circuit design device 1 reads a register map or a memory map from each database (Yes at step S301), the logic circuit design device 1 analyzes the system configuration according to the read information (step S302). Analysis is performed (step S303). Information on the bus type used at this time is also acquired.

続いて、論理回路設計装置1は、取得したバス種別に対応するものであって、作成対象となるハードウェアやソフトウェアのソースコードの雛形を読み込む(ステップS304)。そして、論理回路設計装置1は、読み込んだ雛形に指定されたキーワードと読み込んだレジスタマップやメモリマップに記憶される情報に基づいて、各種ソースコード又はソースコード雛形を作成する(ステップS305)。さらに、論理回路設計装置1は、作成したソースコード又はソースコード雛形と、予め指定された規則性とに基づいて、検証環境を作成する(ステップS306)。   Subsequently, the logic circuit design device 1 corresponds to the acquired bus type, and reads a source code template of hardware or software to be created (step S304). Then, the logic circuit design device 1 creates various source codes or source code templates based on the keywords specified in the read template and the information stored in the read register map or memory map (step S305). Further, the logic circuit design device 1 creates a verification environment based on the created source code or source code template and the regularity specified in advance (step S306).

上述した処理を実行することで、論理回路設計装置1は、図36に示すようなシステムを生成することができる。つまり、論理回路設計装置1は、ハードウェア記述生成部(システム関連)20やハードウェア記述生成部(論理回路関連)21によって、論理回路ブロック(論理回路A〜論理回路C)を作成することができる。さらに、論理回路設計装置1は、ハードウェア記述生成部(システム関連)20やハードウェア記述生成部(論理回路関連)21によって、バスドライバ、割り込みコントローラを生成することができる。また、論理回路設計装置1は、ソフトウェア記述生成部22によって、初期化処理関数雛形や割り込み処理関数雛形を生成することができる。図36は、最終的に生成されるシステムの構成を示す図である。   By executing the processing described above, the logic circuit design device 1 can generate a system as shown in FIG. That is, the logic circuit design device 1 can create a logic circuit block (logic circuit A to logic circuit C) by the hardware description generation unit (system related) 20 and the hardware description generation unit (logic circuit related) 21. it can. Furthermore, the logic circuit design device 1 can generate a bus driver and an interrupt controller by the hardware description generation unit (system related) 20 and the hardware description generation unit (logic circuit related) 21. Further, the logic circuit design device 1 can generate an initialization processing function template and an interrupt processing function template by the software description generation unit 22. FIG. 36 is a diagram illustrating a configuration of a system finally generated.

[実施例1による効果]
このように、実施例1によれば、ハードウェアとソフトウェアを含むシステム全体を設計する場合でも、論理回路ブロックのレジスタ情報からハードウェアとソフトウェア両方のソースコードを作成することができる。その結果、従来に比べて、設計者による手作業の工数を削減することができるので、システム全体の設計に必要な工数を削減することが可能である。
[Effects of Example 1]
Thus, according to the first embodiment, both hardware and software source codes can be created from the register information of the logic circuit block even when designing the entire system including hardware and software. As a result, it is possible to reduce the man-hours for manual work by the designer as compared with the prior art, and therefore, the man-hours required for designing the entire system can be reduced.

また、実施例1によれば、TL記述とRTL記述のいずれかあるいは両方を選択して生成可能としたため、システムレベルの検証、すなわちソフトウェア/ハードウェアの協調検証が高速にできるようになる。   Further, according to the first embodiment, since either or both of the TL description and the RTL description can be selected and generated, system-level verification, that is, software / hardware cooperative verification can be performed at high speed.

また、実施例1によれば、レジスタへの順次アクセス以外に初期化処理や割込み処理まで考慮しており、さらにこれらの処理毎に生成するファイル(関数)を分けているため、生成したファイルを容易にデバイスドライバ等のソフトウェア開発に流用することが可能となる。   In addition, according to the first embodiment, the initialization process and the interrupt process are considered in addition to the sequential access to the registers, and the generated files (functions) are divided for each of these processes. It can be easily used for developing software such as device drivers.

また、実施例1によれば、システムのメモリマップ、当該論理回路ブロックのレジスタマップ、割り込み情報が準備できると、当該論理回路ブロックのコア機能以外の論理部分がすべて本願開示の装置で生成されるため、論理回路ブロックの開発工数が劇的に短縮できる。   Further, according to the first embodiment, when the system memory map, the register map of the logical circuit block, and the interrupt information are prepared, all logical parts other than the core function of the logical circuit block are generated by the apparatus disclosed in the present application. Therefore, the development man-hour for the logic circuit block can be dramatically reduced.

また、実施例1によれば、システムのメモリマップ、当該論理回路ブロックのレジスタマップ、割り込み情報が準備できる。その結果、当該論理回路ブロックのコア機能以外の論理部分以外がすべて本願開示の装置で生成されるため、コア機能以外の論理回路の品質を一定程度に保証することが可能となる。   Further, according to the first embodiment, a system memory map, a register map of the logical circuit block, and interrupt information can be prepared. As a result, all of the logic parts other than the core function of the logic circuit block are generated by the device disclosed in the present application, so that the quality of the logic circuit other than the core function can be guaranteed to a certain degree.

また、実施例1によれば、システムのメモリマップ、当該論理回路ブロックのレジスタマップ、割り込み情報が準備できる。その結果、当該論理回路ブロックを制御するために必要な初期化処理の割り込み処理やレジスタアクセスなどデバイスドライバ用の雛形ファイルが本願開示の装置で生成されるため、デバイスドライバの開発工数の大幅な短縮が実現できる。   Further, according to the first embodiment, a system memory map, a register map of the logical circuit block, and interrupt information can be prepared. As a result, a template file for device drivers such as initialization processing interrupt processing and register access necessary to control the logic circuit block is generated by the device disclosed in this application. Can be realized.

また、実施例1によれば、システムのソフトウェア/ハードウェア協調検証に開発の早い段階から着手することが可能となる。また、ファイルを自動生成する際に命名規則に沿ったファイル名にしておくことで、当該論理回路ブロックの検証環境も自動で構築することが可能となる。また、開発の早期から当該論理回路ブロックの論理検証が行えるため、当該論理回路ブロックの品質向上が期待できる。   Further, according to the first embodiment, it is possible to start the software / hardware cooperative verification of the system from an early stage of development. In addition, when the file is automatically generated, the file name conforming to the naming rule is set, so that the verification environment of the logic circuit block can be automatically constructed. Further, since the logic verification of the logic circuit block can be performed from the early stage of development, the quality improvement of the logic circuit block can be expected.

ところで、本願が開示する論理回路設計装置は、用途に応じて、様々な検証環境を自動で生成することができる。そこで、実施例2では、本願が開示する論理回路設計装置で生成できる検証環境の例を説明する。   By the way, the logic circuit design apparatus disclosed in the present application can automatically generate various verification environments in accordance with applications. In the second embodiment, an example of a verification environment that can be generated by the logic circuit design apparatus disclosed in the present application will be described.

(精度検証用検証環境)
例えば、本願が開示する論理回路設計装置は、図37に示すような精度検証用検証環境を作成することができる。具体的には、論理回路設計装置は、論理合成可能で精度検証に適しているRTL記述で生成されたソースコード等を用いることで、精度検証用の検証環境を作成することができる。この場合、DMAコントローラ(Direct Memory Access controller)は既存のIPマクロを使用することができ、初期化処理関数の雛形および割り込み処理関数の雛形はテストデータ(テストドライバ)として用いられる。このような検証環境を作成することで、レジスタのRead/Writeを一通り検証することができ、バスの動作やレジスタ部までの動作確認ができる。図37は、精度検証用検証環境の構成例を示す図である。
(Verification environment for accuracy verification)
For example, the logic circuit design apparatus disclosed in the present application can create a verification environment for accuracy verification as shown in FIG. Specifically, the logic circuit design apparatus can create a verification environment for accuracy verification by using a source code or the like generated by RTL description that can be logically synthesized and is suitable for accuracy verification. In this case, the DMA controller (Direct Memory Access controller) can use an existing IP macro, and the initialization processing function template and the interrupt processing function template are used as test data (test driver). By creating such a verification environment, it is possible to verify all the register read / write operations, and to confirm the bus operation and the operation up to the register unit. FIG. 37 is a diagram illustrating a configuration example of a verification environment for accuracy verification.

(機能検証用検証環境)
また、本願が開示する論理回路設計装置は、図38に示すような機能検証用検証環境を作成することができる。具体的には、論理回路設計装置は、高速に動作可能で機能検証に適しているTL記述で生成されたソースコード等を用いることで、機能検証用の検証環境を作成することができる。この場合、DMAコントローラは既存のIPマクロを使用することができ、初期化処理関数の雛形および割り込み処理関数の雛形はテストデータ(テストドライバ)として用いられる。このような検証環境を作成することで、作成されたソースコード等を用いて生成したシステムが正常に動作するかを高速に検証できる。図38は、機能検証用検証環境の構成例を示す図である。
(Verification environment for functional verification)
Further, the logic circuit design apparatus disclosed in the present application can create a verification environment for function verification as shown in FIG. Specifically, the logic circuit design device can create a verification environment for function verification by using source code generated with a TL description that can operate at high speed and is suitable for function verification. In this case, the DMA controller can use an existing IP macro, and the initialization processing function template and the interrupt processing function template are used as test data (test driver). By creating such a verification environment, it is possible to verify at high speed whether the system generated using the generated source code or the like operates normally. FIG. 38 is a diagram illustrating a configuration example of a verification environment for function verification.

(単体用検証環境)
また、本願が開示する論理回路設計装置は、図39に示すような単体用検証環境を作成することができる。このような検証環境を作成することで、作成されたソースコード等を用いて生成した論理回路ブロック単位で検証することができる。その結果、不具合の原因特定をシステム構築の早い段階で検出することができる。図39は、単体用検証環境の構成例を示す図である。
(Single unit verification environment)
Further, the logic circuit design apparatus disclosed in the present application can create a single-use verification environment as shown in FIG. By creating such a verification environment, verification can be performed in units of logic circuit blocks generated using the generated source code or the like. As a result, the cause of the malfunction can be detected at an early stage of system construction. FIG. 39 is a diagram illustrating a configuration example of a single-use verification environment.

さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、(1)GUI、(2)雛形ファイル、(3)ハードウェアソースコード、(4)システム構成等、(5)プログラムにそれぞれ区分けして異なる実施例を説明する。   Although the embodiments of the present invention have been described so far, the present invention may be implemented in various different forms other than the embodiments described above. Therefore, as shown below, (1) GUI, (2) template file, (3) hardware source code, (4) system configuration, etc., (5) programs are divided into different embodiments, and different embodiments will be described.

(1)GUI
例えば、実施例1では、GUIを用いてメモリマップ等の情報をユーザから受け付けて各データベースに登録するようにした。ところが、本願は、GUIでなくとも、例えば、XML(eXtensible Markup Language)やCSV(Comma Separated Value)、YAML(YAML Ain't a Markup Language)などのテキストファイルを用いることもできる。
(1) GUI
For example, in the first embodiment, information such as a memory map is received from a user using a GUI and registered in each database. However, in the present application, a text file such as XML (eXtensible Markup Language), CSV (Comma Separated Value), YAML (YAML Ain't a Markup Language), or the like can be used without using the GUI.

(2)雛形ファイル
例えば、実施例1では、雛形ファイルを用意しておき、雛形ファイルとメモリマップやレジスタマップの情報とに基づいて、ソースコード等を生成する例について説明した。本願は雛形ファイルが必ずしも必要ではなく、メモリマップやレジスタマップの情報に基づいて、ソースコード等を生成することもできる。
(2) Template File For example, in the first embodiment, an example in which a template file is prepared and source code and the like are generated based on the template file and information on the memory map and the register map has been described. In the present application, a template file is not necessarily required, and source code or the like can be generated based on information of a memory map or a register map.

(3)ハードウェアソースコード
例えば、本願が開示する論理回路設計装置は、ハードウェアソースコードをHDLで作成することもでき、HDL以外のハードウェア記述言語でも作成することができる。
(3) Hardware source code For example, in the logic circuit design apparatus disclosed in the present application, the hardware source code can be created in HDL, or in a hardware description language other than HDL.

(4)システム構成等
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(4) System configuration etc. In addition, among the processes described in the present embodiment, all or part of the processes described as being automatically performed can be manually performed or manually performed. All or a part of the processing described as a thing can also be automatically performed by a known method. In addition, the processing procedure, control procedure, specific name, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.

また、図示した各装置の各構成要素は、一例に過ぎず、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。   Each component of each device illustrated is only an example and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. Further, all or any part of each processing function performed in each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.

(5)プログラム
なお、本実施例で説明した論理回路設計方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVD、フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
(5) Program The logic circuit design method described in the present embodiment can be realized by executing a prepared program on a computer such as a personal computer or a workstation. This program can be distributed via a network such as the Internet. The program may be recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM, an MO, a DVD, or a flash memory, and executed by being read from the recording medium by the computer. it can.

以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。   The following supplementary notes are further disclosed with respect to the embodiments including the above examples.

(付記1)入力された論理回路ブロックのレジスタ情報を解析して論理回路の構成情報を取得するレジスタ解析手段と、
前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路のレジスタ部と、前記論理回路のコア機能部の雛形と、前記レジスタ部とコア機能部とを包含するトップモジュールの雛形とのそれぞれについて、ハードウェアソースコードを生成するハードウェア記述生成手段と、
前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成するソフトウェア記述生成手段と、
を有することを特徴とする論理回路設計装置。
(Supplementary note 1) Register analysis means for analyzing register information of an input logic circuit block and acquiring configuration information of the logic circuit;
A top module including a register unit of the logical circuit, a model of a core function unit of the logic circuit, and the register unit and the core function unit based on configuration information of the logic circuit acquired by the register analyzing unit Hardware description generation means for generating hardware source code for each of the templates,
Based on the configuration information of the logic circuit acquired by the register analyzing means, software description generating means for generating software source code for a model of the device driver function for initialization of the logical circuit,
A logic circuit design apparatus comprising:

(付記2)前記ハードウェア記述生成手段は、前記レジスタ解析手段によって取得された論理回路の構成情報を用いて、前記ハードウェアソースコードそれぞれの雛形を書き換えることで、前記ハードウェアソースコードを生成し、
前記ソフトウェア記述生成手段は、前記レジスタ解析手段によって取得された論理回路の構成情報を用いて、前記ソフトウェアソースコードの雛形を書き換えることで、前記ソフトウェアソースコードを生成することを特徴とする付記1に記載の論理回路設計装置。
(Supplementary Note 2) The hardware description generation unit generates the hardware source code by rewriting the model of each hardware source code using the configuration information of the logic circuit acquired by the register analysis unit. ,
The software description generation unit generates the software source code by rewriting a model of the software source code using the configuration information of the logic circuit acquired by the register analysis unit. The logic circuit design device described.

(付記3)ソフトウェアとハードウェアとを有するシステムのメモリマップを受け付けて、受け付けたメモリマップを解析し、前記システムの構成情報を取得するメモリ解析手段をさらに有し、
前記ハードウェア記述生成手段は、前記メモリ解析手段によって取得されたシステムの構成情報に基づいて、前記システムのバスモデルと、前記論理回路のバスインタフェースとのそれぞれについて、前記ハードウェアソースコードを生成することを特徴とする付記1または2に記載の論理回路設計装置。
(Additional remark 3) It further has a memory analysis means for receiving a memory map of a system having software and hardware, analyzing the received memory map, and acquiring configuration information of the system,
The hardware description generation unit generates the hardware source code for each of the system bus model and the logic circuit bus interface based on the system configuration information acquired by the memory analysis unit. The logic circuit design device according to appendix 1 or 2, characterized in that:

(付記4)前記ハードウェア記述生成手段は、論理検証が可能なトランザクションレベル記述と論理合成可能でクロックベースの検証が可能なレジスタトランスファレベル記述の少なくとも一方の形式で、前記ハードウェアソースコードを生成することを特徴とする付記1に記載の論理回路設計装置。 (Supplementary Note 4) The hardware description generation means generates the hardware source code in at least one of a transaction level description capable of logic verification and a register transfer level description capable of logic synthesis and capable of clock-based verification. The logic circuit design device according to appendix 1, wherein:

(付記5)前記レジスタ解析手段は、前記論理回路ブロックの割り込み情報をさらに取得し、
前記ハードウェア記述生成手段は、前記レジスタ解析手段に取得された割り込み情報を用いて、割り込みコントローラを生成し、
前記ソフトウェア記述生成手段は、前記レジスタ解析手段に取得された割り込み情報を用いて、割り込み処理関数の雛形を生成することを特徴とする付記1に記載の論理回路設計装置。
(Supplementary Note 5) The register analyzing means further acquires interrupt information of the logic circuit block,
The hardware description generation unit generates an interrupt controller using the interrupt information acquired by the register analysis unit,
The logic circuit design apparatus according to appendix 1, wherein the software description generation unit generates a template of an interrupt processing function using the interrupt information acquired by the register analysis unit.

(付記6)前記ソフトウェア記述生成手段は、前記ソフトウェアソースコードを生成するのに際して、処理機能ごとにファイル分割して、前記ソフトウェアソースコードを生成することを特徴とする付記1に記載の論理回路設計装置。 (Supplementary note 6) The logic circuit design according to supplementary note 1, wherein the software description generation means generates the software source code by dividing a file for each processing function when generating the software source code. apparatus.

(付記7)前記ハードウェア記述生成手段により生成されたハードウェアソースコードおよび前記ソフトウェア記述生成手段により生成されたソフトウェアソースコードを用いて、前記ハードウェアソースコード及びソフトウェアソースコードを検証する検証環境を作成する検証環境作成手段をさらに有することを特徴とする付記1に記載の論理回路設計装置。 (Supplementary Note 7) A verification environment for verifying the hardware source code and the software source code by using the hardware source code generated by the hardware description generation unit and the software source code generated by the software description generation unit The logic circuit design device according to appendix 1, further comprising verification environment creation means for creating.

(付記8)前記検証環境作成手段は、予め定めた規則性に従って、前記ハードウェアソースコード及びソフトウェアソースコードについて前記検証環境用のファイルまたはディレクトリを作成し、前記規則性に従って、作成されたファイルまたはディレクトリを命名することを特徴とする付記7に記載の論理回路設計装置。 (Supplementary Note 8) The verification environment creation means creates a file or directory for the verification environment for the hardware source code and software source code according to a predetermined regularity, and creates a file or directory created according to the regularity. 8. The logic circuit design device according to appendix 7, wherein the directory is named.

(付記9)入力された論理回路ブロックのレジスタ情報を解析して論理回路の構成情報を取得するレジスタ解析手順と、
前記レジスタ解析手順によって取得された論理回路の構成情報に基づいて、前記論路回路のレジスタ部と、前記論理回路のコア機能部の雛形と、前記レジスタ部とコア機能部とを包含するトップモジュールの雛形とのそれぞれについて、ハードウェアソースコードを生成するハードウェア記述生成手順と、
前記レジスタ解析手順によって取得された論理回路の構成情報に基づいて、前記論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成するソフトウェア記述生成手順と、
を論理回路設計装置としてのコンピュータに実行させることを特徴とする論理回路設計プログラム。
(Additional remark 9) The register analysis procedure which analyzes the register information of the input logic circuit block and acquires the configuration information of the logic circuit;
Based on the logic circuit configuration information acquired by the register analysis procedure, a top module including a register unit of the logical circuit, a core function unit model of the logic circuit, and the register unit and core function unit For each of the templates, a hardware description generation procedure for generating hardware source code,
Based on the configuration information of the logic circuit acquired by the register analysis procedure, a software description generation procedure for generating a software source code for a model of the device driver function for initialization of the logical circuit,
A logic circuit design program that causes a computer as a logic circuit design apparatus to execute the program.

1 論理回路設計装置
10 システムメモリマップDB
11 バス種別DB
12 論理回路レジスタマップ一覧DB
13 論理回路レジスタマップ詳細DB
14 論理回路割り込み情報DB
15 検証種別DB
20 ハードウェア記述生成部(システム関連)
20a バスモデルのハードウェアソースコード
20b 論理回路バスインタフェース部のハードウェアソースコード
20c 簡易割り込みコントローラのハードウェアソースコード
21 ハードウェア記述生成部(論理回路関連)
21a 論理回路レジスタ部のハードウェアソースコード
21b 論理回路コア機能ブロック雛形のハードウェアソースコード
21c 論理回路トップモジュール雛形のハードウェアソースコード
22 ソフトウェア記述生成部
22a 論理回路割込処理関数雛形のソフトウェアソースコード
22b 論理回路初期化関数雛形のソフトウェアソースコード
25 検証環境生成部
1 logic circuit design device 10 system memory map DB
11 Bus type DB
12 Logic Circuit Register Map List DB
13 logic circuit register map details DB
14 Logic circuit interrupt information DB
15 Verification type DB
20 Hardware description generator (system related)
20a Hardware source code of bus model 20b Hardware source code of logic circuit bus interface unit 20c Hardware source code of simple interrupt controller 21 Hardware description generation unit (related to logic circuit)
21a Hardware source code of logic circuit register part 21b Hardware source code of logic circuit core function block model 21c Hardware source code of logic circuit top module model 22 Software description generation part 22a Software source code of logic circuit interrupt processing function model 22b Software source code of logic circuit initialization function template 25 Verification environment generation unit

Claims (5)

特定の機能を実現する論理回路の集合体である論理回路ブロックのレジスタ情報を解析して前記論理回路の構成情報を取得するレジスタ解析手段と、
ソフトウェアとハードウェアとを有するシステムのメモリマップを受け付けて、受け付けたメモリマップを解析し、前記システムの構成情報を取得するメモリ解析手段と、
前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論理回路ブロックの前記特定の機能を実行する回路であるコア機能部の雛形と、前記コア機能部が前記特定の機能を実行する際に用いる所定値または前記特定の機能を実行して得られた出力結果を保持するレジスタ部と、前記レジスタ部とコア機能部とを包含する前記論理回路ブロックの最上位階層であり前記論理回路ブロックとしての外部インタフェースを提供するトップモジュールの雛形とのそれぞれについて、ハードウェアソースコードを生成し、前記メモリ解析手段によって取得されたシステムの構成情報に基づいて、前記システムのバスモデルと、前記論理回路のバスインタフェースとのそれぞれについて、前記ハードウェアソースコードを生成するハードウェア記述生成手段と、
前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成するソフトウェア記述生成手段と、
を有することを特徴とする論理回路設計装置。
Register analysis means for analyzing register information of a logic circuit block, which is an assembly of logic circuits that realize a specific function, and obtaining configuration information of the logic circuit;
Memory analysis means for receiving a memory map of a system having software and hardware, analyzing the received memory map, and acquiring configuration information of the system;
Based on the configuration information of the logic circuit acquired by the register analysis means, a model of a core function unit that is a circuit that executes the specific function of the logic circuit block, and the core function unit executes the specific function A logic unit that includes a register unit that holds a predetermined value or an output result obtained by executing the specific function, and the register unit and the core function unit. For each of the top module templates that provide an external interface as a circuit block, a hardware source code is generated , and based on the system configuration information acquired by the memory analysis unit, the bus model of the system, and for each of the bus interface logic, to generate the hardware source code And Dowea description generating means,
Based on the configuration information of the logic circuit acquired by the register analyzing means, software description generating means for generating software source code for a model of the device driver function for initialization of the logical circuit,
A logic circuit design apparatus comprising:
前記ハードウェア記述生成手段は、前記レジスタ解析手段によって取得された論理回路の構成情報を用いて、前記ハードウェアソースコードそれぞれの雛形を書き換えることで、前記ハードウェアソースコードを生成し、
前記ソフトウェア記述生成手段は、前記レジスタ解析手段によって取得された論理回路の構成情報を用いて、前記ソフトウェアソースコードの雛形を書き換えることで、前記ソフトウェアソースコードを生成することを特徴とする請求項1に記載の論理回路設計装置。
The hardware description generation unit generates the hardware source code by rewriting the model of each hardware source code using the configuration information of the logic circuit acquired by the register analysis unit,
2. The software description generation unit generates the software source code by rewriting a model of the software source code using configuration information of a logic circuit acquired by the register analysis unit. The logic circuit design device described in 1.
前記ハードウェア記述生成手段は、論理検証が可能なトランザクションレベル記述と論理合成可能でクロックベースの検証が可能なレジスタトランスファレベル記述の少なくとも一方の形式で、前記ハードウェアソースコードを生成することを特徴とする請求項1に記載の論理回路設計装置。   The hardware description generation means generates the hardware source code in at least one of a transaction level description capable of logic verification and a register transfer level description capable of logic synthesis and capable of clock-based verification. The logic circuit design apparatus according to claim 1. 前記レジスタ解析手段は、前記論理回路ブロックの割り込み情報をさらに取得し、
前記ハードウェア記述生成手段は、前記レジスタ解析手段に取得された割り込み情報を用いて、割り込みコントローラを生成し、
前記ソフトウェア記述生成手段は、前記レジスタ解析手段に取得された割り込み情報を用いて、割り込み処理関数の雛形を生成することを特徴とする請求項1に記載の論理回路設計装置。
The register analysis means further acquires interrupt information of the logic circuit block,
The hardware description generation unit generates an interrupt controller using the interrupt information acquired by the register analysis unit,
2. The logic circuit design apparatus according to claim 1, wherein the software description generation unit generates a template of an interrupt processing function using the interrupt information acquired by the register analysis unit.
入力された論理回路ブロックのレジスタ情報を解析して論理回路の構成情報を取得するレジスタ解析手段と、
ソフトウェアとハードウェアとを有するシステムのメモリマップを受け付けて、受け付けたメモリマップを解析し、前記システムの構成情報を取得するメモリ解析手段と、
前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路のレジスタ部と、前記論理回路のコア機能部の雛形と、前記レジスタ部とコア機能部とを包含するトップモジュールの雛形とのそれぞれについて、ハードウェアソースコードを生成し、前記メモリ解析手段によって取得されたシステムの構成情報に基づいて、前記システムのバスモデルと、前記論理回路のバスインタフェースとのそれぞれについて、前記ハードウェアソースコードを生成するハードウェア記述生成手段と、
前記レジスタ解析手段によって取得された論理回路の構成情報に基づいて、前記論路回路の初期化用デバイスドライバ関数の雛形について、ソフトウェアソースコードを生成するソフトウェア記述生成手段と、
を有することを特徴とする論理回路設計装置。
Register analysis means for analyzing register information of the input logic circuit block and obtaining configuration information of the logic circuit;
Memory analysis means for receiving a memory map of a system having software and hardware, analyzing the received memory map, and acquiring configuration information of the system;
A top module including a register unit of the logical circuit, a model of a core function unit of the logic circuit, and the register unit and the core function unit based on configuration information of the logic circuit acquired by the register analyzing unit For each of the models, a hardware source code is generated, and based on the system configuration information acquired by the memory analysis means, the bus model of the system and the bus interface of the logic circuit, Hardware description generation means for generating hardware source code;
Based on the configuration information of the logic circuit acquired by the register analyzing means, software description generating means for generating software source code for a model of the device driver function for initialization of the logical circuit,
A logic circuit design apparatus comprising:
JP2009111580A 2009-04-30 2009-04-30 Logic circuit design device Expired - Fee Related JP5577619B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009111580A JP5577619B2 (en) 2009-04-30 2009-04-30 Logic circuit design device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009111580A JP5577619B2 (en) 2009-04-30 2009-04-30 Logic circuit design device

Publications (2)

Publication Number Publication Date
JP2010262412A JP2010262412A (en) 2010-11-18
JP5577619B2 true JP5577619B2 (en) 2014-08-27

Family

ID=43360434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009111580A Expired - Fee Related JP5577619B2 (en) 2009-04-30 2009-04-30 Logic circuit design device

Country Status (1)

Country Link
JP (1) JP5577619B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2023166609A1 (en) * 2022-03-02 2023-09-07
CN115983173B (en) * 2023-03-21 2023-07-07 湖北芯擎科技有限公司 Register model generation method, device, computer equipment and storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160949A (en) * 1995-12-07 1997-06-20 Hitachi Ltd Design supporting method in mixed system of hardware and software
JP2001202397A (en) * 2000-01-20 2001-07-27 Toshiba Corp Architecture design supporting system for system-on-chip and architecture generating method
JP2003085223A (en) * 2001-09-07 2003-03-20 Hitachi Ltd Hardware/software integral design system
JP2005327192A (en) * 2004-05-17 2005-11-24 Ricoh Co Ltd Hardware design system and method thereof
JP4480737B2 (en) * 2007-03-29 2010-06-16 富士通株式会社 Logic verification support program, recording medium recording the program, logic verification support device, and logic verification support method

Also Published As

Publication number Publication date
JP2010262412A (en) 2010-11-18

Similar Documents

Publication Publication Date Title
US11630930B2 (en) Generation of dynamic design flows for integrated circuits
US8117576B2 (en) Method for using an equivalence checker to reduce verification effort in a system having analog blocks
US9652570B1 (en) Automatic implementation of a customized system-on-chip
US7231627B2 (en) Merging a hardware design language source file with a separate assertion file
CN112949233B (en) Automatic development method and device of FPGA chip and electronic equipment
US20180293332A1 (en) Development, programming, and debugging environment
US20060064680A1 (en) Extensible internal representation of systems with parallel and sequential implementations
US8136062B2 (en) Hierarchy reassembler for 1×N VLSI design
JP5910108B2 (en) High-level synthesis apparatus, high-level synthesis method, high-level synthesis program, integrated circuit design method
US20160092181A1 (en) Automatic source code generation for accelerated function calls
US8316335B2 (en) Multistage, hybrid synthesis processing facilitating integrated circuit layout
JPH11513512A (en) Method of manufacturing digital signal processor
JP4492803B2 (en) Behavioral synthesis apparatus and program
US9880966B1 (en) Encapsulating metadata of a platform for application-specific tailoring and reuse of the platform in an integrated circuit
US7496869B1 (en) Method and apparatus for implementing a program language description of a circuit design for an integrated circuit
EP3532936B1 (en) Debugging system and method
JP5577619B2 (en) Logic circuit design device
US10235486B2 (en) Method, apparatus and system for automatically deriving parameters for an interconnect
US8813003B2 (en) System and method for inferring higher level descriptions from RTL topology based on naming similarities and dependency
JP2007018313A (en) Circuit design program, circuit design device and circuit design method
US9710582B1 (en) Delivering circuit designs for programmable integrated circuits
WO2017046941A1 (en) Architecture generating device and architecture generating program
Banerjee et al. Automated approach to Register Design and Verification of complex SOC
JP2005301498A (en) Logic data generation method and logic simulator
JP2012059153A (en) Design support apparatus, design support method, design support program, and manufacturing method of semiconductor integrated circuit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140424

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140623

R150 Certificate of patent or registration of utility model

Ref document number: 5577619

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees