JP6468743B2 - 情報処理装置及びその制御方法 - Google Patents

情報処理装置及びその制御方法 Download PDF

Info

Publication number
JP6468743B2
JP6468743B2 JP2014149161A JP2014149161A JP6468743B2 JP 6468743 B2 JP6468743 B2 JP 6468743B2 JP 2014149161 A JP2014149161 A JP 2014149161A JP 2014149161 A JP2014149161 A JP 2014149161A JP 6468743 B2 JP6468743 B2 JP 6468743B2
Authority
JP
Japan
Prior art keywords
data file
gate level
information processing
extracting
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014149161A
Other languages
English (en)
Other versions
JP2016024683A (ja
Inventor
公男 塩澤
公男 塩澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014149161A priority Critical patent/JP6468743B2/ja
Publication of JP2016024683A publication Critical patent/JP2016024683A/ja
Application granted granted Critical
Publication of JP6468743B2 publication Critical patent/JP6468743B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、LSIなどの半導体における回路の生成技術に関するものである。
従来、Large Scale Integration(以下、LSI)の設計手順として、一般的に、以下のフローが知られている。最初に、要求仕様にあった論理回路をVerilog HDLなどの専用のハードウェア記述言語で記述し、レジスタ転送レベル(Register Transfer Level:以下、RTL)の論理回路を定義するファイルを作成する。RTL論理回路は、フリップフロップ(以下、FF)と呼ばれる記憶素子と記憶素子を持たない組み合わせ回路で構成される。作成したRTL論理回路が要求仕様にあっていることを確認後、そのRTL論理回路をゲートレベル回路に変換する論理合成を行い、ゲートレベル回路を生成する。この際の論理合成には、製造する半導体プロセスを有するベンダーから提供される半導体プロセスの物理特性を反映したセルライブラリ、及び、生成されるゲートレベル回路の動作周波数などを設定したタイミング制約ファイルが使用される。次に、生成されたゲートレベル回路において、回路内の信号が決められた時間内で動作するかを検証するタイミング検証を行う。最後に、ゲートレベル回路の各素子を物理的に配置配線し、配置配線が終了すると製造工程に移行する。
近年の半導体の製造プロセスの微細化に伴い、LSIの回路規模は肥大化し、実装されるFFの数も膨大な数となっている。肥大化する回路規模や、それに伴う配置配線作業の増大に対して、回路規模を削減するために論理合成において、同一階層や同一Verilog HDLファイルに記載されている演算器を論理合成で共有化して回路規模を削減する技術が一般的に知られている。また、特許文献1のように符号付き、符号無しなど異なるタイプの演算器を共有化して回路規模削減を行う技術も知られている。
特開平11−213024号公報
しかしながら、従来の論理合成の演算器の共有化は、RTL記述上から同じタイミングで使用しない共有化可能な演算器を探し出さなければならい。論理合成の実行時間や処理能力を考えると、同一階層や同一ファイル内の回路など限られた範囲に対しての演算器の共有化しかできないのが現状である。
本発明は、上記問題点に鑑みなされたものである。そして、本発明は、同一階層や同一ファイル内の回路に限定せず、クロックの論理構造から共有化可能な演算器を抽出し、演算器の共有化して論理合成を行い、回路規模の小さいゲートレベル回路を表すネットリスクデータファイルを生成する技術を提供する。
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
レジスタ転送レベルで記載された論理回路を表現する処理対象データファイルから、ゲートレベルのネットリストデータファイルを生成する情報処理装置であって、
前記処理対象データファイルを解析し、フリップフロップにより時間軸のクロックについて、所定のサイクル数隔ててイネーブル状態となる演算器を抽出する抽出手段と、
該抽出手段で抽出した演算器の共有化を行って、Gate Levelのネットリストを表現するネットリストファイルを生成する生成手段とを有する。
本発明によれば、クロックの論理構造から共有化可能な演算器を抽出し、演算器の共有化して論理合成を行うことで回路規模の小さいゲートレベル回路を表すネットリストデータファイルが生成できる。
実施形態に係る処理手順を示すフローチャート。 実施形態に係る回路構成を示すブロック図。 実施形態に係るクロックを示すタイミングチャート。 実施形態に係る回路構成を示すブロック図。 実施形態に係るクロックを示すタイミングチャート。 実施形態に係る情報処理装置のブロック構成図。
以下、添付図面に従って本発明に係る実施の形態を詳細に説明する。
[第1の実施形態]
図6は、実施形態におけるパーソナルコンピュータに代表される情報処理装置のブロック構成図である。本装置は、装置全体の制御を司るCPU601をはじめ以下の構成を有する。ROM602はBIOSやブートプログラムを格納する読出し専用メモリである。RAM602はCPU601の主記憶装置として機能するランダムアクセスメモリである。このRAM602は、CPU601が実行するOS(オペレーティングシステム)や各種アプリケーションプログラム(実施形態における論理合成アプリケーションを含む)がロードされ、実行される。また、RAM602はCPU601の各種ワークエリアとしても使用される。HDD604は外部記憶装置として機能し、OSや各種アプリケーション、ならびにデータファイル等を記憶保持するものである。OSやアプリケーションは、RAM603に読出されて、CPU601により実行されることになる。操作部605は、ユーザからの指示入力手段として機能するものであり、キーボード、マウス等のポインティングデバイスで構成される。表示部606は、OSや各種アプリケーション実行時のGUIを表示する。ネットワークインターフェース607は本装置をネットワークに接続するものである。そして、上記各種構成要素はバス608を介してCPU601に接続されることになる。
上記構成において、本装置の電源がONになると、CPU601はROM602のブートプログラムを実行して、HDD604のOS604aをRAM603に読出し、OSを実行し、本装置が情報処理装置として機能する。そして、CPU601はHDD601内の論理合成に係るアプリケーションプログラム604bをRAM603にロードし、実行する。この結果、本装置はハードウェア記述言語で記述されたファイルから、ハードウェアのゲートレベルのデータファイルを生成する装置として機能することになる。
以下、本装置のCPU301が論理合成に係るアプリケーションプログラム604aを実行した場合の処理内容を説明する。なお、説明に先立ち、HDD604には、既に論理回路の動作を表現したレジスタ転送レベルのハードウェア記述ファイル(処理対象データファイル)604cが格納されているものとする。また、回路のタイミング情報を記述した論理合成制約ファイル604d、回路、配線の遅延情報が記述された物理情報ファイル604eも既に格納されているものとして説明する。ハードウェア記述ファイル604は、公知のアプリケーションによって作成されるものとし、その説明は省略する。そして、本実施形態では、ハードウェア記述ファイル604c、論理合成制約ファイル604d、回路及び物理情報ファイル604eを参照して、ネットリストデータファイル604fを生成するものである。以下、アプリケーション604bを実行した際のCPU301の処理手順を図1のフローチャートに従って説明する。
はじめに、CPU601は、ステップS100において、論理回路の動作が記述されたハードウェア記述ファイル604cをRAM603に読み込む(S101)。そして、CPU601は、読み込んだハードウェア記述ファイル604cを解析し、回路のタイミング情報を記載した論理合成制約ファイル604dと、回路、配線の遅延情報が書かれた物理情報ファイル6043eを用いて論理合成する。そして、CPU301は、その論理合成により、回路を構成する基本単位であるベーシックセルを使用した回路記述ファイルであるGate LevelのネットリストをRAM603上に生成し、ステップS102に進む。
ステップS102では、CPU301は、共有化可能演算器の抽出処理を行う。この処理では、記憶素子であるフリップフロップ(以下、FF)に入力されるクロックの論理が排他かどうかを検出し、排他であるFFのデータ入力に接続されている演算器から共有可能な演算器を抽出する。そして、ステップS103にて、CPU301は、抽出の可否を判定し、抽出できた場合にはSステップS104に進み、そうでなければ、ステップS105に進む。
ステップS104において、CPU301は、共有化可能演算器の抽出処理において、回路がどの位置にあるかを示すフロアプラン情報から配線遅延を算出し、演算器を共有化してもタイミング収束可能かどうかを判定する。タイミング収束可能な場合は、ステップS105へ進み、そうでなければ、ステップS106に進む。
ステップS105において、ステップS101で生成されたGate Levelのネットリストにおいて、ステップS103で共有化可能とされた演算器のネットリストを、共有させたGate Levelのネットリストに変更し、ステップS107に進む。
一方、ステップS106に処理を進めた場合には、ステップS101で生成されたGate Levelのネットリストに対し、何も変更せずにステップS107に進む。
そして、ステップS107にて、CPU301は、ネットリストを生成し、その電子ファイルをネットリストファイル604fとしてHDD604に生成し、本処理を終える。
次に、図2、3を用いてステップS102、ステップS104で述べた共有化可能演算器の抽出処理の抽出処理を具体的に説明する。
図2は、本実施形態に係る回路構成を示すブロック図であり、同図(a)は演算器の共有化前のブロック図、同図(b)は演算器共有化後のブロック図である。また、図3は、本実施形態におけるクロックを示すタイミングチャートである。
図2において、参照符号202、205、207、211、214、216はFF(フリップフロップ)である。参照符号201、203、206、212、213、221は加算器である。参照符号204、210、215、224は乗算器である。参照符号217はインバータ、参照符号208、218はクロックゲーティングセル、そして、参照符号200、209は回路の階層を示すブロックである。
図2(a)において、ブロック200には、信号A、信号B、信号C、信号D、信号Eとクロックが入力される。信号A、信号B、信号C、信号D、信号Eの各信号は、ブロック200内の回路に従い、加算、乗算を行い出力される。一方、ブロック209には、信号F、信号G、信号H、信号I、信号Jと、ブロック200に入力されたクロックとは排他で動作するクロックが入力される。信号F、信号G、信号H、信号I、信号Jはブロック209内の回路に従い、加算、乗算を行い出力される。ここで、ブロック200とブロック209に供給されるクロックは、クロックイネーブルが排他になっているため、図3のタイミングチャートに示すように、排他論理で動作する。
さて、共有化可能演算器の抽出処理では、クロックが排他論理で動作することから、演算器を共有しても回路動作は同じになるので、ブロック200とブロック209内の演算器は共有化可能と判定する。また、この抽出処理では、製造プロセス、回路の位置情報やセル遅延情報を示すフロアプランと呼ばれる物理情報から共有化してもタイミング収束可能かどうかを判定する。この抽出処理では、最終的に共有化可能と判定した加算器201と212、乗算器204と215を図2(b)に示すように加算器221、乗算器222として共有化し、Gate Levelのネットリスに変更する。図2(b)において、参照符号217、218、220、221はセレクタで、入力される二つの信号を選択する。選択には、クロックイネーブルを使用する。
以上、説明したように本実施形態によれば、同一階層や同一ファイル内の回路に限定せず、クロックの論理構造から共有化可能な演算器を抽出し、演算器を共有化したGate Levelのネットリストを生成することが可能となる。
なお、本実施形態では、ビット幅に関しては特に記載しなかったが、異なるビット幅を入力とする演算器を共有する場合でも、不足ビットに固定値を入力することで回路規模にメリットがある場合は、固定値を入力して、共有化することも可能である。
なお、本実施形態では、回路の位置情報やセル遅延情報(素子遅延情報)を示すフロアプランと呼ばれる物理情報を用いたが、フロアプランがない場合でも論理段数、仮配線長、セル遅延、計上による物理的な距離情報を用いて行うことも可能である。
[第2の実施形態]
上記第1の実施形態では、クロックが排他で動作する例について説明したが、本第2の実施形態では、クロックに従ってシーケンシャルに動作する(順次イネーブルとなって動作する)場合について説明する。なお、論理合成方法のフローは、第1の実施形態で説明したフローと同じであるため省略する。
図4は、第2の実施形態に係る回路構成を示すブロック図であり、同図(a)は演算器の共有化前のブロック図、同図(b)は演算器共有化後のブロック図である。図5は、第2の実施形態に係るクロックを示すタイミングチャートである。
図4において、参照符号404、409、412はFF、参照符号402、403、406、408、415は加算器である。また、参照符号401は乗算器、参照符号407は減算器、参照符号405、411はクロックゲーティングセル、参照符号400、410は回路の階層を示すブロックである。
図4(a)において、ブロック400には、信号A、信号B、信号C、信号DとクロックAが入力される。信号A、信号B、信号C、信号Dの各信号は、ブロック400内の回路に従い、加算、乗算を行い、その演算結果を後続するブロック410に出力する。ブロック410は、信号E、信号F、信号Gとブロック400からの出力、クロックBが入力される。信号E、信号F、信号Gとブロック400からの出力はブロック410内の回路に従い、加算、減算を行い出力される。ここで、ブロック400とブロック410に供給されるクロックは、クロックイネーブルによってシーケンシャルに制御されているため、図5のタイミングチャートに示すように順次出力される。なお、クロックAを制御するクロックイネーブルは本第2の実施形態では、1サイクルアサートされた後は、必ず、1サイクルネゲートするものとする。
共有化可能演算器の抽出処理では、クロックがシーケンシャルにクロックが出力されること、各々のブロックが2サイクル連続でアサートされないことから、演算器を共有しても回路動作は同じにできる。従って、ブロック400とブロック410内の演算器は共有化可能と判定される。また、この抽出処理では、回路の位置情報やセル遅延情報を示すフロアプランと呼ばれる物理情報から共有化してもタイミング収束可能かどうかを判定する。そして、この抽出処理では、クロックを順次イネーブルにするフリップフロップの前段に位置する演算器を抽出の対象とする。つまり、最終的に共有化可能と判定した加算器402と408を加算器415として共有化し、図4(b)に示すGate Levelのネットリストに変更し、電子データファイルとしてHDDに出力される。図4において、参照符号413、414はセレクタで、入力される二つの信号を選択する。選択には、クロックイネーブルを使用する。
以上、説明したように、クロックの論理構造から共有化可能な演算器を抽出し、演算器を共有化したGate Levelのネットリストを生成することで回路規模の小さい回路を生成することが可能となる。
また、本第2の実施形態では、ブロック400とブロック410が同じ駆動電源管理下である場合を説明した。しかしながら、ブロック400とブロック410が異なる電圧で制御されている場合や、個別に電源遮断可能な場合は、異なる電源管理下となるので、共有化可能演算器の抽出処理は、共有化ができないと判定する。
また、本第2の実施形態では、クロックイネーブルが2サイクル連続でアサートされない例を説明した。しかし、複数サイクル連続でアサートされた場合でも、FF412が複数サイクル分のFFを有するなど、ブロック400とブロック410が同時に使用されることを必要としていない構成になっていれば、この抽出処理では、共有化可能と判定することができる。
なお、実施形態は、RTLのハードウェア記述ファイルを読み込んでゲートレベル回路を出力する場合の論理合成に関して説明した。しかし、RTLを読み込んでRTLを出力する場合、ゲートレベル回路を読み込んでゲートレベル回路を出力する場合も適応するべきものである。
また、本発明は、本発明の技術思想の範囲内において、上記実施形態に限定されるものではなく、対象となる回路形態により適時変更されて適応するべきものである。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
202、205、207、211、214、216…フリップフロップ(FF)、201、203、206、212、213、221…加算器、204、210、215、224…乗算器、217…インバータ、208、218…クロックゲーティングセル、200、209…階層ブロック、217、218、220、221…セレクタ、601…CPU、602…ROM、603…RAM、604…HDD、605…操作部、606…表示部、607…ネットワークインターフェース

Claims (8)

  1. レジスタ転送レベルで記載された論理回路を表現する処理対象データファイルから、ゲートレベルのネットリストデータファイルを生成する情報処理装置であって、
    前記処理対象データファイルを解析し、フリップフロップにより時間軸のクロックについて、所定のサイクル数隔ててイネーブル状態となる演算器を抽出する抽出手段と、
    該抽出手段で抽出した演算器の共有化を行って、Gate Levelのネットリストを表現するネットリストファイルを生成する生成手段と
    を有することを特徴とする情報処理装置。
  2. 前記抽出手段は、更に、クロックイネーブルが排他論理になっているフリップフロップの前段に位置する演算器を抽出の対象とすることを特徴とする請求項1に記載の情報処理装置。
  3. 前記生成手段は、前記抽出手段で抽出した演算器に対して、製造プロセス、素子遅延、配線長や物理的な位置情報を用いて、演算器の共有化してもタイミング収束可能かどうかを判定してGate Levelのネットリストファイルを生成することを特徴とする請求項1又は2に記載の情報処理装置。
  4. レジスタ転送レベルで記載された論理回路を表現する処理対象データファイルから、ゲートレベルのネットリストデータファイルを生成する情報処理装置であって、
    前記処理対象データファイルを解析し、論理構造から同時に動作させる必要がない演算器を抽出する抽出手段と、
    該抽出手段で抽出した演算器の共有化を行って、Gate Levelのネットリストを表現するネットリストファイルを生成する生成手段とを有し、
    前記生成手段は、前記抽出手段で抽出した演算器に対して、駆動されている電源の管理を表す情報から演算器の共有化の可否を判定してGate Levelのネットリストファイルを生成することを特徴とする報処理装置。
  5. コンピュータが読み込み実行することで、前記コンピュータに、請求項1乃至のいずれか1項に記載の情報処理装置として機能させるためのプログラム。
  6. 請求項に記載のプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
  7. レジスタ転送レベルで記載された論理回路を表現する処理対象データファイルから、ゲートレベルのネットリストデータファイルを生成する情報処理装置の制御方法であって、
    抽出手段が、前記処理対象データファイルを解析し、フリップフロップにより時間軸のクロックについて、所定のサイクル数隔ててイネーブル状態となる演算器を抽出する抽出工程と、
    生成手段が、前記抽出工程で抽出した演算器の共有化を行って、Gate Levelのネットリストを表現するネットリストファイルを生成する生成工程と
    を有することを特徴とする情報処理装置の制御方法。
  8. レジスタ転送レベルで記載された論理回路を表現する処理対象データファイルから、ゲートレベルのネットリストデータファイルを生成する情報処理装置の制御方法であって、
    抽出手段が、前記処理対象データファイルを解析し、論理構造から同時に動作させる必要がない演算器を抽出する抽出工程と、
    生成手段が、前記抽出工程で抽出した演算器の共有化を行って、Gate Levelのネットリストを表現するネットリストファイルを生成する生成工程とを有し、
    前記生成工程は、前記抽出工程で抽出した演算器に対して、駆動されている電源の管理を表す情報から演算器の共有化の可否を判定してGate Levelのネットリストファイルを生成することを特徴とする情報処理装置の制御方法。
JP2014149161A 2014-07-22 2014-07-22 情報処理装置及びその制御方法 Expired - Fee Related JP6468743B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014149161A JP6468743B2 (ja) 2014-07-22 2014-07-22 情報処理装置及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014149161A JP6468743B2 (ja) 2014-07-22 2014-07-22 情報処理装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2016024683A JP2016024683A (ja) 2016-02-08
JP6468743B2 true JP6468743B2 (ja) 2019-02-13

Family

ID=55271373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014149161A Expired - Fee Related JP6468743B2 (ja) 2014-07-22 2014-07-22 情報処理装置及びその制御方法

Country Status (1)

Country Link
JP (1) JP6468743B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112138397A (zh) * 2020-09-30 2020-12-29 网易(杭州)网络有限公司 一种触发器管理方法、装置、计算机设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2714015B2 (ja) * 1988-07-29 1998-02-16 株式会社東芝 論理回路合成装置
JP2937943B2 (ja) * 1997-05-12 1999-08-23 三菱電機株式会社 論理合成システム及び論理合成方法
JPH11345253A (ja) * 1998-06-03 1999-12-14 Mitsubishi Electric Corp 論理合成装置、論理合成方法および論理合成プログラムを記録した媒体
JP5915154B2 (ja) * 2011-12-19 2016-05-11 株式会社ソシオネクスト 集積回路最適化プログラム及び集積回路最適化装置

Also Published As

Publication number Publication date
JP2016024683A (ja) 2016-02-08

Similar Documents

Publication Publication Date Title
US10331836B1 (en) Loop optimization for implementing circuit designs in hardware
US8782591B1 (en) Physically aware logic synthesis of integrated circuit designs
US7979831B1 (en) Placement driven control set resynthesis
US10691856B1 (en) System design flow with runtime customizable circuits
Ozdal et al. Algorithms for gate sizing and device parameter selection for high-performance designs
CN112818621B (zh) 用于预测软ip部件的性能、功率和面积表现的系统和方法
US9824172B1 (en) Performance of circuitry generated using high-level synthesis
US9710584B1 (en) Performance of circuitry generated using high-level synthesis
Hsu et al. In-placement clock-tree aware multi-bit flip-flop generation for power optimization
US10796058B1 (en) Partial reconfiguration of integrated circuits using shell representation of platform design
Petrisko et al. NoC symbiosis (special session paper)
US10437946B1 (en) Using implemented core sources for simulation
US9773083B1 (en) Post-placement and pre-routing processing of critical paths in a circuit design
US9646126B1 (en) Post-routing structural netlist optimization for circuit designs
US10664561B1 (en) Automatic pipelining of memory circuits
JP2007004563A (ja) ライブラリ作成装置、ライブラリ作成プログラムおよびライブラリ作成方法
US10963613B1 (en) Partial reconfiguration of integrated circuits using shell representation of platform design with extended routing region
JP6468743B2 (ja) 情報処理装置及びその制御方法
US9965581B1 (en) Fanout optimization to facilitate timing improvement in circuit designs
US20080300806A1 (en) Power consumption calculating method
Cong et al. Accelerating monte carlo based SSTA using FPGA
US10606972B2 (en) Method, design program, and design apparatus of a high level synthesis process of a circuit
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
Ayatollahi et al. AMPS: An Automated Mesochronous Pipeline Scheduler and Design Space Explorer for High Performance Digital Circuits
US6532584B1 (en) Circuit synthesis method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180528

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190115

R151 Written notification of patent or utility model registration

Ref document number: 6468743

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees