JP4127719B2 - Concurrent development system and development method for ASIC and programmable logic device - Google Patents

Concurrent development system and development method for ASIC and programmable logic device Download PDF

Info

Publication number
JP4127719B2
JP4127719B2 JP2006352783A JP2006352783A JP4127719B2 JP 4127719 B2 JP4127719 B2 JP 4127719B2 JP 2006352783 A JP2006352783 A JP 2006352783A JP 2006352783 A JP2006352783 A JP 2006352783A JP 4127719 B2 JP4127719 B2 JP 4127719B2
Authority
JP
Japan
Prior art keywords
asic
logic synthesis
user
result
logic
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
JP2006352783A
Other languages
Japanese (ja)
Other versions
JP2007133897A (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 JP2006352783A priority Critical patent/JP4127719B2/en
Publication of JP2007133897A publication Critical patent/JP2007133897A/en
Application granted granted Critical
Publication of JP4127719B2 publication Critical patent/JP4127719B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、ネットワークに接続されたコンピュータからユーザが利用するASICとプログラマブル・ロジックデバイスのコンカレント開発システム及び開発方法に関する。   The present invention relates to a ASIC and a programmable logic device concurrent development system and development method that a user uses from a computer connected to a network.

更に詳しくは、集積回路の開発におけるプログラマブル・ロジックデバイス構成方法に係り、回路アーキテクチャ検討結果であり論理設計ドキュメントの一部であるブロックのポート仕様の接続情報のみを用いてデバイス・テクノロジに依存しないブロックのポートとポート間を結ぶネットからなるコア(論理コア)と呼ぶネットリストを生成し、コア(論理コア)から対象ブロックを選択、グループ化し、グループ化したコア(論理コア)のデータを使用し、集積回路の開発を行なう集積回路の開発方法、ならびにASICとプログラマブル・ロジックデバイスのシームレスなコンカレント開発を可能とし、設計品質確保と開発期間短縮を両立するとともに、開発にかかる人的資源とコストを低減することができるASICとプログラマブル・ロジックデバイスのコンカレント開発システム及び開発方法に関する。   More specifically, it relates to a programmable logic device configuration method in the development of an integrated circuit, and is a block that does not depend on device technology by using only connection information of a port specification of a block that is a result of a circuit architecture study and is a part of a logic design document. A net list called a core (logical core) consisting of the ports connecting the ports is generated, the target block is selected from the core (logical core), grouped, and the grouped core (logical core) data is used. , Integrated circuit development methods, and seamless concurrent development of ASICs and programmable logic devices, ensuring both design quality and shortening development time, and reducing development human resources and costs ASIC and Programmable that can be reduced Logic about concurrent development system and how to develop device.

集積回路の手順では、先ず仕様を決定する際、もれ等がないか慎重に検討した後、その仕様に従い設計を行なうようになっている。第11図は集積回路設計の手順を示すフローチャートである。先ず、製品仕様からASIC(特定用途向けIC)のスペックを取得する(g1)。次に、回路アーキテクチャを検討する(g2)。次に、回路アーキテクチャ検討結果に基づいて回路設計を行なう(g3)。この回路設計は、論理検証(g4)を行ないながら行なう。   In the procedure of the integrated circuit, first, when determining the specification, after carefully examining whether there is a leak or the like, the design is performed according to the specification. FIG. 11 is a flowchart showing an integrated circuit design procedure. First, an ASIC (specific application IC) specification is acquired from the product specification (g1). Next, consider the circuit architecture (g2). Next, circuit design is performed based on the circuit architecture examination result (g3). This circuit design is performed while performing logic verification (g4).

次に、回路設計が終了したら回路の論理合成を行なう(g5)。論理合成が終了したら、論理合成結果に基づいてレイアウト展開する(g6)。この段階で回路が設計できたことになる。回路が設計できたら、当該回路を製造し(g7)、製造した回路を用いて実機の評価を行なう(g8)。以上のシーケンスの内、本発明に係る部分は、ステップg5の論理合成に係る部分である。   Next, when the circuit design is completed, logic synthesis of the circuit is performed (g5). When the logic synthesis is completed, the layout is developed based on the logic synthesis result (g6). At this stage, the circuit has been designed. When the circuit can be designed, the circuit is manufactured (g7), and the actual device is evaluated using the manufactured circuit (g8). Of the above sequence, the part according to the present invention is a part related to logic synthesis in step g5.

集積回路開発において、仕様を入力として実現する機能の検討、機能を実現する回路構成の検討を行なう回路アーキテクチャ検討を以下のような流れで実施している。通常、集積回路の開発では、製品の仕様から製品を実現する機能を洩れなく洗い出し、洗い出した機能を実現する回路の構成の検討や、IP(Intellectual Property:知的財産)等のマクロの検討を行なう。ここで、マクロとはIPも含むRAM、ROM等の変更しなくても使えるものをいう。   In the development of integrated circuits, a study of a circuit architecture that examines a function to be realized with specifications as an input and a circuit configuration to realize the function is performed in the following flow. Usually, in the development of integrated circuits, the functions that realize the product are thoroughly identified from the product specifications, the circuit configuration that realizes the identified function, and the macro such as IP (Intellectual Property) are examined. Do. Here, the macro refers to a macro that can be used without changing RAM, ROM, etc. including IP.

構成を検討した回路やIPの実現規模の初期見積りを行ない、この時予め判っていればゲート数で算出し、ゲート数が判らない場合は必要な信号数と処理に必要な時間からフリップフロップ数を算出して実現規模を見積もっている。ここで、見積もった規模と各機能の入出力信号(以降ポートと称する)本数を基に複数の機能をグループ化し1つのブロックとする。このグループ化を全機能について行なう。   Estimate the realization scale of the circuit or IP whose configuration has been examined. If it is known in advance, the number of gates is calculated. If the number of gates is not known, the number of flip-flops is calculated from the number of necessary signals and the time required for processing. To calculate the realization scale. Here, a plurality of functions are grouped into one block based on the estimated scale and the number of input / output signals (hereinafter referred to as ports) of each function. This grouping is performed for all functions.

論理設計では、前述の機能と見積り規模を基にHDL(ハードウェア記述言語)等の手段によりプログラマブル・ロジックデバイスを対象に回路設計を行ない、オンボードでの機能評価が行なわれる。評価完了後、ASIC化する場合に再設計及び再検証が行なわれていた。   In the logic design, circuit design is performed for a programmable logic device by means of HDL (hardware description language) or the like based on the above-described function and estimated scale, and on-board function evaluation is performed. After the evaluation was completed, redesign and revalidation were performed in the case of ASIC conversion.

機能評価の完了後、ASIC化によるコストダウンが実施される場合、プログラマブル・ロジックデバイス(例えばFPGA)を対象に設計する時点からASICを考慮した設計を施されることが少なく、I/Oバッファ、デバイス用試験回路、メモリ等のマクロなど、プログラマブル・ロジックデバイスとASIC間の違いのためASICを対象にプログラマブル・ロジックデバイスの設計データを基に再設計が発生し、再設計することによる設計データの二重管理、再設計と機能の再検証による開発期間の長期化と開発コストの増大が表面化してきている。   When cost reduction by ASIC implementation is performed after the function evaluation is completed, it is rare that the design considering the ASIC is performed from the time of designing the programmable logic device (for example, FPGA), and the I / O buffer, Due to the differences between programmable logic devices and ASICs, such as device test circuits and memory macros, redesign occurs based on the design data of programmable logic devices for ASICs. Longer development periods and increased development costs due to dual management, redesign, and functional revalidation are becoming apparent.

ここで、ASICは開発期間が長いがコストが安いという特徴があり、一方、プログラマブル・ロジックデバイス(FPGA)は開発期間は短いがコストが高いという特徴がある。   Here, the ASIC has a feature that the development period is long but the cost is low. On the other hand, the programmable logic device (FPGA) has a feature that the development period is short but the cost is high.

本発明はこのような課題に鑑みてなされたものであって、大規模ASICの開発における論理設計と、論理合成、レイアウトのコンカレント(並行した)開発に適用している回路アーキテクチャ検討において、チップを機能的に分割したブロックのポート情報と、チップのポート情報とからポート間の接続情報としてブロック間ネットリストを生成する方法(特開2000−90142号に記載)を応用した、集積回路の開発方法及び該集積回路の開発方法によって開発する集積回路を構成するブロックとブロック間ネットをブロック間ネットリストから任意の規模と個数生成するよう論理合成ツールを制御する装置を提供し、アーキテクチャの共有化を実現し、再設計と再検証を極力回避することができる集積回路の開発方法及び集積回路の開発方法を記憶したプログラム記憶媒体を提供することを目的としている。   The present invention has been made in view of such problems. In the logic architecture in the development of a large-scale ASIC, the logic architecture, and the circuit architecture examination applied to the concurrent (parallel) development of the layout, Integrated circuit development method applying a method (described in Japanese Patent Laid-Open No. 2000-90142) for generating an inter-block netlist as port-to-port connection information from functionally divided block port information and chip port information And an apparatus for controlling a logic synthesis tool to generate an arbitrary size and number of blocks and inter-block nets constituting an integrated circuit developed by the integrated circuit development method from the inter-block net list, and to share the architecture Integrated circuit development method and integrated circuit capable of realizing and avoiding redesign and reverification as much as possible And its object is to provide a program storage medium storing the developed method.

また、近年、半導体の微細化により10Mゲートを超すASICも開発可能となっているが、電子機器の高機能化と複雑化に伴い、仕様設計,論理設計およびフロアプラン、論理合成,レイアウト設計、タイミング検証を行なうインプリメント設計が長期化すると共に設計品質の確保が困難となってきている。特に、ASIC開発のリメイクは、電子機器の開発期間の長期化のみならずコストの増大、市場投入の機会損失を招いている。   In recent years, it has become possible to develop ASICs with more than 10M gates due to semiconductor miniaturization. However, as electronic devices become more sophisticated and complex, specification design, logic design and floor plan, logic synthesis, layout design, The implementation design for timing verification has been prolonged and it has become difficult to ensure the design quality. In particular, the remake of ASIC development not only prolongs the development period of electronic devices, but also increases costs and loses opportunity to market.

このため、開発TAT(Turn Around Time)が短く、設計変更が容易なプログラマブル・ロジックデバイスが多用されつつあるが、プログラマブル・ロジックデバイスはコストがかかり、小型化が困難であることから、まずプログラマブル・ロジックデバイスで機能を実現し、プロトタイピングにてデバッグした後、量産時期にASIC化することが多い。   For this reason, programmable logic devices with short development TAT (Turn Around Time) and easy design changes are being used frequently. However, programmable logic devices are expensive and difficult to miniaturize, so In many cases, the function is realized by a logic device, and after debugging by prototyping, ASIC is used at the time of mass production.

しかしながら、ASIC化を前提にプログラマブル・ロジックデバイスのプロトタイピングにより検証したとしても、プログラマブル・ロジックデバイスからASICへとシリアルな開発では、総開発手番を短くする事は難しいという問題がある。特に、ASIC開発時のインプリメント設計においてタイミング問題が発生すると、プログラマブル・ロジックデバイスの再設計からやり直しとなる可能性があり、半導体ベンダなど社外に依託している場合は、依託先の人的リソースの確保、人的リソースの確保に伴うコストの増大を招く。   However, even if verification is performed by prototyping a programmable logic device on the premise of ASIC implementation, there is a problem that it is difficult to shorten the total development time in serial development from a programmable logic device to an ASIC. In particular, if a timing problem occurs in the implementation design during ASIC development, there is a possibility that the programmable logic device will be redesigned, and if it is entrusted outside the company such as a semiconductor vendor, the human resources of the entrusted party will be increased. This increases costs associated with securing and securing human resources.

更には、プログラマブル・ロジックデバイスとASICデバイス間の構造の違いからASIC専用に再設計が発生した場合は、プログラマブル・ロジックデバイスによるデバッグが無意味になるばかりでなく、開発期間が長期化してコストも増大する。どちらにしても市場投入の機会損失になる。   Furthermore, if a redesign occurs exclusively for an ASIC due to the difference in structure between a programmable logic device and an ASIC device, not only debugging with a programmable logic device becomes meaningless, but also the development period becomes longer and costs increase. Increase. Either way, there will be a loss of opportunity to market.

なお、ASICの大規模化に伴う開発期間の長期化の対策として、特開2000−90142号公報に記載のとおり、回路アーキテクチャ検討、論理設計・検証、インプリメント設計をコンカレントに行っているが、電子機器の機能の複雑化と市場の動きの早さによって、仕様設計、論理の設計、検証が長期化し開発手番を短くする事が困難となってきている。さらに、コンカレントに開発を進める場合には、ASIC開発の知識を有した人的資源と開発ツールが必要であり、半導体技術の進歩に伴い複雑化する開発ツールの教育も必要となるという問題が生ずる。   As a measure for prolonging the development period accompanying the increase in the scale of ASIC, circuit architecture examination, logic design / verification, and implementation design are performed concurrently as described in JP-A-2000-90142. Due to the complexity of device functions and the rapid movement of the market, specification design, logic design, and verification have become longer, making it difficult to shorten development time. In addition, when developing concurrently, human resources with knowledge of ASIC development and development tools are required, and there is a problem that education of development tools that become complicated as semiconductor technology progresses is required. .

従って、この発明は、ASICとプログラマブル・ロジックデバイスのシームレスなコンカレント開発を可能とし、設計品質確保と開発期間短縮を両立するとともに、開発にかかる人的資源とコストを低減することができるASICとプログラマブル・ロジックデバイスのコンカレント開発システム及び開発方法を提供することも目的とする。   Therefore, the present invention enables seamless concurrent development of an ASIC and a programmable logic device, ensures both design quality and shortens the development period, and reduces the development resources and costs. -Another object is to provide a logic device concurrent development system and method.

上述した課題を解決し、目的を達成するため、本発明は、ネットワークを介してユーザの利用するコンピュータと接続され、該ユーザの要求に応じてASICとプログラマブル・ロジックデバイスをコンカレントに開発するASICとプログラマブル・ロジックデバイスのコンカレント開発システムであって、前記ユーザの要求に応じてASICの論理合成を実行するASIC論理合成手段と、前記ASIC論理合成手段により作成されたASICの論理合成結果が前記ユーザの要求する速度性能を満足したか否かを判断するASIC論理合成結果判断手段と、前記ASIC論理合成結果判断手段による判断結果に基づいてプログラマブル・ロジックデバイスの論理合成を実行するプログラマブル・ロジックデバイス論理合成手段と、前記ASIC論理合成手段によるASIC論理合成の実行結果及び前記プログラマブル・ロジックデバイス論理合成手段によるプログラマブル・ロジックデバイス論理合成の実行結果を前記コンピュータに表示する論理合成結果表示手段と、前記ASIC論理合成手段によるASIC論理合成の実行開始と実行結果及び前記プログラマブル・ロジックデバイス論理合成手段によるプログラマブル・ロジックデバイス論理合成の実行開始と実行結果を前記ユーザに電子メールで通知する論理合成通知手段と、前記ユーザの要求に応じて前記ASICを構成する機能ブロックから前記ユーザが指定する複数の機能ブロックのポート間接続情報から成るネットリストを生成するネットリスト生成手段と、前記ネットリスト生成手段により生成されたネットリストに論理合成済み対象機能ブロックのデータを填め込んでプログラマブル・ロジックデバイスの回路を記録したROMデータを生成するROMデータ生成手段と、前記ROMデータ生成手段により生成されたROMデータの生成結果を前記コンピュータに表示するROMデータ生成結果表示手段と、前記ROMデータ生成手段により生成されたROMデータの生成結果を前記ユーザに電子メールで通知するROMデータ生成結果通知手段とを備えたことを特徴とする。 In order to solve the above-described problems and achieve the object, the present invention is an ASIC that is connected to a computer used by a user via a network and that develops an ASIC and a programmable logic device concurrently in response to the user's request. a concurrent development system programmable logic device, the ASIC logic synthesis means for performing a logic synthesis of the ASIC in response to a request of the user, said ASIC logic synthesis logic synthesis result of ASIC created by means of the user ASIC logic synthesis result judgment means for judging whether or not the requested speed performance is satisfied, and programmable logic device logic synthesis for executing logic synthesis of the programmable logic device based on the judgment result by the ASIC logic synthesis result judgment means Means and said A An ASIC logic synthesis execution result by the IC logic synthesis means and a logic synthesis result display means for displaying the execution result of the programmable logic device logic synthesis by the programmable logic device logic synthesis means on the computer, and an ASIC by the ASIC logic synthesis means Logic synthesis notification means for notifying the user of the execution start and execution result of logic synthesis and the execution start and execution result of the programmable logic device logic synthesis by the programmable logic device logic synthesis means, and to the user's request In response, a net list generating means for generating a net list composed of inter-port connection information of a plurality of functional blocks designated by the user from the functional blocks constituting the ASIC, and a net generated by the net list generating means ROM data generating means for generating ROM data in which the logic synthesized target functional block data is embedded in a list and recording the circuit of the programmable logic device, and the ROM data generation result generated by the ROM data generating means ROM data generation result display means for displaying on a computer, and ROM data generation result notification means for notifying the user of the ROM data generation result generated by the ROM data generation means by e-mail .

また、本発明は、ネットワークを介してユーザの利用するコンピュータと接続され、ASICとプログラマブル・ロジックデバイスのコンカレント開発システムによる、該ユーザの要求に応じたASICとプログラマブル・ロジックデバイスのコンカレント開発方法であって、前記ユーザの要求に応じてASICの論理合成を実行するASIC論理合成工程と、前記ASIC論理合成工程により作成されたASICの論理合成結果が前記ユーザの要求する速度性能を満足したか否かを判断するASIC論理合成結果判断工程と、前記ASIC論理合成結果判断工程による判断結果に基づいてプログラマブル・ロジックデバイスの論理合成を実行するプログラマブル・ロジックデバイス論理合成工程と、前記ASIC論理合成工程によるASIC論理合成の実行結果及び前記プログラマブル・ロジックデバイス論理合成工程によるプログラマブル・ロジックデバイス論理合成の実行結果を前記コンピュータに表示する論理合成結果表示工程と、前記ASIC論理合成工程によるASIC論理合成の実行開始と実行結果及び前記プログラマブル・ロジックデバイス論理合成工程によるプログラマブル・ロジックデバイス論理合成の実行開始と実行結果を前記ユーザに電子メールで通知する論理合成通知工程と、前記ユーザの要求に応じて前記ASICを構成する機能ブロックから前記ユーザが指定する複数の機能ブロックのポート間接続情報から成るネットリストを生成するネットリスト生成工程と、前記ネットリスト生成工程により生成されたネットリストに論理合成済み対象機能ブロックのデータを填め込んでプログラマブル・ロジックデバイスの回路を記録したROMデータを生成するROMデータ生成工程と、前記ROMデータ生成工程により生成されたROMデータの生成結果を前記コンピュータに表示するROMデータ生成結果表示工程と、前記ROMデータ生成工程により生成されたROMデータの生成結果を前記ユーザに電子メールで通知するROMデータ生成結果通知工程とを含んだことを特徴とする。 In addition, the present invention is a method for concurrent development of an ASIC and a programmable logic device that is connected to a computer used by a user via a network, and that meets the user's request, using a concurrent development system for the ASIC and the programmable logic device. Te, and the ASIC logic synthesis step of performing logic synthesis of ASIC in response to a request of the user, whether the logic synthesis result of ASIC created by the ASIC logic synthesis step satisfies a speed performance required of the user ASIC logic synthesis result determination step, programmable logic device logic synthesis step for performing logic synthesis of a programmable logic device based on the determination result of the ASIC logic synthesis result determination step, and ASI by the ASIC logic synthesis step A logic synthesis result display step for displaying a logic synthesis execution result and a programmable logic device logic synthesis execution result by the programmable logic device logic synthesis step on the computer; and an ASIC logic synthesis execution start by the ASIC logic synthesis step; A logic synthesis notifying step for notifying the user of the execution result and the execution of the programmable logic device logic synthesis by the programmable logic device logic synthesis step and the execution result by e-mail, and configuring the ASIC according to the user's request A netlist generating step for generating a netlist composed of inter-port connection information of a plurality of functional blocks designated by the user from the functional blocks to be processed, and a logically synthesized target functional block in the netlist generated by the netlist generating step. ROM data generating step for generating ROM data in which the circuit of the programmable logic device is recorded by inserting the data of the memory, and ROM data for displaying the generation result of the ROM data generated by the ROM data generating step on the computer The method includes a generation result display step and a ROM data generation result notification step of notifying the user of the generation result of the ROM data generated by the ROM data generation step by e-mail .

かかる発明によれば、ユーザの要求に応じてASICの論理合成を実行し、作成したASICの論理合成結果がユーザの要求する速度性能を満足したか否かを判断し、判断結果に基づいてプログラマブル・ロジックデバイスの論理合成を実行し、ASIC論理合成の実行結果及びプログラマブル・ロジックデバイス論理合成の実行結果をコンピュータに表示し、ASIC論理合成の実行開始と実行結果及びプログラマブル・ロジックデバイス論理合成の実行開始と実行結果をユーザに電子メールで通知することとしたので、ユーザは、論理合成の専任者を設置する必要がなく、いつでも論理合成が実行でき、専任者が実行したが如く論理合成品質を均一に保つことができるとともに、電子メールで論理合成の開始と結果の通知を受けることができ、論理合成の進捗を定期的にコンピュータで確認する必要がなくなる。   According to this invention, the ASIC logic synthesis is executed in response to the user's request, it is determined whether or not the created ASIC logic synthesis result satisfies the speed performance requested by the user, and programmable based on the determination result Execute logic synthesis of logic device, display execution result of ASIC logic synthesis and execution result of programmable logic device logic on computer, start execution of ASIC logic synthesis and execution result, and execute programmable logic device logic synthesis Since the start and the execution result are notified to the user by e-mail, the user does not need to set up a logic synthesis specialist, and can perform the logic synthesis at any time. It can be kept uniform, and you can be notified of the start of synthesis and the result by e-mail Come, there is no need to check in regularly computer the progress of logic synthesis.

また、かかる発明によれば、ユーザの要求に応じてASICを構成する機能ブロックからユーザが指定する複数の機能ブロックのポート間接続情報から成るネットリストを生成し、生成したネットリストに論理合成済み対象機能ブロックのデータを填め込んでプログラマブル・ロジックデバイスの回路を記録したROMデータを生成し、生成したROMデータの生成結果をコンピュータに表示するとともに、ユーザに電子メールで通知することとしたので、ユーザは、プログラマブル・ロジックデバイス専用の開発環境が必要なく、プログラマブル・ロジックデバイスの回路を記録したROMデータを作成する負荷と、時間と、かかるコストとを削減することができる。 Further , according to the present invention, a netlist composed of inter-port connection information of a plurality of functional blocks designated by the user is generated from the functional blocks constituting the ASIC in response to a user request, and the synthesized netlist is logically synthesized. Since the ROM data in which the target functional block data is inserted and the programmable logic device circuit is recorded is generated, the generated ROM data generation result is displayed on the computer, and the user is notified by e-mail. The user does not need a development environment dedicated to the programmable logic device, and can reduce the load, time, and cost for creating ROM data recording the circuit of the programmable logic device.

また、本発明は、前記ユーザが指定した前記ASICを構成する機能ブロックの設計が未完了で回路データが存在しない場合に、当該機能ブロックの入力端子及び出力端子に仮のフリップ・フロップなどを用いた回路を挿入したネットリストを生成する仮ネットリスト生成手段をさらに備えたことを特徴とする。   Further, the present invention uses a temporary flip-flop or the like for the input terminal and the output terminal of the functional block when the design of the functional block constituting the ASIC specified by the user is not completed and there is no circuit data. And provisional net list generation means for generating a net list in which the inserted circuit is inserted.

この発明によれば、ユーザが指定したASICを構成する機能ブロックの設計が未完了で回路データが存在しない場合に、当該機能ブロックの入力端子及び出力端子に仮のフリップ・フロップなどを用いた回路を挿入したネットリストを生成することとしたので、プログラマブル・ロジックデバイスのプロトタイピングによる検証において、検証対象ではない機能ブロックの設計が完了していなくとも、プロトタイピングによる検証を進めることができ、検証の効率化を図ることができる。   According to the present invention, when design of a functional block constituting an ASIC designated by a user is not completed and no circuit data exists, a circuit using temporary flip-flops or the like for the input terminal and output terminal of the functional block The netlist is inserted, so the verification by prototyping of the programmable logic device can be performed even if the design of the functional block that is not the verification target is not completed. Can be made more efficient.

また、本発明は、前記ユーザが持つ最新の回路データとインプリメント設計者がインプリメント設計に取り込んでいる回路データ間の変更の規模を監視する監視手段と、前記監視手段による監視結果及びレイアウト設計にかかる時間に基づいて計画された日時に到達すると前記変更を前記ASICのインプリメント設計への反映のタイミングにあることを前記ユーザ及び前記ASICのインプリメント設計者に電子メールで通知する変更タイミング通知手段と、前記変更タイミング通知手段に応答して前記ユーザが前記反映の日付を変更することで停止を要求する反映停止要求手段とをさらに備えたことを特徴とする。   The present invention also relates to monitoring means for monitoring the scale of change between the latest circuit data held by the user and the circuit data taken into the implementation design by the implement designer, and the monitoring results and layout design by the monitoring means. A change timing notification means for notifying the user and the ASIC implementation designer by e-mail that the change is in a timing of reflection in the implementation design of the ASIC when the planned date and time is reached based on time; and Reflection stop requesting means for requesting stop by the user changing the reflection date in response to the change timing notification means is further provided.

この発明によれば、ユーザが持つ最新の回路データとインプリメント設計者がインプリメント設計に取り込んでいる回路データ間の変更の規模を監視し、監視結果及びレイアウト設計にかかる時間に基づいて計画された日時に到達すると変更をASICのインプリメント設計へ反映するタイミングにあることをユーザ及びASICのインプリメント設計者に電子メールで通知し、この通知に応答してユーザが反映の日付を変更することで停止を要求することとしたので、発生した変更を効率よくASICのレイアウト設計に反映することができるとともに、変更を反映するタイミングを設定することで、ユーザはいつまで変更することが可能かを判断することができ、早い段階でスケジュールの見直しができる。   According to the present invention, the scale of the change between the latest circuit data held by the user and the circuit data taken into the implementation design by the implement designer is monitored, and the date and time planned based on the monitoring result and the time taken for the layout design. When it reaches, the user and the ASIC implementation designer are notified by e-mail that it is time to apply the change to the ASIC implementation design, and the user requests a stop by changing the reflection date in response to this notification. Therefore, it is possible to efficiently reflect the changes that have occurred in the layout design of the ASIC, and by setting the timing to reflect the changes, the user can determine how long it can be changed. The schedule can be reviewed at an early stage.

本発明によれば、ユーザの要求に応じてASICの論理合成を実行し、作成したASICの論理合成結果がユーザの要求する速度性能を満足したか否かを判断し、判断結果に基づいてプログラマブル・ロジックデバイスの論理合成を実行し、ASIC論理合成の実行結果及びプログラマブル・ロジックデバイス論理合成の実行結果をコンピュータに表示し、ASIC論理合成の実行開始と実行結果及びプログラマブル・ロジックデバイス論理合成の実行開始と実行結果をユーザに電子メールで通知する構成としたので、ユーザは、論理合成の専任者を設置する必要がなく、いつでも論理合成が実行でき、専任者が実行したが如く論理合成品質を均一に保つことができるとともに、電子メールで論理合成の開始と結果の通知を受けることができ、論理合成の進捗を定期的にコンピュータで確認する必要がなくなるという効果を奏する。   According to the present invention, ASIC logic synthesis is executed in response to a user request, and it is determined whether or not the created ASIC logic synthesis result satisfies the speed performance requested by the user, and programmable based on the determination result. Execute logic synthesis of logic device, display execution result of ASIC logic synthesis and execution result of programmable logic device logic on computer, start execution of ASIC logic synthesis and execution result, and execute programmable logic device logic synthesis Since the configuration is such that the start and execution results are notified to the user by e-mail, the user does not need to have a dedicated logic synthesis person, and can perform logic synthesis at any time. It can be kept uniform, and you can be notified of the start of synthesis and the result by e-mail An effect that it is not necessary to check regularly the computer progress of logic synthesis.

また、本発明によれば、ユーザの要求に応じてASICを構成する機能ブロックからユーザが指定する複数の機能ブロックのポート間接続情報から成るネットリストを生成し、生成したネットリストに論理合成済み対象機能ブロックのデータを填め込んでプログラマブル・ロジックデバイスの回路を記録したROMデータを生成し、生成したROMデータの生成結果をコンピュータに表示するとともにユーザに電子メールで通知する構成としたので、ユーザは、プログラマブル・ロジックデバイス専用の開発環境が必要なく、プログラマブル・ロジックデバイスの回路を記録したROMデータを作成する負荷と、時間と、かかるコストとを削減することができるという効果を奏する。   Further, according to the present invention, a netlist composed of inter-port connection information of a plurality of functional blocks designated by the user is generated from the functional blocks constituting the ASIC in response to a user request, and logical synthesis has been performed on the generated netlist Since the ROM data in which the data of the programmable logic device is recorded by inserting the data of the target functional block is generated, the generation result of the generated ROM data is displayed on the computer and notified to the user by e-mail. This eliminates the need for a development environment dedicated to the programmable logic device, and can reduce the load, time, and cost of creating ROM data recording the circuit of the programmable logic device.

また、本発明によれば、ユーザが指定したASICを構成する機能ブロックの設計が未完了で回路データが存在しない場合に、当該機能ブロックの入力端子及び出力端子に仮のフリップ・フロップなどを用いた回路を挿入したネットリストを生成することとしたので、プログラマブル・ロジックデバイスのプロトタイピングによる検証において、検証対象ではない機能ブロックの設計が完了していなくとも、プロトタイピングによる検証を進めることができ、検証の効率化を図ることができるという効果を奏する。   In addition, according to the present invention, when design of a functional block constituting an ASIC specified by a user is not completed and circuit data does not exist, temporary flip-flops are used for the input terminal and output terminal of the functional block. Therefore, even if the design of the functional block that is not the verification target has not been completed, the verification by prototyping can proceed. Thus, it is possible to improve the efficiency of verification.

また、本発明によれば、ユーザが持つ最新の回路データとインプリメント設計者がインプリメント設計に取り込んでいる回路データ間の変更の規模を監視し、監視結果及びレイアウト設計にかかる時間に基づいて計画された日時に到達すると変更をASICのインプリメント設計へ反映するタイミングにあることをユーザ及びASICのインプリメント設計者に電子メールで通知し、この通知に応答してユーザが反映の日付を変更することで停止を要求することとしたので、発生した変更を効率よくASICのレイアウト設計に反映することができるとともに、変更を反映するタイミングを設定することでユーザはいつまで変更することが可能かを判断することができ、早い段階でスケジュールの見直しができるという効果を奏する。   Further, according to the present invention, the scale of change between the latest circuit data held by the user and the circuit data taken into the implementation design by the implement designer is monitored, and the plan is based on the monitoring result and the time taken for the layout design. When the date and time arrives, the user and the ASIC implementation designer are notified by e-mail that it is time to reflect the change in the ASIC implementation design, and in response to this notification, the user changes the reflection date and stops. Therefore, it is possible to efficiently reflect the change that has occurred in the layout design of the ASIC and to determine how long the user can make the change by setting the timing to reflect the change. It can be done and the schedule can be reviewed at an early stage.

以下、図面を参照して本発明の実施の形態例を詳細に説明する。第1図は本発明方法の原理を示すフローチャートである。本発明は、ブロックのポートとポートの接続情報なるASICのコア(論理コア)から、接続関係のある任意のブロックを選択しグループ化する手段により任意の規模、個数のブロックのポートとポートの接続情報からなる、論理合成ツールが読み込み可能なHDLフォーマットのコア(論理コア)を生成し(ステップ1)、チップの端子情報から論理合成ツールで仮のチップデザインを作成し、このデザインに端子を発生させ(ステップ2)、作成したデザイン内部にステップ2と同一のデザインをセルとして発生させ(ステップ3)、デザインとセル間の同一名称のポートを接続し(ステップ4)、接続したポート間のネットに対し、デバイス・テクノロジに依存するI/Oバッファを挿入し(ステップ5)、ステップ1で作成したコア(論理コア)とセルを入れ替え、トップ階層であるデザインの階層を展開し、ネットリストを生成する(ステップ6)、ことを特徴とする。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 is a flowchart showing the principle of the method of the present invention. According to the present invention, the connection between ports and ports of an arbitrary scale and number is made by means of selecting and grouping arbitrary blocks having a connection relationship from ASIC cores (logical cores) which are block port-port connection information. Generate HDL format core (logic core) that can be read by logic synthesis tool consisting of information (step 1), create temporary chip design with logic synthesis tool from chip terminal information, and generate terminals in this design (Step 2), the same design as in Step 2 is generated as a cell in the created design (Step 3), the port of the same name between the design and the cell is connected (Step 4), and the network between the connected ports Insert the I / O buffer depending on the device technology (step 5), and the core created in step 1 Replacing the logic core) and cells, to expand the design hierarchy is the top hierarchy, to generate a net list (step 6), characterized in that.

本発明では、ポート名、レンジ、入出力定義からブロックのポート仕様であるエンティティを作成しファイルに出力する(ファイルに書き込む)。入出力で出力定義されているポートに関して出力信号ファイルを作成する手段により、あるブロックの入力ポートに指定された、出力元インスタンスの出力ポート名に間違いがないかチェックし、出力元インスタンス名にデバイスのパッケージの端子と接続する旨のI/O等、キーワードの定義がある場合に、出力元インスタンスの出力ポート名にある名称をデバイスのパッケージの端子名とし、該端子が1本なのか複数(ベクタ)なのかをレンジの定義から判断する手段と、該端子が入力なのか出力なのかを入出力の定義から判断する手段と、該端子が双方向なのかを種別の定義から判断する手段により、コア(論理コア)のポート仕様であるエンティティを作成し、ファイルに出力する。ここで、インスタンスとは回路ユニットのことである。   In the present invention, an entity that is a port specification of a block is created from a port name, a range, and an input / output definition, and is output to a file (written to a file). Check if the output port name of the output source instance specified for the input port of a block is correct by means of creating an output signal file for the ports defined for output in the input / output, and specify the device as the output source instance name If there is a keyword definition such as I / O to connect to the terminal of the package, the name in the output port name of the output source instance is used as the terminal name of the device package, and whether the terminal is one or more ( A vector) based on the definition of the range, a means for determining whether the terminal is an input or an output from the input / output definition, and a means for determining whether the terminal is bidirectional from the type definition Create an entity that is a port specification of the core (logical core) and output it to a file. Here, an instance is a circuit unit.

ブロックのポートが入出力定義で入力定義されている場合、該ポートの出力元インスタンス名と出力元インスタンスの出力ポート名の組が前述の出力信号ファイルに存在するかチェックする手段と、前記チェック結果、インスタンス間のポートの接続が可能と判断した場合、インスタンス間を接続する信号を生成し、ファイルに出力する。全インスタンスのチェックを含め、処理が完了した時、前述のコア(論理コア)のエンティティとインスタンス間ネットを読み込み、コア(論理コア)を生成しファイルに出力する。
チェック結果が問題なければ、ブロックの入出力ポート仕様とインスタンス間の接続ネットとインスタンスとデバイスパッケージの端子となる外部端子間の接続ネットからなり、論理設計部分を全く持たないHDL(ハードウェア記述言語)のファイル(以降コア(論理コア)と称する)を出力する。
When the port of the block is input-defined in the input / output definition, means for checking whether a pair of the output source instance name of the port and the output port name of the output source instance exists in the output signal file, and the check result When it is determined that ports can be connected between instances, a signal for connecting the instances is generated and output to a file. When processing is completed, including checking all instances, the core (logical core) entity and the inter-instance net are read, a core (logical core) is generated and output to a file.
If the check result is satisfactory, the HDL (Hardware Description Language) is composed of block input / output port specifications, a connection net between instances, and a connection net between instances and external terminals that are terminals of the device package, and has no logical design part. ) File (hereinafter referred to as a core (logical core)).

従って、本発明のコア(論理コア)を生成する手法によれば、集積回路開発において、RTL設計の入力となるブロックのポート仕様の品質を事前に確保できる効果があり、更に機能ブロックが多く存在し、設計リソースも多い大規模集積回路の開発においても、事前にブロック間の接続が確認できていることにより、必ずチップが組み上がることを保証することができる。   Therefore, according to the method of generating the core (logical core) of the present invention, there is an effect that the quality of the port specification of the block serving as the input of the RTL design can be secured in advance in the development of the integrated circuit, and there are many functional blocks However, even in the development of a large-scale integrated circuit with many design resources, the connection between the blocks can be confirmed in advance, thereby ensuring that the chip is assembled.

実施の形態1.
第2図は本発明の実施の形態1の動作説明図である。この図は、回路アーキテクチャ検討結果を入力とし、設計データを共通化し、回路アーキテクチャを共有しつつ集積回路を開発するものである。
Embodiment 1 FIG.
FIG. 2 is an operation explanatory diagram of Embodiment 1 of the present invention. In this figure, the circuit architecture study result is input, design data is shared, and an integrated circuit is developed while sharing the circuit architecture.

実現する機能をHDLを手段として設計する場合、製品自身であるチップは、ある機能を持つインスタンスで構成される。このインスタンスは、HDLで設計された複数の機能で構成されるブロックを参照するものであり、特定のブロックがチップの機能を実現する上で必要であれば、該ブロックを複数参照するものである。   When designing a function to be realized using HDL as a means, a chip which is a product itself is configured by an instance having a certain function. This instance refers to a block composed of a plurality of functions designed in HDL. If a specific block is necessary for realizing the function of the chip, a plurality of such blocks are referred to. .

第2図に従い本発明の流れを説明する。X、Y、Zは、回路アーキテクチャ検討結果から作成されるブロックのポート仕様を、定義済みのフォーマットに従って定義したテーブルである。これらテーブルX、Y、Zは、ブロックを設計する際、必ず作成されるものであり、ブロック名、インスタンス名、ポート名、レンジ、入出力、種別、出力元インスタンス名、出力元インスタンスの出力ポート名等からなる。これらデータは、ユーザがマニュアルで入力するものである。このように、各テーブルを予め作成しておくことが本発明のポイントである。   The flow of the present invention will be described with reference to FIG. X, Y, and Z are tables in which port specifications of blocks created from circuit architecture examination results are defined according to a predefined format. These tables X, Y, and Z are always created when designing a block, and block name, instance name, port name, range, input / output, type, output source instance name, output source instance output port It consists of names. These data are input manually by the user. Thus, it is a point of the present invention to prepare each table in advance.

S1は、前述の全インスタンスのテーブルデータを入力とし、インスタンス間及びインスタンスとデバイスパッケージの端子として定義された外部端子間が矛盾なく接続されているかをチェックする手段と、インスタンス間のネットを定義する手段とによりブロックのポートとブロック間接続情報のみからなるコア(論理コア)を生成するステップである。ステップS1でエラーがあった場合、エラーをユーザに返し、ユーザはデータ入力をやり直す(図中に示す円状の矢印1は繰り返しを示している)。   S1 inputs the table data of all the above-mentioned instances, defines a means for checking whether the instances and the external terminals defined as terminals of the device package are connected without contradiction, and defines a net between the instances. This is a step of generating a core (logical core) consisting only of block ports and inter-block connection information. If there is an error in step S1, the error is returned to the user, and the user starts data input again (the circular arrow 1 shown in the figure indicates repetition).

S2はFPGAテーブル2を参照し、ステップS1出力のコア(論理コア)を論理合成ツールに読み込み、プログラマブル・ロジックデバイスとするインスタンスのグループを論理合成ツールの機能を制御して選択し、階層情報を維持した状態で新たなコア(論理コア)を生成し、デバイス・テクノロジに依存するI/Oバッファ等を含まないステップS1出力と同様のコア(論理コア)のネットリストを出力するステップである。この図で、X、Yはユーザが指定するものである。   S2 refers to the FPGA table 2, reads the core (logic core) output in step S1 into the logic synthesis tool, selects a group of instances to be programmable logic devices by controlling the function of the logic synthesis tool, and selects hierarchical information. This is a step of generating a new core (logical core) in the maintained state and outputting a net list of cores (logical cores) similar to the output of step S1 that does not include an I / O buffer or the like depending on device technology. In this figure, X and Y are designated by the user.

S3は、定義済みフォーマットであるデバイスパッケージの端子仕様テーブルデータの端子名から仮のコア(論理コア)を生成し、テーブルデータで指定のデバイス・テクノロジに依存するI/Oバッファを仮のコア(論理コア)のポートに挿入後、ステップS2出力のネットリストと入れ替えるステップであり、本発明のポイントである。この処理によって対象とするデバイスのチップのネットリストができた後、論理合成ツールの機能を制御して対象のデバイス・テクノロジで論理合成済みの回路データをFPGA合成結果のライブラリ3から読み込み、対応するブロックに填め込み、所望のデバイスのネットリストを完成させるものである。FPGAとして生成したネットリストは、FPGAのレイアウトツールでフィッティングし、ROMデータ化される。   In S3, a temporary core (logical core) is generated from the terminal name of the terminal specification table data of the device package in a predefined format, and an I / O buffer depending on the device technology specified by the table data is generated as a temporary core ( This is a step of replacing the net list of step S2 after insertion into the port of the logical core), which is the point of the present invention. After the netlist of the target device chip is created by this processing, the function of the logic synthesis tool is controlled, and the circuit data that has been subjected to logic synthesis by the target device technology is read from the FPGA synthesis result library 3 and corresponding. It is inserted into a block to complete a netlist of a desired device. The net list generated as an FPGA is fitted with an FPGA layout tool and converted into ROM data.

また、ステップS2から、ASIC合成結果ライブラリ4を参照することによってASIC化している。   Further, from step S2, the ASIC is made into an ASIC by referring to the ASIC synthesis result library 4.

この実施の形態1によれば、集積回路開発において、RTL設計の入力となるブロックのポート仕様の品質を事前に確保できる効果があり、更に機能ブロックが多く存在し、設計リソースも多い大規模集積回路の開発においても、事前にブロック間の接続が確認できていることにより、必ずチップが組み上がることを保証することができる。   According to the first embodiment, in integrated circuit development, there is an effect that the quality of the port specification of a block serving as an input for RTL design can be secured in advance, and there are many functional blocks and large-scale integration with many design resources. Even in the development of a circuit, the connection between the blocks can be confirmed in advance, so that it can be guaranteed that the chip is always assembled.

第3図は本発明の論理合成ツール制御装置の一実施の形態例を示すブロック図である。図において、22は全体の動作を制御する制御装置、24は各種情報を表示するCRT、21は制御装置22に各種のコマンド等を入力する入力装置、23は制御装置22と接続され、各種の情報を記憶する記憶装置である。   FIG. 3 is a block diagram showing an embodiment of the logic synthesis tool control device of the present invention. In the figure, 22 is a control device for controlling the overall operation, 24 is a CRT for displaying various information, 21 is an input device for inputting various commands to the control device 22, 23 is connected to the control device 22, It is a storage device that stores information.

入力装置21は、コア(論理コア)生成プログラムの起動コマンド、論理合成ツール制御コマンドを入力するものであり、記憶装置23には論理合成ツール、コア(論理コア)生成プログラム、論理合成制御プログラムが記憶されている。   The input device 21 inputs a start command for a core (logical core) generation program and a logic synthesis tool control command. The storage device 23 includes a logic synthesis tool, a core (logical core) generation program, and a logic synthesis control program. It is remembered.

入力装置21からブロックのテーブルファイルを指定してコア(論理コア)生成プログラム起動コマンドを入力すると、コア(論理コア)生成プログラムはテーブルファイルを読み込み、コア(論理コア)を生成し、記憶装置23にファイル出力する。この処理中にエラーがあれば、そのエラー情報を表示装置であるCRT24に表示する。   When the block (table file) is specified from the input device 21 and a core (logical core) generation program start command is input, the core (logical core) generation program reads the table file, generates a core (logical core), and the storage device 23. Output to file. If there is an error during this process, the error information is displayed on the CRT 24 which is a display device.

設計者は、エラーがあった場合、テーブルファイルを修正後、再度コマンドを実行する。論理合成ツールの制御では、先ず制御用の必要なデータをファイルとして用意し、コア(論理コア)生成プログラムで生成したコア(論理コア)ファイルと一緒に記憶装置23内の所定の場所に格納する。そして、論理合成ツールの制御コマンドを入力装置21から入力すると、論理合成ツールが起動し、処理結果がCRT24に表示される。途中、処理に失敗した場合は、失敗した時の状態がCRT24に表示される。   If there is an error, the designer corrects the table file and executes the command again. In the control of the logic synthesis tool, first, necessary data for control is prepared as a file, and stored in a predetermined location in the storage device 23 together with the core (logical core) file generated by the core (logical core) generation program. . When a control command for the logic synthesis tool is input from the input device 21, the logic synthesis tool is activated and the processing result is displayed on the CRT 24. If the process fails midway, the state at the time of failure is displayed on the CRT 24.

第4図は第3図の制御装置22の一実施の形態例を示すブロック図である。第3図と同一のものは、同一の符号を付して示す。図において、31は全体の動作を制御するCPU、32は各種の情報を記憶するメモリ、21は各種のコマンド等を入力するキーボード、24は表示装置としてのCRTである。23は記憶装置であり、コア(論理コア)生成プログラム36、論理合成ツール制御プログラム35、論理合成ツール34及びオペレーティングシステム(OS)33より構成されている。37は各構成要素間を接続するバスである。記憶装置23としては、例えばハードディスク装置が用いられる。   FIG. 4 is a block diagram showing an embodiment of the control device 22 of FIG. The same parts as those in FIG. 3 are denoted by the same reference numerals. In the figure, 31 is a CPU for controlling the overall operation, 32 is a memory for storing various information, 21 is a keyboard for inputting various commands, and 24 is a CRT as a display device. A storage device 23 includes a core (logical core) generation program 36, a logic synthesis tool control program 35, a logic synthesis tool 34, and an operating system (OS) 33. Reference numeral 37 denotes a bus for connecting the components. As the storage device 23, for example, a hard disk device is used.

このように構成されたシステムにおいて、CPU31はキーボード21からのコマンドを入力すると、記憶装置23を検索して、該当するプログラムを呼び出し、該当するプログラムを実行する。   In the system configured as described above, when the CPU 31 inputs a command from the keyboard 21, the CPU 31 searches the storage device 23, calls the corresponding program, and executes the corresponding program.

第5図、第6図はコア(論理コア)生成プログラムを示すフローチャートである。ここでは、第2図のX、Y、Zのテーブルデータを使用して説明する。テーブルデータX、Y、Z(インスタンスもX、Y、Z)のファイルを読み込み、1ファイルずつ処理を行なう。F1でXのデータを読み込み、F2でポートAのテーブルの全データを抽出してメモリに記憶し、このメモリのデータを参照しながら次の処理を行なう。F2'でポートは出力であるか否かをチェックする。   FIGS. 5 and 6 are flowcharts showing a core (logical core) generation program. Here, description will be made using the X, Y, and Z table data of FIG. The table data X, Y, Z (instances are also X, Y, Z) files are read and processed one by one. The data of X is read by F1, all the data of the port A table is extracted and stored in the memory by F2, and the next processing is performed while referring to the data of the memory. In F2 ′, it is checked whether or not the port is an output.

ポートAは入力であるので、インスタンス名とポート名をファイルAに出力するステップF3はスキップし、F3'に進む。F3'では、パッケージ端子との接続キーワードがあるか否かをチェックする。次に、パッケージ端子の接続キーワードはないため、パッケージ端子情報をメモリに格納するF4はスキップし、次のポートBの全データをメモリに記憶する。   Since port A is an input, step F3 of outputting the instance name and port name to file A is skipped and the process proceeds to F3 ′. In F3 ′, it is checked whether or not there is a connection keyword with the package terminal. Next, since there is no connection keyword of the package terminal, F4 for storing the package terminal information in the memory is skipped, and all data of the next port B is stored in the memory.

ポートBは出力であるので、F3のステップにより"XB"を記憶装置23のファイルAに出力する。ここで、Xはファイル名、Bはポート名である。次に、パッケージ端子の接続キーワードはないためF4をスキップして次のポートZの全データをメモリに記憶する。ポートZは出力であるので、F3のステップにより"XZ[2:0]"を前記ファイルAに出力する。ここで、[2:0]は、2、1、0を示す。   Since the port B is an output, “XB” is output to the file A of the storage device 23 in the step F3. Here, X is a file name, and B is a port name. Next, since there is no connection keyword for the package terminal, F4 is skipped and all data of the next port Z is stored in the memory. Since the port Z is an output, "XZ [2: 0]" is output to the file A in the step F3. Here, [2: 0] indicates 2, 1, 0.

次に、パッケージ端子の接続キーワードはないため、F4をスキップし、次のポートIの全データをメモリに記憶する。ポートIは入力であるのでF3をスキップし、次にパッケージ端子の接続キーワード"IO"があるため、"INPUT,in,2:0"をコア(論理コア)のポート名としてメモリに記憶する。次に、全ポート終了であるかどうかチェックする(F4')。全ポートが終了していない場合には、ステップF2に戻る。   Next, since there is no connection keyword for the package terminal, F4 is skipped and all data of the next port I is stored in the memory. Since port I is an input, F3 is skipped, and since there is a connection keyword “IO” of the package terminal, “INPUT, in, 2: 0” is stored in the memory as the port name of the core (logical core). Next, it is checked whether or not all ports are finished (F4 ′). If all the ports have not ended, the process returns to step F2.

これで、Xの全ポートの処理が終了し、VHDLであれば、以下のような情報を持ったエンティティファイルを記憶装置23に出力する。
A:in std_logic;
B:out std_logic;
Z:out std_logic vector(2 downto 0);
I:in std_logic;
This completes the processing of all ports of X, and if it is VHDL, an entity file having the following information is output to the storage device 23.
A: in std_logic;
B: out std_logic;
Z: out std_logic vector (2 downto 0);
I: in std_logic;

上記の処理をY,Zのデータについても行ない、全ファイルが終了すると(F5')、F6のステップによりVHDLであれば、以下のような情報を持ったコア(論理コア)のエンティティファイルを記憶装置23に出力する。
INPUT:in std_logic;
OUT :out std_logic;
また、ファイルAには以下のようなデータが記録されている。
XB,XZ[2:0],YC[1:0],YO,ZF
The above processing is also performed for the Y and Z data, and when all the files are completed (F5 ′), if it is VHDL by the step of F6, the entity file of the core (logical core) having the following information is stored. Output to the device 23.
INPUT: in std_logic;
OUT: out std_logic;
Further, the following data is recorded in the file A.
XB, XZ [2: 0], YC [1: 0], YO, ZF

次に、F7のステップで上記ファイルAのデータを読み込み、F8のステップでメモリに記憶し、1ファイルずつ処理を行なう。F8'のステップでは、ポートは入力であるかどうかチェックする。ここで、Xのテーブルデータを例に説明する。ポートAは入力であるので、F9のステップにより出力元のYとポート名のCを抽出し、続くF10のステップによりYC[1:0]をF8で記憶したデータで検索する。そして、F10'で一致するかどうかチェックする。   Next, the data of file A is read in step F7, stored in the memory in step F8, and processed one file at a time. In step F8 ′, it is checked whether the port is an input. Here, X table data will be described as an example. Since port A is an input, output source Y and port name C are extracted in step F9, and YC [1: 0] is searched with the data stored in F8 in the subsequent step F10. Then, it is checked whether or not they match at F10 ′.

検索の結果、存在するので、F12のステップにより以下のような接続情報をファイルBに出力する。結果が一致しない場合は、ポートの名称又はレンジが異なっている等のエラー情報を記憶装置23のログファイルに出力すると共に、CRT24にも表示する。
A=>YC
次に、同様にしてポートBは出力であるので、F11のステップにより、以下のような接続情報をファイルBに出力する。
B=>XB
次に、同様にしてポートZは出力であるので、F11のステップにより、以下のような接続情報をファイルBに出力する。
Z=>XZ
Since it exists as a result of the search, the following connection information is output to the file B in step F12. If the results do not match, error information indicating that the port name or range is different is output to the log file of the storage device 23 and also displayed on the CRT 24.
A => YC
Next, similarly, since the port B is an output, the following connection information is output to the file B by the step F11.
B => XB
Next, similarly, since the port Z is an output, the following connection information is output to the file B by the step F11.
Z => XZ

次に、ポートIは入力であるが、F10のステップの検索で"IOINPUT"が発見できず、F13のステップでエラーとしてログファイルに出力されると共に、CRT24にも表示する。但し、パッケージの端子と接続されるポートの場合は問題ではなく、逆にログに出力されたエラー情報からどのインスタンスのどのポートがパッケージのどの端子と接続したかの確認ができる。次に、F12のステップにより、以下のような接続情報をファイルBに出力する。
I=>IOINPUT
ステップF12'では、全テーブルの全ポートが終了したかどうかをチェックし、終了していない場合には、ステップF8'に戻る。
Next, although port I is an input, “IOINPUT” cannot be found in the search of step F10, and is output to the log file as an error in step F13 and also displayed on the CRT 24. However, this is not a problem in the case of a port connected to a package terminal, and conversely, which port of which instance is connected to which terminal of the package can be confirmed from the error information output in the log. Next, the following connection information is output to the file B in step F12.
I => IOINPUT
In step F12 ′, it is checked whether all ports in all tables have been completed. If not, the process returns to step F8 ′.

以上の処理をY,Zのテーブルデータについても行ない、終了すると、F14のステップにより、接続情報が作成できなかったポートをログファイルに出力し、F15のステップによりF6のステップで出力したコア(論理コア)のエンティティリストとF11とF12のステップで出力した接続情報を結合し、コア(論理コア)のネットリストを生成し、記憶装置23に出力してプログラムを終了する。   The above processing is also performed for the Y and Z table data. When the processing is completed, the port for which connection information could not be created is output to the log file in step F14, and the core (logic) output in step F6 by step F15. The core) entity list and the connection information output in the steps F11 and F12 are combined to generate a core (logical core) netlist, which is output to the storage device 23 and the program is terminated.

次に、図を用いて本発明の実施の形態1の詳細手順について説明する。第7図は本発明の実施の形態1の詳細手順を示すフローチャートである。このフローチャートは、第2図で説明した実施の形態1のうち、S1で出力したコア(論理コア)を入力とするS2以降の処理を詳細に示すものである。図中、実線は処理の流れを示し、破線はデータの流れを示す。処理の実行前に、入力装置を操作してステップS2で出力したコア(論理コア)と必要があれば、以降の説明で出てくる制御ファイルを制御プログラムが参照する記憶装置内の場所へ複写等の手段によって準備する。   Next, a detailed procedure of the first embodiment of the present invention will be described with reference to the drawings. FIG. 7 is a flowchart showing the detailed procedure of the first embodiment of the present invention. This flowchart shows in detail the processing after S2 in which the core (logical core) output in S1 is input in the first embodiment described in FIG. In the figure, the solid line shows the flow of processing, and the broken line shows the data flow. Before executing the process, operate the input device and copy the core (logical core) output in step S2 and, if necessary, the control file output in the following description to the location in the storage device referenced by the control program Prepare by such means.

先ず、コア(論理コア)デザインをチェックする(a1)。そして、該コア(論理コア)デザインがOKかどうかチェックする(a1')。OKでない場合には、第2図説明のテーブルデータをチェック後、再実行する(a10)。OKである場合、ファイル12、13を参照してグループ化し(a2)、コア(論理コア)10として格納する。次に、端子名とバッファ名からなるテーブル14を参照してダミーコア(論理コア)を生成する(a3)。この結果、ダミーコア(論理コア)11が生成される。   First, the core (logical core) design is checked (a1). Then, it is checked whether or not the core (logical core) design is OK (a1 ′). If it is not OK, the table data described in FIG. 2 is checked and re-executed (a10). If it is OK, the files 12 and 13 are referred to, grouped (a2), and stored as a core (logical core) 10. Next, a dummy core (logical core) is generated with reference to the table 14 consisting of terminal names and buffer names (a3). As a result, a dummy core (logical core) 11 is generated.

次に、このダミーコア(論理コア)11及びテーブル14を基にしてI/Oバッファを挿入する(a4)。次に、コア(論理コア)10とダミーコア(論理コア)11とを比較チェックする(a5)。そして、OKであるかどうかチェックする(a5')比較の結果、OKである場合には終端処理を行なう(a6)。OKでない場合には、デバイスパッケージの端子仕様をチェックし(a9)、第2図説明のテーブルデータをチェック後、再実行する(a10)。   Next, an I / O buffer is inserted based on the dummy core (logical core) 11 and the table 14 (a4). Next, the core (logical core) 10 and the dummy core (logical core) 11 are compared and checked (a5). Then, it is checked whether or not it is OK (a5 ′). As a result of the comparison, if it is OK, termination processing is performed (a6). If it is not OK, the terminal specification of the device package is checked (a9), and the table data described in FIG. 2 is checked and then re-executed (a10).

ステップa6の終端処理が終了したら、合成結果ファイル15を参照して回路データを填め込み(a7)、ファイル16を参照してDFT回路を挿入する(a8)。   When the termination process of step a6 is completed, the circuit data is inserted with reference to the synthesis result file 15 (a7), and the DFT circuit is inserted with reference to the file 16 (a8).

次に、第7図で説明した各ステップの更に詳細な説明をする。第8図はコア(論理コア)デザインチェック制御を示すフローチャートである。先ず、コア(論理コア)のファイルがあるかどうかチェックし(a11)、ある場合には、論理合成ツールで読み込ませる(a12)。ない場合には、何もしない。ステップa1(第7図参照)では、ステップS2で出力したコア(論理コア)を入力とし、コア(論理コア)のHDL記述文法、空き入力ポート等をチェックするステップで、コア(論理コア)のファイルが存在すれば、ステップa12で論理合成ツールにコア(論理コア)を読み込ませる。論理合成ツールは、読み込んだ際、文法等のチェックを行なう機能を持っており、結果がエラーであればCRTで内容を確認し、ステップa10に示す通りブロックのポート仕様を記述したテーブルデータを見直し、再度デザインチェックを実行する。   Next, each step described with reference to FIG. 7 will be described in more detail. FIG. 8 is a flowchart showing core (logic core) design check control. First, it is checked whether there is a core (logical core) file (a11), and if there is, it is read by a logic synthesis tool (a12). If not, do nothing. In step a1 (see FIG. 7), the core (logical core) output in step S2 is input, and the HDL description grammar of the core (logical core), the empty input port, etc. are checked. If the file exists, the core (logic core) is read by the logic synthesis tool in step a12. The logic synthesis tool has a function for checking the grammar and the like when it is read. If the result is an error, the contents are checked with the CRT, and the table data describing the port specification of the block is reviewed as shown in step a10. Execute the design check again.

第9図はグループ化制御を示すフローチャートで、第7図のステップa2の詳細を示している。先ず、コア(論理コア)のファイルがあるかどうかチェックし(a13)、ある場合にはグループ化するインスタンスのファイルがあるかどうかチェックする(a14)。ある場合には、即ち、ステップa1の結果に問題がない場合、プログラマブル・ロジックデバイス化する対象のブロック名を1行に1ブロックずつ記載されたファイル13があればそれを読み込み(a21)、対象のブロックの階層情報を維持した状態で新たなコア(論理コア)として論理合成ツールのグルーピング機能を制御してグループ化する(a22)。   FIG. 9 is a flowchart showing the grouping control, and shows details of step a2 in FIG. First, it is checked whether there is a core (logical core) file (a13), and if there is, it is checked whether there is an instance file to be grouped (a14). If there is a problem, that is, if there is no problem in the result of step a1, if there is a file 13 in which the block name to be converted into a programmable logic device is described, one block per line, it is read (a21). Grouping is performed by controlling the grouping function of the logic synthesis tool as a new core (logical core) while maintaining the hierarchical information of the block (a22).

グルーピング機能を使用する場合、コア(論理コア)のポート名がインスタンス間を接続しているネット名となるため、コア(論理コア)の全てのポートに対してコア(論理コア)内部へネットをトレースし、最初に発見したインスタンスのポート名でコア(論理コア)に新規ポートを発生させネットの名前となっているコア(論理コア)のポートに接続されているネットを発生させた新規ポートに接続し、ネット名となっているポートを削除する(a23)。新しいポートを作成して古いポートを消すためである。   When using the grouping function, the port name of the core (logical core) is the net name that connects the instances, so all the ports of the core (logical core) are connected to the core (logical core). Trace and create a new port in the core (logical core) with the port name of the first instance found, and generate a net connected to the core (logical core) port that is the net name Connect and delete the port with the net name (a23). This is to create a new port and erase the old port.

次に、モニタポート情報があるかないかチェックする(a23')。ある場合には、コア(論理コア)に指定のインスタンスのポート名でポートを発生させ、ブロックの端子と接続する(a24)。ない場合には、デバイス・テクノロジに依存するI/Oバッファ等を含まないネットリストを記憶装置10(第7図参照)に出力する(a25)。この場合、表示装置においては、論理合成ツールの表示機能を使用して確認することができる。   Next, it is checked whether there is monitor port information (a23 '). If there is, a port is generated in the core (logical core) with the port name of the designated instance and connected to the terminal of the block (a24). If not, a netlist not including an I / O buffer or the like depending on the device technology is output to the storage device 10 (see FIG. 7) (a25). In this case, in the display device, it can be confirmed using the display function of the logic synthesis tool.

このステップa2では、他に必要があれば、グループ化したブロックのポートをコア(論理コア)のポートとして発生させる(a24)こともできる。この機能は、プログラマブル・ロジックデバイスの機能評価時にモニタしたいポートがある場合に使用する。指定方法は、ファイル12に示すように、ポート名を1行に1ポートずつ記載したファイルをグルーピングとポート名称変更後に読み込ませることで行なう。   In this step a2, if there is another need, the grouped block ports can be generated as core (logical core) ports (a24). This function is used when there is a port to be monitored during the function evaluation of the programmable logic device. As shown in the file 12, the designation method is performed by reading a file in which a port name is described in one port per line after grouping and port name change.

ここまでは、設計者自身がブロックのポート仕様を決めるデータを用いてコア(論理コア)を生成するため、コア(論理コア)内のブロック間のポート接続に間違いはないはずである。しかしながら、ステップS1(第2図参照)で生成するコア(論理コア)をそのまま使用するASICの場合、コア(論理コア)内ブロックのテーブルデータに定義するデバイスパッケージの端子名称はデバイスパッケージの端子仕様を参照するのが普通であり、従って単純なミスやプリント基板設計からの変更等で相違がある可能性がある。これとは逆に、ステップa2(第7図参照)で生成したコア(論理コア)のポートがデバイスパッケージの端子となる場合、該ポートが仕様となるため、前述と同様に相違がある可能性がある。この問題をステップa3からa5のステップで解消している。   Up to this point, the designer himself / herself generates the core (logical core) using the data that determines the port specifications of the block, so there should be no mistake in the port connection between the blocks in the core (logical core). However, in the case of an ASIC that uses the core (logical core) generated in step S1 (see FIG. 2) as it is, the terminal name of the device package defined in the table data of the block in the core (logical core) is the terminal specification of the device package. Therefore, there may be a difference due to a simple mistake or a change from the printed circuit board design. On the other hand, if the port of the core (logical core) generated in step a2 (see FIG. 7) becomes a terminal of the device package, the port becomes a specification, so there may be a difference as described above There is. This problem is solved in steps a3 to a5.

第10図はI/Oバッファ挿入制御を示すフローチャートと処理のイメージを示す図である。このフローチャートは、第7図のステップa4の処理を示している。以下の説明では、a3からa5は別としているが、処理は1つのコマンドで一連の処理である。   FIG. 10 is a flowchart showing the I / O buffer insertion control and an image of processing. This flowchart shows the processing of step a4 in FIG. In the following description, a3 to a5 are different, but the process is a series of processes with one command.

先ず、外部端子情報及びコア(論理コア)のファイルがあるかどうかチェックする(a15)。ある場合には、以下の処理を行なう。a3では、a2と違い第7図の14で示すように第1カラムに端子名称、第2カラムに使用するデバイステクノロジに依存するI/Oバッファ名を定義したデバイスパッケージの端子仕様のテーブルデータが存在すれば、それを読み込ませ、ダミーのチップのデザイン(第1カラムの名称の端子情報を記述した第1デザイン)を作成し(a31)、この内部に前記ダミーチップのデザインをセル(第1デザインの下位層として記述した第1デザインと同様の端子情報を記述した第2デザイン)として発生させ、前記デザインと前記セル間の同一名称のポートを接続し、記憶装置11にダミーのコア(論理コア)を出力する。   First, it is checked whether there are external terminal information and a core (logical core) file (a15). In some cases, the following processing is performed. In a3, unlike a2, table data of the terminal specifications of the device package in which the terminal name is defined in the first column and the I / O buffer name depending on the device technology used in the second column is defined as shown in 14 of FIG. If it exists, it is read to create a dummy chip design (first design describing the terminal information of the name in the first column) (a31), and the dummy chip design is stored in the cell (first A second design describing the same terminal information as the first design described as a lower layer of the design, connecting ports of the same name between the design and the cell, and connecting a dummy core (logic Core).

ステップa4では、記憶装置11のダミーのコア(論理コア)を読み込み、デバイスパッケージの端子仕様テーブルデータ14の第2カラムにあるI/Oバッファをダミーのコア(論理コア)のネットに対しチップの端子情報からデバイス・テクノロジに依存するI/Oバッファを挿入する(a32)。   In step a4, the dummy core (logical core) of the storage device 11 is read, and the I / O buffer in the second column of the device package terminal specification table data 14 is read from the dummy core (logical core) net. An I / O buffer depending on the device technology is inserted from the terminal information (a32).

ステップa5では、上記ダミーコア(論理コア)のポートのうち機能に関係のない論理に係わらないデバイス特有でテスト用等のポートを削除し、内部のセルとして記憶装置10のコア(論理コア)と入れ替え(a33)、端子名の不一致があるかどうかチェックする(a33')。2つのコア(論理コア)間のポート名が全て一致すれば、填め込みに成功である。こうすることで、デバイスパッケージの端子仕様テーブルデータの端子名称とコア(論理コア)のポート名称をクロスチェックでき、上記の問題を解消できる。ある場合は処理は終了し、ない場合にはネットリストを出力する。   In step a5, among the ports of the dummy core (logical core), a device-specific port that is not related to the function and is not related to the logic is deleted and replaced with the core (logical core) of the storage device 10 as an internal cell. (A33), it is checked whether there is a mismatch of terminal names (a33 ′). If all the port names between the two cores (logical cores) match, the insertion is successful. By doing so, the terminal name of the device package terminal specification table data and the port name of the core (logical core) can be cross-checked, and the above problem can be solved. If there is, the process ends. If not, the net list is output.

失敗した場合には、ステップa9に示す通り、デバイスパッケージの端子仕様をチェックし、a3のステップから再実行するか、ステップa10に示す通りブロックの端子仕様を定義したテーブルデータをチェックし、ステップS1(第2図参照)から再実行する。成功した場合、コア(論理コア)の階層を展開することでチップと化す。   If unsuccessful, the terminal specification of the device package is checked as shown in step a9 and re-executed from step a3, or the table data defining the terminal specification of the block is checked as shown in step a10, and step S1 is executed. Re-execute from (see FIG. 2). If successful, the chip is formed by expanding the core (logical core) hierarchy.

ステップa6では、前記チップの全ブロックの入出力ポートにフリップフロップをブロック内部に接続し、終端する。この終端処理は、仮に回路設計が完了していないブロックが存在したとしても問題なくネットリストを生成し、レイアウト作業を可能とするためのものである。   In step a6, flip-flops are connected to the input / output ports of all the blocks of the chip and terminated. This termination processing is for generating a net list without any problem even if there is a block for which circuit design has not been completed, and enabling layout work.

ステップa7では、論理合成済みの回路データを合成結果のライブラリから読み込み、対応するブロックに填め込む。この時、チップ内部のブロックに対する合成結果が存在せず、且つ該ブロックのデザイン名称又はセル名称が名前付け規則に従ったものであれば、該ブロックの入力ポートと出力ポートを予め規則に従って該ブロック内部で接続処理する。   In step a7, the logic-synthesized circuit data is read from the synthesis result library and inserted into the corresponding block. At this time, if there is no synthesis result for the block inside the chip, and the design name or cell name of the block conforms to the naming rule, the input port and output port of the block are determined according to the rule in advance. Connect internally.

この処理は、プログラマブル・ロジックデバイスの場合には、存在せず、プログラマブル・ロジックデバイスのDLL等特有のブロックをASICとする場合に施す。このブロックを削除せずブロック内部で接続する処理によって、アーキテクチャが保持できる。また、ブロック内部にメモリ等のマクロが存在する場合は、デバイス特有のメモリの回路データに入れ替える。   This processing does not exist in the case of a programmable logic device, and is performed when a specific block such as a DLL of the programmable logic device is used as an ASIC. The architecture can be maintained by the process of connecting the blocks without deleting them. If a macro such as a memory exists in the block, it is replaced with circuit data of the memory specific to the device.

a8はASICの場合の処理で、デバイスをテストするSCANテスト回路の自動挿入、又はSCANテスト回路を接続するブロックの順序を定義したファイル16を入力し、定義順に接続する。   a8 is a process in the case of the ASIC, and the file 16 defining the order of the blocks connecting the SCAN test circuit or the automatic insertion of the SCAN test circuit for testing the device is input and connected in the definition order.

以上、述べたように、本実施の形態1によれば、設計ドキュメントからのデータからコア(論理コア)を生成し、このコア(論理コア)から階層構造及び接続情報を保持した状態でプログラマブル・ロジックデバイス用に新たにコア(論理コア)を生成することによって、回路アーキテクチャを共有できる効果があり、このコア(論理コア)に対して回路データを填め込み機能を検証したインスタンス内のデバイス・テクノロジに依存しない回路データ及びインスタンス間のネットは、ASIC化した場合に再検証を回避することが可能となる。よって、ASICとプログラマブル・ロジックデバイスのコンカレント開発を効率よく進めることを可能にできる効果もある。   As described above, according to the first embodiment, a core (logical core) is generated from data from a design document, and the hierarchical structure and connection information are retained from this core (logical core). By creating a new core (logical core) for a logic device, there is an effect that the circuit architecture can be shared, and the device technology within the instance that verified the function by filling the circuit data into this core (logical core) The circuit data that does not depend on the network and the net between instances can be avoided when the ASIC is used. Therefore, there is an effect that the concurrent development of the ASIC and the programmable logic device can be efficiently advanced.

実施の形態2.
次に、本発明に係るASICとFPGAのコンカレント開発システムについて詳細に説明する。なお、論理の設計言語には、C言語、UMLなどがあるが、本実施の形態2では、HDLを設計言語として説明する。
Embodiment 2. FIG.
Next, the ASIC and FPGA concurrent development system according to the present invention will be described in detail. Note that logic design languages include C language and UML. In the second embodiment, HDL is described as a design language.

まず、本実施の形態2に係るASICとFPGAのコンカレント開発の概念について説明する。第12図は、本実施の形態2に係るASICとFPGAのコンカレント開発の概念を説明するための説明図である。同図に示すように、このASICとFPGAのコンカレント開発の特徴は、FPGAによるプロトタイピング検証をASICのインプリメント設計とコンカレントに進めるために、プロトタイピング検証に必要なFPGAの回路を記録したROMデータをASICのインプリメント設計から提供し、FPGAとASIC開発をシームレスにできることである。   First, the concept of concurrent development of ASIC and FPGA according to the second embodiment will be described. FIG. 12 is an explanatory diagram for explaining the concept of concurrent development of ASIC and FPGA according to the second embodiment. As shown in the figure, the feature of concurrent development of ASIC and FPGA is that ROM data that records the FPGA circuit necessary for prototyping verification in order to advance prototyping verification by FPGA to ASIC implementation design and concurrent. Provided from ASIC implementation design, FPGA and ASIC development can be seamless.

このASICとFPGAのコンカレント開発では、回路アーキテクチャ検討においてFPGAによるプロトタイピング検証を考慮し、適当な予想規模の実現回路での実現機能の分割、ASICとFPGA間の構造的違いに係る機能の階層化などを行ない、ASICとFPGA設計間の共通の機能ブロック構成及び機能ブロックのポート仕様を作成する。この機能ブロック構成及び機能ブロックのポート仕様データは、ASICのインプリメント設計のフロアプラン、論理合成、レイアウト設計の共通のデータとなる。   In this concurrent development of ASIC and FPGA, prototyping verification by FPGA is considered in circuit architecture examination, division of realized functions in an implementation circuit of an appropriate expected scale, and hierarchization of functions related to structural differences between ASIC and FPGA The common functional block configuration between the ASIC and the FPGA design and the port specification of the functional block are created. The functional block configuration and the functional block port specification data are common data for the ASIC implementation design floorplan, logic synthesis, and layout design.

RTL設計・検証では、回路アーキテクチャ検討結果の構造に従ってASICとFPGA共通のRTL設計を行ない、機能毎にコーナーケースを重点に論理検証ツールを用いてソフト検証を行なう。このRTL設計・検証とコンカレントにASICの論理合成を実施し、ASICとしての特性が確保できれば、次にFPGAの論理合成を実施し、逐次プロトタイピング用基板上のFPGAに回路を形成し、FPGAのプロトタイピングによる検証を可能にする。   In RTL design and verification, RTL design common to ASIC and FPGA is performed according to the structure of the circuit architecture examination result, and software verification is performed using a logic verification tool with emphasis on the corner case for each function. If the ASIC logic synthesis is performed concurrently with the RTL design / verification and the characteristics as the ASIC can be secured, then the FPGA logic synthesis is performed, and a circuit is sequentially formed on the FPGA on the prototyping board. Allows verification by prototyping.

一方、ASICのレイアウトでは、ASICとFPGA設計間の共通の機能ブロック構成を基に、ソフト検証とプロトタイピングによる検証結果を随時コンカレントに反映させることによって、FPGAのプロトタイピングによる検証の完了からASIC開発完了までの期間を短縮する。   On the other hand, in the layout of ASIC, ASIC development from the completion of verification by prototyping of FPGA by reflecting the verification results by soft verification and prototyping on a concurrent basis based on the common functional block configuration between ASIC and FPGA design. Reduce the time to completion.

次に、本実施の形態2に係るASICとFPGAのコンカレント開発システムのシステム構成について説明する。第13図は、本実施の形態2に係るASICとFPGAのコンカレント開発システムのシステム構成を示す機能ブロック図である。同図に示すように、このASICとFPGAのコンカレント開発システム200は、ファイアウォール210と、Webサーバ220と、ユーザ認証サーバ230と、ユーザ管理サーバ240と、論理合成サーバ250と、メールサーバ260と、ファイルサーバ270と、アプリケーションサーバ280と、監視サーバ290とを有する。また、このASICとFPGAのコンカレント開発システム200は、インターネットを介してWebクライアント100から利用することができる。   Next, a system configuration of an ASIC and FPGA concurrent development system according to the second embodiment will be described. FIG. 13 is a functional block diagram showing a system configuration of an ASIC and FPGA concurrent development system according to the second embodiment. As shown in the figure, the ASIC and FPGA concurrent development system 200 includes a firewall 210, a Web server 220, a user authentication server 230, a user management server 240, a logic synthesis server 250, a mail server 260, A file server 270, an application server 280, and a monitoring server 290 are included. The ASIC and FPGA concurrent development system 200 can be used from the Web client 100 via the Internet.

ファイアウォール210は、インターネットからのアクセス要求に対し、設定された通信手順に従ったアクセス要求のみを受入れるコンピュータであり、ASICとFPGAのコンカレント開発システム200への外部からの不正なアクセスを防ぐ。   The firewall 210 is a computer that accepts only an access request in accordance with a set communication procedure in response to an access request from the Internet, and prevents unauthorized access from the outside to the concurrent development system 200 of the ASIC and FPGA.

Webサーバ220は、インターネットを通じて成されるWebクライアント100からの要求に対して情報送信を行なうコンピュータであり、ASIC又はFPGAを構成する機能ブロックのポートと機能ブロックのポート間の接続情報のみから論理COREを生成する論理CORE生成インタフェースプログラム221、論理合成インタフェースプログラム222、フィッティングインタフェースプログラム223、状況表示インタフェースプログラム224、論理CORE生成に必要なフォーマットファイルと論理合成に必要なフォーマットファイルとを有し、このコンピュータがWebクライアント100からの要求に応じてこれらのプログラムを実行し、Webクライアント100に結果を送信する。   The Web server 220 is a computer that transmits information in response to a request from the Web client 100 made through the Internet, and the logical CORE is obtained only from the connection information between the function block ports and the function block ports constituting the ASIC or FPGA. A logical CORE generation interface program 221, a logical synthesis interface program 222, a fitting interface program 223, a status display interface program 224, a format file necessary for logical CORE generation and a format file necessary for logical synthesis. Executes these programs in response to a request from the Web client 100 and transmits the result to the Web client 100.

ユーザ認証サーバ230は、ユーザの認証を行なうコンピュータであり、契約に基づいて使用するユーザ名とパスワードが登録されている。ユーザ管理サーバ240は、ユーザの登録、削除を行なうコンピュータであり、契約に基づいて使用するユーザ名と後述するProject名とメールアドレスが登録されている。   The user authentication server 230 is a computer that performs user authentication, and a user name and a password to be used based on a contract are registered. The user management server 240 is a computer for registering and deleting a user, and a user name used based on a contract, a project name and an e-mail address to be described later are registered.

論理合成サーバ250は、ASIC論理CORE生成プログラム251と、FPGA論理CORE生成プログラム252と、ASIC論理合成プログラム253と、FPGA論理合成プログラム254と、FPGAのレイアウトであるフィッティングプログラム255とを有するコンピュータであり、この論理合成サーバ250にある論理合成及びフィッティングのプログラムは、論理合成インタフェースプログラム222から起動され、ファイルサーバ270に格納されているRTLソースを読込み、ASIC及びFPGAの論理合成とFPGAのフィッティングを実行する。   The logic synthesis server 250 is a computer having an ASIC logic CORE generation program 251, an FPGA logic CORE generation program 252, an ASIC logic synthesis program 253, an FPGA logic synthesis program 254, and a fitting program 255 which is an FPGA layout. The logic synthesis and fitting program in the logic synthesis server 250 is started from the logic synthesis interface program 222, reads the RTL source stored in the file server 270, and performs logic synthesis of ASIC and FPGA and fitting of FPGA. To do.

メールサーバ260は、メール送受信ソフトウェアを有するコンピュータであり、Webサーバ220から実行された処理情報、Webクライアント100からの情報をユーザとシステム内へメール配信する。   The mail server 260 is a computer having mail transmission / reception software, and distributes processing information executed from the Web server 220 and information from the Web client 100 to the user and the system.

ファイルサーバ270は、論理合成対象RTLソース、論理合成結果、FPGAのROMデータなどを格納する記憶媒体である。第14図は、ファイルサーバ内にデータを格納するためのディレクトリ構成の一例を示す図である。同図に示すProject41とは、ASIC及びFPGAを開発するProject名あるいはASICのニックネームのディレクトリであり、この名称は契約に基づいて設定される。   The file server 270 is a storage medium for storing a logic synthesis target RTL source, a logic synthesis result, FPGA ROM data, and the like. FIG. 14 is a diagram showing an example of a directory structure for storing data in the file server. A project 41 shown in FIG. 4 is a directory of a project name for developing an ASIC and FPGA or a nickname of the ASIC, and this name is set based on a contract.

IO42は、論理COREを生成するためのデータを格納するディレクトリであり、ASICを構成する機能ブロック単位に、第15図に示す機能ブロックのポート仕様を記載した論理CORE生成用テーブルのファイルを格納するディレクトリASIC48と、論理CORE生成インタフェースプログラム221がユーザの指定に従ってディレクトリASIC48内の論理CORE生成用テーブルのファイルを複写して格納するディレクトリFPGA49とをもつ。また、ディレクトリFPGA49の下に、ユーザが指定するFPGAの番号の数のディレクトリが存在する。なお、論理CORE生成用テーブル及び論理CORE生成インタフェースプログラム221の詳細については後述する。   The IO 42 is a directory for storing data for generating a logical CORE, and stores a logical CORE generation table file describing the port specifications of the functional blocks shown in FIG. 15 for each functional block constituting the ASIC. The directory ASIC 48 and the logical CORE generation interface program 221 have a directory FPGA 49 for copying and storing the logical CORE generation table file in the directory ASIC 48 in accordance with the user's specification. Further, under the directory FPGA 49, there are as many directories as the number of FPGAs designated by the user. Details of the logical CORE generation table and the logical CORE generation interface program 221 will be described later.

CORE43は、論理CORE生成プログラムが生成した論理COREを格納するディレクトリであり、ASICを構成する機能ブロックのポート仕様から生成したASICの論理COREを格納するディレクトリASIC50と、FPGAを構成する機能ブロックのポート仕様からFPGAの論理COREを格納するディレクトリFPGA51をもつ。   The CORE 43 is a directory for storing the logical CORE generated by the logical CORE generation program, the directory ASIC 50 for storing the ASIC logical CORE generated from the port specification of the functional block configuring the ASIC, and the port of the functional block configuring the FPGA. A directory FPGA 51 for storing the logic CORE of the FPGA from the specification is provided.

RTL44は、後述する論理合成インタフェースからユーザがアップロードするHDL(ハードウェア記述言語)で表現された回路設計データ(以降RTL)を格納するディレクトリであり、ASICの論理COREを構成する機能ブロック単位に格納するディレクトリASIC52と、ユーザの指定に従ってASICディレクトリ内のRTLを複写して格納するディレクトリFPGA53とをもつ。   The RTL 44 is a directory for storing circuit design data (hereinafter referred to as RTL) expressed in HDL (hardware description language) uploaded by a user from a logic synthesis interface, which will be described later, and is stored in units of functional blocks constituting an ASIC logic CORE. And a directory FPGA 53 for copying and storing the RTL in the ASIC directory according to the user's specification.

SYNTHESIS45は、論理合成サーバ250がRTLを論理合成した結果を格納するディレクトリであり、ASICの論理合成結果をASICの論理COREを構成する機能ブロック単位に格納するディレクトリをもつディレクトリASIC54と、それぞれのFPGAの論理合成結果を格納するディレクトリをもつディレクトリFPGA55をもつ。   The SYNTHESIS 45 is a directory for storing the result of logical synthesis of the RTL by the logical synthesis server 250. The directory ASIC 54 having a directory for storing the logical synthesis result of the ASIC in units of functional blocks constituting the logical core of the ASIC, and the respective FPGAs. A directory FPGA 55 having a directory for storing the logic synthesis results of

ROM46は、FPGAの論理合成結果を基にFPGAのレイアウトであるフィッティング後生成されるFPGAの回路データを記憶するROMデータを格納するディレクトリであり、FPGA毎に格納するディレクトリをもつ。LAYOUT47は、ASICのレイアウト設計担当者がASICのレイアウト設計を行なう作業ディレクトリである。   The ROM 46 is a directory for storing ROM data for storing FPGA circuit data generated after fitting, which is a layout of the FPGA based on the logic synthesis result of the FPGA, and has a directory for storing for each FPGA. LAYOUT 47 is a working directory in which an ASIC layout designer is responsible for ASIC layout design.

アプリケーションサーバ280は、ASICのフロアプラン、レイアウト設計、タイミング検証を行なうプログラムを有するコンピュータである。このコンピュータでインプリメント設計者がASICのフロアプラン、レイアウト設計、タイミング検証を行なう。   The application server 280 is a computer having a program for performing an ASIC floor plan, layout design, and timing verification. With this computer, the implement designer performs ASIC floorplanning, layout design, and timing verification.

監視サーバ290は、ユーザ管理サーバ240に登録されているユーザ名とProject名を取得し、それぞれのProject名のディレクトリ内にあるデータにおいて、インプリメント設計者が管理するディレクトリLAYOUT47内のデータとその他のディレクトリ内のデータとの比較、論理合成、レイアウト処理にツールが要した時間の収集を1日に1回ずつ2回に分けて行ない、1回目がインプリメント設計者への変更内容の通知を行ない、2回目に収集した時間を基に変更を反映するスケジュールを更新するコンピュータである。   The monitoring server 290 acquires the user name and the project name registered in the user management server 240, and the data in the directory LAYOUT 47 managed by the implement designer and other directories in the data in the respective project name directories. The time required for the comparison, logic synthesis, and layout processing by the tool is collected twice a day, and the first time notifies the implementation designer of the changes. The computer updates the schedule reflecting the change based on the time collected for the second time.

次に、本実施の形態2のASICとFPGAのコンカレント開発システム200の処理手順について説明する。第16図は、本実施の形態2のASICとFPGAのコンカレント開発システム200の処理手順を示すフローチャートである。   Next, a processing procedure of the ASIC and FPGA concurrent development system 200 according to the second embodiment will be described. FIG. 16 is a flowchart showing a processing procedure of the ASIC / FPGA concurrent development system 200 according to the second embodiment.

同図に示すように、このASICとFPGAのコンカレント開発システム200にWebクライアント100を用いてアクセスすると、Webサーバ220は、第17図に示すログイン画面の表示制御データをWebクライアント100へ送り、Webクライアント100は、受取ったデータに基づいて画面を表示する。ユーザは、このログイン画面で契約に基づいて登録しているユーザ名とパスワードを入力してLoginボタンを押すと、Webクライアント100は、ユーザ名とパスワードをWebサーバ220に送る。   As shown in the figure, when the ASIC and FPGA concurrent development system 200 is accessed using the Web client 100, the Web server 220 sends the login screen display control data shown in FIG. The client 100 displays a screen based on the received data. When the user inputs the user name and password registered based on the contract on this login screen and presses the Login button, the Web client 100 sends the user name and password to the Web server 220.

Webサーバ220は、受取ったユーザ名とパスワードをユーザ認証サーバ230に問い合わせる。ユーザ認証サーバ230は、ユーザ名とパスワードが登録されているか否かを確認し(ステップS501)、その結果をWebサーバ220に返す。Webサーバ220は、ユーザ認証サーバ230から拒絶された場合、ログイン拒否画面の表示制御データをWebクライアント100へ送り、Webクライアント100は、受取ったデータに基づいてログイン拒否を画面に表示して終了する(ステップS502)。   The Web server 220 inquires of the user authentication server 230 about the received user name and password. The user authentication server 230 confirms whether or not the user name and password are registered (step S501), and returns the result to the web server 220. When rejected from the user authentication server 230, the Web server 220 sends display control data for the login rejection screen to the Web client 100, and the Web client 100 displays a login rejection on the screen based on the received data and ends. (Step S502).

Webサーバ220は、ユーザ認証サーバ230からログインを受け付けられた場合、第18図に示す手順画面の表示制御データをWebクライアント100へ送り、Webクライアント100は受取ったデータに基づいて手順画面を表示する(ステップS503)。   When the web server 220 receives a login from the user authentication server 230, it sends the display control data for the procedure screen shown in FIG. 18 to the web client 100, and the web client 100 displays the procedure screen based on the received data. (Step S503).

ユーザは、第18図に示した手順画面に従いメニューを選択し、ASICとFPGAのコンカレント開発を行なう。ユーザが「フォーマット1」及び「フォーマット2」を選択すると(ステップS504の肯定)、Webサーバ220内にある対象の設計に必要なフォーマットファイルがWebクライアント100にダウンロードされる(ステップS505)。   The user selects a menu according to the procedure screen shown in FIG. 18, and performs concurrent development of the ASIC and the FPGA. When the user selects “Format 1” and “Format 2” (Yes in Step S504), a format file necessary for the design of the target in the Web server 220 is downloaded to the Web client 100 (Step S505).

「フォーマット1」は、第15図に示した論理CORE生成用テーブルのフォーマットデータである。「フォーマット2」は、後述するASICの論理合成で使用するASICのパッケージの端子名称と端子番号割り付け、及びASICと外部デバイス間を電気的にインタフェースするIOバッファを定義したテーブルのフォーマットデータである。   “Format 1” is the format data of the logical CORE generation table shown in FIG. “Format 2” is format data of a table in which terminal names and terminal numbers assigned to ASIC packages used in ASIC logic synthesis, which will be described later, and IO buffers that electrically interface the ASIC and external devices are defined.

ユーザが論理CORE生成を選択すると(ステップS506の肯定)、Webクライアント100は論理CORE生成が選択された事をWebサーバ220へ送り、Webサーバ220は論理CORE生成インタフェースプログラム221を起動する(ステップS507)。   When the user selects logical CORE generation (Yes in step S506), the Web client 100 sends the selection of logical CORE generation to the Web server 220, and the Web server 220 activates the logical CORE generation interface program 221 (step S507). ).

ユーザが論理合成を選択すると(ステップS508の肯定)、Webクライアント100は論理合成が選択された事をWebサーバ220へ送り、Webサーバ220は論理合成インタフェースプログラム222を起動する(ステップS509)。   When the user selects logic synthesis (Yes in step S508), the web client 100 sends the fact that logic synthesis is selected to the web server 220, and the web server 220 activates the logic synthesis interface program 222 (step S509).

ユーザがフィッティングを選択すると(ステップS510の肯定)、Webクライアント100はフィッティングが選択された事をWebサーバ220へ送り、Webサーバ220はフィッティングインタフェースプログラム223を起動する(ステップS511)。   When the user selects the fitting (Yes in step S510), the web client 100 sends the fact that the fitting is selected to the web server 220, and the web server 220 activates the fitting interface program 223 (step S511).

ユーザが状況表示を選択すると(ステップS512の肯定)、Webクライアント100は状況表示が選択された事をWebサーバ220へ送り、Webサーバ220は状況表示インタフェースプログラム224を起動する(ステップS513)。   When the user selects the status display (Yes in step S512), the web client 100 sends the status display selected to the web server 220, and the web server 220 activates the status display interface program 224 (step S513).

次に、論理CORE生成インタフェースプログラム221の処理手順について説明する。第19図は、論理CORE生成インタフェースプログラム221の処理手順を示すフローチャートである。同図に示すように、この論理CORE生成インタフェースプログラム221は、第20図に示す論理CORE生成インタフェース画面の表示制御データをWebサーバ220へ送り、Webサーバ220は受取った論理CORE生成インタフェース画面の表示制御データをWebクライアント100へ送り、Webクライアント100は受取った論理CORE生成インタフェース画面の表示制御データに基づいて論理CORE生成インタフェース画面を表示する(ステップS801)。   Next, the processing procedure of the logical CORE generation interface program 221 will be described. FIG. 19 is a flowchart showing the processing procedure of the logical CORE generation interface program 221. As shown in the figure, the logical CORE generation interface program 221 sends display control data for the logical CORE generation interface screen shown in FIG. 20 to the Web server 220, and the Web server 220 displays the received logical CORE generation interface screen. The control data is sent to the Web client 100, and the Web client 100 displays the logical CORE generation interface screen based on the received logical CORE generation interface screen display control data (step S801).

ユーザは、Project名を入力して実行ボタンを選択し、Webクライアント100によって表示されるファイル選択画面に従ってASICの論理COREを生成するためのASICを構成する機能ブロックのIO仕様を定義した第15図に示す論理CORE生成用テーブルのファイルを指定する。   The user inputs the project name, selects the execute button, and defines the IO specifications of the functional blocks constituting the ASIC for generating the ASIC logical CORE according to the file selection screen displayed by the Web client 100. FIG. The file of the logical CORE generation table shown in Fig. 2 is specified.

Webクライアント100は、Projectの指定データとIOの論理CORE生成用テーブルのファイルをWebサーバ220へ送り、Webサーバ220は、ファイルサーバ270内に、第14図に示したIO42,CORE43,RTL44,SYNTHESIS45,ROM46,LAYOUT47などのディレクトリを作成し(ステップS802)、IO42下のディレクトリASIC48に論理CORE生成用テーブルのファイルを格納し、Project名を指定し、ASIC論理CORE生成プログラム251を実行し、実行プロセスIDをメモリに格納する(ステップS803)。   The Web client 100 sends the specified data of the project and the file of the IO logical CORE generation table to the Web server 220. The Web server 220 stores the IO 42, CORE 43, RTL 44, and SYNTHESIS 45 shown in FIG. , ROM 46, LAYOUT 47, and the like (step S802), the logical CORE generation table file is stored in the directory ASIC 48 under the IO 42, the project name is specified, the ASIC logical CORE generation program 251 is executed, and the execution process The ID is stored in the memory (step S803).

ここで、ASIC論理CORE生成プログラム251の処理手順について説明する。第21図及び第22図は、ASIC論理CORE生成プログラム251の処理手順を示すフローチャートである。第21図に示すように、このASIC論理CORE生成プログラム251は、第15図に示した論理CORE生成用テーブルX、Y、Zを、第14図のディレクトリASIC48から読込み、1ファイルずつ処理を行なう。   Here, a processing procedure of the ASIC logic CORE generation program 251 will be described. 21 and 22 are flowcharts showing the processing procedure of the ASIC logic CORE generation program 251. As shown in FIG. 21, the ASIC logic CORE generation program 251 reads the logic CORE generation tables X, Y, and Z shown in FIG. 15 from the directory ASIC 48 shown in FIG. 14 and processes each file one by one. .

論理CORE生成用テーブルX、Y、Zは、回路アーキテクチャ検討結果から作成される機能ブロックのポート仕様を、定義済みの「フォーマット1」に従って定義したテーブルである。このテーブルは、機能ブロックを設計する際必ず作成されるものであり、機能ブロック名、インスタンス名、ポート名、レンジ、入出力、種別、出力元インスタンス名、出力元インスタンスの出力ポート名などから成る。インスタンスとは、ASICを構成する機能ブロックを参照するものであり、同一機能の機能ブロックを複数使用する場合はこのインスタンスの名称を変えて組込まれる。   The logic CORE generation tables X, Y, and Z are tables in which the port specifications of the functional blocks created from the circuit architecture examination result are defined according to the defined “format 1”. This table is always created when designing a functional block, and consists of the functional block name, instance name, port name, range, input / output, type, output source instance name, output port name of the output source instance, etc. . An instance refers to a function block that constitutes an ASIC. When a plurality of function blocks having the same function are used, the instance name is changed and incorporated.

まず、Xのデータを読込み(ステップS1001)、ポートAのテーブルの全データを抽出してメモリに格納し(ステップS1002)、ポートAが出力か否かを調べる(ステップS1003)。その結果、ポートAは入力であるので、次にパッケージ端子の接続キーワード"IO"の有無を調べる(ステップS1005)。その結果、接続キーワード"IO"はないので、次のポートBの全データをメモリに格納する。   First, X data is read (step S1001), all data in the table of port A is extracted and stored in the memory (step S1002), and it is checked whether port A is output (step S1003). As a result, since port A is an input, the presence / absence of the connection keyword “IO” of the package terminal is checked (step S1005). As a result, since there is no connection keyword “IO”, all data of the next port B is stored in the memory.

ポートBは出力であるので、"XB"を第14図のディレクトリASIC50にAの名称でファイル出力する(ステップS1004)。次にパッケージ端子の接続キーワード"IO"はないので、次のポートZの全データをメモリに格納する。ポートZは出力であるので、"XZ[2:0] "をファイルAに出力する。次にパッケージ端子の接続キーワード"IO"はないので、次のポートIの全データをメモリに格納する。   Since port B is an output, "XB" is output as a file with the name A to the directory ASIC 50 in FIG. 14 (step S1004). Next, since there is no connection keyword “IO” of the package terminal, all data of the next port Z is stored in the memory. Since port Z is an output, "XZ [2: 0]" is output to file A. Next, since there is no connection keyword “IO” for the package terminal, all data of the next port I is stored in the memory.

ポートIは入力であり、次にパッケージ端子の接続キーワード"IO"があるので"INPUT,in,2:0"を論理COREのポート名としてメモリに格納する(ステップS1006)。これでXの全ポートの処理が終了し(ステップS1007の肯定)、HDLの文法に従ってポート名と入出力とレンジ情報を定義したエンティティファイルを第14図のディレクトリASIC50にXの名称でファイル出力する(ステップS1008)。出力される内容は、VHDLであれば以下のようなものである。
A: in std_logic;
B: out std_logic;
Z: out std_logic vector(2 downto 0);
I: in std_logic;
Port I is an input, and next there is a connection keyword “IO” of the package terminal, so “INPUT, in, 2: 0” is stored in the memory as the port name of the logical CORE (step S1006). This completes the processing of all the ports of X (Yes in step S1007), and outputs the entity file defining the port name, input / output, and range information according to the HDL syntax to the directory ASIC 50 of FIG. 14 with the name of X. (Step S1008). If the output content is VHDL, it is as follows.
A: in std_logic;
B: out std_logic;
Z: out std_logic vector (2 downto 0);
I: in std_logic;

そして、上記の処理をY、Zのデータについても行なう。また、この段階でファイルAには次のようなデータが記録されている。
XB,XZ[2:0],YC[1:0],YO,ZF
The above processing is also performed for Y and Z data. At this stage, the following data is recorded in the file A.
XB, XZ [2: 0], YC [1: 0], YO, ZF

上記X、Y、Zの全ファイルの処理が終了すると(ステップS1009の肯定)、上記ファイルA(ステップS1010)のデータを読込み、メモリに格納し(ステップS1011)、1ファイルずつ処理を行なう。ここでは、Xのテーブルデータを例に説明する。まず、ポートAが入力であるか否かを調べ(ステップS1012)、その結果、ポートAは入力であるので、出力元のYとポート名のCを抽出する(ステップS1013)。そして、メモリをYC[1:0]で検索し(ステップS1014)、一致するデータの有無を調べる(ステップS1016)。その結果、一致するデータがメモリに存在するので、以下のような接続情報を第14図のディレクトリASIC50にBの名称でファイル出力する(ステップS1018)。結果が一致しない場合は、ポートの名称またはレンジが異なっているなどのエラー情報をディレクトリASIC50のログファイルに出力する(ステップS1017)。
A => YC
When the processing of all the files X, Y, and Z is completed (Yes in step S1009), the data of the file A (step S1010) is read and stored in the memory (step S1011), and the processing is performed for each file. Here, X table data will be described as an example. First, it is checked whether or not the port A is an input (step S1012). As a result, since the port A is an input, the output source Y and the port name C are extracted (step S1013). Then, the memory is searched with YC [1: 0] (step S1014), and the presence or absence of matching data is checked (step S1016). As a result, since matching data exists in the memory, the following connection information is output as a file with the name B to the directory ASIC 50 in FIG. 14 (step S1018). If the results do not match, error information indicating that the port name or range is different is output to the log file of the directory ASIC 50 (step S1017).
A => YC

同様にして、ポートBは出力であるので、以下のような接続情報をディレクトリASIC50のファイルBに出力する(ステップS1015)。
B => XB
Similarly, since the port B is an output, the following connection information is output to the file B of the directory ASIC 50 (step S1015).
B => XB

同様にして、ポートZは出力であるので、以下のような接続情報をディレクトリASIC50のファイルBに出力する。
Z => XZ
Similarly, since the port Z is an output, the following connection information is output to the file B of the directory ASIC 50.
Z => XZ

同様にして、ポートIは入力であり、検索で"IOINPUT"が発見できないので、エラーとしてディレクトリASIC50のログファイルに出力する。ただし、パッケージの端子と接続されるポートの場合は問題ではなく、逆にログに出力されたエラー情報からどのインスタンスのどのポートがパッケージのどの端子と接続したかの確認ができる。次に、以下のような接続情報をディレクトリASIC50のファイルBに出力する。
I=> IOINPUT
Similarly, since port I is an input and “IOINPUT” cannot be found by the search, it is output to the log file of the directory ASIC 50 as an error. However, in the case of a port connected to a package terminal, this is not a problem. Conversely, it is possible to check which port of which instance is connected to which terminal of the package from the error information output in the log. Next, the following connection information is output to the file B of the directory ASIC 50.
I => IOINPUT

以上の処理をY,Zのテーブルデータについても行って終了すると(ステップS1019の肯定)、接続情報が作成できなかったポートをログファイルに出力し(ステップS1020)、VHDLであれば、以下のような情報をもつたASICの論理COREのエンティティファイルをディレクトリASIC50に出力する(ステップS1021)。
INPUT: in std_logic;
OUT : out std_logic;
When the above processing is also performed for the Y and Z table data (Yes in step S1019), the port for which connection information could not be created is output to the log file (step S1020). An ASIC logical CORE entity file having such information is output to the directory ASIC 50 (step S1021).
INPUT: in std_logic;
OUT: out std_logic;

また、論理COREのエンティティファイルと接続情報を結合し、ASICの論理COREをディレクトリASIC50に第17図で指定されたProject名でファイル出力して処理を終了し、第19図に示した論理CORE生成インタフェースプログラム221に戻る(ステップS1022)。   Also, the logical CORE entity file and the connection information are combined, the ASIC logical CORE is output to the directory ASIC 50 as a file with the project name specified in FIG. 17, the processing is terminated, and the logical CORE generation shown in FIG. 19 is completed. The process returns to the interface program 221 (step S1022).

論理CORE生成インタフェースプログラム221は、ディレクトリASIC50内のログファイルにエラーがないかを検索する。もしエラーが記録されていれば(ステップS804の肯定)、エラーを読み込み(ステップS805)、Project名と、ユーザ管理サーバ240にProject名で問い合わせて得たユーザのメールアドレスと、エラー情報と、プロセスIDとをメールサーバ260へ送り、メールサーバ260からユーザへメールを送信する(ステップS806)。ユーザは、このメールでエラー内容を確認し、エラーがなくなるまで論理CORE生成の処理を繰り返す。   The logical CORE generation interface program 221 searches the log file in the directory ASIC 50 for an error. If an error is recorded (Yes in step S804), the error is read (step S805), and the project name, the user's mail address obtained by inquiring the user management server 240 with the project name, error information, and process The ID is sent to the mail server 260, and the mail is sent from the mail server 260 to the user (step S806). The user confirms the error content by this mail and repeats the process of generating the logical CORE until there is no error.

一方、ログファイルにエラーが記録されていなければ(ステップS804の否定)、Project名と、ユーザ管理サーバ240にProject名で問い合わせて得たユーザのメールアドレスと、プロセスIDと、論理CORE生成終了メッセージとをメールサーバ260へ送り(ステップS807)、メールサーバ260からユーザへメールを送信する。   On the other hand, if no error is recorded in the log file (No in step S804), the project name, the user's mail address obtained by inquiring the user management server 240 with the project name, the process ID, and the logical CORE generation end message Are sent to the mail server 260 (step S807), and mail is sent from the mail server 260 to the user.

また、ディレクトリASIC50に"CORE+プロセスID+日時"の名称でディレクトリを作成し、ディレクトリASIC50にProject名で生成した論理COREとログファイルとをこのディレクトリに移動し、このディレクトリにIOの名称でディレクトリを作成し、論理COREの生成に使用したディレクトリASIC48にあるテーブルデータをこのIOディレクトリに移動し、論理合成サーバ250内の論理COREチェックプログラムにこのProject名と"CORE+プロセスID+日時"の名称で作成した論理COREのディレクトリ名を指定し、論理COREチェックプログラムを起動する(ステップS808)。   In addition, a directory is created in the directory ASIC 50 with the name “CORE + process ID + date”, the logical CORE generated with the project name and the log file are moved to the directory ASIC 50, and a directory is created in this directory with the name of IO. Then, the table data in the directory ASIC 48 used to generate the logical CORE is moved to this IO directory, and the logical name created in the logical CORE check program in the logical synthesis server 250 with the name of this project and “CORE + process ID + date / time” is created. The CORE directory name is designated, and the logical CORE check program is started (step S808).

この論理COREチェックプログラムは、ASICの論理COREの文法チェック、論理COREを構成する各インスタンスの入出力ポートの未接続チェックを行ない、レポートを出力するように論理合成ツールのコマンドが記述されている。   In this logic CORE check program, a logic synthesis tool command is described so as to check the syntax of the ASIC logic CORE, check whether the input / output ports of each instance constituting the logic CORE are unconnected, and output a report.

ここで、論理COREチェックプログラムの処理手順について説明する。第23図は、論理COREチェックプログラムの処理手順を示すフローチャートである。この論理COREチェックプログラムは、受取ったProject名のディレクトリ下にあり、第14図のディレクトリASIC50に対象とするASICの論理COREのディレクトリがあるかを調べ(ステップS1201)、もしあれば、その論理COREのディレクトリがあるASICディレクトリ内にWORKディレクトリを作成し(ステップS1202)、論理合成ツールにチェックを実行させる(ステップS1203)。   Here, the processing procedure of the logical CORE check program will be described. FIG. 23 is a flowchart showing the processing procedure of the logical CORE check program. This logical CORE check program is under the directory of the received Project name, and checks whether there is a directory of the target ASIC logical CORE in the directory ASIC 50 of FIG. 14 (step S1201). A WORK directory is created in the ASIC directory in which the directory is located (step S1202), and the logic synthesis tool is checked (step S1203).

実行が終了すると、WORKディレクトリ内にあるレポートファイル内からエラー情報を抽出し、ユーザ管理サーバ240にProject名で問い合わせて得たユーザのメールアドレスと論理COREのディレクトリ名から抽出したプロセスIDと共にメールサーバ260へ送り、メールサーバ260からユーザへメール送信する(ステップS1204)。ユーザはこの送られたメールの内容でエラー情報が意図したものか確認する。   When the execution is completed, the error information is extracted from the report file in the WORK directory, and the mail server together with the process ID extracted from the user mail address obtained by inquiring the user management server 240 with the project name and the directory name of the logical CORE. Then, the mail server 260 sends a mail to the user (step S1204). The user confirms whether the error information is intended by the contents of the sent mail.

この一連のフローで生成された論理COREは、ユーザの論理設計においてASICを構成するインスタンス間の結線ミスが無い限り必ずASICとして組み上がることを保証するものである。この効果は、論理検証にて現れる。ASICを構成する複数のインスタンスの機能検証において期待と違った動作をした場合、インスタンス間の接続は保証できていることからインスタンスを構成する各機能に絞ったデバッグが可能となる。   The logical CORE generated by this series of flows guarantees that the logical CORE is always assembled as an ASIC unless there is a connection error between instances constituting the ASIC in the logical design of the user. This effect appears in logic verification. When an operation different from the expectation is performed in the function verification of a plurality of instances constituting the ASIC, the connection between the instances can be guaranteed, so that the debugging can be limited to each function constituting the instance.

次に、ユーザが第18図の手順画面において状況表示を選択した場合の処理について説明する。ユーザが第18図の手順画面において状況表示を選択すると、状況表示インタフェースプログラム224が起動される。この状況表示インタフェースプログラム224は、第24図に示す状況表示選択画面の表示制御データをWebサーバ220へ送り、Webサーバ220は受取った状況表示選択画面の表示制御データをWebクライアント100へ送り、Webクライアント100は受取った状況表示選択画面の表示制御データに基づいて画面を表示する。   Next, processing when the user selects status display on the procedure screen of FIG. 18 will be described. When the user selects status display on the procedure screen of FIG. 18, the status display interface program 224 is activated. The status display interface program 224 sends the display control data for the status display selection screen shown in FIG. 24 to the Web server 220, and the Web server 220 sends the received display control data for the status display selection screen to the Web client 100. The client 100 displays a screen based on the received display control data of the status display selection screen.

この画面でユーザが論理CORE作成を選択すると、今度は状況表示インタフェースプログラム224が第25図に示す論理CORE生成状況画面の論理COREの名称表示がない表示制御データを生成してWebサーバ220へ送り、Webサーバ220は受取った論理CORE生成状況画面の表示制御データをWebクライアント100へ送り、Webクライアント100は受取った論理CORE生成状況画面の表示制御データに基づいて画面を表示する。   When the user selects logical CORE creation on this screen, the status display interface program 224 generates display control data without the logical CORE name display on the logical CORE generation status screen shown in FIG. 25 and sends it to the Web server 220. The Web server 220 sends the received logical CORE generation status screen display control data to the Web client 100, and the Web client 100 displays a screen based on the received logical CORE generation status screen display control data.

この画面でユーザがProject名を入力し表示ボタンを選択すると、Project名をWebクライアント100がWebサーバ220に送り、Webサーバ220からProject名を受取った状況表示インタフェースプログラム224は、指定のProject名のディレクトリから第14図のディレクトリASIC50にある論理COREのディレクトリ名称を抽出し、論理CORE生成状況画面の表示制御データを更新してWebサーバ220へ送り、Webサーバ220は受取った論理CORE生成状況画面の表示制御データをWebクライアント100へ送り、Webクライアント100は受取った論理CORE生成状況画面の表示制御データに基づいて画面を表示する。この画面には先に生成されたASICの論理COREのディレクトリ名称が表示される。   When the user inputs a project name and selects a display button on this screen, the Web client 100 sends the project name to the Web server 220 and receives the project name from the Web server 220. The status display interface program 224 receives the specified project name. The directory name of the logical CORE in the directory ASIC 50 in FIG. 14 is extracted from the directory, the display control data of the logical CORE generation status screen is updated and sent to the Web server 220, and the Web server 220 receives the received logical CORE generation status screen. The display control data is sent to the Web client 100, and the Web client 100 displays a screen based on the received logical CORE generation status screen display control data. On this screen, the directory name of the previously generated ASIC logical CORE is displayed.

ここで、ASICの論理CORE生成状況表示画面での処理手順について説明する。第26図は、ASICの論理CORE生成状況表示画面での処理手順を示すフローチャートである。同図に示すように、ユーザが、表示された論理COREのどれかを選びダウンロードを選択すると(ステップS1501)、対象の論理COREをWebクライアント100にダウンロードすることができる(ステップS1502)。このダウンロードした論理COREは、ASICのチップレベルのネットリストとして論理検証に使用することができ、先に述べたようにインスタンスを構成する機能に絞ったデバッグが可能となる。   Here, a processing procedure on the ASIC logical CORE generation status display screen will be described. FIG. 26 is a flowchart showing a processing procedure on the ASIC logical CORE generation status display screen. As shown in the figure, when the user selects one of the displayed logical COREs and selects download (step S1501), the target logical CORE can be downloaded to the Web client 100 (step S1502). The downloaded logic CORE can be used for logic verification as an ASIC chip-level netlist, and debugging can be limited to the function of configuring an instance as described above.

一方、ユーザが論理CORE名称を指定してFPGA化ボタンを選択すると(ステップS1503)、Webクライアント100は、Project名と論理CORE名称とFPGA化が選択されたこととをWebサーバ220に送り、Webサーバ220は受取ったデータを状況表示インタフェースプログラム224へ送る。状況表示インタフェースプログラム224は、第14図のディレクトリASIC50内にある、対象とする論理CORE名称のディレクトリ下のIOディレクトリ内にあるテーブルデータのファイル名を抽出し、その結果、第27図に示すようなFPGA論理CORE生成インタフェース画面の表示制御データを作成しWebサーバ220へ送る。   On the other hand, when the user designates the logical CORE name and selects the FPGA button (step S1503), the Web client 100 sends the Project name, the logical CORE name, and FPGA selection to the Web server 220, The server 220 sends the received data to the status display interface program 224. The status display interface program 224 extracts the file names of the table data in the IO directory under the target logical CORE name in the directory ASIC 50 in FIG. 14, and as a result, as shown in FIG. A display control data for a new FPGA logic CORE generation interface screen is created and sent to the Web server 220.

Webサーバ220は受取ったFPGA論理CORE生成インタフェース画面の表示制御データをWebクライアント100へ送り、Webクライアント100は受取ったFPGA論理CORE生成インタフェース画面の表示制御データに基づいて画面を表示する(ステップS1504)。この画面では、指定されたProject名と、論理CORE名と、論理COREを構成するインスタンス名のリストが左側のリストボックスにリストされる。また、この画面では、対象の論理COREを変えることも可能であり、ユーザがProject名と論理CORE名を指定すると第25図で指定した同様の処理によって画面が更新される。   The Web server 220 sends the received display control data of the FPGA logical CORE generation interface screen to the Web client 100, and the Web client 100 displays a screen based on the received display control data of the FPGA logical CORE generation interface screen (step S1504). . On this screen, a list of designated project names, logical CORE names, and instance names constituting the logical CORE are listed in the left list box. In this screen, the target logical CORE can be changed. When the user designates the project name and the logical CORE name, the screen is updated by the same processing designated in FIG.

さらに、この画面は、対象のASICの論理COREを構成するインスタンスのテーブルデータからFPGAの論理COREを生成するインタフェースであって、ユーザは、左のリストボックスからインスタンスを指定し追加ボタンを選択することで右のリストボックスにインスタンスを追加する。この右のリストボックスにリストされたインスタンスが1つのFPGAとなる。ユーザがインスタンスを選択し、FPGA名と管理のための追い番号である1以上の一意の整数であるFPGA番号を設定して実行ボタンを選択すると、Webクライアント100が、対象のProject名と、ASICの論理CORE名と、FPGA名と、FPGAとするインスタンス名のリストと、FPGAの番号とをWebサーバ220へ送り、Webサーバ220は、受取ったデータを状況表示インタフェースプログラム224へ送る。   Further, this screen is an interface for generating the FPGA logical CORE from the table data of the instances constituting the target ASIC logical CORE. The user designates the instance from the left list box and selects the add button. To add an instance to the list box on the right. An instance listed in the list box on the right is one FPGA. When the user selects an instance, sets an FPGA name and an FPGA number that is a unique integer of 1 or more, which is a management number, and selects an execution button, the Web client 100 selects the target Project name, ASIC, The logical CORE name, FPGA name, instance name list of FPGA, and FPGA number are sent to the Web server 220, and the Web server 220 sends the received data to the status display interface program 224.

そして、状況表示インタフェースプログラム224は、受取ったインスタンス名のリストに従って第14図のディレクトリFPGA49に指定されたFPGAの番号でディレクトリを作成し、第14図のディレクトリASIC50にある、CORE名称のディレクトリ下のIOディレクトリから名称の一致するテーブルデータを前記番号のディレクトリへ複写し、テーブルデータ名のリストを引数としてFPGA論理CORE生成プログラム252を実行する。   Then, the status display interface program 224 creates a directory with the FPGA number designated in the directory FPGA 49 in FIG. 14 according to the received instance name list, and under the CORE name directory in the directory ASIC 50 in FIG. The table data having the same name is copied from the IO directory to the directory having the number, and the FPGA logic CORE generation program 252 is executed with the list of table data names as an argument.

ここで、FPGA論理CORE生成プログラム252の処理手順について説明する。第28図及び第29図は、FPGA論理CORE生成プログラム252の処理手順を示すフローチャートである。第28図は第21図に示した処理と同じであり、また、第29図は第22図に示した処理とステップS1717及びステップS1720を除いて同じであるので、この2つのステップについて説明する。   Here, a processing procedure of the FPGA logic CORE generation program 252 will be described. 28 and 29 are flowcharts showing the processing procedure of the FPGA logic CORE generation program 252. FIG. FIG. 28 is the same as the process shown in FIG. 21, and FIG. 29 is the same as the process shown in FIG. 22 except for steps S1717 and S1720, so these two steps will be described. .

第22図のステップS1017では、対象のインスタンスの入力であるポートに定義してある接続相手のインスタンス名とその出力ポート名が、メモリに格納している情報にない場合、エラーとしてログファイルに出力しているが、第29図のステップS1717では、元々ASICの論理COREとしてインスタンスのポート間接続は保証できているので、このステップS1717ではエラーではなくパッケージの入力端子情報としてメモリに追加格納する。   In step S1017 of FIG. 22, if the connection partner instance name defined in the port that is the input of the target instance and the output port name thereof are not in the information stored in the memory, an error is output to the log file. However, in step S1717 in FIG. 29, the connection between the ports of the instance is originally guaranteed as the logic core of the ASIC, and in this step S1717, it is additionally stored in the memory as input terminal information of the package rather than an error.

また、第22図のステップS1020では、最終的に残った未接続のポート情報をログファイルに出力している。一方、ステップS1720では、第14図のディレクトリASIC50下の"CORE+プロセスID+日付"で作成している対象とするASICの論理COREのディレクトリにあるログファイルとステップS1720で出力したログファイルとを比較し、ステップS1020で出力したログファイルにない出力ポートをパッケージの出力端子情報としてメモリに追加格納する。後は、ステップS1020の処理と同様にして第14図のディレクトリFPGA51の下の指定された番号のディレクトリ内に指定されたFPGA名称で論理COREをファイル出力する。   In step S1020 of FIG. 22, the remaining unconnected port information is output to the log file. On the other hand, in step S1720, the log file in the logical CORE directory of the target ASIC created by “CORE + process ID + date” under the directory ASIC 50 in FIG. 14 is compared with the log file output in step S1720. The output port not included in the log file output in step S1020 is additionally stored in the memory as the output terminal information of the package. Thereafter, the logical CORE is output as a file with the specified FPGA name in the directory of the specified number under the directory FPGA 51 of FIG.

そして、状況表示インタフェースプログラム224は、FPGAの論理COREファイルを読込み、パッケージの入出力となる端子数をカウントし、第30図に示す互換パッケージのテーブルの第2カラムにあるIO数に占める割合を全て計算し、割合が最大のパッケージとその互換パッケージデータを抽出し、第27図に示したFPGA論理CORE生成インタフェース画面のパッケージ名、IO使用率の画面表示制御データを更新し、Webサーバ220へ送る。Webサーバ220は受取ったFPGA論理CORE生成インタフェース画面の表示制御データをWebクライアント100へ送り、Webクライアント100は受取ったFPGA論理CORE生成インタフェース画面の表示制御データに基づいて入力画面を更新する。   Then, the status display interface program 224 reads the FPGA logical CORE file, counts the number of terminals to be input / output of the package, and shows the ratio of the number of IOs in the second column of the table of the compatible package shown in FIG. All are calculated, the package with the largest ratio and its compatible package data are extracted, the package name and the IO usage rate screen display control data of the FPGA logic CORE generation interface screen shown in FIG. send. The Web server 220 sends the received display control data of the FPGA logical CORE generation interface screen to the Web client 100, and the Web client 100 updates the input screen based on the received display control data of the FPGA logical CORE generation interface screen.

ユーザは、この結果に満足できなければ再度FPGA論理CORE生成をやり直す。ユーザが決定を選択すると、Webクライアント100は決定が選択されたことと、FPGA番号とパッケージ名とIO使用率のデータとをWebサーバ220に送り、Webサーバ220からこれらのデータを受取った状況表示インタフェースプログラム224は、第14図のディレクトリFPGA55に指定された番号のディレクトリを作成し、例えばplistの名称で受取ったデータをファイル出力する。   If the user is not satisfied with the result, the FPGA logic CORE generation is performed again. When the user selects the decision, the web client 100 sends the decision that the decision was made, the FPGA number, the package name, and the IO usage rate data to the web server 220 and received the data from the web server 220. The interface program 224 creates a directory having the number designated in the directory FPGA 55 in FIG. 14, and outputs the data received under the name of plist, for example.

次に、論理合成インタフェースプログラム222の処理手順について説明する。第31図は、論理合成インタフェースプログラム222の処理手順を示すフローチャートである。同図に示すように、この論理合成インタフェースプログラム222は、第32図に示すような論理合成インタフェース画面の表示制御データをWebサーバ220へ送り、Webサーバ220は受取った論理合成インタフェース画面の表示制御データをWebクライアント100へ送り、Webクライアント100は受取った論理合成インタフェース画面の表示制御データに基づいて画面を表示する(ステップS2001)。   Next, the processing procedure of the logic synthesis interface program 222 will be described. FIG. 31 is a flowchart showing the processing procedure of the logic synthesis interface program 222. As shown in the figure, the logic synthesis interface program 222 sends the logic synthesis interface screen display control data as shown in FIG. 32 to the web server 220, and the web server 220 receives the received logic synthesis interface screen display control. The data is sent to the Web client 100, and the Web client 100 displays a screen based on the received logic synthesis interface screen display control data (step S2001).

ユーザがProject名、第25図で表示されている対象の論理CORE名、論理合成する対象の機能ブロック名、組込むFPGAの番号を指定し、かつ面積優先か速度優先かの指定と、Debug(FPGAの論理合成を実行しない)かFix(FPGAの論理合成を実行する)かを指定し(ステップS2002)、実行ボタンを選択すると(ステップS2003)、Webクライアント100はデータ選択画面を表示する。   The user designates the Project name, the logical CORE name displayed in FIG. 25, the functional block name to be logically synthesized, the FPGA number to be incorporated, and the area priority or speed priority, and Debug (FPGA If the logic is not executed) or Fix (if FPGA logic synthesis is executed) is specified (step S2002), and the execution button is selected (step S2003), the Web client 100 displays a data selection screen.

ユーザがこの画面に従って論理合成するRTLソースを選択すると、これらのデータをWebクライアント100はWebサーバ220に送り、Webサーバ220からデータを受取った論理合成インタフェースプログラム222は、RTLソースを第14図のディレクトリASIC52に指定の機能ブロック名でディレクトリを作成し、RTLを格納する(ステップS2004)。そして、RTLソースを1ファイルずつ読込み、RTLソース内の変更履歴、版数などを記載するヘッダー部分にユーザが定義している動作周波数データを抽出し、抽出した値に対して20%増した周波数値とユーザに指定された速度優先または面積優先の論理合成条件を論理合成の制約として論理合成対象の機能ブロック名を指定してASICの論理合成ツールのASIC論理合成プログラム253を実行する(ステップS2005)。   When the user selects an RTL source for logic synthesis according to this screen, the Web client 100 sends these data to the Web server 220, and the logic synthesis interface program 222 that receives the data from the Web server 220 sets the RTL source as shown in FIG. A directory is created with a function block name designated in the directory ASIC 52, and the RTL is stored (step S2004). Then, the RTL source is read one file at a time, the operating frequency data defined by the user is extracted in the header portion describing the change history, version number, etc. in the RTL source, and the frequency increased by 20% with respect to the extracted value The ASIC logic synthesis program 253 of the ASIC logic synthesis tool is executed by designating the functional block name of the logic synthesis target using the value and the logic synthesis condition of speed priority or area priority specified by the user as the constraints of logic synthesis (step S2005). ).

ASICの論理合成が終了すると、論理合成インタフェースプログラム222は、第14図のディレクトリASIC54下にある指定の機能ブロックのディレクトリにASIC論理合成プログラム253が出力した結果のレポートファイルと、ユーザ管理サーバ240にProject名で問い合わせて得たユーザのメールアドレスとブロック名とをメールサーバ260に送り、メールサーバ260からユーザにメールを送信する(ステップS2006)。   When the ASIC logic synthesis is completed, the logic synthesis interface program 222 sends a report file as a result output by the ASIC logic synthesis program 253 to the directory of the designated functional block under the directory ASIC 54 in FIG. The user's mail address and block name obtained by inquiring with the Project name are sent to the mail server 260, and mail is sent from the mail server 260 to the user (step S2006).

そして、論理合成インタフェースプログラム222は、この処理過程を第14図のディレクトリASIC52下に指定の機能ブロック名で作成したディレクトリに存在する全RTLソースに対して実行する。全RTLソースの論理合成が終了すると(ステップS2007の肯定)、論理合成インタフェースプログラム222は、速度優先指定の場合は(ステップS2008の肯定)、全RTLの論理合成結果のレポートを検索し、RTLソースに定義された動作周波数を満足しているか否かを判断する(ステップS2009〜ステップS2010)。面積重視の場合は何もしない。   Then, the logic synthesis interface program 222 executes this process for all RTL sources existing in the directory created with the specified function block name under the directory ASIC 52 in FIG. When logic synthesis of all RTL sources is completed (Yes in step S2007), the logic synthesis interface program 222 searches for a report of the logic synthesis results of all RTLs in the case of speed priority designation (Yes in step S2008), and the RTL source. It is determined whether or not the operating frequency defined in (1) is satisfied (steps S2009 to S2010). If the area is important, do nothing.

次に、Fix指定を調べ(ステップS2011)、Fix指定されていれば、論理合成インタフェースプログラム222は、指定されたFPGA番号で第14図のディレクトリFPGA55下にディレクトリを作成し、この中に第14図のディレクトリASIC52下にある指定された機能ブロックディレクトリ内のRTLを複写して格納し、指定されたProject名とFPGA番号とを引数としてFPGA論理合成インタフェースプログラムを実行する(ステップS2012)。   Next, the Fix designation is checked (step S2011). If the Fix designation is made, the logic synthesis interface program 222 creates a directory under the directory FPGA 55 of FIG. 14 with the designated FPGA number, and the 14th is included in this directory. The RTL in the designated functional block directory under the directory ASIC 52 in the figure is copied and stored, and the FPGA logic synthesis interface program is executed with the designated Project name and FPGA number as arguments (step S2012).

そして、論理合成インタフェースプログラム222は、論理合成ツールを起動し、第14図のディレクトリASIC50にある指定の論理COREのディレクトリからASICの論理COREを論理合成ツールにコマンドを投入して読込ませ、ユーザからアップロードされ第14図のディレクトリASIC54に存在するASICのパッケージ端子割付けとASICと接続される外部デバイスと電気的にインタフェースするバッファとを定義したファイルを読込み、定義に従って論理合成ツールにコマンドを投入することでASICのバッファとスキャンなどテスト回路をASICの論理COREの端子とパッケージの端子と接続されるチップのパッド間に挿入し接続させ、そして、論理合成済みである第14図のディレクトリASIC52下の全ディレクトリにある機能ブロックのデータを論理合成ツールにコマンドを投入して読込んで論理COREに填め込ませ、レイアウト設計用にASICのネットリストを生成させ、第14図のディレクトリASIC54にProject名でファイル出力させる(ステップS2013)。   Then, the logic synthesis interface program 222 starts the logic synthesis tool, inputs a command to the logic synthesis tool from the specified logic CORE directory in the directory ASIC 50 in FIG. Read a file that defines the ASIC package terminal assignments uploaded and exists in the directory ASIC 54 of FIG. 14 and a buffer that electrically interfaces with an external device connected to the ASIC, and inputs a command to the logic synthesis tool according to the definition The test circuit such as the ASIC buffer and the scan is inserted and connected between the ASIC logic CORE terminal and the chip pad connected to the package terminal, and the logic synthesized directory ASIC 52 in FIG. The function block data in all the directories in FIG. 14 is input by inputting a command to the logic synthesis tool, loaded into the logic CORE, and an ASIC netlist is generated for layout design, and the directory ASIC 54 in FIG. A file is output (step S2013).

次に、FPGA論理合成インタフェースプログラムの処理手順について説明する。第33図は、FPGA論理合成インタフェースプログラムの処理手順を示すフローチャートである。同図に示すように、このFPGA論理合成インタフェースプログラムは、ASICの論理合成インタフェースプログラムから指定されたFPGA番号で第14図のディレクトリFPGA55にディレクトリを作成し、第14図のディレクトリFPGA53下にある指定された番号のディレクトリ内のRTLソースを1ファイルずつ読込み、RTLソース内の変更履歴、版数などを記載するヘッダー部分にユーザが定義している動作周波数データを抽出し、抽出した値に対して20%増した周波数値を論理合成の制約として論理合成対象の機能ブロック名を指定してFPGAの論理合成ツールのFPGA論理合成プログラム254を実行する(ステップS2201)。   Next, the processing procedure of the FPGA logic synthesis interface program will be described. FIG. 33 is a flowchart showing the processing procedure of the FPGA logic synthesis interface program. As shown in the figure, this FPGA logic synthesis interface program creates a directory in the directory FPGA 55 in FIG. 14 with the FPGA number specified from the ASIC logic synthesis interface program, and designates the directory under the directory FPGA 53 in FIG. The RTL source in the directory with the specified number is read one file at a time, and the operating frequency data defined by the user is extracted in the header portion describing the change history, version number, etc. in the RTL source, and for the extracted value The FPGA logic synthesis program 254 of the FPGA logic synthesis tool is executed by designating the function block name of the logic synthesis target with the frequency value increased by 20% as the constraint of logic synthesis (step S2201).

FPGAの論理合成が終了すると、FPGA論理合成プログラム254は、第14図のディレクトリFPGA55にある対象とする番号のディレクトリに論理合成結果を機能ブロックの名称で出力する。こうすることでユーザは、後述する第34図の論理合成状況表示でゲート使用率を確認しつつ設計作業を進めることができる。そして、FPGA論理合成インタフェースプログラムは、論理合成の終了メッセージと、FPGAの番号と、ブロック名と、Project名でユーザ管理サーバ240に問い合わせ得たユーザのメールアドレスとをメールサーバ260に送り、メールサーバ260からユーザにメールを送信する(ステップS2202)。   When the FPGA logic synthesis is completed, the FPGA logic synthesis program 254 outputs the logic synthesis result to the directory of the target number in the directory FPGA 55 of FIG. By doing so, the user can proceed with the design work while confirming the gate usage rate in the logic synthesis status display of FIG. 34 described later. Then, the FPGA logic synthesis interface program sends the logic synthesis end message, the FPGA number, the block name, and the mail address of the user who has inquired the user management server 240 using the project name to the mail server 260, A mail is transmitted from 260 to the user (step S2202).

次に、FPGA論理合成インタフェースプログラムは、指定された番号のFPGAを構成する機能ブロックの論理合成がすべて終了しているか確認する(ステップS2203)。この確認は、第14図のディレクトリFPGA51の対象とする番号のディレクトリにある機能ブロックの名称を抽出し、前記論理合成が終了した機能ブロック名と比較することで行なう。差分がなければ、次にFPGA論理合成インタフェースプログラムは、今度は、第14図のディレクトリFPGA51にある対象の番号のディレクトリにあるFPGA名である論理COREのファイル名を抽出し、この名称で第14図のディレクトリFPGA55にFPGAのレイアウトである、フィッティングに使用するFPGAの論理COREのポート名と同一であるパッケージの端子名と端子番号の対応、動作周波数、などを定義したフィッティング制御ファイルが、ユーザからアップロードされ存在しているかチェックする(ステップS2206)。   Next, the FPGA logic synthesis interface program checks whether all logic synthesis of the functional blocks constituting the FPGA of the designated number has been completed (step S2203). This confirmation is performed by extracting the name of the function block in the directory of the number targeted by the directory FPGA 51 of FIG. 14 and comparing it with the name of the function block for which the logic synthesis has been completed. If there is no difference, the FPGA logic synthesis interface program next extracts the file name of the logical CORE that is the FPGA name in the directory of the target number in the directory FPGA 51 of FIG. In the directory FPGA 55 in the figure, a fitting control file that defines the correspondence between the terminal name and terminal number of the package that is the same as the port name of the logic CORE of the FPGA used for fitting, the operation frequency, etc., is the layout of the FPGA. It is checked whether it has been uploaded and exists (step S2206).

存在していれば、FPGA論理合成インタフェースプログラムは、FPGAを構成する全機能ブロックと第14図のディレクトリFPGA51下の、対象の番号のディレクトリにあるFPGAの論理COREとを指定し、FPGA論理合成プログラム254を実行する。そしてFPGAの論理合成が終了すると、FPGA論理合成インタフェースプログラムは、フィッティングプログラム255を起動し、論理合成結果のネットリストをフィッティングプログラム255に投入してレイアウトを行ない、FPGAのレイアウト結果であり回路情報を記録したROMデータを生成し、第14図のディレクトリROM46下の対象とする番号のディレクトリにFPGA名で出力させる(ステップS2207)。そして、ROMデータ生成の終了メッセージと、FPGAの番号と、Project名と、ユーザ管理サーバ240に問い合わせて得たユーザのメールアドレスとをメールサーバ260へ送り、メールを送信する(ステップS2208)。   If it exists, the FPGA logic synthesis interface program designates all the functional blocks constituting the FPGA and the logic CORE of the FPGA in the directory of the target number under the directory FPGA 51 in FIG. 254 is executed. When the FPGA logic synthesis is completed, the FPGA logic synthesis interface program starts the fitting program 255, inputs a net list of the logic synthesis result into the fitting program 255, performs layout, and displays the FPGA layout result as circuit information. The recorded ROM data is generated and output with the FPGA name to the directory of the target number under the directory ROM 46 in FIG. 14 (step S2207). Then, the ROM data generation end message, the FPGA number, the project name, and the mail address of the user obtained by making an inquiry to the user management server 240 are sent to the mail server 260, and the mail is transmitted (step S2208).

差分があれば、後述するフィッティングデータの投入と実行画面で実行ボタンが選択されていないか判断し(ステップS2204)、選択されていなければ終了するが、選択されていれば論理合成が未の機能ブロック全てに対し、第14図のディレクトリFPGA51下にある対象の番号のディレクトリにある、FPGAの論理CORE内の各機能ブロック内部で、入出力ポート全てにフリップ・フロップを接続し、入力側の全フリップ・フロップの出力ポートを適当なゲート、例えば2入力NANDの入力ポートに接続し、全NANDゲートの出力を新たな2入力のNANDゲートの入力ポートに接続し、前述のように2入力NANDの多段接続を繰り返し、最終段の2入力NANDの出力を出力側の全フリップ・フロップの入力ポートに接続するHDL記述を挿入して論理合成可能な状態にする(ステップS2205)。   If there is a difference, it is determined whether or not an execution button has been selected on the fitting data input and execution screen described below (step S2204). If not selected, the process ends. For all the blocks, flip-flops are connected to all the input / output ports in each functional block in the FPGA logic CORE in the directory of the target number under the directory FPGA 51 in FIG. Connect the output port of the flip-flop to an appropriate gate, for example, the input port of a 2-input NAND, connect the output of all NAND gates to the input port of a new 2-input NAND gate, and Multi-stage connection is repeated, and the output of the 2-input NAND in the final stage is used as the input port for all flip-flops on the output side Insert the HDL description to continue to synthesizable state (step S2205).

後は、差分がない場合と同一の処理となる。開発着手時点の検証戦略にも依るが、回路アーキテクチャ検討にて機能的に上りと下りに大きく分割できる機能ブロック構成となっている場合、上述のフリップ・フロップなどを用いたダミー回路を挿入することによって、上りの機能の設計が完了していれば、下りの機能の設計が未完であっても検証が可能であり、検証の効率化に貢献するところが大きい。   The subsequent processing is the same as when there is no difference. Depending on the verification strategy at the start of development, if the functional block configuration is functionally divided into upstream and downstream in the circuit architecture study, insert a dummy circuit using the flip-flop described above. Therefore, if the design of the upstream function is completed, the verification can be performed even if the design of the downstream function is not completed, which greatly contributes to the efficiency of the verification.

次に、第34図の論理合成状況表示画面について説明する。この画面は、ユーザがWebクライアント100で第24図の状況表示画面にある論理合成を選択すると、Webクライアント100は論理合成を選択されたことをWebサーバ220に送り、Webサーバ220からデータを受取った状況表示インタフェースプログラム224は、ログインしたユーザの名称でユーザ管理サーバ240に問い合わせて得たProject名全てに対し、第14図のディレクトリFPGA55下の、全番号のディレクトリにある論理合成結果からゲート規模を抽出する。   Next, the logic synthesis status display screen of FIG. 34 will be described. When the user selects logic synthesis on the status display screen of FIG. 24 on the Web client 100, this screen sends to the Web server 220 that the logic synthesis has been selected and receives data from the Web server 220. The status display interface program 224 calculates the gate scale from the logical synthesis results in the directory of all numbers under the directory FPGA 55 in FIG. 14 for all the project names obtained by inquiring the user management server 240 with the name of the logged-in user. To extract.

そして、先に説明したFPGA論理CORE生成で作成された同一ディレクトリにあるplistからパッケージ情報を抽出し、このパッケージ情報を基に第30図のテーブル内でゲート規模の割合が75%以下になるパッケージを選び出し、第34図の論理合成状況表示画面の表示制御データを生成し、Webサーバ220に送る。Webサーバ220は、論理合成状況表示画面の表示制御データをWebクライアント100に送り、Webクライアント100は、受取った論理合成状況表示画面の表示制御データに基づいて画面を表示する。   Then, the package information is extracted from the plist in the same directory created by the above-described FPGA logic CORE generation, and the gate scale ratio is 75% or less in the table of FIG. 30 based on this package information. Is selected, and the display control data of the logic synthesis status display screen of FIG. 34 is generated and sent to the Web server 220. The Web server 220 sends display control data for the logic synthesis status display screen to the Web client 100, and the Web client 100 displays a screen based on the received display control data for the logic synthesis status display screen.

ここで、ゲート規模の割合75%について簡単に説明しておく。通常FPGAの論理合成ツールは、論理合成の結果のゲート規模を基に論理合成ツールがもつデータベースから適当なパッケージとゲート使用率を示唆してくれる。しかしながら、FPGAのフィッティングにおいては、セルの配置過程において配線の効率を上げるため、FPGAで論理を実現する単位ブロックを配線に使用する。従って、論理合成結果よりゲート規模が大きくなることを考慮し、フィッティング後ゲート使用率が100%を超えないように75%に設定しているものであり、FPGAで異なることもある。このためにも先に説明したFPGAの論理合成を機能ブロック毎に実行させることは有効である。   Here, the gate scale ratio of 75% will be briefly described. Usually, the logic synthesis tool of FPGA suggests an appropriate package and gate usage rate from the database of the logic synthesis tool based on the gate scale as a result of the logic synthesis. However, in FPGA fitting, a unit block that realizes logic in the FPGA is used for wiring in order to increase wiring efficiency in the cell placement process. Therefore, considering that the gate scale becomes larger than the logical synthesis result, the gate usage rate after fitting is set to 75% so as not to exceed 100%, and may differ depending on the FPGA. For this reason, it is effective to execute the logic synthesis of the FPGA described above for each functional block.

次に、フィッティングデータの投入と実行画面について説明する。第35図は、フィッティングデータの投入と実行画面の一例を示す図である。ユーザがWebクライアント100で第18図に示した手順画面にあるフィッティングを選択すると、Webクライアント100はフィッティングが選択されたことをWebサーバ220に送り、Webサーバ220からデータを受取ったフィッティングインタフェースプログラム223は、ログインしたユーザの名称でユーザ管理サーバ240に問い合わせて得たProject名全てに対し、第14図のディレクトリFPGA55下の、全ディレクトリの番号名と、それぞれのディレクトリにある論理合成結果であるネットリストのファイル名即ちFPGA名を抽出し、第35図に示すフィッティングデータの投入と実行画面の表示制御データを生成し、Webサーバ220に送る。   Next, the fitting data input and execution screen will be described. FIG. 35 is a diagram showing an example of a fitting data input and execution screen. When the user selects the fitting on the procedure screen shown in FIG. 18 on the Web client 100, the Web client 100 sends the fact that the fitting has been selected to the Web server 220 and receives the data from the Web server 220. Are all the project names obtained by inquiring the user management server 240 with the name of the logged-in user, the number names of all directories under the directory FPGA 55 in FIG. The file name of the list, that is, the FPGA name is extracted, and fitting data input and execution screen display control data shown in FIG. 35 are generated and sent to the Web server 220.

Webサーバ220はフィッティングデータの投入と実行画面の表示制御データをWebクライアント100に送り、Webクライアント100は、受取ったフィッティングデータの投入と実行画面の表示制御データに基づいて画面を表示する。この画面の条件データ投入を選択すると、Webクライアント100によりデータ選択画面が表示される。   The Web server 220 sends fitting data input and execution screen display control data to the Web client 100, and the Web client 100 displays a screen based on the received fitting data input and execution screen display control data. When selecting the input of condition data on this screen, the data selection screen is displayed by the Web client 100.

この画面に従い、ユーザが先に述べたフィッティング制御ファイルを選択すると、Webクライアント100は、選択したFPGAの番号とフィッティング制御ファイルをWebサーバ220に送り、Webサーバ220からデータを受取ったフィッティングインタフェースプログラム223は、第14図のディレクトリFPGA55下の、対象の番号のディレクトリにフィッティング制御ファイルを格納する。   When the user selects the above-described fitting control file according to this screen, the Web client 100 sends the selected FPGA number and the fitting control file to the Web server 220 and receives the data from the Web server 220. Stores the fitting control file in the directory of the target number under the directory FPGA 55 of FIG.

また、ユーザが実行ボタンを選択すると、Webクライアント100は、選択したFPGAの番号と、Project名と、実行が選択されたことをWebサーバ220に送り、Webサーバ220からデータを受取ったフィッティングインタフェースプログラム223は、Project名とFPGA番号とを引数としてFPGA論理合成インタフェースプログラムを実行する。FPGA論理合成インタフェースプログラムの処理は先に説明した通りである。   When the user selects the execute button, the web client 100 sends the selected FPGA number, project name, and execution selected to the web server 220 and receives the data from the web server 220. In step S223, the FPGA logic synthesis interface program is executed with the project name and the FPGA number as arguments. The processing of the FPGA logic synthesis interface program is as described above.

次に、ROMデータ生成状況画面について説明する。第36図は、ROMデータ生成状況画面の一例を示す図である。ユーザがWebクライアント100で第24図に示した状況表示選択画面にあるROMデータを選択すると、Webクライアント100はROMデータを選択されたことをWebサーバ220に送る。   Next, the ROM data generation status screen will be described. FIG. 36 is a diagram showing an example of a ROM data generation status screen. When the user selects ROM data on the status display selection screen shown in FIG. 24 on the Web client 100, the Web client 100 sends to the Web server 220 that the ROM data has been selected.

Webサーバ220からデータを受取った状況表示インタフェースプログラム224は、ログインしたユーザの名称でユーザ管理サーバ240に問い合わせて得たProject名全てに対し、第14図のディレクトリROM46下の、全ディレクトリの番号名と、それぞれのディレクトリにあるフィッティング結果であるROMデータ名即ちFPGA名を抽出し、第36図に示したROMデータ生成状況画面の表示制御データを生成し、Webサーバ220に送る。   The status display interface program 224 that has received data from the Web server 220 uses the names of all the directories under the directory ROM 46 in FIG. 14 for all project names obtained by inquiring the user management server 240 with the name of the logged-in user. The ROM data name, that is, the FPGA name, which is the fitting result in each directory, is extracted, and the display control data of the ROM data generation status screen shown in FIG. 36 is generated and sent to the Web server 220.

Webサーバ220は、ROMデータ生成状況画面の表示制御データをWebクライアント100に送り、Webクライアント100は、受取ったROMデータ生成状況画面の表示制御データに基づいて画面を表示する。ユーザは、この画面で対象とするFPGAの日付部分を選択すると、ROMデータをダウンロードすることができる。   The Web server 220 sends ROM data generation status screen display control data to the Web client 100, and the Web client 100 displays a screen based on the received ROM data generation status screen display control data. When the user selects the date part of the target FPGA on this screen, the ROM data can be downloaded.

次に、監視サーバ290の処理について説明する。先ず、監視サーバ290が監視するものは、RTLの変更有無と、論理合成、フィッティング、レイアウト設計ツールの処理に要した時間と、設計者が定義する機能ブロックの変更規模を基にインプリメント設計に使用するツールの処理時間以外にかかる、変更反映に必要な手作業の時間である。   Next, processing of the monitoring server 290 will be described. First, what is monitored by the monitoring server 290 is used for implementation design based on the presence / absence of RTL changes, the time required for logic synthesis, fitting, and layout design tool processing, and the scale of functional block changes defined by the designer. This is the manual time required to reflect the changes, other than the processing time of the tool to be used.

インプリメント設計者が管理する第14図のディレクトリLAYOUT47には、Project毎にProject名のディレクトリがあり、その中で作業を進める。各Project名のディレクトリにはレイアウト設計データが格納されるLAYディレクトリとRTLソースを格納するRTLディレクトリが存在し、RTLディレクトリ以下は、第14図のディレクトリASIC52以下と同一のディレクトリ構成となっている。   The directory LAYOUT 47 in FIG. 14 managed by the implement designer has a project name directory for each project. Each project name directory has an LAY directory in which layout design data is stored and an RTL directory in which RTL sources are stored. The directory structure below the RTL directory is the same as the directory ASIC 52 and below in FIG.

監視サーバ290は、LAYとRTLディレクトリ内を監視する。時間を集計した結果を反映するスケジュールは、Project名のディレクトリにScheduleの名称で格納されており、初期状態では、契約に基づいて、1stRTLの予定日とSign Offの予定日が設定されている。1stRTLとは、レイアウト設計が着手できる、その時点で大きな変更の見込みがなく、機能検証が80%程度終了しているRTLであると定義する。Sign Offとは、ASICのレイアウト設計完了後、ASIC製造データをデバイスベンダに渡す日である。   The monitoring server 290 monitors the LAY and RTL directories. The schedule reflecting the result of totaling the time is stored in the Project name directory under the name of Schedule, and in the initial state, the scheduled date of 1stRTL and the scheduled date of Sign Off are set based on the contract. The 1st RTL is defined as an RTL in which layout design can be started and no significant change is expected at that time, and the function verification has been completed about 80%. “Sign Off” is the date when the ASIC manufacturing data is delivered to the device vendor after the ASIC layout design is completed.

第37図は、予定と実績画面の一例を示す図である。同図は、Scheduleファイルを画面表示制御データに変換し、Webクライアント100によって表示される。すなわち、ユーザが第24図の状況表示画面で実績と予定を選択すると、Webクライアント100は、実績と予定が選択されたことをWebサーバ220経由で状況表示インタフェースプログラム224に送る。実績と予定が選択されたことを受け取った状況表示インタフェースプログラム224は、Scheduleファイルを画面表示制御データに変換し、Webサーバ220経由でWebクライアント100に送る。画面表示制御データを受け取ったWebクライアント100は、画面表示制御データに基づいて画面表示する。   FIG. 37 is a diagram showing an example of a schedule and results screen. In the figure, the Schedule file is converted into screen display control data and displayed by the Web client 100. That is, when the user selects a record and a schedule on the status display screen of FIG. 24, the Web client 100 sends the selection of the record and schedule to the status display interface program 224 via the Web server 220. The status display interface program 224 that has received the selection of the record and schedule converts the Schedule file into screen display control data and sends it to the Web client 100 via the Web server 220. The Web client 100 that has received the screen display control data displays the screen based on the screen display control data.

また、第38図は、レイアウト設計者が設定する作業時間の設定ファイルの一例を示す図である。このファイルは、Scheduleファイルと同一ディレクトリにManualの名称で格納される。   FIG. 38 is a diagram showing an example of a work time setting file set by the layout designer. This file is stored under the name Manual in the same directory as the Schedule file.

監視サーバ290は、監視時間になると、ユーザ管理サーバ240からユーザ名とユーザが所属するProject名とメールアドレスを獲得する。そして、Scheduleファイルを読みこみ1stRTLの予定日を抽出する。この予定日が監視の実行年月日より未来であれば何もせず終了する。予定日が監視の実行年月日より以前であれば、以降の処理を実行する。   When the monitoring time comes, the monitoring server 290 acquires the user name, the project name to which the user belongs, and the mail address from the user management server 240. Then, the Schedule file is read and the scheduled date of 1st RTL is extracted. If this scheduled date is later than the monitoring execution date, the process ends without doing anything. If the scheduled date is earlier than the monitoring execution date, the subsequent processing is executed.

まず、インプリメント設計者が管理するLAYOUTディレクトリ下の、Project名のディレクトリにあるRTLディレクトリにRTLソースがなければ処理を中断する。RTLソースがあれば、第14図のディレクトリASIC52下の、各ブロックのディレクトリにあるRTLソース間で比較する。   First, if there is no RTL source in the RTL directory in the project name directory under the LAYOUT directory managed by the implement designer, the processing is interrupted. If there is an RTL source, the RTL sources in the directory of each block under the directory ASIC 52 in FIG. 14 are compared.

差分があれば、差分のあるブロック名とProject名とインプリメント設計者のメールアドレスをメールサーバ260に送り、メールサーバ260からインプリメント設計者に送信する。インプリメント設計者は、このメールによって変更の反映にかかる時間の見積り作業を行なう。見積りの結果、インプリメント設計者は、必要があればScheduleファイルの時間データを更新または追加、削除する。   If there is a difference, the block name with the difference, the project name, and the mail address of the implement designer are sent to the mail server 260, and the mail server 260 sends them to the implement designer. The implement designer estimates the time required to reflect the change by this mail. As a result of the estimation, the implementation designer updates, adds, or deletes the time data of the Schedule file as necessary.

次に、監視サーバ290は、第14図のディレクトリASIC50下の、作成時間が一番新しいASICの論理COREからASICを構成するブロック名を抽出し、メモリに格納する。そして、第14図のディレクトリASIC54下の、各ブロックのディレクトリにある論理合成結果のレポートファイルから論理合成処理時間を抽出する。先にメモリに格納したブロック名に対するレポートファイルが存在しない、つまり未だ論理合成されていない場合は、存在するレポートファイルから抽出した時間の平均時間を適用し、合計時間を算出しメモリに格納する。   Next, the monitoring server 290 extracts the block names constituting the ASIC from the logic CORE of the ASIC with the newest creation time under the directory ASIC 50 in FIG. 14, and stores it in the memory. Then, the logic synthesis processing time is extracted from the report file of the logic synthesis result in the directory of each block under the directory ASIC 54 in FIG. If the report file for the block name previously stored in the memory does not exist, that is, has not yet been logically synthesized, the average time extracted from the existing report file is applied, and the total time is calculated and stored in the memory.

そして今度は、インプリメント設計者が管理する第14図のディレクトリLAYOUT47下の、Project名のディレクトリ内にあるレイアウト設計結果のうち、レイアウト設計工程の最終工程であるタイミング検証結果のファイルが存在すれば、レイアウト設計の全行程で使用するツールが出力した処理結果ファイルから処理時間を抽出し、先にメモリに格納した時間と合せて合計時間を算出する。タイミング検証結果のファイルが存在しない場合は、契約時点にレイアウト設計者が仮に見積り予め監視サーバに設定した時間を適用する。   Then, if there is a timing verification result file that is the final step of the layout design process among the layout design results in the project name directory under the directory LAYOUT 47 of FIG. 14 managed by the implement designer, The processing time is extracted from the processing result file output by the tool used in the entire layout design process, and the total time is calculated together with the time previously stored in the memory. When the timing verification result file does not exist, the time set by the layout designer at the time of the contract and preliminarily set in the monitoring server is applied.

次に、監視サーバ290は、この合計時間と先に説明したManualに設定されている時間の合計をとり、1日を12時間として日数を算出し、Scheduleファイルを必要であれば更新する。つまり、最初の状態では、Scheduleファイルには1stRTLの予定日しかなく、この予定日に対して合計時間を加算し、第37図に示したように反映開始日としてインプリメント設計への変更取り込みの予定日を追加する。   Next, the monitoring server 290 calculates the number of days by taking the total of the total time and the time set in the above-described Manual as 12 hours, and updates the Schedule file if necessary. That is, in the initial state, the Schedule file has only the 1st RTL scheduled date, and the total time is added to this scheduled date, and the change is scheduled to be incorporated into the implementation design as the reflection start date as shown in FIG. Add a day.

次の監視では、反映開始日が監視の実行年月日より未来であれば、反映開始日の一つ前である1stRTL予定日から反映開始日として設定した予定日までの日数を比較対照とし、算出したインプリメント設計にかかる日数より長ければ反映開始日は更新しない。反映開始日が監視の実行年月日以前の時、監視サーバ290は、ユーザとインプリメント設計者のメールアドレスと反映開始の機会であるメッセージとをメールサーバ260へ送り、メールサーバ260からユーザとインプリメント設計者にメールを送信する。この時監視サーバ290は、一番新しい反映開始日が監視実行の年月日以前である時、反映開始日の実績日に年月日がなければScheduleファイルの更新はしない。   In the next monitoring, if the reflection start date is later than the monitoring execution date, the number of days from the 1st RTL scheduled date, which is one before the reflection start date, to the scheduled date set as the reflection start date is used as a comparison. If it is longer than the calculated number of days for implementation design, the reflection start date is not updated. When the reflection start date is before the monitoring execution date, the monitoring server 290 sends the mail address of the user and the implement designer and a message indicating the opportunity to start the reflection to the mail server 260, and the mail server 260 implements the user and the implementation. Send an email to the designer. At this time, when the latest reflection start date is before the date of the monitoring execution, the monitoring server 290 does not update the Schedule file unless the date of the reflection start date is the actual date.

反映開始の機会であるメッセージのメールに対してユーザ及びインプリメント設計者双方から承認または拒絶のメールが監視サーバ290に届いた時、双方共承認であれば直ちにScheduleファイルの反映開始日の実績日にメールを受けた年月日を設定し、次回の監視では、一番新しい反映予定日が監視実施の年月日以前であり、反映予定日の実績日に年月日があれば、実績日を基にインプリメント設計の日数を算出し、新たに反映開始日を追加する。この処理を続けて行くと反映開始日がSign Off日に近づく。   When an approval / rejection email arrives at the monitoring server 290 from both the user and the implementation designer for the message email that is the opportunity to start the reflection, if both are approval, the Schedule file reflection start date is immediately Set the date when the e-mail was received, and in the next monitoring, if the most recent reflection date is before the monitoring date, and if there is a date on the actual reflection date, the actual date will be Based on this, calculate the number of days for implementation design and add a new reflection start date. As this process continues, the reflection start date approaches the Sign Off date.

反映開始日の予定日を算出し、Sign Off日を超えた場合、監視サーバ290は、反映開始の予定日の設定が不可能な年月日にきているメッセージとユーザとインプリメント設計者のメールアドレスをメールサーバ260へ送り、メールサーバ260から双方へメールを送信する。   When the estimated start date of the reflection is calculated and the Sign Off date is exceeded, the monitoring server 290 displays a message indicating the date on which the expected start date of the reflection cannot be set, and the mail of the user and the implement designer. The address is sent to the mail server 260, and mail is sent from the mail server 260 to both sides.

反映開始の機会であるメッセージのメールに対してユーザが拒絶している場合、ユーザに対しWebクライアント100から予定日を設定する旨のメッセージとユーザとインプリメント設計者のメールアドレスをメールサーバ260へ送り、メールサーバ260から双方へメールを送信する。   When the user rejects the mail of the message that is the opportunity to start reflection, a message to set the scheduled date from the Web client 100 and the mail address of the user and the implement designer are sent to the mail server 260. The mail server 260 transmits mail to both sides.

次に、予定と実績画面ついて説明する。第37図は、予定と実績画面の一例を示す図である。同図の論理Fixボタンと変更ボタンは、監視サーバ290の監視の実行年月日以前であり、一番新しい反映開始日のよこに配置される。ユーザがこのボタンの下にある年月日の設定欄に年月日を指定し変更ボタンを選択すると、Webクライアント100は、設定された年月日と変更が選択されたことをWebサーバ220に送り、Webサーバ220からデータを受取った状況表示インタフェースプログラム224は、Scheduleファイル内の一番新しい反映開始日の予定日を指定された年月日に変更し、変更された旨のメッセージとユーザとインプリメント設計者のメールアドレスをメールサーバ260へ送り、メールサーバ260から双方へメールを送信する。   Next, the schedule and results screen will be described. FIG. 37 is a diagram showing an example of a schedule and results screen. The logical Fix button and the change button in the same figure are before the monitoring execution date of the monitoring server 290 and are arranged at the most recent reflection start date. When the user designates the date in the date setting field below this button and selects the change button, the Web client 100 informs the Web server 220 that the set date and change have been selected. The status display interface program 224 that sent and received the data from the Web server 220 changes the scheduled date of the latest reflection start date in the Schedule file to the specified date, and the message indicating that the change has been made, the user, The mail address of the implement designer is sent to the mail server 260, and mail is sent from the mail server 260 to both sides.

第37図内の論理Fixボタンが年月日の指定とともに選択された場合は、状況表示インタフェースプログラム224は、変更ボタンを選択された場合と同一の処理を実行後、監視サーバ290の監視を停止する処理を行なう。こうする事でユーザとインプリメント設計者双方の短期間の目標が明確となることと、インプリメント設計の試行回数が多いほど変更開始日の予定日の確度があがり、これに対してユーザ及びインプリメント設計者双方共に進め方を考える契機を与える事が可能となり、結果として効率の向上に大きく貢献する。   When the logical Fix button in FIG. 37 is selected together with the designation of the date, the status display interface program 224 performs the same processing as when the change button is selected, and then stops monitoring of the monitoring server 290. The process to do is performed. This will clarify the short-term goals for both the user and the implement designer, and the greater the number of implementation design trials, the more accurate the scheduled start date of the change will be. Both will be able to give the opportunity to think about how to proceed, and as a result will contribute greatly to the improvement of efficiency.

上述してきたように、本実施の形態2では、Webクライアント100からのユーザの要求に基づいてASIC論理合成プログラム253がASICの論理合成を行ない、FPGA論理合成プログラム254がFPGAの論理合成を行ない、論理合成インタフェースプログラム222がWebクライアント100にASIC及びFPGAの論理合成の結果を表示し、メールサーバ260がASIC及びFPGAの論理合成の開始と結果をユーザに電子メールで通知することとしたので、ユーザは、論理合成の専任者を設置する必要がなく、いつでも論理合成が実行でき、専任者が実行したが如く論理合成品質を均一に保つことができるとともに、電子メールで論理合成の開始と結果の通知を受けることができ、論理合成の進捗を定期的にコンピュータで確認する必要がなくなる。   As described above, in the second embodiment, the ASIC logic synthesis program 253 performs ASIC logic synthesis based on a user request from the Web client 100, and the FPGA logic synthesis program 254 performs FPGA logic synthesis. The logic synthesis interface program 222 displays the result of logic synthesis of ASIC and FPGA on the Web client 100, and the mail server 260 notifies the user of the start of the logic synthesis of ASIC and FPGA and the result by e-mail. It is not necessary to set up a dedicated logic synthesis person, logic synthesis can be performed at any time, and the logic synthesis quality can be kept uniform as the dedicated person did. You can receive notifications and regularly check the progress of logic synthesis. There is no need to be confirmed by Yuta.

また、本実施の形態2では、Webクライアント100からのユーザの要求に基づいて、ASIC論理CORE生成プログラム251がASICを構成する機能ブロックからユーザが指定する複数の機能ブロックのポート間接続情報のみから成るネットリストを生成し、FPGA論理CORE生成プログラム252が生成したネットリストに論理合成済み対象機能ブロックのデータを填め込んでプログラマブル・ロジックデバイスの回路を記録したROMデータを生成し、論理CORE生成インタフェースプログラム221が生成したROMデータの生成結果をコンピュータに表示するとともにメールサーバ260がユーザに電子メールで通知する構成としたので、ユーザは、プログラマブル・ロジックデバイス専用の開発環境が必要なく、プログラマブル・ロジックデバイスの回路を記録したROMデータを作成する負荷と、時間と、かかるコストとを削減することができる。   In the second embodiment, based on a user request from the Web client 100, the ASIC logic CORE generation program 251 uses only the inter-port connection information of a plurality of functional blocks designated by the user from the functional blocks constituting the ASIC. A logic list generation interface, generating ROM data in which a programmable logic device circuit is recorded by inserting data of functionally synthesized target function blocks into the netlist generated by the FPGA logic core generation program 252. Since the mail server 260 displays the generation result of the ROM data generated by the program 221 and notifies the user by e-mail, the user does not need a development environment dedicated to the programmable logic device, A load for creating ROM data recorded circuits Roguramaburu logic device, it is possible to reduce time and a costly.

また、本実施の形態2では、ユーザが指定したASICを構成する機能ブロックの設計が未完了で回路データが存在しない場合に、FPGA論理CORE生成プログラム252が当該機能ブロックの入力端子及び出力端子に仮のフリップ・フロップなどを用いた回路を挿入したネットリストを生成することとしたので、プログラマブル・ロジックデバイスのプロトタイピングによる検証において、検証対象ではない機能ブロックの設計が完了していなくとも、プロトタイピングによる検証を進めることができ、検証の効率化を図ることができる。   In the second embodiment, when the design of the functional block constituting the ASIC specified by the user is not completed and no circuit data exists, the FPGA logic CORE generation program 252 is connected to the input terminal and the output terminal of the functional block. Since we decided to generate a netlist with a circuit using a temporary flip-flop, etc., even if the design of the functional block that is not the verification target is not completed in the verification by prototyping of the programmable logic device, Verification by typing can be promoted, and verification efficiency can be improved.

また、本実施の形態2では、監視サーバ290が、ユーザが持つ最新の回路データとインプリメント設計者がインプリメント設計に取り込んでいる回路データ間の変更の規模を監視し、監視結果及びレイアウト設計にかかる時間に基づいて計画された日時に到達すると、メールサーバ260が変更をASICのインプリメント設計へ反映するタイミングにあることをユーザ及びASICのインプリメント設計者に電子メールで通知し、この通知に応答してユーザが反映の日付を変更することで停止を要求することとしたので、発生した変更を効率よくASICのレイアウト設計に反映することができるとともに、変更を反映するタイミングを設定することで、ユーザはいつまで変更することが可能かを判断することができ、早い段階でスケジュールの見直しができる。   In the second embodiment, the monitoring server 290 monitors the scale of the change between the latest circuit data held by the user and the circuit data taken into the implementation design by the implementation designer, and the monitoring result and layout design are applied. When the planned date and time is reached, the user and the ASIC implementation designer are notified by email that the mail server 260 is ready to reflect the change in the ASIC implementation design, and in response to this notification Since the user has requested a stop by changing the reflection date, the change that has occurred can be efficiently reflected in the layout design of the ASIC, and by setting the timing to reflect the change, the user can It is possible to determine how long it can be changed, and at an early stage It is a review of Lumpur.

以上説明したように、本発明によれば以下の効果が得られる。本発明のコア(論理コア)を生成する手法をコンピュータに実行させるプログラムを記憶したプログラム記憶媒体によれば、集積回路開発において、RTL設計の入力となるブロックのポート仕様の品質を事前に確保できる効果があり、更に機能ブロックが多く存在し、設計リソースも多い大規模集積回路の開発においても、事前にブロック間の接続が確認できていることにより、必ずチップが組み上がることを保証することができる。   As described above, according to the present invention, the following effects can be obtained. According to the program storage medium storing the program for causing the computer to execute the technique for generating the core (logical core) of the present invention, the quality of the port specification of the block serving as the input of the RTL design can be secured in advance in the development of the integrated circuit Even in the development of large-scale integrated circuits that are effective, have many functional blocks, and have many design resources, the connection between the blocks can be confirmed in advance to ensure that the chip is assembled. it can.

また、本発明によれば、ASICのコア(論理コア)からプログラマブル・ロジックデバイスのコア(論理コア)としてブロック間接続を保持したまま切り出すため、本コア(論理コア)を用いたプログラマブル・ロジックデバイスの検証を実施すれば、ASICにおいては、少なくとも同一の構成での検証の重複を回避することができる。よって、ASICとプログラマブル・ロジックデバイスのコンカレント開発を効率よく進めることができる。   Further, according to the present invention, a programmable logic device using this core (logical core) is used to cut out from the ASIC core (logical core) while maintaining the inter-block connection as the core of the programmable logic device (logical core). In the ASIC, at least duplication of verification with the same configuration can be avoided. Therefore, concurrent development of the ASIC and the programmable logic device can be efficiently advanced.

また、I/Oバッファを挿入する際、チップの端子情報から仮のコア(論理コア)を生成し、ブロックから生成したコア(論理コア)と入れ替える手段によって、ブロックに定義されているチップのポート情報とチップの端子情報をクロスチェックでき、ブロックのポート仕様とチップ端子仕様の両者の品質を確保することができる。   In addition, when inserting an I / O buffer, a temporary core (logical core) is generated from the terminal information of the chip and replaced with a core (logical core) generated from the block. The information and the terminal information of the chip can be cross checked, and the quality of both the port specification of the block and the chip terminal specification can be ensured.

また、本発明によれば、任意の規模、個数のブロックのポートとポートの接続情報からなるネットリストを生成することができる。   Further, according to the present invention, it is possible to generate a netlist composed of ports and port connection information of an arbitrary scale and number.

また、本発明によれば、任意の規模、個数のブロックのポートとポートの接続情報からなるネットリストから、チップネットリストを生成することができる。   Further, according to the present invention, a chip net list can be generated from a net list composed of ports and port connection information of an arbitrary scale and number.

また、本発明によれば、プログラマブル・ロジックデバイスのコア(論理コア)を生成する手法を論理合成ツールに実行させるプログラムを記憶した記憶媒体によれば、ポートの機能を判断することが難しいネット名がポートの名称となる場合の論理検証等デバッグの効率の低下を防ぐことができる。   In addition, according to the present invention, according to a storage medium storing a program for causing a logic synthesis tool to execute a technique for generating a core (logic core) of a programmable logic device, it is difficult to determine a port function. It is possible to prevent a decrease in debugging efficiency such as logic verification when is a port name.

上述のようにして、設計ドキュメントのデータからコア(論理コア)を生成し、該コア(論理コア)から階層構造及び接続情報を保持した状態でプログラマブル・ロジックデバイス用に新たにコア(論理コア)を生成することで、回路アーキテクチャを共有することができ、回路データを填め込み、機能検証したインスタンス内のデバイス・テクノロジに依存しない回路データ及びインスタンス間のネットは、ASIC化した場合に再検証を回避することが可能となり、ASICとプログラマブル・ロジックデバイス間の違いによる再設計も回避することが可能となる。   As described above, a core (logical core) is generated from the data of the design document, and a new core (logical core) is created for the programmable logic device while maintaining the hierarchical structure and connection information from the core (logical core). By creating the circuit architecture, the circuit data can be shared, and the circuit data that does not depend on the device technology in the instance in which the function verification is performed and the net between the instances are re-verified when the ASIC is created. It becomes possible to avoid this, and redesign due to the difference between the ASIC and the programmable logic device can also be avoided.

このように、本発明によれば、アーキテクチャの共有化を実現し、再設計と再検証を極力回避することができる集積回路の開発方法及び集積回路の開発方法を記憶したプログラマブル記憶媒体を提供することができる。   As described above, according to the present invention, there is provided an integrated circuit development method capable of realizing architecture sharing and avoiding redesign and reverification as much as possible, and a programmable storage medium storing the integrated circuit development method. be able to.

以上のように、本発明に係るASICとプログラマブル・ロジックデバイスのコンカレント開発システム、開発プログラム及び開発方法は、集積回路の開発、特にASICとプログラマブル・ロジックデバイスの開発に適している。   As described above, the ASIC and programmable logic device concurrent development system, development program, and development method according to the present invention are suitable for the development of integrated circuits, particularly the development of ASICs and programmable logic devices.

第1図は、本発明方法の原理を示すフローチャートである。FIG. 1 is a flowchart showing the principle of the method of the present invention. 第2図は、本発明の実施の形態1の動作説明図である。FIG. 2 is an operation explanatory diagram of Embodiment 1 of the present invention. 第3図は、本発明の論理合成ツール制御装置の一実施の形態例を示すブロック図である。FIG. 3 is a block diagram showing an embodiment of the logic synthesis tool control device of the present invention. 第4図は、制御装置の一実施の形態例を示すブロック図である。FIG. 4 is a block diagram showing an embodiment of the control device. 第5図は、コア(論理コア)生成プログラムを示すフローチャート(1)である。FIG. 5 is a flowchart (1) showing a core (logical core) generation program. 第6図は、コア(論理コア)生成プログラムを示すフローチャート(2)である。FIG. 6 is a flowchart (2) showing a core (logical core) generation program. 第7図は、本発明の実施の形態1の詳細手順を示すフローチャートである。FIG. 7 is a flowchart showing a detailed procedure of the first embodiment of the present invention. 第8図は、コア(論理コア)デザインチェック制御を示すフローチャートである。FIG. 8 is a flowchart showing core (logic core) design check control. 第9図は、グループ化制御を示すフローチャートである。FIG. 9 is a flowchart showing grouping control. 第10図は、I/Oバッファ挿入制御を示すフローチャートと処理のイメージを示す図である。FIG. 10 is a flowchart showing the I / O buffer insertion control and an image of processing. 第11図は、集積回路設計の手順を示すフローチャートである。FIG. 11 is a flowchart showing an integrated circuit design procedure. 第12図は、本実施の形態2に係るASICとFPGAのコンカレント開発の概念を説明するための説明図である。FIG. 12 is an explanatory diagram for explaining the concept of concurrent development of ASIC and FPGA according to the second embodiment. 第13図は、本実施の形態2に係るASICとFPGAのコンカレント開発システムのシステム構成を示す機能ブロック図である。FIG. 13 is a functional block diagram showing a system configuration of an ASIC and FPGA concurrent development system according to the second embodiment. 第14図は、ファイルサーバ内にデータを格納するためのディレクトリ構成の一例を示す図である。FIG. 14 is a diagram showing an example of a directory structure for storing data in the file server. 第15図は、論理CORE生成用テーブルの一例を示す図である。FIG. 15 is a diagram showing an example of a logical CORE generation table. 第16図は、本実施の形態2のASICとFPGAのコンカレント開発システムの処理手順を示すフローチャートである。FIG. 16 is a flowchart showing a processing procedure of the ASIC and FPGA concurrent development system of the second embodiment. 第17図は、ログイン画面の一例を示す図である。FIG. 17 is a diagram showing an example of a login screen. 第18図は、手順画面の一例を示す図である。FIG. 18 is a diagram showing an example of a procedure screen. 第19図は、論理CORE生成インタフェースプログラムの処理手順を示すフローチャートである。FIG. 19 is a flowchart showing the processing procedure of the logical CORE generation interface program. 第20図は、論理CORE生成インタフェース画面の一例を示す図である。FIG. 20 is a diagram showing an example of a logical CORE generation interface screen. 第21図は、ASIC論理CORE生成プログラムの処理手順を示すフローチャート(1)である。FIG. 21 is a flowchart (1) showing the processing procedure of the ASIC logic CORE generation program. 第22図は、ASIC論理CORE生成プログラムの処理手順を示すフローチャート(2)である。FIG. 22 is a flowchart (2) showing the processing procedure of the ASIC logic CORE generation program. 第23図は、論理COREチェックプログラムの処理手順を示すフローチャートである。FIG. 23 is a flowchart showing the processing procedure of the logical CORE check program. 第24図は、状況表示選択画面の一例を示す図である。FIG. 24 is a diagram showing an example of a status display selection screen. 第25図は、論理CORE生成状況画面の一例を示す図である。FIG. 25 is a diagram showing an example of a logical CORE generation status screen. 第26図は、ASICの論理CORE生成状況表示画面での処理手順を示すフローチャートである。FIG. 26 is a flowchart showing a processing procedure on the ASIC logical CORE generation status display screen. 第27図は、FPGA論理CORE生成インタフェース画面の一例を示す図である。FIG. 27 is a diagram showing an example of an FPGA logic CORE generation interface screen. 第28図は、FPGA論理CORE生成プログラムの処理手順を示すフローチャート(1)である。FIG. 28 is a flowchart (1) showing the processing procedure of the FPGA logic CORE generation program. 第29図は、FPGA論理CORE生成プログラムの処理手順を示すフローチャート(2)である。FIG. 29 is a flowchart (2) showing the processing procedure of the FPGA logic CORE generation program. 第30図は、互換パッケージテーブルの一例を示す図である。FIG. 30 is a diagram showing an example of a compatible package table. 第31図は、論理合成インタフェースプログラムの処理手順を示すフローチャートである。FIG. 31 is a flowchart showing the processing procedure of the logic synthesis interface program. 第32図は、論理合成インタフェース画面の一例を示す図である。FIG. 32 is a diagram showing an example of a logic synthesis interface screen. 第33図は、FPGA論理合成インタフェース処理手順を示すフローチャートである。FIG. 33 is a flowchart showing the FPGA logic synthesis interface processing procedure. 第34図は、論理合成状況表示画面の一例を示す図である。FIG. 34 is a diagram showing an example of a logic synthesis status display screen. 第35図は、フィッティングデータの投入と実行画面の一例を示す図である。FIG. 35 is a diagram showing an example of a fitting data input and execution screen. 第36図は、ROMデータ生成状況画面の一例を示す図である。FIG. 36 is a diagram showing an example of a ROM data generation status screen. 第37図は、予定と実績画面の一例を示す図である。FIG. 37 is a diagram showing an example of a schedule and results screen. 第38図は、手作業時間の一例を示す図である。FIG. 38 is a diagram showing an example of manual work time.

Claims (4)

ネットワークを介してユーザの利用するコンピュータと接続され、該ユーザの要求に応じてASICとプログラマブル・ロジックデバイスをコンカレントに開発するASICとプログラマブル・ロジックデバイスのコンカレント開発システムであって
前記ユーザの要求に応じてASICの論理合成を実行するASIC論理合成手段と、
前記ASIC論理合成手段により作成されたASICの論理合成結果が前記ユーザの要求する速度性能を満足したか否かを判断するASIC論理合成結果判断手段と、
前記ASIC論理合成結果判断手段による判断結果に基づいてプログラマブル・ロジックデバイスの論理合成を実行するプログラマブル・ロジックデバイス論理合成手段と、
前記ASIC論理合成手段によるASIC論理合成の実行結果及び前記プログラマブル・ロジックデバイス論理合成手段によるプログラマブル・ロジックデバイス論理合成の実行結果を前記コンピュータに表示する論理合成結果表示手段と、
前記ASIC論理合成手段によるASIC論理合成の実行開始と実行結果及び前記プログラマブル・ロジックデバイス論理合成手段によるプログラマブル・ロジックデバイス論理合成の実行開始と実行結果を前記ユーザに電子メールで通知する論理合成通知手段と、
前記ユーザの要求に応じて前記ASICを構成する機能ブロックから前記ユーザが指定する複数の機能ブロックのポート間接続情報から成るネットリストを生成するネットリスト生成手段と、
前記ネットリスト生成手段により生成されたネットリストに論理合成済み対象機能ブロックのデータを填め込んでプログラマブル・ロジックデバイスの回路を記録したROMデータを生成するROMデータ生成手段と、
前記ROMデータ生成手段により生成されたROMデータの生成結果を前記コンピュータに表示するROMデータ生成結果表示手段と、
前記ROMデータ生成手段により生成されたROMデータの生成結果を前記ユーザに電子メールで通知するROMデータ生成結果通知手段と
を備えたことを特徴とするASICとプログラマブル・ロジックデバイスのコンカレント開発システム。
A concurrent development system of an ASIC and a programmable logic device that is connected to a computer used by a user via a network and that develops an ASIC and a programmable logic device in response to the user's request ,
ASIC logic synthesis means for performing ASIC logic synthesis in response to the user's request;
ASIC logic synthesis result judging means for judging whether or not the ASIC logic synthesis result created by the ASIC logic synthesis means satisfies the speed performance requested by the user;
Programmable logic device logic synthesis means for executing logic synthesis of a programmable logic device based on a determination result by the ASIC logic synthesis result determination means;
Logic synthesis result display means for displaying the execution result of ASIC logic synthesis by the ASIC logic synthesis means and the execution result of programmable logic device logic synthesis by the programmable logic device logic synthesis means on the computer;
Logic synthesis notification means for notifying the user of the start and execution results of ASIC logic synthesis by the ASIC logic synthesis means and the execution start and execution results of programmable logic device logic synthesis by the programmable logic device logic synthesis means When,
A netlist generating means for generating a netlist composed of inter-port connection information of a plurality of functional blocks designated by the user from functional blocks constituting the ASIC in response to a request from the user;
ROM data generation means for generating ROM data in which the data of the logic synthesized target functional block is embedded in the net list generated by the net list generation means and the circuit of the programmable logic device is recorded;
ROM data generation result display means for displaying the generation result of the ROM data generated by the ROM data generation means on the computer;
A concurrent development system for an ASIC and a programmable logic device, comprising: ROM data generation result notification means for notifying the user of the generation result of the ROM data generated by the ROM data generation means by e-mail .
前記ユーザが指定した前記ASICを構成する機能ブロックの設計が未完了で回路データが存在しない場合に、当該機能ブロックの入力端子及び出力端子にダミー回路を挿入したネットリストを生成する仮ネットリスト生成手段をさらに備えたことを特徴とする請求項1に記載のASICとプログラマブル・ロジックデバイスのコンカレント開発システム。   Temporary netlist generation for generating a netlist in which dummy circuits are inserted into the input terminal and output terminal of the functional block when the design of the functional block constituting the ASIC specified by the user is incomplete and circuit data does not exist The concurrent development system for an ASIC and a programmable logic device according to claim 1, further comprising means. 前記ユーザが持つ最新の回路データとインプリメント設計者がインプリメント設計に取り込んでいる回路データ間の変更の規模を監視する監視手段と、前記監視手段による監視結果及びレイアウト設計にかかる時間に基づいて計画された日時に到達すると前記変更を前記ASICのインプリメント設計への反映のタイミングにあることを前記ユーザ及び前記ASICのインプリメント設計者に電子メールで通知する変更タイミング通知手段と、前記変更タイミング通知手段に応答して前記ユーザが前記反映の日付を変更することで停止を要求する反映停止要求手段とをさらに備えたことを特徴とする請求項1または2に記載のASICとプログラマブル・ロジックデバイスのコンカレント開発システム。 The monitoring means for monitoring the scale of changes between the latest circuit data held by the user and the circuit data incorporated in the implementation design by the implement designer, and the monitoring result by the monitoring means and the time taken for the layout design are planned. A change timing notification means for notifying the user and the ASIC implementation designer by e-mail that the change is in a timing for reflection in the ASIC implementation design, and responding to the change timing notification means. concurrent development system ASIC and a programmable logic device according to claim 1 or 2, characterized in that it comprises reflecting stop request means and further that the user requests to stop by changing the date of the reflected and . ネットワークを介してユーザの利用するコンピュータと接続され、ASICとプログラマブル・ロジックデバイスのコンカレント開発システムによる、該ユーザの要求に応じたASICとプログラマブル・ロジックデバイスのコンカレント開発方法であって
前記ユーザの要求に応じてASICの論理合成を実行するASIC論理合成工程と、
前記ASIC論理合成工程により作成されたASICの論理合成結果が前記ユーザの要求する速度性能を満足したか否かを判断するASIC論理合成結果判断工程と、
前記ASIC論理合成結果判断工程による判断結果に基づいてプログラマブル・ロジックデバイスの論理合成を実行するプログラマブル・ロジックデバイス論理合成工程と、
前記ASIC論理合成工程によるASIC論理合成の実行結果及び前記プログラマブル・ロジックデバイス論理合成工程によるプログラマブル・ロジックデバイス論理合成の実行結果を前記コンピュータに表示する論理合成結果表示工程と、
前記ASIC論理合成工程によるASIC論理合成の実行開始と実行結果及び前記プログラマブル・ロジックデバイス論理合成工程によるプログラマブル・ロジックデバイス論理合成の実行開始と実行結果を前記ユーザに電子メールで通知する論理合成通知工程と、
前記ユーザの要求に応じて前記ASICを構成する機能ブロックから前記ユーザが指定する複数の機能ブロックのポート間接続情報から成るネットリストを生成するネットリスト生成工程と、
前記ネットリスト生成工程により生成されたネットリストに論理合成済み対象機能ブロックのデータを填め込んでプログラマブル・ロジックデバイスの回路を記録したROMデータを生成するROMデータ生成工程と、
前記ROMデータ生成工程により生成されたROMデータの生成結果を前記コンピュータに表示するROMデータ生成結果表示工程と、
前記ROMデータ生成工程により生成されたROMデータの生成結果を前記ユーザに電子メールで通知するROMデータ生成結果通知工程と
を含んだことを特徴とするコンカレント開発方法。
A method for concurrent development of an ASIC and a programmable logic device that is connected to a computer used by a user via a network, and that meets the requirements of the user by a concurrent development system for the ASIC and the programmable logic device,
An ASIC logic synthesis step for performing ASIC logic synthesis in response to the user's request;
An ASIC logic synthesis result determination step for determining whether or not the ASIC logic synthesis result created by the ASIC logic synthesis step satisfies the speed performance requested by the user;
A programmable logic device logic synthesis step for performing logic synthesis of a programmable logic device based on the determination result of the ASIC logic synthesis result determination step;
A logic synthesis result display step of displaying on the computer the execution result of the ASIC logic synthesis by the ASIC logic synthesis step and the execution result of the programmable logic device logic synthesis by the programmable logic device logic synthesis step;
ASIC logic synthesis execution start and execution result by the ASIC logic synthesis step, and logic synthesis notification step of notifying the user of the execution start and execution result of the programmable logic device logic synthesis by the programmable logic device logic synthesis step to the user by e-mail When,
A netlist generating step for generating a netlist composed of inter-port connection information of a plurality of functional blocks designated by the user from functional blocks constituting the ASIC in response to a request from the user;
ROM data generation step of generating ROM data in which the data of the logic synthesis target functional block is embedded in the net list generated by the net list generation step and the circuit of the programmable logic device is recorded;
ROM data generation result display step for displaying the generation result of the ROM data generated by the ROM data generation step on the computer;
Features and to Turkey the concurrent development method that contains the ROM data generation result notification step of notifying email the result of generating the ROM data generated by the ROM data generating step to the user.
JP2006352783A 2002-04-17 2006-12-27 Concurrent development system and development method for ASIC and programmable logic device Expired - Fee Related JP4127719B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006352783A JP4127719B2 (en) 2002-04-17 2006-12-27 Concurrent development system and development method for ASIC and programmable logic device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002115273 2002-04-17
JP2002147930 2002-05-22
JP2006352783A JP4127719B2 (en) 2002-04-17 2006-12-27 Concurrent development system and development method for ASIC and programmable logic device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006089040A Division JP2006268862A (en) 2002-04-17 2006-03-28 System for concurrent development of asic and programmable logic device, development program, and development method

Publications (2)

Publication Number Publication Date
JP2007133897A JP2007133897A (en) 2007-05-31
JP4127719B2 true JP4127719B2 (en) 2008-07-30

Family

ID=38155445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006352783A Expired - Fee Related JP4127719B2 (en) 2002-04-17 2006-12-27 Concurrent development system and development method for ASIC and programmable logic device

Country Status (1)

Country Link
JP (1) JP4127719B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5565154B2 (en) * 2009-09-11 2014-08-06 セイコーエプソン株式会社 Vibrating piece, vibrator, oscillator, and electronic device

Also Published As

Publication number Publication date
JP2007133897A (en) 2007-05-31

Similar Documents

Publication Publication Date Title
JP3860812B2 (en) Concurrent development support program, development support method, and development support apparatus for ASIC and programmable logic device
KR100846089B1 (en) A method of distributing a plurality of glue logic elements among the design blocks and a method of increasing glue logic distribution efficiency
EP1129483A1 (en) Dram cell system and method for producing same
JP2006268862A (en) System for concurrent development of asic and programmable logic device, development program, and development method
JP4127719B2 (en) Concurrent development system and development method for ASIC and programmable logic device
JP4127720B2 (en) Method for generating FPGA and ASIC netlist
Patterson et al. Slotless module-based reconfiguration of embedded FPGAs
JPH0896018A (en) Cad tool management method and automatic circuit design system
Gajski et al. A system-level specification & design methodology
CN101149764A (en) ASIC and programmable logic device parallel development system and development method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080410

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080509

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110523

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4127719

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120523

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130523

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees