JP2003500745A - Inter-service application service provider - Google Patents

Inter-service application service provider

Info

Publication number
JP2003500745A
JP2003500745A JP2000620508A JP2000620508A JP2003500745A JP 2003500745 A JP2003500745 A JP 2003500745A JP 2000620508 A JP2000620508 A JP 2000620508A JP 2000620508 A JP2000620508 A JP 2000620508A JP 2003500745 A JP2003500745 A JP 2003500745A
Authority
JP
Japan
Prior art keywords
tree
inter
application service
service provider
provider
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000620508A
Other languages
Japanese (ja)
Other versions
JP2003500745A5 (en
JP4495865B2 (en
Inventor
フランク エロフ
ブラウン ベルント
ナップ デヴィッド
フェルナンデス ブラディープ
シュミット ハンス−ヨーアヒム
Original Assignee
ゲット2チップ
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
Priority claimed from US09/574,572 external-priority patent/US6516453B1/en
Priority claimed from US09/574,693 external-priority patent/US6470486B1/en
Priority claimed from US09/579,825 external-priority patent/US6782511B1/en
Application filed by ゲット2チップ filed Critical ゲット2チップ
Publication of JP2003500745A publication Critical patent/JP2003500745A/en
Publication of JP2003500745A5 publication Critical patent/JP2003500745A5/ja
Application granted granted Critical
Publication of JP4495865B2 publication Critical patent/JP4495865B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 業者間アプリケーションサービスプロバイダーは、インターネットウェブサイト、および、システム・オン・チップ設計者のためのEDAオンデマンド解決法を有するウェブサーバーを含む。このウェブサイトは、ハードウェア記述言語にて表わされた電子設計が、フロントエンドEDA設計環境にアップロードされるのを可能にする。行動モデルシミュレーションツールが、個人的に、ウェブサーバーテストに供され、前記設計の有効性を証明する。このツールは、業者間アプリケーションプロバイダーの安全環境においてのみ実行される。次ぎに、この有効保証された解決法は、インターネットを通じて、顧客にたいして、従量料金制の下で、ダウンロードして戻されるが、それは、バックエンドEDAツールが直ぐに経路指定できる形式で行われる。このような有効保証設計解決法はさらに、他の設計と交換に他者にダウンロードすることが可能であり、あるいは、技術ライブラリーで利用可能とすることも可能である。このようにして創成されたインテレクチュアルプロパティ(IP)は、再使用、販売、共有、交換、および、その他のやり方で、中央利潤追求情報センターを通じて、効率的に、簡単に、流通が可能である。   (57) [Summary] Business-to-business application service providers include Internet websites and web servers with EDA on-demand solutions for system-on-chip designers. This website allows electronic designs expressed in a hardware description language to be uploaded to the front-end EDA design environment. A behavioral model simulation tool is personally submitted to web server tests to prove the validity of the design. This tool runs only in the secure environment of a business-to-business application provider. This guaranteed solution is then downloaded back to the customer over the Internet under pay-as-you-go pricing, in a form that is readily routable by the back-end EDA tool. Such a valid assurance design solution can also be downloaded to others in exchange for other designs or made available in a technical library. The intellectual properties (IP) thus created can be efficiently, easily and distributed through reuse, sale, sharing, exchange, and other ways through a central profit-seeking information center. is there.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】 (発明の分野) 本発明は、電子設計自動化に関わる。さらに特定的には、インターネット上で
従量料金制に基づいて供給される行動準拠合成ツールに関わる。
FIELD OF THE INVENTION The present invention relates to electronic design automation. More specifically, it concerns behavior-based synthesis tools provided on the Internet under pay-as-you-go pricing.

【0002】 (発明の背景) 近年シリコンチップの使用は飛躍的に増加している。百万ゲートアプリケーシ
ョン特異的集積回路(ASIC)が、あらゆるタイプのアプリケーションに、例
えば、携帯電話、ネットワーク装置、DVDプレーヤー等に現在使われている。
しかしながら、このような複雑な装置の多くの設計者は、チップサイズが50K
から100Kゲートの範囲にあった、1980年代半ば以来の、時代遅れの電子
設計自動化(EDA)ツールや技術を用いている。現在、設計チームは、互いに
協力するために、たくさんの点状ツールを手に入れようと不規則な時間を費やし
ている。これらの問題は、人力の不足や短い製品サイクルと相俟って、設計要求
と、従来技術の能力との間のギャップを広げつつある。
BACKGROUND OF THE INVENTION The use of silicon chips has increased dramatically in recent years. Million Gate Application Specific Integrated Circuits (ASICs) are currently used for all types of applications, such as mobile phones, network devices, DVD players and the like.
However, many designers of such complex devices have a chip size of 50K.
To the 100K gate range, it uses outdated electronic design automation (EDA) tools and technologies since the mid-1980s. Currently, design teams spend irregular time trying to get many dot tools to work together. These problems, combined with the lack of manpower and short product cycles, are expanding the gap between design requirements and the capabilities of the prior art.

【0003】 このような無効なツールの使用は、市場においては、設計時間がさらに長くな
り、製品寿命がどんどん短くなることを意味するから、やがて、非常な供給不足
を招く。
The use of such an invalid tool means that the design time becomes longer and the life of the product becomes shorter and shorter in the market, so that a very short supply will be caused.

【0004】 従来のEDAツールが現在、システム-オン-チップ(SoC)設計への移行を
妨げている。既存のツールよりも確かに早く、かつ、大きな容量を持つ、新しい
、構造的、次世代ロジック合成技術が求められている。設計者は、より高レベル
の抽象化へと移動し、百万ゲートRTLや構造レベル設計を取り扱う際の、複雑
性・実証性問題を克服しなければならない。
Traditional EDA tools are currently hindering the transition to system-on-chip (SoC) designs. There is a demand for new, structural, next-generation logic synthesis technology that is certainly faster than existing tools and has a large capacity. Designers must move to higher levels of abstraction to overcome the complexity and demonstrative issues of dealing with million gate RTL and structure level designs.

【0005】 EDAツールに関する、従来の販売・流通にも問題がある。高度のEDAツー
ルを、設計者が必要とする時に、設計者の前に置き、かつ、そのEDAツールが
実際に使用された時にのみ、その顧客に料金を請求するには、新しいやり方が必
要である。現在、インターネットは、EDAツールを販売・流通させるための新
しい方法を提供する。
There are problems in the conventional sales and distribution of EDA tools. New ways are needed to place sophisticated EDA tools in front of the designer when they need them, and to bill their customers only when the EDA tools are actually used. is there. Currently, the Internet offers a new way to sell and distribute EDA tools.

【0006】 全てのフロントエンド設計相、例えば、構造、RTL、データパス、ロジック
の諸相にたいしては、一つのEDAツールを提供する必要がある。構造的合成が
実現されるならば、真のシステムレベルの設計が、10倍も大きい容量で実現可
能となろう。運転時間が速くなれば、より優れた品質信頼性(QoR)が得られ
るだろう。なぜなら、普遍的最適化が可能とならからである。コードと設計時間
において、2対5の時間短縮をもたらすために新しいEDAツールが求められて
いる。
It is necessary to provide one EDA tool for all front-end design phases, eg, structure, RTL, datapath, logic aspects. A true system-level design would be feasible with 10 times greater capacity if structural synthesis were realized. Faster run times will result in better quality reliability (QoR). This is because universal optimization is possible. New EDA tools are needed to deliver a 2 to 5 time savings in code and design time.

【0007】 (発明の概要) 簡単に言うと、本発明の、業者間アプリケーションサービスプロバイダー実施
態様は、システム-オン-チップ設計者にたいして、EDA-オン-デマンド解決法
を持つインターネットウェブサイトおよびウェブサーバーを含む。このウェブサ
イトは、ハードウェア記述言語で表わされた電子設計が、フロントエンドEDA
設計環境にアップロードされることを可能にする。ウェブサーバーにおいて私的
に宿される、行動モデルシミュレーションツールが、その設計を試験し、その有
効性を保証する。このツールは、業者間アプリケーションサービスプロバイダー
の安全な環境においてのみ実行する。次に、この有効保証された設計解決策はさ
らに、その他の設計の交換として、他者にダウンロード可能であり、また、技術
ライブラリーにおいて入手可能となる。このようにして創成されたインテレクチ
ュアルプロパティ(IP)は、利潤追求的中心同盟センターから、効率的にかつ
簡単に、再使用され、販売され、共有され、交換され、かつ、その他のやり方で
配給されることが可能である。
SUMMARY OF THE INVENTION Briefly, the inter-provider application service provider implementation of the present invention provides a system-on-chip designer with an Internet website and web server with an EDA-on-demand solution. including. This website uses the electronic design expressed in the hardware description language as the front end EDA.
Allows to be uploaded to the design environment. A behavioral model simulation tool, privately hosted on a web server, tests the design and ensures its validity. This tool runs only in the secure environment of the inter-provincial application service provider. This validated design solution is then also available for download to others as an exchange of other designs and is also available in the technical library. The Intellectual Property (IP) created in this way can be reused, sold, shared, exchanged, and otherwise otherwise efficiently and easily from the Profit-seeking Central Alliance Center. It can be distributed.

【0008】 (詳細な説明) 図1は、本発明のインターネットシステム実施態様を表わすが、本明細書では
、一般参照番号100と呼ぶことにする。このシステム100は、高レベル合成
(HLS)サービスとインテレクチュアルプロパティ(IP)を販売する、業者
間アプリケーションサービスプロバイダー104のインターネット接続102を
含む。このアプリケーションサービスプロバイダー104は、クライアントのウ
ェブブラザー訪問を迎えるために、例えば、Microsoft社から販売され
るソフトウェア、WINDOWS−NT、IISおよびASPを搭載するウェブ
サーバー106を有する。ペイパーユース即ち従量料金制電子設計自動化(ED
A)ツール108が、ソフトウェアアプリケーションとして、ウェブサーバー1
06に搭載されている。いずれの数であってもよい複数のユーザーおよび顧客が
、ウェブクライアント110およびブラウザー112で表わされる。ハードウェ
ア記述言語(HDL)で記述された構造電子設計は、EDAツール108による
シミュレーションと設計証明を求めて、インターネット102を通じてアップロ
ードされる。一旦完了したならば、この証明結果は、場所バックエンド行程11
4に、また、ルートバックエンド行程116にダウンロードして戻される。
DETAILED DESCRIPTION FIG. 1 represents an Internet system implementation of the present invention and will be referred to herein as a general reference numeral 100. The system 100 includes an internet connection 102 of a business-to-business application service provider 104 that sells high-level synthesis (HLS) services and intellectual property (IP). This application service provider 104 has a web server 106, for example, equipped with software, WINDOWS-NT, IIS and ASP, sold by Microsoft Corporation, to welcome a client's web brother visit. Pay-per-use, or pay-as-you-go electronic design automation (ED
A) The tool 108 uses the web server 1 as a software application.
It is installed in 06. Multiple users and customers, which may be of any number, are represented by web client 110 and browser 112. The structural electronic design described in the hardware description language (HDL) is uploaded through the Internet 102 for simulation by the EDA tool 108 and design proof. Once completed, this proof result is the location backend journey 11
4 and back to the route backend journey 116.

【0009】 EDAツール108は、ユーザーに従量制料金を請求し、かつ、設計のアップ
ロード・ダウンロードを許可する、入会モヂュール118によってサポートされ
る。HDL変換モヂュール120は、HDLを翻訳して、制御フロー(CF)グ
ラフに変える。操作スケジュールモヂュール122は、各HDLステートメント
を、適当なCFグラフノードにマップする。リソース割り当てモヂュール124
は、スケジュールで要求されるハードウェアを最適化する。一固まりのユーザー
ツール126が、ユーザーが、このウェブサイトをナビゲートし、理解し、かつ
、使用するのを助けるために含まれている。
The EDA tool 108 is supported by an enrollment module 118 that charges the user a pay-as-you-go rate and allows uploads and downloads of designs. The HDL conversion module 120 translates HDL into a control flow (CF) graph. The operations schedule module 122 maps each HDL statement to the appropriate CF graph node. Resource allocation module 124
Optimizes the hardware required by the schedule. A set of user tools 126 is included to help users navigate, understand and use this website.

【0010】 この業者間アプリケーションサービスプロバイダー104は、好ましくは、高
レベル合成のスケジュール相において、ディジタル設計の浮動時間分析を含む。
抽象時間モデルは、従来のフルタイミング分析に見られる複雑性という罰をもた
らすことなく、成分のビットレベル・タイミングを表出する。各スケジュール決
定のタイミング結果について、速やかで、正確な見積もりが供給される。次ぎに
、この見積もりを用いて、どれかのスケジュール決定を拒否すべきかどうかを決
めることが可能である。
This inter-provider application service provider 104 preferably includes floating-time analysis of digital designs in the high-level synthetic schedule phase.
The abstract temporal model exposes the bit-level timing of components without the penalty of complexity found in traditional full timing analysis. Prompt and accurate estimates are provided for the timing results of each schedule decision. This estimate can then be used to decide whether to reject any scheduling decisions.

【0011】 高レベル合成(HLS)は、電子設計自動化(EDA)システムにおけるディ
ジタルシステム設計のいくつかのサブタスクを自動化する。システム構築は、導
入されるべき全体アルゴリスムを、例えば、C、C++、特殊言語、または、捕
捉言語を使って、設計し、有効保証することから始まる。得られた構築仕様を、
ボード、チップ、および、ブロックに区分する。各ブロックは、それ自身の制御
フローを有する単一行程である。近代の、大規模チップ設計では、通常、数十か
ら数百のこのようなブロックがある。典型的なブロックは、全体フィルター、待
ち行列、および、パイプライン段階を表わす。一旦チップが、その構成ブロック
に区分されたならば、必要とされる、何らかの交信プロトコールを構築しなけれ
ばならない。このようなプロトコールは、ブロック間のサイクル毎交信を用いる
High Level Synthesis (HLS) automates several subtasks of digital system design in electronic design automation (EDA) systems. System construction begins with designing and validating the overall algorithm to be introduced, using, for example, C, C ++, special language, or capture language. The obtained construction specifications are
Divide into boards, chips, and blocks. Each block is a single stroke with its own control flow. In modern, large chip designs, there are typically tens to hundreds of such blocks. Typical blocks represent global filters, queues, and pipeline stages. Once the chip has been partitioned into its building blocks, any required communication protocol must be constructed. Such a protocol uses cycle-by-cycle communication between blocks.

【0012】 いわゆる「スケジューリング」と「割り当て」は、1時に1ブロックに適用さ
れる。スケジューリング行程122は、加算や乗算のような演算を、有限状態装
置(FSM)の状態(ステータス)に割り当てる。このFSMは、合成されるブ
ロックによって実行される制御フローをアルゴリスムに記述する。いくつかの演
算は、特定の状態でロックされて、他のブロックとの交信を表わす。これらの入
出力操作は、ある状態から別の状態へ動かしたり、スケジュール変更したりする
ことはできない。なぜなら、そんなことをすれば、ブロック対ブロックの交信プ
ロトコールを混乱させることになるからである。
So-called “scheduling” and “assignment” are applied to one block at a time. Scheduling process 122 assigns operations such as additions and multiplications to finite state machine (FSM) states. This FSM describes the control flow performed by the blocks to be composed in an algorithm. Some operations are locked in certain states to represent communication with other blocks. These I / O operations cannot be moved or rescheduled from one state to another. Because doing so would confuse the block-to-block communication protocol.

【0013】 しかしながら、他のいくつかの演算は、ある状態から別の状態への移動が可能
である。たくさんの演算を有する状態から、ほとんど演算を持たない状態へ操作
を移動させることは、ハードウェアリソース(資源)が、操作間でより均一に共
有されることを可能とする。タイミング問題は、時として、操作を、操作遅延が
タイミング問題を引き起こしている状態から、そのような問題の存在しない状態
へ移動することによって解決が可能なことがある。
However, some other operations are capable of moving from one state to another. Moving operations from states with many operations to states with few operations allows hardware resources to be shared more evenly among operations. Timing problems can sometimes be resolved by moving the operation from a state where the operation delay is causing the timing problem to a state where such a problem does not exist.

【0014】 割り当て行程124は、あるスケジュールされたFSMの操作を、特定のハー
ドウェアリソースにマップする。例えば、3回の加算操作を、単一の加算器のみ
を必要とするようにスケジュールすることが可能である。適当な加算器を構築し
、演算をその加算器に割り当てる。しかしながら、あるビット幅と機能を持つ1
個を越えるハードウェアリソースが必要とされる場合、厄介な問題が発生し得る
。従って、各演算について、どのリソースを使用すべきかを決めなければならな
い。考慮しなければならないこととして、多重化コスト、偽似タイミングパスの
創成、レジスター割り当て、さらには、小規模演算用として大きなリソースの使
用等が挙げられる。ハードウェアリソースは、多数機能のために使用することが
可能である。ある全体行程のために必要な、最小の一組のリソースを計算するこ
とは困難ではあるが、困難の価値ある有意味な作業である。時として、別様導入
が可能な場合がある。全体タイミング制限に合致し、ゲートカウントを極小にす
る構築を選ぶことが可能な場合がしばしばある。リソース割り当ては、リソース
(抽象機能)を、ゲートレベルの設置成分にマップすることを含む。
The allocation process 124 maps certain scheduled FSM operations to specific hardware resources. For example, three add operations can be scheduled such that only a single adder is needed. Build the appropriate adder and assign the operation to that adder. However, one with a certain bit width and function
If more than one hardware resource is required, then one can have troublesome problems. Therefore, for each operation, we have to decide which resource should be used. Some things to consider are the cost of multiplexing, the creation of false timing paths, register allocation, and the use of large resources for small-scale operations. Hardware resources can be used for multiple functions. Calculating the minimum set of resources required for an entire journey is difficult, but a valuable and meaningful task of difficulty. In some cases, a different introduction may be possible. It is often possible to choose a construction that meets the overall timing constraints and minimizes the gate count. Resource allocation involves mapping resources (abstract functions) to gate-level installed components.

【0015】 割り当ては、レジスターセットを計算し、データを、後の状態での使用のため
にレジスターに割り当てることを含む。例えば、一時的変数を使用して、さらに
大規模な計算の中間結果を保存する。しかしながら、そのような一時的変数の内
容は、異なる状態において、共通レジスターを共有することも可能である。この
内容は、1状態について一つだけ必要とされる。従って、保存する必要のあるデ
ータを、そのような保存要素に割り当てることによって、ハードウェア上にセー
ブすることが可能になる。しかしながら、データ値が、互いに排除し合うセット
を形成したり、または、保存を共有することが可能な場合は、レジスターおよび
保存割り当てが複雑になる可能性がある。データ値はしばしば機能的リソースを
駆動するが、逆に、機能的リソースによって生産されることもしばしばある。デ
ータを保存に上手に割り当てることは、多重化コストと遅延の縮小をもたらす。
割り当てはまた、レジスターと機能的ハードウェアが相互作用を持つ場合、より
複雑化される。
Allocation involves calculating a register set and allocating data to the registers for later use. For example, temporary variables are used to store intermediate results for larger calculations. However, the contents of such temporary variables can also share common registers in different states. Only one of this content is needed for one state. Therefore, it becomes possible to save on hardware by allocating the data that needs to be saved to such a storage element. However, register and save allocation can be complicated if the data values can form mutually exclusive sets or share saves. Data values often drive functional resources, but, on the contrary, are often produced by functional resources. A good allocation of data for storage results in reduced multiplexing costs and delays.
Assignments are also made more complicated when registers and functional hardware interact.

【0016】 スケジューリングと割り当ての後には、技術から独立した、または、ブール的
最適化が続く。回路設計は、ネットリストに接続された、一般的ANDとORゲ
ートを含む。技術独立的最適化は、ネットリストの中のリテラルの数を最小化す
る。ブールゲートの抽象化そのものが、ブール代数に基づく高度に数学的な処理
となる。例えば、ブールの等式AB+AC=A(B+C)を用いて、対応するゲ
ートネットワークを減少させることが可能である。
Scheduling and allocation are followed by technology-independent or Boolean optimization. The circuit design includes general AND and OR gates connected to a netlist. Technology independent optimization minimizes the number of literals in the netlist. The Boolean gate abstraction itself is a highly mathematical process based on Boolean algebra. For example, the Boolean equation AB + AC = A (B + C) can be used to reduce the corresponding gate network.

【0017】 ブール最適化の後には技術マッピングが続く。回路の抽象ブールゲートは、技
術ライブラリーから得た標準セルにマップされる。標準ライブラリーセルは、単
純なAND、ORまたはNOT機能や、それより遥かに複雑な機能を含む。例え
ば、全加算器、and−or反転ゲート、および、多重化器である。様々な駆動
強度、遅延、インプット負荷等を持つ、技術-ライブラリーゲートが入手可能で
ある。一つの個別ブールゲートをマップするのにたくさんのやり方があり、かつ
、各やり方が、それ独自の利点を持っているという事実から、技術マッピングは
さらに複雑化される。
Boolean optimization is followed by technology mapping. The abstract Boolean gates of the circuit are mapped to standard cells obtained from the technology library. Standard library cells include simple AND, OR or NOT functions, and much more complex functions. For example, a full adder, an and-or inverting gate, and a multiplexer. Technology-library gates are available with various drive strengths, delays, input loads, etc. Technical mapping is further complicated by the fact that there are many ways to map one individual Boolean gate, and each way has its own advantages.

【0018】 時として、技術マッピングを回避し、あらかじめ構築され、特性付与されたセ
ルのライブラリーからセルを選択する代わりに、回路のゲートのために、特注ゲ
ートレイアウトを構築することが可能である。しかしながら、この方法は、自動
化合成とは普通は関連しない。
Sometimes it is possible to avoid technology mapping and instead of selecting cells from a library of pre-built and characterized cells, build a custom gate layout for the gates of the circuit. . However, this method is not usually associated with automated synthesis.

【0019】 技術マッピングの次には、セル設置とネット配線というレイアウト作業が続く
。チップ上における各セルの物理的位置が定められ(設置)、かつ、セル同士を
相互接続するのに必要なネットがレイアウトされる(経路配置)。アプリケーシ
ョンサービスプロバイダー104においては、設置や経路配置に関して、設計イ
ンテレクチュアルプロパティ(IP)がユーザーにダウンロードされる。
The technology mapping is followed by the layout work of cell installation and net wiring. The physical position of each cell on the chip is determined (installation), and the nets necessary for interconnecting the cells are laid out (route arrangement). At the application service provider 104, the design intellectual property (IP) is downloaded to the user regarding installation and route arrangement.

【0020】 図2は、本発明の、電子設計自動化(EDA)法実施態様を表わすが、本明細
書では、一般参照番号200と呼ぶことにする。EDA法は、アルゴリスム設計
行程202から始まる。このシステム設計は、行程204において、複数のブロ
ックとプロトコール設計に区分される。行程206において、Verilog、
または、その他のハードウェア記述言語(HDL)によるコーディングを実行す
る。高レベル合成(HLS)行程208は、演算スケジューリング行程210と
リソース割り当て行程212とを含む。個々の演算がスケジュールされる度毎に
、タイミング分析が適用されるので、単一の演算をスケジュールさせるのに何回
も呼び出されることがある。技術-独立(ブール的)最適化行程214が次に続
く。技術マッピング行程216は、回路の抽象ブールゲートを、例えば、技術ラ
イブラリーから得た標準セルにマップする。設置行程218は、ゲートを、チッ
プ不動産上に配置し、経路配置行程220は、ゲート同士を配線で相互接続する
FIG. 2 depicts an electronic design automation (EDA) method embodiment of the present invention, which will be referred to herein as a general reference numeral 200. The EDA method begins at algorithm design step 202. The system design is divided into blocks and protocol designs at step 204. In step 206, Verilog,
Alternatively, the coding is performed in another hardware description language (HDL). The high level synthesis (HLS) process 208 includes a computational scheduling process 210 and a resource allocation process 212. Since the timing analysis is applied each time an individual operation is scheduled, it may be called multiple times to schedule a single operation. A technology-independent (Boolean) optimization process 214 follows. The technology mapping step 216 maps the abstract Boolean gates of the circuit to standard cells obtained, for example, from a technology library. The installation step 218 places the gates on the chip real estate and the route placement step 220 interconnects the gates with wires.

【0021】 タイミング分析は、状態ダイアグラム、一揃いのリソース、技術ライブラリー
、および、少なくとも部分的にスケジュール化され、割り当てられた演算をもっ
て開始する。分析は、設計全体が、そのタイミング要求に合致しているかどうか
を判断する。この回路の遅延合計は、有効データが、各クロックサイクルの終了
時において、行く先レジスターへのラッチが可能なようになっていなければなら
ない。スケジューリングシステムを用いて、現実スケジュールを構築し、それに
よって、レイアウト後タイミング合致の確率を良好にする割り当て回路を得るこ
とも可能である。
Timing analysis begins with a state diagram, a set of resources, a technical library, and at least partially scheduled and assigned operations. The analysis determines whether the overall design meets its timing requirements. The total delay of this circuit must be such that valid data can be latched into the destination register at the end of each clock cycle. It is also possible to use a scheduling system to build a real schedule and thereby obtain an allocation circuit that improves the probability of post-layout timing agreement.

【0022】 タイミング疑問には、素早く、かつ、効率的に答えなければならない。なぜな
ら、そのような疑問は、単一設計をスケジュールする行程で度々尋ねられるから
である。例えば、リスト-スケジューリングアルゴリスムでは、設計の転移(即
ち変更)は個別に、順番に考慮される。各転移について、一組の「スタンバイ」
演算が構築される。このスタンバイ演算は、転移のソース状態において利用可能
な入力データを含む演算である。これらの演算の内から一つが、何らかの基準―
例えば、もっとも緊急なものをもっとも先に―を用いて選択され、スタンバイリ
ストから取り出され、現在の転移ではこうしたことがなければ未使用とされるリ
ソースに割り当てられる。次ぎに、得られたデータは、利用可能なデータセット
に加算される。次ぎに、その結果に依存する他の演算が、スタンバイリストに加
算されてもよい。この行程は、もうこれ以上の演算がスタンバイリストに無くな
るまで、または、スタンバイリストの演算を実行するためのリソースがもはや無
くなるまで、または、スタンバイリストの演算が、現在の転移ではスケジューリ
ングできなくなるまで、続く。これは、全てのアーク即ち円弧が考慮され、全て
の演算がスケジュールされるまで、繰り返される。このタイミング行程は、与え
られた一組のリソースを使っては、その設計がスケジュールできない場合は、停
止する。
Timing questions must be answered quickly and efficiently. Because such questions are often asked in the process of scheduling a single design. For example, in a list-scheduling algorithm, design transitions (ie changes) are considered individually and in sequence. A set of "standbys" for each transition
The operation is built. This standby operation is an operation that includes the input data available in the source state of the transition. One of these operations is some standard-
For example, the most urgent is selected first-using, removed from the standby list, and assigned to resources that would otherwise be unused in the current transition. The resulting data is then added to the available data set. Then, other operations depending on the result may be added to the standby list. This process continues until there are no more operations in the standby list, or there are no more resources to perform the operations in the standby list, or until the operations in the standby list cannot be scheduled in the current transition. Continue. This is repeated until all arcs have been considered and all operations have been scheduled. This timing step stops if the design cannot be scheduled using the given set of resources.

【0023】 タイミング分析は、個別の演算がスケジュールされる度毎に、実行しなければ
ならない。もしも最初の、候補の、演算-転移-リソーススケジューリング組が受
け入れられなかった場合、タイミング分析行程は、一つが受け入れられるまで、
繰り返し呼び出されなければならない。タイミング分析行程は、一つの演算のス
ケジューリング組が考慮される度毎に、設計リソースの全てについてタイミング
を評価することができなくてはならない。
Timing analysis must be performed each time an individual operation is scheduled. If the first candidate, Compute-Transfer-Resource Scheduling pair is not accepted, the timing analysis process continues until one is accepted.
Must be called repeatedly. The timing analysis process must be able to evaluate timing for all of the design resources each time a scheduling set of operations is considered.

【0024】 さらに、タイミング分析は、ビット塊状ではなく、ビット忠実でなくてはなら
ない。各種リソースの遅延を明らかにする場合、各リソースに関連する、単一数
、または、単一負荷/機能では不充分である。一つの遅延または負荷/遅延機能
は、リソースの各アウトプットビットと関連していなければならない。
Furthermore, the timing analysis must be bit-faithful, not bit-lumpy. When revealing delays for various resources, a single number or single load / function associated with each resource is insufficient. One delay or load / delay function must be associated with each output bit of the resource.

【0025】 併合リソースについて、高速で、正確なビットレベルのタイミングモデルを構
築することは可能である。なぜなら、併合ロジックを表わすグラフは、必ず、一
揃いのツリー(木)に区分けすることが可能だからである。ロジックの木は、そ
のノードを使って、ゲートと端子を表わし、その円弧を使って、接点を表わす。
電気的ドライバーは、ロジック木において、必ず、ドライブするゲートの下に来
る、例えば、根から遠い方に来る、あるいは、そうでなければ、木の根(ルート
)と、ドライバーが駆動するゲートは別の木に存在する。木の終末点は、ロジッ
ク木の外側のゲートにたいする接点を表わす。ネットワークのゲートが、2個以
上の扇形広がりを持つ場合、最大ロジック木の根は、そのゲートの出力端子であ
る。他の全ての木は、潅木(サブツリー)となる。
It is possible to build fast, accurate bit-level timing models for merged resources. This is because the graph representing the merge logic can always be divided into a set of trees. The logic tree uses its nodes to represent gates and terminals, and its arcs to represent contacts.
An electrical driver must always be below the gate it drives in the logic tree, eg, far from the root, or else the root of the tree and the gate the driver drives are different trees. Exists in. The end points of the tree represent the contacts to the gates outside the logic tree. If the gate of the network has more than one fan spread, the root of the largest logic tree is the output terminal of that gate. All other trees are shrubs (subtrees).

【0026】 図3は、本発明のタイミング分析法を表わし、本明細書では、一般参照番号3
00と呼ばれる。この方法300は、回路設計を、対応するロジック木(ツリー
)に区分する行程302から始まる。一旦回路がロジックツリーに区分されたな
らば、行程304において、その回路の小型モデルを構築することが可能になる
。ロジックツリーは、例えば、行程306において、内部的ノードを持たない等
価的ツリーに交換される。この等価ツリーは、しばしば、もとのツリーよりも実
質的により単純になっている。行程308において、もとの回路のタイミングが
、ツリーの葉からその根まで、各経路にそって分析される。行程312において
、もとの回路の伝達遅延が、入力信号の変位速度に依存していることが認められ
た場合、それがいずれものであっても、簡単化ツリーの対応葉の上に注記される
。行程314は、ロジックツリーの葉から、容量性負荷を簡単化ツリーの葉にコ
ピーする。例えば、ロジックツリーの頂上における出力ゲートの、ロード/遅延
反応曲線は、行程316において、簡単化ツリーの根にコピーされる。
FIG. 3 represents the timing analysis method of the present invention, herein designated by the general reference numeral 3.
Called 00. The method 300 begins at step 302 with partitioning a circuit design into corresponding logic trees. Once the circuit has been partitioned into a logic tree, at step 304 it is possible to build a small model of the circuit. The logic tree is exchanged, for example, at step 306, with an equivalent tree having no internal nodes. This equivalence tree is often substantially simpler than the original tree. In step 308, the timing of the original circuit is analyzed along each path, from the leaf of the tree to its root. If in step 312 it is found that the propagation delay of the original circuit depends on the displacement rate of the input signal, whichever it is, it is noted on the corresponding leaf of the simplification tree. It Step 314 copies the capacitive load from the logic tree leaf to the simplification tree leaf. For example, the load / delay response curve of the output gate at the top of the logic tree is copied to the root of the simplification tree at step 316.

【0027】 変位や負荷依存性のような、いくつかの辺縁効果は、本発明の実施態様では、
経路遅延の中に取り込まれてもよい。これらの追加項は、末端が、全体リソース
の境界にあるツリーにたいしてのみ計算する必要があるだけである。従って、行
程318において、全体遅延計算は、リソースの抽象タイミングモデルの内部に
おける、単純な、辺縁重み付け最長横断経路に縮小される。これによって、回路
の各セルについて変位速度や遅延を計算するのに比べて、タイミング分析がずっ
と速くなる。
Some edge effects, such as displacement and load dependence, are, in embodiments of the invention,
It may be incorporated in the path delay. These additional terms need only be calculated for trees whose ends are at the boundaries of the overall resource. Therefore, in step 318, the overall delay calculation is reduced to a simple, edge-weighted longest traversal path within the abstract timing model of the resource. This makes the timing analysis much faster than calculating displacement rates and delays for each cell in the circuit.

【0028】 図4A、4Bおよび4Cは、回路400からロジックツリー410、および、
簡単化ツリー420への転移を表わす。図4Bにおいて、ロジックゲートは、ツ
リー中のノードとして表わされる。ANDゲートは、上を向いたシェブロン記号
を持ち、NORゲートは、下を向いたシェブロン記号を持つ。図4Cでは、ノー
ドは完全に取り除かれる。本発明の実施態様におけるその後の行程では、簡単化
ツリー420は、回路400(図4A)における遅延問題について速やかな解答
を与える注釈で飾られる。点線による囲みは、サブツリーを示す。
4A, 4B and 4C show circuits 400 through logic tree 410, and
It represents the transition to the simplification tree 420. In FIG. 4B, logic gates are represented as nodes in the tree. The AND gate has a chevron symbol facing up and the NOR gate has a chevron symbol facing down. In FIG. 4C, the node has been completely removed. In subsequent steps in an embodiment of the invention, the simplification tree 420 is decorated with annotations that give a quick answer to the delay problem in circuit 400 (FIG. 4A). Boxes with dotted lines indicate subtrees.

【0029】 図5は、インプット境界に一組の複雑モデルアーク502、内部に一組の簡単
化モデルアーク504、および、アウトプット境界に、別の一組の複雑モデルア
ーク506を含む設計500を表わす。モデル内部の伝達遅延について、このよ
うな簡単化モデルを用いているために、正確性において若干の損失があるが、実
際には、そのような不正確は、本質的ではないようである。正確性の損失が問題
なら、新たな内部アークにたいしてさらに複雑なモデルを使用することも可能で
ある。この場合、正確度は向上するであろうが、解法運転時間も増大するであろ
う。回路境界に接触するアークのみが、真に、複雑モデルを必要とする。簡単化
モデルを有するアークを、破線矢印で示す。
FIG. 5 illustrates a design 500 that includes a set of complex model arcs 502 at the input boundaries, a set of simplified model arcs 504 inside, and another set of complex model arcs 506 at the output boundaries. Represent. There is some loss in accuracy due to the use of such a simplified model for propagation delays within the model, but in practice such inaccuracies appear to be non-essential. If loss of accuracy is an issue, it is possible to use a more complex model for the new internal arc. In this case, accuracy will improve, but solution run time will also increase. Only arcs that touch circuit boundaries really need a complex model. Arcs with a simplified model are indicated by dashed arrows.

【0030】 回路を表わすロジックツリーの全てが、簡単化ツリーにマップされたなら、も
とのリソース回路図は廃棄してもよい。関係タイミング情報の全ては、簡単化ツ
リーのネットワークに保存される。次ぎに、簡単化ツリーのネットワークに取り
込まれたリソースのモデルを、到着時間を計算する、グラフ横断アルゴリスムと
一緒に用いることによって、連鎖リソースのタイミングを分析することが可能と
なる。この簡単化モデルタイミング分析用グラフ横断によって、従来の方法に比
べて一桁違う高速分析が可能となる。
Once all of the logic trees representing the circuit have been mapped to the simplification tree, the original resource schematic may be discarded. All relevant timing information is stored in a network of simplification trees. Next, the model of the resources taken into the network of simplification trees can be used in conjunction with the graph traversal algorithm, which calculates arrival times, to analyze the timing of chained resources. This simplified model timing analysis graph traverse enables high-speed analysis that is an order of magnitude different from conventional methods.

【0031】 図6は、二つのグラフ、パターングラフ602 G1=(v1,e1)と標的
グラフ604 G2=(V2,e2)がある場合の、一般的グラフ適合問題60
0に関わる。目的は、パターングラフ要素から、標的グラフ要素にたいする、1
対1マッピングを見つけることである。適合されたノードによって定義されるサ
ブグラフG2は、G1と同形でなければならない。そのような適合の例がここに
示され、適合されたノードとアークが、囲み608の中に示される。
FIG. 6 shows a general graph fitting problem 60 with two graphs, a pattern graph 602 G1 = (v1, e1) and a target graph 604 G2 = (V2, e2).
Involved in 0. The purpose is from the pattern graph element to the target graph element, 1
To find a one-to-one mapping. The subgraph G2 defined by the adapted node must be isomorphic to G1. An example of such a fit is shown here and the fitted nodes and arcs are shown in box 608.

【0032】 図7は、回路702と、それに対応する、二つの部分から成るグラフ表示70
4を示す。大体、ゲートはノードに変換され、相互接続はアークに変換される。
特定の、技術マッピング適合問題は、比較的一般的な適合問題とは異なる。回路
のために抽出されたグラフは、方向性を持つ、2部分グラフ、例えば、G=(v
1,v2,e)である。ここに、"e"の辺縁は、v1の要素をv2の要素に接続
するが、v1の要素をv1に、または、v2の要素をv2に接続することは決し
てない。辺縁は、順序を持つペアで、例えば、方向性を持つ。v2のノードはゲ
ートを表わし、v1のノードは回路ネットを表わす。2部分方向性グラフにおけ
るグラフ適合は、ネットノードはネットノードにのみマップされ、ゲートノード
はゲートノードにのみマップされ、かつ、同形性を用いて辺縁の方向性を保存す
るように、行われる。2部分グラフ表示704において、ゲートを表わすノード
は、タイプ区分を有する、例えば、AND(∧)、OR(∨)、およびNOT(
!)である。これらは、同形構築の一部を形成する。G1におけるタイプXのノ
ードは、G2におけるタイプXのノードにマップされる。
FIG. 7 shows a circuit 702 and its corresponding two-part graphical representation 70.
4 is shown. Roughly, gates are transformed into nodes and interconnects are transformed into arcs.
The particular, technical mapping match problem differs from the relatively general match problem. The graph extracted for the circuit is a directional bipartite graph, for example G = (v
1, v2, e). Here, the edge of "e" connects the element of v1 to the element of v2, but never connects the element of v1 to v1 or the element of v2 to v2. The edges are ordered pairs, and have directionality, for example. The v2 node represents a gate, and the v1 node represents a circuit net. Graph fitting in a bipartite directional graph is performed such that net nodes are only mapped to net nodes, gate nodes are only mapped to gate nodes, and isomorphism is used to preserve the directionality of the edges. . In the bipartite graph representation 704, the nodes representing the gates have type divisions, eg, AND (∧), OR (∨), and NOT (
!! ). These form part of an isomorphic construction. A type X node in G1 maps to a type X node in G2.

【0033】 従来技術は通常ツリーを適合させる。方向性非サイクルグラフ(DAG)を用
いて、いくつかの型の複数出力ゲートを表わすことが可能であるから、併合ロジ
ック回路を、一つのDAGで表わすことも可能である。すなわち、それら併合ロ
ジック回路がサイクルを含まない限りは可能である。DAGはまた、形良く形成
され、偽似サイクル経路を含まないようになっていなければならない。
The prior art usually adapts the tree. Since a directional acyclic graph (DAG) can be used to represent several types of multiple output gates, it is also possible to represent a merged logic circuit with a single DAG. That is, as long as those merged logic circuits do not include cycles. The DAG must also be well formed and free of pseudo cycle paths.

【0034】 図8は、技術マッピングにおける最初の行程、すなわち、ネットワークグラフ
802を区分して、一揃いのツリー群804−808、すなわち、DAGに変換
する行程を示す。次ぎに、各ツリー804−308を、個別のマッピング問題と
して、処理する。もっとも簡単な処方はツリーを使用することであるが、DAG
への拡張を行ったとしても難しくはないだろう。一般に、ツリーは、その根や葉
は全て、ゲートノードではなくして、ネットノードであるというように定義され
る。ルートやリーフは、必要なだけたくさん重複される。でなければ、ルートや
リーフは、ツリー間で共有されなければならない。ツリー804−808は、で
きるだけ大きく、例えば、最大ツリーでなければならない。DAGに拡張する場
合、いずれの拡張であっても、一つのDAGのアウトプット端子の数は、2また
は、その他の小さい数に限定されなければならない。でないと、適合計算が複雑
になりすぎる。
FIG. 8 shows the first step in the technology mapping, ie, the step of partitioning the network graph 802 and converting it into a set of tree groups 804-808, or DAGs. Next, each tree 804-308 is treated as a separate mapping problem. The simplest prescription is to use a tree, but DAG
It shouldn't be difficult to extend to. In general, a tree is defined such that all its roots and leaves are net nodes rather than gate nodes. Routes and leaves are duplicated as many times as necessary. Otherwise, roots and leaves must be shared between trees. The trees 804-808 should be as large as possible, eg the largest tree. When expanding to a DAG, the number of output terminals of one DAG must be limited to 2 or any other small number in any expansion. Otherwise, the fit calculation becomes too complicated.

【0035】 典型的な技術ライブラリーは、原始的要素を表わすいくつかのセルを含む。ラ
イブラリーの併合セルは、ブール関数を持つ。各セルについて、選択された一組
の2部分方向性グラフ表示が構築される。これらのグラフはそれぞれ、小さな原
始的タイプのアルファベットで表現された、セルのブール関数と関連する。ライ
ブラリーの各セルは、ネットノード、2入力NANDノード、および、NOTノ
ードのみを含むツリー(またはDAG)によって記述される。選ばれた正確なア
ルファベットは、それが比較的単純なものであり、ロジック的に完全である限り
、決定的に重要ではない。ブール関数は全て、アルファベットのユニットのみを
含むネットワークとして表わすことが可能である。
A typical technology library contains a number of cells that represent primitive elements. The merged cell of the library has a Boolean function. For each cell, a selected set of two partial directional graph displays is constructed. Each of these graphs is associated with a Boolean function of cells, represented in a small primitive type alphabet. Each cell of the library is described by a tree (or DAG) containing only net nodes, two-input NAND nodes, and NOT nodes. The exact alphabet chosen is not critical as long as it is relatively simple and logically complete. All Boolean functions can be represented as networks containing only units of the alphabet.

【0036】 このような分解されたライブラリーを図9に示す。セル名は左のコラムに挙げ
てある。真中のコラムは、対応するブール関数を挙げる。各セルは、右のコラム
に示すような1個以上のパターンツリーで表わされる。
Such a decomposed library is shown in FIG. The cell names are listed in the left column. The middle column lists the corresponding Boolean functions. Each cell is represented by one or more pattern trees as shown in the right column.

【0037】 技術マッピング行程に委ねられた回路設計は、いずれのものであっても、通常
、単純なゲート、例えば、NAND、AND、NOR、OR、XOR、および、
NOTのネットワークとして表わされる。各ネットワークは、ライブラリーツリ
ーのゲートタイプおよび扇形インのみを用いて、機能的に等価なネットワークに
変換される。図9の例示ライブラリーについて言えば、回路は、インバーターと
、2入力NANDゲートのみから成る等価回路に変換される。次ぎに、その等価
回路は、2部分方向性グラフ表示に、例えば、ライブラリーパターングラフと同
じスタイルのグラフ表示にマップされる。その後、グラフ適合を実行することが
可能になる。ライブラリーセルおよびマップされる回路の両方とも、同じグラフ
形式を用いて表わされる。
Whatever circuit design is entrusted to the technology mapping process, typically simple gates such as NAND, AND, NOR, OR, XOR, and
It is represented as a NOT network. Each network is transformed into a functionally equivalent network using only the gate type and fan-in of the library tree. For the exemplary library of FIG. 9, the circuit is converted to an equivalent circuit consisting of an inverter and a 2-input NAND gate only. The equivalent circuit is then mapped to a two-part directional graph display, for example a graph display in the same style as the library pattern graph. It is then possible to perform graph fitting. Both library cells and mapped circuits are represented using the same graphical format.

【0038】 回路のツリーは、個別的適合問題となる。好ましくは、適合結果は全て、各ネ
ットノードNに、適合パターンツリーのリストを付着させることによってコード
される。このリストは、そのルートがNに適合する、一組のパターンツリーを表
わす。下記の偽似コードはそのようなリストを設け、かつ、そのリストを適合(
N)と呼ぶ。 Rを回路ツリーTのルートとせよ。 Sを、最初はRのみから成る一組とせよ。 (Sが非空虚である限り){ NをSの一要素とせよ。SからNを取り出せ。 (ライブラリーの、パターンツリー組の全ての数P)について (適合(ルート(P)、N))ならば{ Mを適合(N)に加えよ。 } } (NがTのリーフノードでない)ならば{ GをNのドライバーとせよ。 Gの全てのドライバーをSに加えよ。 } }
The tree of circuits becomes an individual fit problem. Preferably, all matching results are coded by attaching to each net node N a list of matching pattern trees. This list represents a set of pattern trees whose roots match N. The pseudo code below creates such a list and adapts the list (
N). Let R be the root of the circuit tree T. Let S be a set of Rs initially. (As long as S is non-empty) {Let N be an element of S. Take out N from S. For (the total number P of pattern tree sets in the library) if (match (root (P), N)) add {M to match (N). }} (If N is not a leaf node of T) {Set G to be the driver of N. Add all G drivers to S. }}

【外1】 [Outer 1]

【0039】 パターン適合アルゴリスムを用いてツリー適合テストを実行するにはいくつか
の方法がある。例えば、再帰的アルゴリスムは、ある回路ツリーがあるパターン
ツリーにたいし、ルート同士が適合場合、適合することを認識することが可能で
ある。サブツリーマッピングは、回路ツリーとパターンサブツリーが1対1対応
でなければならない。すなわち、回路ツリーの各サブツリーは、正確に、パター
ンツリーの一つのサブツリーにマップしなければならない。パターンツリーの全
てのサブツリーは、回路ツリーの何れかのサブツリーに、例えば、"onto"マ
ッピングを通じて、マップされなければならない。これが行われないと、回路ツ
リーの1を越えるサブツリーが、パターンツリーの単一サブツリーにマップされ
たり、あるいは、パターンツリーのいずれのサブツリーにもマップされなくなる
可能性がある。
There are several ways to perform a tree matching test using the pattern matching algorithm. For example, a recursive algorithm can recognize that a circuit tree matches a pattern tree, and if the roots match each other. In the subtree mapping, the circuit tree and the pattern subtree must have a one-to-one correspondence. That is, each subtree of the circuit tree must map exactly to one subtree of the pattern tree. All subtrees of the pattern tree must be mapped to any subtree of the circuit tree, for example through "onto" mapping. If this is not done, more than one subtree of the circuit tree may map to a single subtree of the pattern tree or no subtree of the pattern tree.

【0040】 あるサブツリーとサブツリーの適合が失敗しても、別の適合が成功するかも知
れない。このツリーは非対称であってもよい。パターンツリーのサブツリーの順
番リストの、全ての順列が、回路ツリーのサブツリーの順番リストにたいしてテ
ストされる。全ての順列が失敗した場合、適合試行全体が放棄される。いずれか
の順列が成功した場合、適合が見出されたことになる。
If a subtree-to-subtree match fails, another match may succeed. This tree may be asymmetric. All permutations of the ordered list of subtrees of the pattern tree are tested against the ordered list of subtrees of the circuit tree. If all permutations fail, then the entire match attempt is abandoned. If either permutation succeeds, then a match is found.

【0041】 下記の偽似コードは、適合アルゴリスムを実行する。名前の付けられたノード
は全てネットノードである。ゲートノードは、ネットノードのドライバーである
。if文の中に挙げられているリスト"U"は、ネットNのドライバーリスト、例
えば、ネットノードNを駆動するゲートGのドライバーリストである。 (Mがリーフノードであるならば){ 真を返せ。 {でなければ(Nがリーフノードであるならば){ 偽を返せ。 }でなければ(MのドライバーのタイプがNのドライバーのタイプと同じであ
るならば){ (Mのドライバーのドライバーリストの全ての順列Pについて){ Temp=真; Uを、Nのドライバーのドライバーリストとせよ。 (Pの全ての要素p、および、Uの全ての要素uについてこの順番で){ ((p、U)適合が偽であるなら){ Temp=偽 Continue(続行)へ行け。 } } Continue(続行): If (Temp){ (P、U)が、成功的1対1の、ontoマッピングであるなら、 真を返せ。 } } この地点まで達した場合、1対1の、ontoマッピングはない。 偽を返せ。 }でなければ{ 偽を返せ。 }
The pseudo code below implements a conforming algorithm. All named nodes are net nodes. The gate node is a driver for the net node. The list “U” mentioned in the if statement is a driver list of the net N, for example, a driver list of the gate G that drives the net node N. (If M is a leaf node) {Return true. {If not (if N is a leaf node) {Return false. } (If the driver type of M is the same as the driver type of N) {(for all permutations P of the driver list of the driver of M) {Temp = true; Make it a driver list. (In this order for every element p in P and every element u in U) {(if (p, U) match is false) {Temp = False Continue. } Continue: If (Temp) {(P, U) is a successful one-to-one, onto mapping, return true. }} When this point is reached, there is no one-to-one onto mapping. Return false. If not {return false. }

【外2】 [Outside 2]

【0042】 この形式では、アルゴリスムは、技術ライブラリーセルの扇形インが増加する
につれて、次第に高価になる。複雑性は指数関数的である。このアルゴリスムは
スピードアップが可能であるが、現在の、大抵の技術ライブラリーにたいしては
十分に高速である。
In this format, the algorithm becomes increasingly expensive as the fan-in of the technology library cell increases. The complexity is exponential. This algorithm can be sped up, but is fast enough for most current technology libraries.

【0043】 この適合行程によって、回路のネットノードから、パターンツリーのルートノ
ードにたいして1対1マッピングが生成される。このようなマッピング候補は、
ネットノードを引き数とし、一組のパターンツリーを返す関数である。回路の導
入は、一組のネットノードとなるが、そのために、前記候補組の内の一員が選ば
れる。この選ばれたネットノードの組は、通常、ネットノードの全体組よりも小
さい。なぜなら、いくつかのネットノードは、内部ネットノードを持つパターン
の内側に「埋められる」からである。
This matching step creates a one-to-one mapping from the net node of the circuit to the root node of the pattern tree. Such mapping candidates are
A function that takes a net node as an argument and returns a set of pattern trees. The introduction of the circuit results in a set of net nodes, for which one member of the candidate set is selected. This selected set of netnodes is usually smaller than the overall set of netnodes. This is because some net nodes are "filled" inside a pattern with internal net nodes.

【0044】 図10は、右に回路ツリー1002を示すが、この回路ツリーの全ての部分と
適合するのに必要とされるのは、左の、たった2個のパターンツリー1004と
1006だけである。1個の、回路ツリーネットノードにたいする、パターンツ
リーの可能な適合を、破線で示す。従って、全体回路は、もしも6個の適合から
成る適当なサブセットが選ばれるならば、僅か4個のゲートで「カバー」するこ
とが可能である。言いかえれば、この回路ツリーは、4個の構成ゲートタイプに
分解することが可能である。図示の6個の適合から成るサブセットは、冗長なま
たは不充分なカバーリングを生成する可能性がある。解決すべき問題は、遅延や
冗長を最小にし、かつ、カバーができる適合サブセットを選択することである。
FIG. 10 shows a circuit tree 1002 on the right, but only two pattern trees 1004 and 1006 on the left are needed to fit all parts of this circuit tree. . The possible fits of the pattern tree to one circuit tree net node are indicated by dashed lines. Thus, the whole circuit can be "covered" with only 4 gates if a suitable subset of 6 fits is chosen. In other words, this circuit tree can be decomposed into four constituent gate types. The illustrated subset of 6 fits may produce redundant or inadequate covering. The problem to be solved is to choose a matching subset that minimizes delay and redundancy and that can be covered.

【0045】 図11は、本発明のカバリング選択法実施態様を表わし、本明細書では一般参
照番号1100と呼ばれる。行程1102で、回路は、ツリーに区分される。行
程1104で、それらツリーは、立体位置仕分けアルゴリスムによって順序づけ
られる。深さ順グラフ横断アルゴリスムを用いることも可能である。順序付けの
規則にはこうある―ツリー”T”は、その葉(リーフ)が、ツリー”T”によっ
て駆動される、全てのツリーに先行し、かつ、ツリー”T”のいずれかの葉”L
”を駆動する全てのツリーに追随する。このようにして順序付けされたツリーリ
ストは"0"と呼ばれる。
FIG. 11 depicts a covering selection method embodiment of the present invention, referred to herein by the general reference numeral 1100. At step 1102, the circuit is partitioned into trees. At step 1104, the trees are ordered by the stereolocation algorithm. It is also possible to use a depth-order graph traversal algorithm. The ordering rule is: a tree "T" precedes every tree whose leaves are driven by the tree "T" and any leaf "L" of the tree "T".
Follows all trees that drive ". The tree list thus ordered is called" 0 ".

【0046】 行程1106で、順序付け直線リストにおいて前進掃引を実行する一方で、技
術ライブラリー要素と適合する複数のネットノードの各々について、一組のパレ
ート至適負荷/到着曲線を計算する。行程1108では、順序付け直線リストに
おいて後退掃引を実行する一方で、ネットノードの各々と容量性負荷について、
一組のパレート至適負荷/到着曲線を用い、技術ライブラリー要素の内、最短の
信号到達時間を持つ最善要素を選択する。ゲート入力に対応するネットノードの
みを考慮の対象とし、容量性負荷があれば、それらは必ずあらかじめ指定する。
At step 1106, a set of Pareto optimal load / arrival curves are calculated for each of the plurality of net nodes that match the technology library element while performing a forward sweep on the ordered linear list. At step 1108, a backward sweep is performed on the ordered linear list, while for each of the net nodes and the capacitive load,
A set of Pareto optimal load / arrival curves are used to select the best of the technology library elements with the shortest signal arrival time. Only net nodes corresponding to gate inputs are taken into consideration, and if they have a capacitive load, they must be specified in advance.

【0047】 回路と順序リストを表わす、そのようなツリー"T"を、図12に示す。"0"と
される第1ツリー1201は、任意に"A"と表示した。他のツリー1202−1
209は、"B"から"J"にて表示した。前記規則を満足する、ツリーの立体的順
序付けは、A、H、G、J、B、C、F、E、Dとなる。ツリーA、JおよびH
は、インプット境界にあるから、他のツリーは、ツリーA、JまたはHのいずれ
をも駆動できない。従って、前記規則に基づき、ツリーAを、順序リスト"0"の
頭に置くのは許される。ツリーA、H、G、J、B、C、F、E、Dのこの順序
づけによって、各ツリーが、まだ評価されないインプットツリーを持つツリーが
ないようなやり方で、順番に、評価されることが可能となる。
Such a tree "T", representing circuits and ordered lists, is shown in FIG. The first tree 1201 set to “0” is arbitrarily displayed as “A”. Another tree 1202-1
209 is displayed from "B" to "J". The three-dimensional ordering of the tree that satisfies the above rules is A, H, G, J, B, C, F, E, D. Trees A, J and H
Is on an input boundary, no other tree can drive any of the trees A, J, or H. Therefore, based on the above rules, it is permissible to place tree A at the beginning of the ordered list "0". This ordering of trees A, H, G, J, B, C, F, E, D allows each tree to be evaluated in turn, in such a way that no tree has an input tree that has not yet been evaluated. It will be possible.

【0048】 インプット境界において、ツリーAのリーフにたいする信号到着時間は想定可
能である。その時間は、回路の併合部分の一次入力を表わすから、信号到着時間
は、回路環境やユーザー条件から入手することが可能である。ツリーAの各リー
フLは、候補適合を持たない。負荷/遅延曲線を、ツリーAの各リーフに付属さ
せることも可能である。この負荷/遅延曲線は、Lが表わす一次インプットの想
定ドライバーに関連する、いずれの負荷/遅延曲線であってもよい。
At the input boundaries, the signal arrival times for the leaves of tree A are imaginable. Since the time represents the primary input of the merged portion of the circuit, the signal arrival time can be obtained from the circuit environment and user requirements. Each leaf L of tree A has no candidate match. It is also possible to attach a load / delay curve to each leaf of tree A. This load / delay curve may be any load / delay curve associated with the assumed driver of the primary input represented by L.

【0049】 ツリーAのルートは、アウトプットネットである。技術ライブラリー由来の少
なくとも一つの候補が適合しなければならない。でないと、行程は停止しなけれ
ばならない。ツリーAのルートについて、例えば、下記のような再帰行程を含む
アルゴリスムを用いて、集合負荷/遅延曲線を計算することが可能である。 候補適合セットCを持つネットノードNが与えられたとせよ。 Nの集合負荷/遅延を初期化せよ。 (Cの各要素cについて) (cの各リーフノードXについて) YをXに対応するTのネットノードとせよ。 Yにおける集合負荷/遅延曲線を再帰的に計算せよ。 Xに関連する負荷を、ライブラリー中に求め、 かつ、Xにおける信号到着時間を、 Xにおける負荷と、負荷/遅延曲線に基づいて計算せよ。 } cの各リーフにおける到着時間が既知となった。 Nにおける到着時間を、負荷の関数として、 かつ、cの表わすライブラリー要素の電気的特性を、計算せよ。 計算された曲線を、Nの集合不可/到着曲線に加えよ。 }
The root of the tree A is an output net. At least one candidate from the technology library must be matched. Otherwise, the process must stop. For the root of tree A, it is possible to calculate the collective load / delay curve using, for example, an algorithm that includes the following recursive process. Given a net node N with a candidate matching set C. Initialize N collective loads / delays. (For each element c of C) (For each leaf node X of c) Let Y be a net node of T corresponding to X. Compute the aggregate load / delay curve in Y recursively. Find the load associated with X in the library and calculate the signal arrival time at X based on the load at X and the load / delay curve. } The arrival time at each leaf of c is known. Calculate the arrival time at N as a function of load and the electrical properties of the library element represented by c. Add the calculated curve to the N non-settable / arrival curves. }

【外3】 [Outside 3]

【0050】 結局、このアルゴリスムは、Nの適合候補を走査し、各候補"c"について、"
c"が選ばれるであろうという仮定の下に、"c"のインプットにおける到着時間
を計算する。次ぎに、"c"の既知の特性から、Nにおける負荷/到着曲線を、従
って、"c"のインプットにおける信号到着時間を計算する。Nにたいする可能な
適合を持つセルのそれぞれを表わすように、負荷/到着曲線の組が生成される。
Eventually, this algorithm scans N matching candidates, and for each candidate “c”,
Compute the arrival time at the input of "c" under the assumption that "c" will be chosen. Then, from the known property of "c", the load / arrival curve at N, and thus "c" Calculate the signal arrival time at the input of ". A load / arrival curve pair is generated to represent each of the cells with possible fits to N.

【0051】 この集合負荷/遅延曲線表示は、効率的なものとすることが可能である。いず
れの負荷にたいしても、ある特定のセル"c"にとって、唯一の至適遅延がある。
その負荷にたいしては、"c"の他のいずれの成員も、せいぜい同じ到着時間に適
合させることができるだけである。従って、Nにおける負荷/到着曲線は、好ま
しくは、負荷を、"c"の最適成員にマップする関数である。この関数は、集合負
荷/遅延曲線の、断片的最小値を取ることによって生成が可能である。
This aggregate load / delay curve display can be efficient. There is only one optimal delay for any particular cell "c" for either load.
For that load, any other member of "c" can at best match the same arrival time. Therefore, the load / arrival curve at N is preferably a function that maps the load to the optimal member of "c". This function can be generated by taking a fractional minimum of the aggregate load / delay curve.

【0052】 ある特定の容量負荷という観点から、最適ゲート選択の実行が必要である。例
えば、ゲートG2が最善である負荷範囲は、ゼロ負荷から破断点までである。最
善は、最短信号到達時間(最小遅延)を有すると定義される。ゲートG1が最善
な負荷範囲は、破断点から無限までである。容量負荷が与えられているならば、
Nにおける集合曲線を用いて、到着時間と、Nにマップされる最善ゲートの両方
を見つけることが可能である。
From the point of view of a certain capacitive load, it is necessary to carry out an optimal gate selection. For example, the load range where gate G2 is best is from zero load to break. Best is defined as having the shortest signal arrival time (minimum delay). The best load range for the gate G1 is from the break point to infinity. Given a capacitive load,
With the set curve in N, it is possible to find both the arrival time and the best gate that maps to N.

【0053】 ツリーの順序リストからスタートした場合、考慮すべき最初のツリーは、一次
入力によってのみ駆動されるものである。その後のツリーはいずれも、一次入力
によって駆動されるか、または、既に処理されたツリーによって駆動されるかの
いずれかである。このようにして、順番に考慮される全てのツリーTは、一次入
力か、前に考慮されたツリーか、そのいずれかによってのみ駆動されることが保
証される。ツリーTのインプットにおける全てのドライバーは、ツリーTが考慮
される時点において既知のパレート最適負荷/到着曲線を持つことになる。パレ
ート最適負荷/到着曲線は、回路の一次出力のそれぞれについて計算される。
Starting from an ordered list of trees, the first tree to consider is the one driven only by the primary input. All subsequent trees are either driven by the primary input or by the already processed tree. In this way, it is ensured that all trees T considered in turn are driven only by the primary input and / or the previously considered trees. All drivers at the inputs of tree T will have a known Pareto optimal load / arrival curve at the time tree T is considered. A Pareto optimal load / arrival curve is calculated for each primary output of the circuit.

【0054】 最終行程は、各出力−Oについて負荷を選択する。最初、その負荷は、それが
、出力−Oにたいする集合負荷/到着曲線の範囲内に入る限り、任意に選択する
ことが可能である。出力−Oにおける集合曲線は、到着時間と最適ゲートGの両
方をマップし、出力−Oを駆動する。負荷を設定することは、出力−Oを駆動す
るのに、どのライブラリーゲート−Gを選択すべきかを宣告することになる。
The final step selects the load for each output-O. Initially, the load can be arbitrarily chosen as long as it falls within the collective load / arrival curve for output-O. The set curve at output-O maps both the arrival time and the optimal gate G, driving output-O. Setting the load will declare which library gate-G should be selected to drive the output-O.

【0055】 そのルートが出力−Oであるツリーは、ライブラリーゲート−Gから始めて内
部を動き回ることが可能である。入力容量は既知である。なぜなら、ライブラリ
ー−Gは、技術ライブラリーにおいて既知の要素であるから。これは、その入力
の各々を駆動するのに最適なゲートに関する簡単な探索を可能にする。ツリー−
Tが完全にカバーされるまで、これは繰り返される。
A tree whose root is output-O can move around inside starting from library gate-G. The input capacitance is known. Library-G is a known element in the technology library. This allows a simple search for the optimal gate to drive each of its inputs. Tree
This is repeated until T is completely covered.

【0056】 このカバー行程を、ツリーの順序リストにたいして逆順に適用する場合、その
駆動するツリーが全て既にカバーされているのでない限り、いかなるツリーも考
慮されない。そのツリーのルートゲートへの負荷は考慮される。このカバー行程
は、全てのツリーがカバーされるまで進行する。このようにして、技術マッピン
グが終了する。
When this cover step is applied in reverse order to an ordered list of trees, no trees are considered unless all the driving trees have already been covered. The load on the root gate of the tree is taken into account. This cover process proceeds until all trees are covered. In this way, the technical mapping is completed.

【0057】 要約すると、選択行程は、ツリーの順序リストを掃引する。最初は前方に向か
って、次ぎは後方に向かって。前方通過の際、ライブラリー要素に適合する各ネ
ットノードについて、一組のパレート最適負荷/到着曲線が計算される。後方通
過では、負荷/到着曲線と負荷値を用いて、考慮される各ノードを駆動するのに
最善のゲートを選択する。ゲート入力に対応するノードのみが考慮される。この
ため、負荷は常に既知であり、従ってこの行程も終了が可能である。
In summary, the selection process sweeps an ordered list of trees. First towards the front, then backwards. During the forward pass, a set of Pareto optimal load / arrival curves are calculated for each net node that fits the library element. In the backward pass, the load / arrival curve and the load value are used to select the best gate to drive each node considered. Only the node corresponding to the gate input is considered. For this reason, the load is always known and therefore this process can also be completed.

【0058】 理解と実行を助けることを可能とする、背景ソースがいくつかある。適合ツリ
ーと動的プログラミングを用いる基本概念が、Keutzer,Technol ogy Binding And Local Optimization B y DAG Matching , Proceedings of the 2
4th Design Automation Conference,IEE
E,1987,341ページに詳細に記述されている。この論文は、適合ツリー
の使用と、選択問題における面積最適化処方をカバーしている。この方法は、面
積を最適化するが、負荷/到着曲線は用いない。さらに、これは、2回通過では
なく、前方通過しか使わない。遅延/面積曲線を用いるツリー適合の、また別の
洗練された方法がChaudhary,A Near Optimal Mat ching Algorithm for Technology Mappi ng Minimizing Area Under Delay Const rains ,29th Design Automation Confere
nce,IEEE,1994に記載される。しかしながら、この研究で、Ped
ramは、面積/遅延曲線を用いているので、異なる負荷の作用を計算すること
ができなかった。これは、極めて重要な違いである。
There are several background sources that can help understand and implement. The basic concept of using the fit tree and dynamic programming, Keutzer, Technol ogy Binding And Local Optimization B y DAG Matching, Proceedings of the 2
4th Design Automation Conference, IEEE
E, 1987, p. 341. This paper covers the use of fit trees and area-optimized prescriptions in the selection problem. This method optimizes area but does not use load / arrival curves. Moreover, it uses only forward passes, not double passes. Delay / area curve using the tree adaptation, other sophisticated methods also are Chaudhary, A Near Optimal Mat ching Algorithm for Technology Mappi ng Minimizing Area Under Delay Const rains, 29th Design Automation Confere
No. nce, IEEE, 1994. However, in this study, Ped
Since ram uses an area / delay curve, it was not possible to calculate the effect of different loads. This is a very important difference.

【0059】 図13は、どのようにして制御信号が、最重要タイミング経路を支配するかを
示す実施例である。制御信号は破線で示され、最重要経路は、太実線で示される
。回路1300は、司令FSM1302を含む。最重要信号伝達タイミング経路
は、一組の入力ポート1304と、一組の出力ポート1306の間に存在する。
回路1300は、司令FSM1302に制御される、いくつかの多重化器130
8−1312、いくつかの加算器1314−1316、および、いくつかのラッ
チ1318−1321を含む。状態信号1322が、司令FSM1302によっ
て入力される。多重化器1308−1312とラッチ1318−1321は、司
令FSM1302によって出力される一組の制御信号1324−1333に依存
する。従って、入力から出力までの信号の波及状態は、何時制御信号1324−
1333が発せられ、定着するかに、極めて大きく依存する。
FIG. 13 is an example showing how control signals dominate the most important timing paths. The control signals are shown by dashed lines and the most important paths are shown by thick solid lines. Circuit 1300 includes command FSM 1302. The most important signaling timing path exists between a set of input ports 1304 and a set of output ports 1306.
Circuit 1300 includes a number of multiplexers 130 controlled by the command FSM 1302.
8-1312, some adders 1314-1316, and some latches 1318-1321. The status signal 1322 is input by the command FSM 1302. The multiplexers 1308-1312 and the latches 1318-1321 rely on a set of control signals 1324-1333 output by the command FSM 1302. Therefore, the control signal 1324-
Very much depends on whether 1333 is emitted and fixed.

【0060】 制御フローグラフは、ソースコードHDLで表わされる制御フローを記述する
、方向性グラフである。一つのHDL記述から、一意の制御グラフにたいして、
直接的マッピングが存在する。そのような一意の制御フローグラフから、例えば
、「バブルグラフ」表示で表わされた有限状態装置にたいしても直接的マッピン
グが存在する。直接マッピングはさらに、一意の制御フローグラフから、「ワン
・ホット」FSM回路にたいして形成することも可能である。従って、司令FS
Mは、その後に構築される、いずれのスケジュールにも無関係に、2行程で生成
が可能である。大事なことは、司令FSMのタイミングは、スケジューリング時
に確定することが可能である。
The control flow graph is a directional graph that describes the control flow represented by the source code HDL. From one HDL description to a unique control graph,
There is a direct mapping. There is a direct mapping from such a unique control flow graph to the finite state machine represented, for example, in a "bubble graph" representation. Direct mapping can also be formed from a unique control flow graph to a "one hot" FSM circuit. Therefore, Commander FS
M can be generated in two strokes, regardless of any schedule subsequently built. Importantly, the timing of command FSM can be fixed at the time of scheduling.

【0061】 一般に、制御グラフ−Gは、方向性アーク”E”によって接続されるノード”
V”を含む。図14において、制御グラフ−Gの一つのノードVは、"rese
t"と表示される。このようなノードは、制御フローグラフ−Gの起点を表わす
。定義により、"reset"ノードは、イン-アークを持たず、ただ一つのアウ
ト-アーク(外に向かうアーク)を持つだけである。制御フローグラフ−Gにお
ける、他のノードについては、いずれの数であっても、状態ノードと表示されて
よいし、または、表示無しとしてよい。これらのノードは、少なくとも一つのイ
ン-アーク(内に向かうアーク)と、少なくとも一つのアウト-アークを持たなけ
ればならない。
In general, the control graph-G is a node “connected by a directional arc“ E ””.
V ”is included. In FIG. 14, one node V of the control graph-G is“ rese
Such a node represents the origin of the control flow graph-G. By definition, a "reset" node has no in-arc and only one out-arc (outgoing arc). The other nodes in the control flow graph-G may be displayed as state nodes or may not be displayed. It must have one in-arc and at least one out-arc.

【0062】 図15に示すように、アークは、状態および動作による表示が可能である。こ
れらは、解析ツリー、または、解析ツリーのリストであり、FSMの状態および
動作と近似する。状態表示は、例えば、"if"で、制御分枝がどちらの道に行く
かを明らかにする。動作表示は、制御フローが、動作で表示されるアークにそっ
て移動する場合、生ずる操作を記述する。
As shown in FIG. 15, the arc can be displayed by the state and the operation. These are parse trees or lists of parse trees that approximate the state and behavior of the FSM. The status display, for example "if", reveals which way the control branch goes. The motion display describes the operations that occur when the control flow moves along the arc displayed by the motion.

【0063】 "Join nodes"は、1個を越えるイン-アークを持つノード、例えば
、図15の"if"ノードである。"Fork nodes"は、1個を越えるアウ
ト-アークを持つノード、例えば、図15の"fi"ノードである。一般のプログ
ラミング構築体に一致する、その他の名前や表示、例えば、"begin," "
loop" "end"等を用いることも可能である。
“Join nodes” are nodes having more than one in-arc, for example, the “if” node in FIG. "Fork nodes" are nodes having more than one out-arc, for example, "fi" node in FIG. Other names and displays that match common programming constructs, such as "begin,""
It is also possible to use "loop""end" or the like.

【0064】 制御フローグラフ−Gは、典型的には、解析ツリーの段階的減少において分解
されたHDLテキストから構築される。特定の解析ツリー構造が認識され、次ぎ
に、Gの対応サブグラフが構築される。本明細書では、Verilogが、各種
実例HDL・Verilog構築名に使われているけれども、マッピングは、V
HDLや、その他の、必須の、シミュレーション準拠HDL受容辺縁事象にたい
して実施することも可能である。
Control Flow Graph-G is typically constructed from HDL text decomposed in a gradual reduction of the parse tree. The particular parse tree structure is recognized and then the corresponding subgraph of G is built. In this specification, Verilog is used in various example HDL / Verilog construction names, but the mapping is V
It can also be implemented for HDL and other mandatory simulation-based HDL receptive edge events.

【0065】 ここで図14を参照すると、解析ツリーP1400から、制御フローグラフ−
G1402への、単一行程の移行は、リセットノード1406とジョインノード
1408、および、小さな自己還元ループ1410を持つ単純グラフ1404か
ら始まる。Verilogでは、行程は、"always"キーボードを用いて創
成され、その後、単純または複合"statement"が続く。"statem
ent"という言葉は、そのノードの動作または操作として、自己ループ141
0に一時的に注記される。分枝がないところでは、"condition"表示も
ない。
Referring now to FIG. 14, from the parse tree P1400, control flow graph-
The single-stroke transition to G1402 begins with a simple graph 1404 with a reset node 1406 and a join node 1408, and a small self-reducing loop 1410. In Verilog, a journey is created using the "always" keyboard, followed by a simple or compound "statement". "statem
The word "ent" refers to the self-loop 141 as the operation or operation of the node.
Temporarily noted at 0. Where there is no branch, there is no "condition" display.

【0066】 単純グラフ−G1404は、アークに注記された宣言に行程を適用することに
よって、さらに洗練された制御フローグラフ−G1402に変換が可能である。
例えば、一つの宣言を持つアークは、2個以上のアークと1個以上のノードに交
換される。次ぎに、この新しいアークは、さらに簡単な宣言、および/または、
状態によって装飾される。新しいノードも同様に表示される。この行程が、分解
可能な宣言が残らなくなるまで、再帰的に続く。新しいアークに表示される宣言
と状態は、宣言の解析ツリーの、特定サブツリーとなる。
The Simple Graph-G 1404 can be transformed into a more sophisticated Control Flow Graph-G 1402 by applying a stroke to the declarations noted in the arc.
For example, an arc with one declaration is exchanged for two or more arcs and one or more nodes. Next, this new arc is a simpler declaration and / or
Decorated by the state. New nodes are displayed as well. This process continues recursively until there are no more decomposable declarations left. The declarations and states that appear in the new arc will be a specific subtree of the declaration's parse tree.

【0067】 例えば、Verilogにおける連続複文は、Backus−Naur形(B
NF)語法定義を持つ。 連続文::=始め<宣言文>終わり ||始め-表示:<宣言文>終わり
For example, a continuous compound sentence in Verilog is a Backus-Naur type (B
NF) Has a wording definition. Continuous sentence :: = start <declaration statement> end || start-display: <declaration statement> end

【外4】 [Outside 4]

【0068】 従って、典型的なVerilog行程は、図14の宣言文1400にあるよう
に"statement1"と"statement2"で表わされることがある。
Therefore, a typical Verilog process may be represented by “statement 1” and “statement 2” as in the declaration statement 1400 of FIG.

【0069】 図14において、Verilogの連続ブロック"begin...end"宣
言文は、ソースノード−Sとシンクノード−Tの間の、制御フローアーク−Aに
変換することが可能である。アーク−Aは、シンクノード−Tから外され、連続
ブロック解析ツリー−Pは、アーク−A1412から取り除かれる。二つの、新
しいノード1414と1416"begin"と"end"が構築される。アーク−
A1412の矢印の先端は、"begin"ノード1414に接続される。新規ア
ーク−B1418が構築され、その矢羽根端が、"begin"ノード1414に
接続され、かつ、その矢の先端が、"end"ノード1416に接続される。新規
アーク−C1420が構築され、その矢羽根端が、"end"ノード1416に接
続され、その矢の先端が、"loop"ノード1422に接続される。連続ブロッ
ク(例えば、Pのサブツリー)の宣言文は全て、解析ツリー1424の順序リス
トとして、アーク−B1418に付着される。
In FIG. 14, a Verilog continuous block “begin ... end” declaration statement can be converted into a control flow arc-A between the source node-S and the sink node-T. Arc-A is removed from SyncNode-T and continuous block parse tree-P is removed from Arc-A 1412. Two new nodes 1414 and 1416 "begin" and "end" are built. Arc
The tip of the arrow A1412 is connected to the "begin" node 1414. A new Arc-B 1418 is constructed with its arrowhead end connected to the "begin" node 1414 and its arrowhead connected to the "end" node 1416. A new Arc-C 1420 is built with its arrowhead end connected to the "end" node 1416 and its arrowhead connected to the "loop" node 1422. All declarations of contiguous blocks (eg, P subtrees) are attached to Arc-B 1418 as an ordered list of parse trees 1424.

【0070】 表示されるブロックについては、ブロック名を、その名前を、"end"ノード
にマップするテーブルの中にセーブしなければならない。このノードは、Ver
ilogの"disable"宣言文の、ジャンプ目的地となることもある。
For the block to be displayed, the block name must be saved in the table that maps the name to the "end" node. This node is Ver
It may be the jump destination of the "disable" declaration statement of ilog.

【0071】 Verilog条件文"if...else"や"case...endcas
e"は、ほぼ同じように処理される。Verilogの"if...else"文
は、キーワード"if"で始まり、その後に、もしもその条件が真であるなら、実
行されるべき発言Eや宣言S1が、さらに、要すればあってもよいキーワード"
else"、および、条件が偽であるなら、実行されるべき宣言S2、が続く。
全てのオプションをつけた"if"宣言と、その制御フローグラフ減少の例を、図
15に示す。
Verilog conditional statements “if ... else” and “case ... endcas”
e "are processed in much the same way. Verilog's" if. . . The "else" statement begins with the keyword "if", after which, if the condition is true, a statement E or a declaration S1 to be executed, and optionally a keyword "
else ", and if the condition is false, the declaration S2 to be executed follows.
An example of "if" declaration with all options and its control flow graph reduction is shown in FIG.

【0072】 "if"宣言文は、フォークノード1506とジョインノード1508、および
、それらを結ぶアーク1510と1512、および、結合を、Tに接続する新し
いアーク1514を導入することによって、除去される。条件"cond"とその
ブール否定"!cond"が、条件アーク1510と1512に注記される。これ
らアークは、各分枝が通過される条件を指定する。真または偽の分枝のいずれと
も関連しない宣言文はないと考えられる。従って、このアークには何も注記され
ない。真(S1)の分枝と偽(S2)の分枝の宣言は、それぞれ、真のアーク1
510と偽のアーク1512に注記される。場合(case)宣言も同様に処理
される。違いは、条件はデフォールトを含むことがあること、また、分枝の数が
、2よりも大きいことがあること、である。デフォールトは、他の全ての条件の
ロジック合計のロジック否定である。
The “if” declaration is removed by introducing a fork node 1506 and join node 1508, and arcs 1510 and 1512 connecting them, and a new arc 1514 connecting the join to T. The condition "cond" and its boolean negation "! Cond" are noted in the condition arcs 1510 and 1512. These arcs specify the conditions under which each branch is passed. It is considered that there is no declaration statement that is not associated with either true or false branches. Therefore, nothing is noted for this arc. The declarations of true (S1) branch and false (S2) branch are true arc 1 respectively.
Note 510 and false arc 1512. Case declarations are processed similarly. The difference is that the condition may include a default and the number of branches may be greater than two. The default is the logical negation of the logic sum of all other conditions.

【0073】 Verilogにおけるループは、いくつかの形の内のいずれを取ってもよい
。それを、対応する制御フローグラフ減少と一緒に、図16A−16Dに示す。
ループを適正に動作させるためには、さらに新たに解析ツリーを構築する必要が
あるかも知れない。繰り返しループでは、新たな変数、すなわち、繰り返しカウ
ンターが導入される。ループに導入する前に、その値を初期化しなければならな
い、また、それは、ループが実行する度毎に繰り上げられる。"repeat.
..while"または"for...loop"では、条件を、"lter"と表
示されるノードの、2個のアウト-アークに付着させなければならない。
Loops in Verilog may take any of several forms. It is shown in FIGS. 16A-16D, along with the corresponding control flow graph reduction.
It may be necessary to build a new parse tree for the loop to work properly. In the iteration loop, a new variable, the iteration counter, is introduced. Its value must be initialized before it is introduced into the loop, and it is incremented each time the loop executes. "repeat.
. . while "or" for. . . In "loop", the condition must be attached to the two out-arcs of the node labeled "lter".

【0074】 forever(無限)ループへの減少操作は、イン-アークを持たないTを
設けることになる。これは、その制御フローグラフは、永久ループの減少操作後
、語法的に不適切となることを意味する。しかしながら、これは、リセットノー
ドから前方横断によって到達不能な、全てのアーク・ノードを除去することによ
って救済可能な一時的状態である。このような刈り込み救済措置は、制御フロー
グラフが完全に減少された後に、例えば、HDLテキストの制御フロー構築体の
全てが減少された後に、実行される。
The reduce operation to the forever loop will provide a T with no in-arc. This means that the control flow graph becomes linguistically incorrect after the reduction operation of the endless loop. However, this is a temporary condition that can be salvaged by removing all arc nodes unreachable from the reset node by a forward traverse. Such pruning rescue measures are performed after the control flow graph has been completely reduced, eg after all of the control flow constructs of the HDL text have been reduced.

【0075】 刈り込み措置を減少操作終了時に行わなければならない理由は、Verilo
gのdisable(無効)宣言は、永久ループへの出口を強制的に設けること
が可能だからである。このような出口は(Verilogでは)、Tのある後続
ノードへ行く。Verilogのdisableは、結局、begin-end
表示ブロックのエンドノードへの跳躍である。もしもdisableが、ノード
SからノードTへ向かうアークAにたいして注記されているなら、このdisa
bleは、Aの接続をTから外すことによって、除去される。無効とされた(d
isabled)ブロックに対応するエンドノードEが、ブロック名を、対応エ
ンドノードにマップするテーブルにおいて求められる。このテーブルは、表示ブ
ロックの減少操作時に構築される。Aの矢の先端がEに接続される。"(pos
edge clock)"という形の事象制御宣言文は、単一ノードを付加し、
かつ、それを状態と表示することによって、減少される。制御フローにたいして
直接作用を持たない宣言文は除去されず、それぞれのアークに注記される。
The reason why the pruning measure must be performed at the end of the reduction operation is the Verilo
This is because the disable declaration of g can force an exit to an endless loop. Such an exit (in Verilog) goes to a successor node with T. Verilog's disable is, after all, begin-end
It is a jump of the display block to the end node. If disable is noted for arc A going from node S to node T, then this disa
The ble is removed by disconnecting A from T. Invalidated (d
The end node E corresponding to the (enabled) block is determined in the table that maps the block name to the corresponding end node. This table is built during the reduction operation of the display block. The tip of the arrow of A is connected to E. "(Pos
An event control declaration of the form "edge clock)" adds a single node,
And it is reduced by displaying it as a state. Declarative statements that have no direct effect on the control flow are not removed and are noted for each arc.

【0076】 高レベル合成に適当な、簡単なVerilogHDLテキスト1702の例を
、図17の左に示す。そのテキストに対応する、完全減少制御フローグラフ17
04を右に示す。一旦グラフ1704が完全に構築されたならば、グラフの意味
を変えることなく後続ステップの効率の向上を可能とするために、若干の基本的
刈り込みが必要になる。リセットノードから到達不能なノードやアークはいずれ
のものであっても除去が可能である。分枝から派生し、さらなるグラフ構造を持
たないアークの組も、まとめて取り潰しが可能であり、また、条件解析ツリーは
、制御フローグラフに再度注記し直すことが可能である。グラフ構造は、ループ
、状態、および、無効を含む。別態様として、これらのものが派生する条件文を
、余剰分枝の創成以外に、制御フローグラフにたいしては何の作用も及ぼさない
ものとして、検出することが可能である。そのような場合、減少操作は単純には
適用されず、条件文は、そのまま注記される。その条件が決して真になることは
あり得ない、死んだ分枝、例えば、フォークノードのアウト-アークは、いずれ
のものであっても除去が可能である。単純ノードは除去が可能であり、その複数
のイン-アークおよびアウト-アークは合流が可能である。例えば、状態とマーク
されない、1個のイン-アークと1個のアウト-アークを持つノードのようである
An example of a simple Verilog HDL text 1702 suitable for high level compositing is shown on the left of FIG. Full reduction control flow graph 17 corresponding to the text
04 is shown on the right. Once the graph 1704 is fully constructed, some basic pruning is needed to allow for increased efficiency of subsequent steps without changing the meaning of the graph. Any node or arc unreachable from the reset node can be removed. A set of arcs that are derived from branches and have no further graph structure can also be collapsed together, and the conditional parse tree can be re-annotated in the control flow graph. The graph structure includes loops, states, and invalidations. Alternatively, it is possible to detect the conditional statements from which they are derived as having no effect on the control flow graph other than the creation of the surplus branches. In such cases, the decrement operation is simply not applied and the conditional statement is noted as is. Dead branches, such as out-arcs of fork nodes, whose conditions can never be true, can be eliminated. Simple nodes can be removed, and their multiple in-arcs and out-arcs can merge. For example, a node with one in-arc and one out-arc that is not marked as a state.

【0077】 ワン・ホットFSMは、その状態を、単項コードでコードされる。全ての状態
は、1ビットを除く全てのビット組を偽とする2進数で表わされる。ワン・ホッ
トコードの例として、0001、0010、0100、1000が挙げられる。
一つを除く全てのビットがゼロであり、単一"hot bit"(「ホットビット
」)は1である。このようなコードは、ワン・ホット性を失うことなく反転が可
能である。例えば、1110、1101、1011、0111である。
The One-Hot FSM has its state coded with a unary code. All states are represented by binary numbers with all bit sets except one being false. Examples of one-hot codes include 0001, 0010, 0100, 1000.
All but one are zero, and the single "hot bit"("hotbit") is one. Such a code can be inverted without losing the one-hot property. For example, 1110, 1101, 1011, and 0111.

【0078】 ワン・ホットFSMは、制御フローグラフの各状態ノードは、1対1的に、単
一状態フリップフロップにマップすることが可能である、ということに注目して
、抽出される。ワン・ホットFSMは、制御フローグラフに見られる状態ノード
と同じ数のフリップフロップによって構築される。各フリップフロップ"F"が、
一つの状態ノードに割り当てられる。Fの出力が1の場合、対応状態にあると予
想する。
The one-hot FSM is extracted by noting that each state node of the control flow graph can be mapped one-to-one into a single-state flip-flop. The one-hot FSM is built with as many flip-flops as there are state nodes found in the control flow graph. Each flip-flop "F"
Assigned to one state node. If the output of F is 1, it is expected to be in the corresponding state.

【0079】 制御フローグラフのアークを、FSMの出力ポートにマップし、しかも、それ
が1対1マッピングである、テーブルMAPが構築される。制御フローグラフに
見られるアークと同じ数の出力ポートがFSMに構築される。テーブルMAPは
、アークを、FSMの出力ポートにマップすることによって機能する。位置MA
P(A)は、制御フローグラフアークAを、FSMの出力ピンにマップする。逆
関数PAMは、FSMの出力ピンを、対応する制御フローグラフアークにマップ
するのに用いられる。機能FLOPは、状態ノードを、フリップフロップにマッ
プする。
A table MAP is constructed that maps the arcs of the control flow graph to the output ports of the FSM, which is a one-to-one mapping. There are as many output ports built into the FSM as there are arcs found in the control flow graph. The table MAP works by mapping arcs to FSM output ports. Position MA
P (A) maps control flow graph arc A to the output pin of the FSM. The inverse function PAM is used to map the output pin of the FSM to the corresponding control flow graph arc. Function FLOP maps state nodes to flip-flops.

【0080】 図18は、機能MAPを構築する行程を例示するのに役立つ。リセットアーク
をFSM1804にマップした後、制御フローグラフ1802が示される。リセ
ットノードのアウト-アークは、それがなければ割り当てられないままだった出
力ピンPに割り当てられる。"reset"と命名される入力ピンが構築され、直
接Pに接続される。MAP(A)からPが設定される。次ぎに、制御フローグラ
フ1802の状態ノード全てが考慮される。各ノードは、一つのイン-アークと
一つのアウト-アークを持つ。例えば、状態ノード”N”における”C”と”D
”である。ノードNは、割り当てされないフリップフロップFに、MAP(C)
は、FのD−ピンに、そして、MAP(D)は、FのQ−ピンに、割り当てられ
る。FLOP(N)は、Fに設定される。これが、全ての状態ノードが割り当て
られるまで繰り返される。こうして、状態ノードの全てのイン-アークとアウト-
アーク、およびリセットがMAPに収められる。
FIG. 18 serves to illustrate the process of building a functional MAP. After mapping the reset arc to the FSM 1804, the control flow graph 1802 is shown. The reset node out-arc is assigned to the output pin P which would otherwise be unassigned. An input pin named "reset" is constructed and connected directly to P. P is set from MAP (A). Next, all state nodes in the control flow graph 1802 are considered. Each node has one in-arc and one out-arc. For example, "C" and "D" in the state node "N"
The node N is assigned to the unallocated flip-flop F by MAP (C).
Is assigned to the D-pin of F and MAP (D) is assigned to the Q-pin of F. FLOP (N) is set to F. This is repeated until all state nodes have been assigned. Thus, all in-arcs and out-of state nodes
Arcs and resets are contained in MAP.

【0081】 次ぎのステップは、状態ノードに入るアークを観察することである。Cをその
ようなアークとしよう。MAP(C)は、状態フリップフロップのD−ピンに接
続される。一次入力と状態フリップフロップによって駆動され、かつ、MAP(
C)を駆動する回路が構築される。下の表のような再帰行程が、このような回路
を構築する。
The next step is to observe the arc entering the state node. Let C be such an arc. MAP (C) is connected to the D-pin of the state flip-flop. Driven by a primary input and a state flip-flop, and
A circuit for driving C) is constructed. The recursive process shown in the table below builds such a circuit.

【0082】[0082]

【外5】 [Outside 5]

【0083】 図19A−19Dは、完全なワン・ホットFSMを、表の行程によって構築可
能とする、各種断片構築体を示す。OR−ゲートとフリップフロップは、その関
連するノードに因んで命名された。AND−ゲートは、その関連するアークに因
んで命名された。分枝アークAとBに関連する状態は、一次入力cond(A)
とcond(B)として取り扱った。全ての分枝条件は、他の場所で計算された
ものと仮定する。
FIGS. 19A-19D show various fragment constructs that allow the construction of a complete one-hot FSM by the process of the table. OR-gates and flip-flops have been named after their associated nodes. The AND-gate was named after its associated arc. The state associated with branch arcs A and B is the primary input cond (A)
And cond (B). All branching conditions are assumed to have been calculated elsewhere.

【0084】 図20は、Verilogテキストサンプル2002を、その対応する制御フ
ローグラフ2004とワン・ホットFSM2006と共に示す。単純、非状態、
非フォーク、非結合、非リセット、ノードによって接続されるアークに関連する
冗長出力は取り潰された。簡単明瞭とするため、いくつかの制御出力も取り除い
た。
FIG. 20 shows a Verilog text sample 2002 with its corresponding control flow graph 2004 and one-hot FSM 2006. Simple, non-state,
Redundant outputs associated with non-forked, non-bonded, non-reset, arcs connected by nodes have been collapsed. Some control outputs have also been removed for clarity.

【0085】 本発明の実施態様を構築するのに役立つと思われる、良い一般的参考書がいく
つか出版されている。例えば、De Micheli, Synthesis and Optimization of Digital Circuits , McGraw-Hill,1994年がある。これは、スケジューリング、
割り当て、および、高レベル、ロジック合成のその他の局面をカバーする。B.
Gregory et al.米国特許第5,661,661号、「レジスタ
ーおよびラッチ想定」。これは、HDLの使用法、および、制御フローグラフと
同様の内部表示をカバーする。D. Knapp and M. Winsle
tt, A Prescritive Format Model for D ata-Path hardware ,IEEE Transactions
on CAD,1992年2月、158−184ページ。これは、制御フローグ
ラフと構造と機能が類似の、データパスと制御ハードウェアの表示を記述する。
この表示は、レジスター予想、スケジューリングや割り当てに使用が可能なもの
で、再現の主要能力の必要サブセットである。これは、ユーザーまたはその他の
代行者が、手動編集によって設計を「破壊」した場合、前記全ての補正に必要な
情報を供給するものである。D. Knapp, Synthesis fro m Partial Structure in Design Method
ologies for VLSI and Computer Archit
ecture, D.A. Edwards編、Elsevier,1989年
がある。これは、本明細書に記載したものと類似の制御フローグラフを構築する
ために使用されるハードウェア記述言語について説明する。これも、レジスター
想定、および、他の構造的、行動的情報の想定に使用される。D. Knapp
and A.C. Parker, A Unified Represen tation for Design Information in Pro
ceedings of CHDL-85, Elsevier(1985年)
は、本明細書で使用される制御フローグラフの早期版について、構造や行動の、
他の再現法、および、設計の物理的レイアウトと一緒に、説明する。
Several good general references have been published that may be helpful in constructing embodiments of the present invention. For example, De Micheli, Synthesis and Optimization of Digital Circuits , McGraw-Hill, 1994. This is the scheduling,
It covers assignments and high-level, other aspects of logic synthesis. B.
Gregory et al. U.S. Pat. No. 5,661,661, "Register and Latch Assumption". This covers HDL usage and internal representation similar to control flow graphs. D. Knapp and M.K. Winsle
tt, A Prescriptive Format Model for Data -Path hardware , IEEE Transactions
on CAD, February 1992, pp. 158-184. It describes a representation of the data path and control hardware that is similar in structure and function to the control flow graph.
This display can be used for register prediction, scheduling and allocation, and is a necessary subset of the key capabilities of reproduction. It provides the information necessary for all the above corrections if the user or other agent "breaks" the design by manual editing. D. Knapp, Synthesis from Partial Structure in Design Method
LOGIES FOR VLSI AND COMPUTER ARCHIT
ecture, D.I. A. Edwards edited by Elsevier, 1989. This describes a hardware description language used to build control flow graphs similar to those described herein. This is also used for register assumptions and other structural and behavioral information assumptions. D. Knapp
and A. C. Parker, A Unified Representation for Design Information in Pro
ceedings of CHDL-85, Elsevier (1985)
Of the structure and behavior of the early version of the control flow graph used here.
It is described along with other reproduction methods and the physical layout of the design.

【0086】 本明細書では、本発明は、好ましい実施態様に関連して説明されたが、当業者
であれば、本明細書に記載されているものの代わりに、他の運用を、本発明の精
神や範囲を逸脱することなく、代置することが可能であることを直ちに認めるで
あろう。従って、本発明は、上述の請求項のみによって限定されるべきものとす
る。
Although the present invention has been described herein with reference to preferred embodiments, those skilled in the art will appreciate that other operations may be carried out in place of those described herein. We will immediately recognize that it is possible to substitute without departing from the spirit and scope. Therefore, the present invention should be limited only by the following claims.

【図面の簡単な説明】[Brief description of drawings]

【図1】 インターネットウェブサイト、および、システム・オン・チップ設計
者のためのEDAオンデマンド解決法を有するウェブサーバーを含む、本発明の
、業者間アプリケーションサービスプロバイダー実施態様の機能的ブロックダイ
グラムである。
FIG. 1 is a functional block diagram of an inter-commercial application service provider implementation of the present invention, including an Internet website and a web server having an EDA on-demand solution for system-on-chip designers. is there.

【図2】 本発明の、電子的設計自動化法実施態様のフローチャート図である。FIG. 2 is a flow chart diagram of an electronic design automation method embodiment of the present invention.

【図3】 本発明の、タイミング分析法実施態様のフローチャート図である。FIG. 3 is a flow chart diagram of a timing analysis method embodiment of the present invention.

【図4】 4A、4Bおよび4Cは、回路から、ロジックツリー、および、簡単
化ツリーへの移行を表わす模式図である。
4A, 4B and 4C are schematic diagrams showing the transition from a circuit to a logic tree and a simplification tree.

【図5】 入力境界に一組の複雑モデルアーク、内部に一組の簡単化モデルアー
ク、さらに出力境界に別の一組の複雑モデルアークを含む設計をあらわす模式図
である。
FIG. 5 is a schematic diagram showing a design including a set of complex model arcs at an input boundary, a set of simplified model arcs inside, and another set of complex model arcs at an output boundary.

【図6】 電子的設計自動化における、一般的グラフ適合問題を示す模式図であ
る。
FIG. 6 is a schematic diagram showing a general graph matching problem in electronic design automation.

【図7】 回路と、対応する、2部分グラフ表示の模式図である。FIG. 7 is a schematic diagram of a circuit and corresponding two-part graph display.

【図8】 ネットワークグラフと、一揃いのツリーに分割する、技術マッピング
における最初のステップの模式図である。
FIG. 8 is a schematic diagram of a network graph and a first step in technology mapping, which is divided into a set of trees.

【図9】 分解された技術ライブラリーを表わす模式図である。FIG. 9 is a schematic diagram showing a decomposed technology library.

【図10】 右に回路ツリーを示し、左に、その回路ツリーの全ての部分に適合
させるのに必要とされる、ただ2個のパターンツリーを示す模式図。
FIG. 10 is a schematic diagram showing a circuit tree on the right and only two pattern trees on the left that are required to fit all parts of the circuit tree.

【図11】 本発明のカバリング選択法実施態様の模式図である。FIG. 11 is a schematic diagram of a covering selection method embodiment of the present invention.

【図12】 回路のツリーへの分割、および、それらのツリーを順序付けて、基
本規則に合致するリストに構成する模式図である。
FIG. 12 is a schematic diagram of dividing a circuit into trees and ordering the trees to form a list that conforms to a basic rule.

【図13】 制御信号が、どのようにして最重要タイミング経路を支配すること
が可能なのかを示す実例の模式図である。
FIG. 13 is a schematic diagram of an example showing how control signals can govern the most important timing paths.

【図14】 ソースノードSとシンクノードTの間で、Verilogの時系列
ブロック"begin...end"が、制御フローグラフのアークAに変換され
るところを示す模式図である。
FIG. 14 is a schematic diagram showing that a Verilog time series block “begin ... End” is converted into an arc A of a control flow graph between a source node S and a sink node T.

【図15】 全てのオプションを含む"if"宣言文と、その制御フローグラフ減
少の実例の模式図である。
FIG. 15 is a schematic diagram of an “if” declaration statement including all options and an example of reducing the control flow graph thereof.

【図16】 16A−16Dは、Verilogにおける各種ループと、その対
応制御フローグラフ減少を表わす模式図である。
16A to 16D are schematic diagrams showing various loops in Verilog and reduction of their corresponding control flow graphs.

【図17】 左に、高レベル合成に好適な、簡単なVerilogHDLテキス
トを、右に、そのテキストに対応する、完全に減少された制御フローグラフを掲
げる模式図である。
FIG. 17 is a schematic diagram with a simple Verilog HDL text suitable for high-level synthesis on the left and a fully reduced control flow graph corresponding to the text on the right.

【図18】 機能的MAPを建設する手順を示す模式図である。FIG. 18 is a schematic diagram showing a procedure for constructing a functional MAP.

【図19】 19A−19Dは、それによって、完全なワン・ホットFSMが、
表の手順によって構築可能となる、各種断片構築を表わす模式図である。
Figures 19A-19D provide a complete one-hot FSM,
It is a schematic diagram showing various fragment constructions that can be constructed by the procedure in the table.

【図20】 Verilogのテキスト見本、その制御フローグラフ、および、
最終的ワン・ホットFSM間の一致を示す模式図である。
FIG. 20: Verilog text sample, its control flow graph, and
It is a schematic diagram which shows agreement between final one-hot FSMs.

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 17/60 302 G06F 17/60 302E 332 332 H01L 21/82 H01L 21/82 C (31)優先権主張番号 60/136,126 (32)優先日 平成11年5月26日(1999.5.26) (33)優先権主張国 米国(US) (31)優先権主張番号 09/574,572 (32)優先日 平成12年5月17日(2000.5.17) (33)優先権主張国 米国(US) (31)優先権主張番号 09/574,693 (32)優先日 平成12年5月17日(2000.5.17) (33)優先権主張国 米国(US) (31)優先権主張番号 09/577,426 (32)優先日 平成12年5月22日(2000.5.22) (33)優先権主張国 米国(US) (31)優先権主張番号 09/579,825 (32)優先日 平成12年5月25日(2000.5.25) (33)優先権主張国 米国(US) (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C U,CZ,DE,DK,EE,ES,FI,GB,GD ,GE,GH,GM,HR,HU,ID,IL,IN, IS,JP,KE,KG,KP,KR,KZ,LC,L K,LR,LS,LT,LU,LV,MD,MG,MK ,MN,MW,MX,NO,NZ,PL,PT,RO, RU,SD,SE,SG,SI,SK,SL,TJ,T M,TR,TT,UA,UG,UZ,VN,YU,ZA ,ZW (72)発明者 デヴィッド ナップ アメリカ合衆国 カリフォルニア州 95131 サンノゼ グース ポイント コ モン 1281 (72)発明者 ブラディープ フェルナンデス アメリカ合衆国 カリフォルニア州 95132 サンノゼ ミリンダ ドライヴ 3918 (72)発明者 ハンス−ヨーアヒム シュミット ドイツ国 81925 ミュンヘン ヴァーン フリートアレー 1ベー Fターム(参考) 5B046 AA08 CA06 KA06 5F064 AA02 BB05 BB07 BB40 DD02 HH06 HH08 HH09 HH12 ─────────────────────────────────────────────────── ─── Continuation of front page (51) Int.Cl. 7 Identification code FI theme code (reference) G06F 17/60 302 G06F 17/60 302E 332 332 H01L 21/82 H01L 21/82 C (31) Priority claim Number 60 / 136,126 (32) Priority date May 26, 1999 (May 26, 1999) (33) Priority claiming country United States (US) (31) Priority claim number 09 / 574,572 (32) ) Priority date May 17, 2000 (May 17, 2000) (33) Priority claiming country United States (US) (31) Priority claim number 09 / 574,693 (32) Priority date May 2000 17th (May 17, 2000) (33) Priority claiming country United States (US) (31) Priority claim number 09 / 577,426 (32) Priority date May 22, 2000 (May 22, 2000) ) (33) Priority claiming country United States (US) (31) Priority owner No. 09 / 579,825 (32) Priority date May 25, 2000 (May 25, 2000) (33) Priority claiming country United States (US) (81) Designated country EP (AT, BE, CH, CY) , DE, DK, ES, FI, FR, GB, GR, IE, IT, LU, MC, NL, PT, SE), OA (BF, BJ, CF, CG, CI, CM, GA, GN, GW , ML, MR, NE, SN, TD, TG), AP (GH, GM, K E, LS, MW, MZ, SD, SL, SZ, TZ, UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, CA, CH, CN, CU, CZ, DE, DK, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, JP, KE, KG, KP, KR KZ, LC, LK, LR, LS, LT, LU, LV, MD, MG, MK, MN, MW, MX, NO, NZ, PL, PT, RO, RU, SD, SE, SG, SI, SK , SL, TJ, TM, TR, TT, UA, UG, UZ, VN, YU, ZA, ZW (72) Inventor David Knapp United States California 95131 San Jose Goose Point Comon 1281 (72) Inventor Bradeep Fernandez United States California 95132 San Jose Milinda Drive 3918 (72) Inventor Hans-Joachim Schmidt Germany 81925 Munich Van Fleet Allee 1 B F Term (reference) 5B046 AA08 CA06 KA06 5F064 AA02 BB05 BB07 BB40 DD02 HH06 HH08 HH09 HH12

Claims (31)

【特許請求の範囲】[Claims] 【請求項1】 ソフトウェアツール環境が、独自のインテレクチュアルプロパテ
ィ(IP)を創成すべき、システム・オン・チップ設計者にたいし、従量料金制
で提供される、業者間アプリケーションサービスプロバイダーであって、 少なくとも一人のシステム・オン・チップ設計者にとってアクセス可能であり
、かつ、ハードウェア記述言語(HDL)で表わされた電子的設計のアップロー
ドを受容可能な、インターネットウェブサイト; 前記インターネットウェブサイトで提供され、フロントエンド電子的設計自動
化(EDA)ツールを供給し、かつ、前記HDLを受容するように接続される、
EDAオンデマンド解決法;および、 シミュレートされ、実証された、前記電子的設計の派生物を、インターネットを
通じて、返送ダウンロードすることを条件として、前記システム・オン・チップ
設計者に請求書を供給する、申し込みコントローラーを含み、 前記EDAオンデマンド解決法のユーザーは、独自のインテレクチュアルプロ
パティ(IP)を創成するために、従量制料金を請求される、 ことを特徴とする、業者間アプリケーションサービスプロバイダー
1. A software tool environment is an inter-provider application service provider, provided on a pay-as-you-go basis, to system-on-chip designers who should create their own intellectual property (IP). An internet website accessible by at least one system-on-chip designer and capable of accepting upload of an electronic design in hardware description language (HDL); said internet website Provided to provide a front end electronic design automation (EDA) tool and is connected to receive the HDL,
EDA on-demand solution; and billing the system-on-chip designer, provided that simulated and validated derivatives of the electronic design are downloaded back through the Internet. , An application controller, wherein the user of the EDA on-demand solution is charged a pay-as-you-go rate to create a unique intellectual property (IP).
【請求項2】 前記EDAオンデマンド解決法は、電子的設計自動化(EDA)
コンピュータプログラムを含み、同プログラムは、 電子回路設計を生成すること; 前記電子回路設計をその成分ブロックおよびプロトコール設計に分割すること
; 前記成分ブロックとプロトコール設計をハードウェア記述言語(HDL)にて
コード化すること; 前記成分ブロックとプロトコール設計の操作スケジューリングとリソース割り
当てのために高レベル合成(HLS)を用いること; 操作スケジューリングとリソース割り当ての後で、前記成分ブロックを最適化
して、中間設計を生成する、技術独立性ブールロジック; 前記電子回路設計のハードウェア実行用の特定デバイスを選択する、技術マッ
ピングの前記中間設計; 前記特定デバイスを、半導体チップの部位に位置付けること;および、 前記特定デバイスの一組の相互接続の経路指定を行うこと、のためにあって、 技術マッピング行程は、 元の回路設計を、一組の、対応ロジックツリーに分割すること; 前記一組の対応ロジックツリーを順序付けし、それを、別順のツリーを駆動す
る各ツリーTは、その別順ツリーに先行する、かつ、前記ツリーTを駆動する、
各順序ツリーは、前記ツリーTに先行する、ように順序付けして、順序化直線性
リストを構成すること; 前記順序化直線性リストを前方掃引し、一方、複数のネットノードそれぞれに
ついて、技術ライブラリー要素に適合する、一組のパレート最適負荷/到着曲線
を計算すること; 前記順序化直線性リストを後方掃引し、一方、前記ネットノードそれぞれの、
前記一組のパレート最適/到着曲線と、容量負荷とを用いて、前記技術ライブラ
リー要素の内から、最短信号到着時間を持つ、最善要素を選択すること; のサブ行程を含み、かつ、 ゲート入力に対応するネットノードのみが考慮され、かつ、容量負荷は全てあ
らかじめ指定されることを特徴とする、請求項1の業者間アプリケーションサー
ビスプロバイダー
2. The EDA on-demand solution is electronic design automation (EDA).
Including a computer program, the program generating an electronic circuit design; dividing the electronic circuit design into its component blocks and protocol designs; coding the component blocks and protocol designs in a hardware description language (HDL) Using high-level synthesis (HLS) for operational scheduling and resource allocation of the component blocks and protocol design; after operation scheduling and resource allocation, optimizing the component blocks to generate an intermediate design Technology-independent Boolean logic; selecting a specific device for hardware implementation of the electronic circuit design; the intermediate design of technology mapping; locating the specific device at a site of a semiconductor chip; and A set of mutual connections For routing, the technical mapping process divides the original circuit design into a set of corresponding logic trees; ordering the set of corresponding logic trees, Each tree T driving an alternate tree precedes the alternate tree and drives said tree T,
Ordering each ordered tree prior to the tree T to form an ordered linearity list; sweeping the ordered linearity list forward while technical live for each of a plurality of net nodes Computing a set of Pareto optimal load / arrival curves that fit the rally elements; sweep backward through the ordered linearity list, while
Selecting a best element having the shortest signal arrival time from among the technology library elements using the set of Pareto optimal / arrival curves and capacitive loading; The inter-provider application service provider according to claim 1, characterized in that only net nodes corresponding to inputs are considered and all capacity loads are specified in advance.
【請求項3】 前記EDAオンデマンド解決法は、電子的設計自動化(EDA)
コンピュータプログラムを含み、同プログラムは、 元の回路設計を、一組の対応ロジックツリーに分割すること; 前記ロジックツリーの各々を、内部ノードを持たない、簡単化等価ツリーと交
換すること; 前記元の回路において、各経路を、ツリーのリーフ(葉)からルート(根)ま
で分析すること; 前記各経路について、伝達遅延を計算すること;および、 計算された遅延を、前記簡単化ツリーの対応アークに注記すること、 のためであることを特徴とする、請求項1の業者間アプリケーションサービス
プロバイダー。
3. The EDA on-demand solution is electronic design automation (EDA).
Including a computer program, the program dividing an original circuit design into a set of corresponding logic trees; replacing each of the logic trees with a simplified equivalent tree without internal nodes; In each circuit, analyzing each path from the leaf to the root of the tree; calculating the propagation delay for each path; and computing the calculated delay as the correspondence of the simplified tree. The inter-provider application service provider of claim 1, wherein the annotation is for the arc.
【請求項4】 前記電子的設計自動化(EDA)コンピュータプログラムが、 前記元の回路設計の伝達遅延が、入力信号の変位速度に依存する場合、それが
いずれのものであっても、前記簡単化ツリーの対応リーフに注記すること、 をさらに供給することを特徴とする、請求項3の業者間アプリケーションサービ
スプロバイダー。
4. The electronic design automation (EDA) computer program, if the propagation delay of the original circuit design depends on the displacement rate of the input signal, whatever the simplification is. The inter-provider application service provider of claim 3, further comprising: annotating corresponding leaves of the tree.
【請求項5】 前記電子的設計自動化(EDA)コンピュータプログラムが、 前記ロジックツリーの全てのリーフにおいてそこに容量負荷値があれば、それ
がいずれのものであっても、前記簡単化ツリーの対応リーフにコピーすること、
をさらに供給することを特徴とする、請求項3の業者間アプリケーションサービ
スプロバイダー。
5. The electronic design automation (EDA) computer program, if there is a capacitive load value in every leaf of the logic tree, whichever is present, corresponds to the simplification tree. Copying to the leaf,
The inter-provider application service provider of claim 3, further comprising:
【請求項6】 前記電子的設計自動化(EDA)コンピュータプログラムは、 前記ロジックツリー頂上の出力ゲートの負荷/遅延反応曲線を、前記簡単化ツ
リーのルートにコピーすること、 をさらに供給することを特徴とする、請求項3の業者間アプリケーションサー
ビスプロバイダー。
6. The electronic design automation (EDA) computer program further comprises: copying a load / delay response curve of an output gate at the top of the logic tree to a root of the simplified tree. The inter-provider application service provider according to claim 3.
【請求項7】 前記電子的設計自動化(EDA)コンピュータプログラムは、 全遅延計算を取り潰して、リソースの抽象的タイミングモデルの内部にたいす
る、単純な、辺縁重み付け最長経路横断への変更すること、 をさらに供給することを特徴とする、請求項3の業者間アプリケーションサー
ビスプロバイダー。
7. The electronic design automation (EDA) computer program collapses all delay computations and changes to a simple, edge weighted longest path traversal, inside an abstract timing model of resources, The inter-provider application service provider of claim 3, further comprising:
【請求項8】 前記電子的設計自動化(EDA)コンピュータプログラムは、 回路境界に接触する複雑モデルツリーと、内部的で、回路境界に接触しない単
純モデルとの併用によって、電子設計のタイミング遅延を計算すること、 をさらに供給することを特徴とする、請求項3の業者間アプリケーションサー
ビスプロバイダー。
8. The electronic design automation (EDA) computer program calculates a timing delay of an electronic design by using a complex model tree that touches a circuit boundary and a simple model that is internal and does not touch the circuit boundary. The inter-provider application service provider of claim 3, further comprising:
【請求項9】 前記電子的設計自動化(EDA)コンピュータプログラムは、技
術選択行程をさらに供給し、同技術選択行程は、 元の回路設計を、一組の対応ロジックツリーに分割すること; 前記一組の対応ロジックツリーを順序付けし、それを、別順のツリーを駆動す
る各ツリーTは、その別順ツリーに先行する、かつ、前記ツリーTを駆動する、
各順序ツリーは、前記ツリーTに先行する、ように順序付けして、順序化直線性
リストを構成すること; 前記順序化直線性リストを前方掃引し、一方、複数のネットノードそれぞれに
ついて、技術ライブラリー要素に適合する、一組のパレート最適負荷/到着曲線
を計算すること;および、 前記順序化直線性リストを後方掃引し、一方、前記ネットノードそれぞれの、
前記一組のパレート最適/到着曲線と、容量負荷とを用いて、前記技術ライブラ
リー要素の内から、最短信号到着時間を持つ、最善要素を選択すること; のステップを含み、かつ、ここに、 ゲート入力に対応するネットノードのみが考慮され、かつ、容量負荷は全てあ
らかじめ指定される、 ことを特徴とする、請求項3の業者間アプリケーションサービスプロバイダー。
9. The electronic design automation (EDA) computer program further provides a technology selection process, the technology selection process dividing the original circuit design into a set of corresponding logic trees; Each tree T ordering a set of corresponding logic trees and driving it to another tree precedes the another tree and drives said tree T,
Ordering each ordered tree prior to the tree T to form an ordered linearity list; sweeping the ordered linearity list forward while technical live for each of a plurality of net nodes Computing a set of Pareto optimal load / arrival curves that fit the rally elements; and sweeping back the ordered linearity list while each of the net nodes,
Selecting the best element with the shortest signal arrival time from the technical library elements using the set of Pareto optimal / arrival curves and capacitive loading; and The inter-provider application service provider according to claim 3, characterized in that only net nodes corresponding to gate inputs are considered, and all capacitive loads are specified in advance.
【請求項10】 前記電子的設計自動化(EDA)コンピュータプログラムは、 電子回路設計を生成すること; 前記電子回路設計をその成分ブロックおよびプロトコール設計に分割すること
; 前記成分ブロックとプロトコール設計をハードウェア記述言語(HDL)にて
コード化すること; 前記成分ブロックとプロトコール設計の操作スケジューリングとリソース割り
当てのために高レベル合成(HLS)を用いること; 操作スケジューリングとリソース割り当ての後で、前記成分ブロックを最適化
して、中間設計を生成する、技術独立性ブールロジック; 前記電子回路設計のハードウェア実行用の特定デバイスを選択する、技術マッ
ピングの前記中間設計; 前記特定デバイスを、半導体チップの部位に位置付けること;および、 前記特定デバイスの一組の相互接続の経路指定を行うこと、 をさらに供給し、ここに、 技術マッピング行程は、 元の回路設計を、一組の、対応ロジックツリーに分割すること; 前記一組の対応ロジックツリーを順序付けし、それを、別順のツリーを駆動す
る各ツリーTは、その別順ツリーに先行する、かつ、前記ツリーTを駆動する、
各順序ツリーは、前記ツリーTに先行する、ように順序付けして、順序化直線性
リストを構成すること; 前記順序化直線性リストを前方掃引し、一方、複数のネットノードそれぞれに
ついて、技術ライブラリー要素に適合する、一組のパレート最適負荷/到着曲線
を計算すること; 前記順序化直線性リストを後方掃引し、一方、前記ネットノードそれぞれの、
前記一組のパレート最適/到着曲線と、容量負荷とを用いて、前記技術ライブラ
リー要素の内から、最短信号到着時間を持つ、最善要素を選択すること; のサブ行程を含み、かつ、 ゲート入力に対応するネットノードのみが考慮され、かつ、容量負荷は全て
あらかじめ指定されることを特徴とする、請求項3の業者間アプリケーションサ
ービスプロバイダー
10. The electronic design automation (EDA) computer program generates an electronic circuit design; splits the electronic circuit design into its component blocks and protocol designs; and the component blocks and protocol designs in hardware. Coding in a description language (HDL); using high-level synthesis (HLS) for operational scheduling and resource allocation of the constituent blocks and protocol design; after operational scheduling and resource allocation, the constituent blocks Optimize to generate an intermediate design, technology-independent Boolean logic; select a specific device for hardware implementation of the electronic circuit design; design the intermediate design for technology mapping; locate the specific device to a part of a semiconductor chip And the special features Routing the set of interconnects of the device, wherein the technology mapping process divides the original circuit design into a set of corresponding logic trees; Each tree T ordering a logic tree and driving it into another tree precedes the another tree and drives said tree T,
Ordering each ordered tree prior to the tree T to form an ordered linearity list; sweeping the ordered linearity list forward while technical live for each of a plurality of net nodes Computing a set of Pareto optimal load / arrival curves that fit the rally elements; sweep backward through the ordered linearity list, while
Selecting a best element having the shortest signal arrival time from among the technology library elements using the set of Pareto optimal / arrival curves and capacitive loading; 4. The inter-provider application service provider according to claim 3, characterized in that only net nodes corresponding to inputs are considered and all capacity loads are designated in advance.
【請求項11】 前記高レベル合成を用いるステップは、タイミング分析が、個
別の操作がスケジュールされる度毎に適用され、かつ、単一の操作がスケジュー
ルされるために多数回呼び出されてもよいように行われる、 ことを特徴とする、請求項10の業者間アプリケーションサービスプロバイ
ダー。
11. The step of using high level synthesis may be invoked multiple times because timing analysis is applied each time an individual operation is scheduled and a single operation is scheduled. The inter-provider application service provider of claim 10, wherein:
【請求項12】 前記技術マッピングステップは、前記電子回路設計のブールロ
ジックゲートを、技術ライブラリー由来の標準セルにマップする、 ことを特徴とする、請求項10の業者間アプリケーションサービスプロバイ
ダー。
12. The inter-provider application service provider of claim 10, wherein the technology mapping step maps Boolean logic gates of the electronic circuit design to standard cells from a technology library.
【請求項13】 前記電子的設計自動化(EDA)コンピュータプログラムは、 時系列プログラムを表わすハードウェア記述言語テキストを、その後の操作
スケジューリングと技術割り当てに備えて、制御フローグラフに変換することを
さらに供給し、同変換は、 時系列プログラムを表わすハードウェア記述言語テキストを減少させて制御
フローグラフに変換する減少ステップと; 前記制御フローグラフからワン・ホット・ビット有限状態装置を構築するこ
と;および、 電子的設計自動化システムにおける操作スケジューリングの前に、前記ワン
・ホット・バイト有限状態装置の操作タイミングを予測すること、 によって実行され、ここに、 前記ハードウェア記述言語テキストと、最終合成設計の間に、サイクル毎の
タイミング一致が維持される、 ことを特徴とする、請求項3の業者間アプリケーションサービスプロバイダ
ー。
13. The electronic design automation (EDA) computer program further provides for converting a hardware description language text representing a time series program into a control flow graph for subsequent operational scheduling and technical assignment. And a reducing step of reducing a hardware description language text representing a time series program into a control flow graph; constructing a one-hot bit finite state machine from the control flow graph; and Predicting the operation timing of the one-hot-byte finite state machine prior to operation scheduling in an electronic design automation system, where during the hardware description language text and the final synthesis design. , The timing of each cycle remains the same The inter-provider application service provider of claim 3, wherein:
【請求項14】 前記減少ステップは、解析ツリーのステップ毎減少を含み、こ
こに、特定の解析ツリー構造が認識され、かつ、対応サブグラフが構築されるこ
とを特徴とする、請求項13の業者間アプリケーションサービスプロバイダー。
14. The agent of claim 13, wherein the step of reducing comprises stepwise reducing the parse tree, where a particular parse tree structure is recognized and a corresponding subgraph is constructed. Between application service providers.
【請求項15】 前記減少ステップは、1個の僅少自己帰還ループを含む、1個
のリセットノードと、1個のジョインノードの構築で始まることを特徴とする、
請求項14の業者間アプリケーションサービスプロバイダー。
15. The reducing step begins with the construction of a reset node and a join node that includes a small self-feedback loop.
The inter-provider application service provider of claim 14.
【請求項16】 前記減少ステップは、アークに注記された全ての解析ツリー宣
言文について操作を適用することによって、前記単純グラフを、さらに洗練され
た制御フローグラフに変換することによって続行し、ここに、 1個の宣言文を持つアークは除去され、少なくとも2個の新規アークと、少
なくとも1個の新規ノードによって交換されることを特徴とする、請求項15の
業者間アプリケーションサービスプロバイダー。
16. The reducing step continues by converting the simple graph into a more sophisticated control flow graph by applying operations on all parse tree declarations annotated in arcs, where: 16. The inter-provider application service provider of claim 15, wherein arcs having one declaration statement are removed and replaced by at least two new arcs and at least one new node.
【請求項17】 前記減少ステップは、前記全てのアークに注記された前記全て
の解析ツリー宣言文にたいして、前記操作を再帰的に適用することによって続行
し、ここに、 全ての分解可能な宣言文が処理されることを特徴とする、請求項16の業者
間アプリケーションサービスプロバイダー。
17. The reducing step continues by recursively applying the operation to all the parse tree declarations annotated on all the arcs, where all decomposable declarations. The inter-provider application service provider of claim 16, wherein is processed.
【請求項18】 前記減少ステップは、全ての表示ブロックの名前を、そのよう
な名前を"end"ノードにマップするテーブルに保存することによって続行し、
ここに、 前記"end"ノードは、全てのVerilog"disable"宣言文にた
いし終着点を供給することを特徴とする、請求項17の業者間アプリケーション
サービスプロバイダー。
18. The reducing step continues by storing the names of all display blocks in a table that maps such names to "end" nodes,
18. The inter-provider application service provider of claim 17, wherein the "end" node provides an endpoint for all Verilog "disable" declarations.
【請求項19】 前記減少ステップは、"repeat"ループの場合、繰り返し
カウンター変数を導入することによって続行し、ここに、 前記繰り返しカウンター変数は、前記ループに進入する前に初期化され、か
つ、前記ループが一周する度毎に繰り上げられることを特徴とする、請求項17
の業者間アプリケーションサービスプロバイダー。
19. The decrementing step continues in the case of a "repeat" loop by introducing an iteration counter variable, wherein the iteration counter variable is initialized before entering the loop, and 18. The loop is moved up every time the loop makes one round.
Inter-provider application service provider.
【請求項20】 前記減少ステップは、"repeat"ループ、"while"ル
ープ、または、"for"ループにたいする、新規"iter"ノードの2個のアウ
ト-アークのそれぞれに条件を付着させることによって続行することを特徴とす
る、請求項17の業者間アプリケーションサービスプロバイダー。
20. The reducing step continues by attaching a condition to each of the two out-arcs of the new "iter" node for a "repeat" loop, a "while" loop, or a "for" loop. 18. The inter-provider application service provider of claim 17, wherein:
【請求項21】 前記減少ステップは、"reset"ノードからの前方横断によ
って到達不能な全てのアークとノードを除去することによって続行することを特
徴とする、請求項17の業者間アプリケーションサービスプロバイダー。
21. The inter-provider application service provider of claim 17, wherein the reducing step continues by removing all arcs and nodes unreachable by forward traversal from the "reset" node.
【請求項22】 前記減少ステップは、さらにそれ以上グラフ構造を含まない分
枝から派生する全てのアーク組をまとめて取り潰し、かつ、全ての条件解析ツリ
ーを、前記制御フローグラフに再注記することによって続行することを特徴とす
る、請求項17の業者間アプリケーションサービスプロバイダー。
22. The reducing step further collectively collapses all arc sets derived from branches that do not contain any more graph structures, and re-notes all conditional parse trees to the control flow graph. 18. The inter-provider application service provider of claim 17, characterized by continuing by.
【請求項23】 前記減少ステップは、いずれの条件文も、余分分枝の創設以外
に、前記制御フローグラフにたいして何の作用も及ぼすことはないかどうかを検
出し、かつ、もしそうなら、減少を適用せず、前記条件文をそのまま注記するこ
とによって続行することを特徴とする、請求項17の業者間アプリケーションサ
ービスプロバイダー。
23. The reducing step detects whether any conditional statement has any effect on the control flow graph other than the creation of an extra branch, and if so, the reducing step. 18. The inter-provider application service provider of claim 17, characterized by not applying, and continuing by noting the conditional statement as is.
【請求項24】 前記減少ステップは、その条件が真となることはあり得ない全
ての死んだ分枝を除去することによって続行することを特徴とする、請求項17
の業者間アプリケーションサービスプロバイダー。
24. The reducing step is characterized in that the reducing step is continued by removing all dead branches whose condition cannot be true.
Inter-provider application service provider.
【請求項25】 前記減少ステップは、状態としてマークされていない、1個の
イン-アークと1個のアウト-アークを含む単純ノードのイン-アーク同士、およ
び、アウト-アーク同士を合流させることによって続行することを特徴とする、
請求項17の業者間アプリケーションサービスプロバイダー。
25. The reducing step merges in-arcs and out-arcs of a simple node including one in-arc and one out-arc not marked as a state. Characterized by continuing by,
The inter-provider application service provider of claim 17.
【請求項26】 前記減少ステップ後に、前記制御フローグラフの剪定を行って
、前記ハードウェア記述言語テキストの中にVerilog"disable"宣
言文を受け入れることをさらに含む、請求項17の業者間アプリケーションサー
ビスプロバイダー。
26. The inter-firm application service of claim 17, further comprising pruning the control flow graph after the reducing step to accept a Verilog "disableable" declaration in the hardware description language text. Provider.
【請求項27】 前記減少ステップ後に、前記制御フローグラフの剪定を行って
、前記ハードウェア記述言語テキストの中に"goto"宣言文を受け入れること
をさらに含む、請求項17の業者間アプリケーションサービスプロバイダー。
27. The inter-provider application service provider of claim 17, further comprising, after the reducing step, pruning the control flow graph to accept a "goto" declaration in the hardware description language text. .
【請求項28】 前記ワン・ホット・ビット有限状態装置を構築するステップは
、前記制御フローグラフの各状態ノードを、対応する単一状態フリップフロップ
にマップすることを含むことを特徴とする、請求項13の業者間アプリケーショ
ンサービスプロバイダー。
28. The step of constructing the one-hot bit finite state machine comprises mapping each state node of the control flow graph to a corresponding single state flip-flop. Item 13 inter-provider application service provider.
【請求項29】 前記ワン・ホット・ビット有限状態装置を構築するステップは
、テーブルMAPを構築することによって続行し、かつ、 前記制御フローグラフの全てのアークが、前記有限状態装置の対応出力ポート
にマップされる、 ことを特徴とする、請求項16の業者間アプリケーションサービスプロバイダ
ー。
29. The step of constructing the one hot bit finite state machine continues by constructing a table MAP, and all arcs of the control flow graph have corresponding output ports of the finite state machine. The inter-provider application service provider of claim 16, characterized in that:
【請求項30】 前記ワン・ホット・ビット有限状態装置を構築するステップは
、一組の一次入力と状態フリップフロップによって駆動され、かつ、MAP(C
)を駆動する、回路を建設することによって続行することを特徴とする、請求項
29の業者間アプリケーションサービスプロバイダー。
30. The step of constructing the one-hot bit finite state machine is driven by a set of primary inputs and a state flip-flop, and MAP (C
30. The inter-provincial application service provider of claim 29, characterized in that it continues by constructing a circuit driving a).
【請求項31】 前記ワン・ホット・ビット有限状態装置を構築するステップは
、近似操作を用いることを含むことを特徴とする、請求項30の業者間アプリケ
ーションサービスプロバイダー。
31. The inter-provider application service provider of claim 30, wherein the step of constructing the one-hot bit finite state machine comprises using an approximation operation.
JP2000620508A 1999-05-26 2000-05-26 Inter-trade application service provider Expired - Fee Related JP4495865B2 (en)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US13590299P 1999-05-26 1999-05-26
US13612699P 1999-05-26 1999-05-26
US13612799P 1999-05-26 1999-05-26
US60/136,126 1999-05-26
US60/136,127 1999-05-26
US60/135,902 1999-05-26
US09/574,572 US6516453B1 (en) 1999-05-26 2000-05-17 Method for timing analysis during automatic scheduling of operations in the high-level synthesis of digital systems
US09/574,693 US6470486B1 (en) 1999-05-26 2000-05-17 Method for delay-optimizing technology mapping of digital logic
US09/574,572 2000-05-17
US09/574,693 2000-05-17
US57742600A 2000-05-22 2000-05-22
US09/577,426 2000-05-22
US09/579,825 2000-05-25
US09/579,825 US6782511B1 (en) 1999-05-26 2000-05-25 Behavioral-synthesis electronic design automation tool business-to-business application service provider
PCT/US2000/014617 WO2000072185A2 (en) 1999-05-26 2000-05-26 Behavioral-synthesis electronic design automation tool and business-to-business application service provider

Publications (3)

Publication Number Publication Date
JP2003500745A true JP2003500745A (en) 2003-01-07
JP2003500745A5 JP2003500745A5 (en) 2007-07-05
JP4495865B2 JP4495865B2 (en) 2010-07-07

Family

ID=27568902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000620508A Expired - Fee Related JP4495865B2 (en) 1999-05-26 2000-05-26 Inter-trade application service provider

Country Status (5)

Country Link
EP (1) EP1248989A2 (en)
JP (1) JP4495865B2 (en)
CN (1) CN1408092A (en)
AU (1) AU5167100A (en)
WO (1) WO2000072185A2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961773B2 (en) 2001-01-19 2005-11-01 Esoft, Inc. System and method for managing application service providers
WO2002067090A2 (en) * 2001-02-16 2002-08-29 United Parcel Service Of America, Inc. System and method for selectively enabling and disabling access to software applications over a network
EP1582959B1 (en) * 2001-02-16 2007-07-18 United Parcel Service Of America, Inc. Systems for selectively enabling and disabling access to software applications over a network and methods for using same
US7734715B2 (en) * 2001-03-01 2010-06-08 Ricoh Company, Ltd. System, computer program product and method for managing documents
JP2003067453A (en) * 2001-08-27 2003-03-07 Nec Corp Method for promoting design
WO2015048437A1 (en) 2013-09-26 2015-04-02 Synopsys, Inc. Mapping intermediate material properties to target properties to screen materials
US10402520B2 (en) 2013-09-26 2019-09-03 Synopsys, Inc. First principles design automation tool
WO2015048532A1 (en) 2013-09-26 2015-04-02 Synopsys, Inc. Parameter extraction of dft
US10489212B2 (en) 2013-09-26 2019-11-26 Synopsys, Inc. Adaptive parallelization for multi-scale simulation
US10516725B2 (en) 2013-09-26 2019-12-24 Synopsys, Inc. Characterizing target material properties based on properties of similar materials
WO2015048400A1 (en) 2013-09-26 2015-04-02 Synopsys, Inc. Estimation of effective channel length for finfets and nano-wires
US10078735B2 (en) 2015-10-30 2018-09-18 Synopsys, Inc. Atomic structure optimization
US10734097B2 (en) 2015-10-30 2020-08-04 Synopsys, Inc. Atomic structure optimization
CN112199918B (en) * 2020-10-20 2021-09-21 芯和半导体科技(上海)有限公司 Method for reconstructing physical connection relation of general EDA model layout
CN113158599B (en) * 2021-04-14 2023-07-18 广州放芯科技有限公司 Quantum informatics-based chip and chip-based EDA device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62202268A (en) * 1986-02-28 1987-09-05 Nec Corp Circuit processor
JPS6376065A (en) * 1986-09-19 1988-04-06 Nec Corp Graphic structure data display system
JPH09269957A (en) * 1996-04-01 1997-10-14 Nec Corp Delay information processing method and delay information processor
JPH11282884A (en) * 1998-03-30 1999-10-15 Mitsubishi Electric Corp Network cad system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557531A (en) * 1990-04-06 1996-09-17 Lsi Logic Corporation Method and system for creating and validating low level structural description of electronic design from higher level, behavior-oriented description, including estimating power dissipation of physical implementation
US5787010A (en) * 1992-04-02 1998-07-28 Schaefer; Thomas J. Enhanced dynamic programming method for technology mapping of combinational logic circuits
US5544071A (en) * 1993-12-29 1996-08-06 Intel Corporation Critical path prediction for design of circuits
JPH08101861A (en) * 1994-09-30 1996-04-16 Toshiba Corp Logic circuit synthesizing device
US5535145A (en) * 1995-02-03 1996-07-09 International Business Machines Corporation Delay model abstraction
GB2325996B (en) * 1997-06-04 2002-06-05 Lsi Logic Corp Distributed computer aided design system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62202268A (en) * 1986-02-28 1987-09-05 Nec Corp Circuit processor
JPS6376065A (en) * 1986-09-19 1988-04-06 Nec Corp Graphic structure data display system
JPH09269957A (en) * 1996-04-01 1997-10-14 Nec Corp Delay information processing method and delay information processor
JPH11282884A (en) * 1998-03-30 1999-10-15 Mitsubishi Electric Corp Network cad system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN4006008955, 長谷川拓己,外4名, "大規模回路向けタイミング解析システムHEART(1)高速化の手法", 情報処理学会全国大会講演論文集, 1987, Vol.35,No.3, p.2275−2276, 情報処理学会 *
JPN6009036031, Chakrabarti, D.R. et al., "WADE: a Web−based Automated Parallel CAD Environment", PROCEEDINGS Fifth International Conference on High Performance Computing, 19981220, pp.473−480, IEEE *

Also Published As

Publication number Publication date
WO2000072185A2 (en) 2000-11-30
AU5167100A (en) 2000-12-12
CN1408092A (en) 2003-04-02
JP4495865B2 (en) 2010-07-07
EP1248989A2 (en) 2002-10-16
WO2000072185A3 (en) 2001-11-15

Similar Documents

Publication Publication Date Title
US6782511B1 (en) Behavioral-synthesis electronic design automation tool business-to-business application service provider
Landman et al. Activity-sensitive architectural power analysis
Walker et al. A survey of high-level synthesis systems
US8640066B1 (en) Multi-phase models for timing closure of integrated circuit designs
US6470486B1 (en) Method for delay-optimizing technology mapping of digital logic
US7926011B1 (en) System and method of generating hierarchical block-level timing constraints from chip-level timing constraints
JP2002123563A (en) Compiling method, composing device, and recording medium
US7143368B1 (en) DSP design system level power estimation
JP2003500745A (en) Inter-service application service provider
Bouden-Romdhane et al. Quick-Turnaround ASIC Design in VHDL: Core-Based Behavioral Synthesis
KR20130070642A (en) Integrated data model based framework for driving design convergence from architecture optimization to physical design closure
Ren A brief introduction on contemporary high-level synthesis
Chen et al. Simultaneous timing-driven placement and duplication
Ong et al. Automatic mapping of multiple applications to multiple adaptive computing systems
Madariaga et al. Review of electronic design automation tools for high-level synthesis
Stenz et al. Performance optimization by interacting netlist transformations and placement
US6516453B1 (en) Method for timing analysis during automatic scheduling of operations in the high-level synthesis of digital systems
Reis et al. Physical awareness starting at technology-independent logic synthesis
WO2021234720A1 (en) Power performance area optimization driven synthesis
Charaf et al. Amah-flex: A modular and highly flexible tool for generating relocatable systems on fpgas
Patterson et al. Slotless module-based reconfiguration of embedded FPGAs
Murgai Technology-dependent logic optimization
Tan et al. Recent research development in metal-only ECO
Xu et al. RTL synthesis with physical and controller information
Lu et al. Technology mapping for simultaneous gate and interconnect optimisation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070515

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070515

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070704

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20081128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100217

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees