JP2014041598A - 論理回路設計方法、論理回路設計プログラム、および論理回路設計システム - Google Patents
論理回路設計方法、論理回路設計プログラム、および論理回路設計システム Download PDFInfo
- Publication number
- JP2014041598A JP2014041598A JP2013108384A JP2013108384A JP2014041598A JP 2014041598 A JP2014041598 A JP 2014041598A JP 2013108384 A JP2013108384 A JP 2013108384A JP 2013108384 A JP2013108384 A JP 2013108384A JP 2014041598 A JP2014041598 A JP 2014041598A
- Authority
- JP
- Japan
- Prior art keywords
- data
- circuit
- logic circuit
- logic
- constraint condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
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)
Abstract
【課題】設計意図を反映した回路データを作成可能な論理回路設計方法。
【解決手段】実施形態の論理回路設計方法は、レジスタトランスファレベルの記述を含んだ設計データに基づいて、前記レジスタトランスファレベルの記述に対応する論理データを生成する工程(S102)と、前記設計データに基づいて、前記論理データと論理的に等価な複数のゲートレベルの回路データの中から所定の条件を満たす回路データを指定する制約条件を生成する工程(S103)と、を備える。実施形態の論理回路設計方法は、前記制約条件のもとで、前記論理データに基づいてゲートレベルの回路データを生成する工程(S103)をさらに備える。
【選択図】図2
【解決手段】実施形態の論理回路設計方法は、レジスタトランスファレベルの記述を含んだ設計データに基づいて、前記レジスタトランスファレベルの記述に対応する論理データを生成する工程(S102)と、前記設計データに基づいて、前記論理データと論理的に等価な複数のゲートレベルの回路データの中から所定の条件を満たす回路データを指定する制約条件を生成する工程(S103)と、を備える。実施形態の論理回路設計方法は、前記制約条件のもとで、前記論理データに基づいてゲートレベルの回路データを生成する工程(S103)をさらに備える。
【選択図】図2
Description
本発明の実施形態は、論理回路設計方法、論理回路設計プログラム、および論理回路設計システムに関する。
電子計算機を用いたデジタル論理回路の設計においては、設計者が作成したソースコードに基づいて、実際のトランジスタセルレベルの回路データを合成するソフトウェアツールである論理合成CADが用いられる。設計者は、まず、RTL(Register Transfer Level:レジスタ転送レベル)と呼ばれるレベル(設計抽象度)での回路動作を記述するための設計用記述言語を用いてソースコードを作成する。これをRTL設計と言い、RTL設計では、回路の動作をレジスタ(フリップフロップなど)間の信号の流れ(データ転送)とそれに対する論理演算の組み合わせで構成する。RTL設計によるソースコードで記載された動作記述に基づいて、論理合成CADによって、実際のトランジスタセルレベルの回路データ(ネットリスト)が作成(合成)される。
論理合成CADにおいては、RTL設計のソースコードからそれに対応する論理式を表現するゲートレベルの中間データにまず変換される。この中間データに基づいて、半導体ベンダが提供するゲート回路やフリップフロップを定義してあるテクノロジライブラリを用いてゲートレベルからトランジスタセルレベルへのマッピング(テクノロジライブラリマッピング)が行われる。その後、さらに不要なトランジスタセルを削除するなどして処理速度や回路規模の適正化などのための最適化を経てトランジスタセルレベルの回路データが作成される。
上述したRTL設計のソースコードに対応する論理式と論理的に等価なトランジスタセルレベルの回路データは一般に複数存在し得るが、論理合成CADは上記したテクノロジライブラリマッピングと最適化を経てその中から1つのトランジスタセルレベルの回路データを作成する。しかしながら、従来の論理合成CADでは、回路規模・動作速度・消費電力についての最適化は図られるものの、2つ以上のクロックが存在するシステムにおけるクロックの乗り替え回路(CDC:Clock Domain Crossing、クロックドメインクロッシング)、或いは、規定クロックの1サイクルより長いサイクルで設計されるマルチサイクルパス回路などが設計対象となった場合において、設計者の意図を論理合成CADに伝える手段がなかった。そのため、設計者の意図しないトランジスタセルレベルの回路データが合成されてしまう可能性があった。すなわち、論理的には等価であるが設計意図が反映されないゲートレベルの回路データが合成されてしまうおそれがあった。その結果、回路の誤動作を招くという問題があった。
本発明の一つの実施形態は、論理合成CADにおいて、設計意図を反映した回路データを作成することが可能な論理回路設計方法、論理回路設計プログラム、および論理回路設計システムを提供することを目的とする。
本発明の一つの実施形態の論理回路設計方法は、レジスタトランスファレベルの記述を含んだ設計データに基づいて、前記レジスタトランスファレベルの記述に対応する論理データを生成する工程と、前記設計データに基づいて、前記論理データと論理的に等価な複数のゲートレベルの回路データの中から所定の条件を満たす回路データを指定する制約条件を生成する工程と、を備える。実施形態の論理回路設計方法は、前記制約条件のもとで、前記論理データに基づいてゲートレベルの回路データを生成する工程をさらに備える。
以下に添付図面を参照して、実施形態にかかる論理回路設計方法、論理回路設計プログラム、および論理回路設計システムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
(第1の実施形態)
図1は、第1の実施形態にかかる論理回路設計システム100の構成を示す図面である。論理回路設計システム100は、電子計算機が実行するCADソフトウェアにより実現される論理合成CAD部40、マウス、キーボードなどである入力部1、ディスプレイなどである出力部2、およびHDD、フラッシュメモリなどの記憶装置である記憶部30を備える。論理回路設計システム100は、パーソナルコンピュータなどの電子計算機により実現される。論理回路設計システム100を実現するハードウェアの構成を図20に示す。入力部1、出力部2、CPU101、RAM102、および記憶部30がバス104を介して接続されている。図20に示すように、記憶部30には、論理回路設計プログラムである論理合成CADプログラム103が記憶されている。CPU101は、論理合成CADプログラム103を読み出してRAM102にプログラムモジュールとして展開し、展開されたプログラムモジュールをCPU101が実行することにより図1の論理合成CAD部40として機能する。なお、図を簡単にするため、図1、5、7、および16の記憶部30において論理合成CADプログラム103は示さない。
図1は、第1の実施形態にかかる論理回路設計システム100の構成を示す図面である。論理回路設計システム100は、電子計算機が実行するCADソフトウェアにより実現される論理合成CAD部40、マウス、キーボードなどである入力部1、ディスプレイなどである出力部2、およびHDD、フラッシュメモリなどの記憶装置である記憶部30を備える。論理回路設計システム100は、パーソナルコンピュータなどの電子計算機により実現される。論理回路設計システム100を実現するハードウェアの構成を図20に示す。入力部1、出力部2、CPU101、RAM102、および記憶部30がバス104を介して接続されている。図20に示すように、記憶部30には、論理回路設計プログラムである論理合成CADプログラム103が記憶されている。CPU101は、論理合成CADプログラム103を読み出してRAM102にプログラムモジュールとして展開し、展開されたプログラムモジュールをCPU101が実行することにより図1の論理合成CAD部40として機能する。なお、図を簡単にするため、図1、5、7、および16の記憶部30において論理合成CADプログラム103は示さない。
論理合成CAD部40は、RTLのソースコード(以下、単にRTL、又はRTLの記述とも称する)に対応する論理式を、ランダムロジックの組み合わせ論理とフリップフロップ・ラッチの保持論理のパートに分け、記述された論理を実際の回路ライブラリにマッピングを行う。論理合成CAD部40は、前処理部10および最適化部20を備える。前処理部10は、レジスタレベルの動作を記述したソースコードであるRTLの記述を含んだ回路の設計データ31を入力として、RTLの記述に対応する論理データ32、および制約条件を出力する。論理データ32は、RTLのソースコードに対応する論理式を表現するゲートレベルの回路データである。制約条件は、論理データ32と論理的に等価な複数のゲートレベルの回路データの中から所定の条件を満たす回路データを指定する。
前処理部10は、論理データ生成部11および制約条件抽出部12を備える。論理データ生成部11は、設計データ31に基づいてRTLの記述に対応する論理データ32を生成する。制約条件抽出部12は、論理データ32と論理的に等価な複数のゲートレベルの回路データの中から所定の条件を満たす回路データを指定する制約条件を出力する。制約条件抽出部12は、制約条件を抽出するに際し、設計データ31に記載されたRTLの記述に基づいてもよいし、設計データ31に含まれるタイミング制約情報などのRTLの記述以外の情報に基づいてもよいし、或いは、RTLの記述に対応する論理データ32に基づいて当該条件を抽出してもよい。最適化部20は、制約条件抽出部12が出力した制約条件のもとで、論理データ32に基づいてゲートレベルの回路データ33を生成する。回路データ33は、トランジスタセルレベルの接続関係を表現したデータであってネットリストとも呼ばれる。なお、設計データ31、論理データ32、および回路データ33は、記憶部30に保持される。
論理回路設計システム100による論理回路設計方法のフローチャートを図2に示す。まず、RTLの記述を含んだ回路の設計データ31が前処理部10に入力される(ステップS101)。ここで、設計データ31は、例えば以下の(RTL記述例1)に示すようなRTLの記述を含んでいる。なお、以後の説明におけるRTLの記述は、全てVerilogでの記載を例として示す。
(RTL記述例1)
if(EN==1'b1) begin
if(SEL==1'b0) begin
Z<=D1;
end else begin
Z<=D2;
end
end else begin
Z<=1'b0
End
if(EN==1'b1) begin
if(SEL==1'b0) begin
Z<=D1;
end else begin
Z<=D2;
end
end else begin
Z<=1'b0
End
上記RTLの記述において、1行目のif文の中の条件「EN==1'b1」は、イネーブル信号ENが1ビット信号で値「1」をとるならば(「1'b」は1ビットの信号を意味している)、以下の内容
if(SEL==1'b0) begin
Z<=D1;
end else begin
Z<=D2;
end
を実行する。即ち、信号SELが1ビット信号で値「0」をとるならば、ZにD1を代入(Z<=D1)し、それ以外の場合は、ZにD2を代入(Z<=D2)する。
if(SEL==1'b0) begin
Z<=D1;
end else begin
Z<=D2;
end
を実行する。即ち、信号SELが1ビット信号で値「0」をとるならば、ZにD1を代入(Z<=D1)し、それ以外の場合は、ZにD2を代入(Z<=D2)する。
そして、イネーブル信号ENが1ビット信号で「1」以外の値をとる場合(イネーブル信号ENが1ビット信号で値「0」をとる場合)は、以下の内容
Z<=1'b0
を実行する。即ち、Zに1ビット信号で値「0」を代入することを意味する。
Z<=1'b0
を実行する。即ち、Zに1ビット信号で値「0」を代入することを意味する。
まとめると、上記(RTL記述例1)の記述は、イネーブル信号ENが1ビット信号で値「1」をとるならば、Zには信号SELの値に依存してD1またはD2の値が代入され、「1」以外の値(すなわち「0」)の場合は、Zには1ビット信号で値「0」の値が代入されることを意図している。このようなRTLを記述した設計者は、通常、図3に示すような、フリップフロップ5、論理積ゲート6、およびセレクタ7を備えた回路構成が合成されることを意図している。すなわち、セレクタ7の出力とイネーブル信号ENとの論理積を論理積ゲート6で取った結果の値の信号をフリップフロップ5に入力することを意図している。
次に、論理データ生成部11は、設計データ31に含まれるRTLの記述に対応する論理データ32を生成する(ステップS102)。上記RTLの記述に対応する論理データ32は、以下の式(1)となる。
Z=EN・(D1・SEL'+D2・SEL) ・・・(1)
なお、ここで、SEL'は、SELの否定を示している。
Z=EN・(D1・SEL'+D2・SEL) ・・・(1)
なお、ここで、SEL'は、SELの否定を示している。
前述したとおり、(RTL記述例1)で示した設計データ31は、回路設計者が、セレクタ7の出力とイネーブル信号ENとの論理積を論理積ゲート6で取った結果の値の信号をフリップフロップ5に入力するという設計意図に基づいて作成したものである。このような設計意図は、(RTL記述例1)の一番外のif文のネスト(if(EN==1'b1)以下のネスト)の記述により表現されている。しかしながら、従来の論理合成CADにおいては、このような設計意図を理解することなく、後述する最適化において、式(1)の論理式を表現するトランジスタセルレベルの回路データを作成していた。
そこで、本実施の形態にかかる論理合成CAD部40においては、このような設計意図を明示的に抽出する。このような設計意図を抽出するためには、具体的には、信号のクロック情報を利用したり、あるいはRTLの記述に追加的な記載を付加したり、RTLの記述とは別にタイミング情報を利用するなど、何らかの明示的な手段で設計データ31に別途含ませた情報を利用する。
そして、制約条件抽出部12が設計データ31或いは設計データ31から求められた論理データ32に基づいて、上述した設計意図に基づいた回路に対する制約条件を抽出する(ステップS103)。ここで抽出された制約条件は、セレクタ7の出力に対してとイネーブル信号ENとの論理積を取った信号をフリップフロップ5に入力するという回路構成を固定し、この後の最適化においてその部分は変更しないようにすることである。
最後に、最適化部20は、抽出された制約条件のもとで、半導体ベンダが提供するゲート回路やフリップフロップを定義してあるテクノロジライブラリを用いて処理速度や回路規模を考慮した最適化を実行して回路データ33を生成する(ステップS104)。最適化部20は、抽出された制約条件のもとで、式(1)で示される論理データ32と論理的に等価なトランジスタレベルの回路データとして図3に示すような回路データ33を生成する。式(1)で示される論理データ32と論理的に等価なトランジスタレベルの回路データとしては図4に示すようなものがある。しかし本第1の実施形態によれば、制約条件により設計意図を反映した図3に示すような回路データ33が生成される。
従来は、RTL記述し回路を設計する段階では、設計の前提条件について記述する術がないため、RTLから論理合成を行なう場合、論理的に等価であり、かつ論理合成の制約に違反しなければ、その範囲でどのような回路データが作成されるかについて設計者の意図を反映させることはできなかった。しかし、第1の実施形態によれば、回路設計データに基づいて回路制約条件が生成される。この回路制約条件のもとでレジスタトランスファレベルの記述に対応する論理データからゲートレベルの回路データを生成する論理合成CADによる最適化を実行する。その結果、回路設計者の設計意図を反映した回路データを生成するという効果を得ることができる。
以下の第2乃至4の実施形態において、より具体的な他の実施形態についての説明を行う。なお、第2乃至4の実施形態においても、第1の実施形態と同様に、図20のCPU101が、論理合成CADプログラム103を読み出してRAM102にプログラムモジュールとして展開し、展開されたプログラムモジュールをCPU101が実行することにより論理合成CAD部40A(図5)、40B(図7)、あるいは40C(図16)として機能する。
(第2の実施形態)
論理回路の設計において、非同期パスもしくは、同期回路内のクロックで規定される1サイクル以内にタイミングパスを収束させない例外箇所が存在する場合がある。そのような場合は、設計者は、例外でない箇所に対しては1サイクル以内にタイミングを満たすことを保証する制御信号を用いる。そして、非同期もしくは例外として扱う箇所が、続く後段の論理ブロックに伝播しないように遮断する回路をRTLで記述する。具体的には、制御信号であるイネーブル信号ENは信号SELの値が変化した1サイクル後に変化するということを前提とし、最後はイネーブル信号ENで出力のタイミングを規定するという意図をもって、設計者はRTLのソースコードを記述することがある。その一例は、例えば上記した(RTL記述例1)である。
論理回路の設計において、非同期パスもしくは、同期回路内のクロックで規定される1サイクル以内にタイミングパスを収束させない例外箇所が存在する場合がある。そのような場合は、設計者は、例外でない箇所に対しては1サイクル以内にタイミングを満たすことを保証する制御信号を用いる。そして、非同期もしくは例外として扱う箇所が、続く後段の論理ブロックに伝播しないように遮断する回路をRTLで記述する。具体的には、制御信号であるイネーブル信号ENは信号SELの値が変化した1サイクル後に変化するということを前提とし、最後はイネーブル信号ENで出力のタイミングを規定するという意図をもって、設計者はRTLのソースコードを記述することがある。その一例は、例えば上記した(RTL記述例1)である。
(RTL記述例1)で記述された論理回路データにおいて、設計者が意図しているのは、図3に示すようなゲートレベルの回路データである。この回路構成に従って論理積ゲート6から出力されてフリップフロップ5に入力される信号Zの論理式は上述した式(1)のようになる。
図3の例では、信号SELの値が変化した後、最初のクロックの立ち上がりでイネーブル信号ENが変化することがフリップフロップ5への入力信号に対する条件となる。すなわち、イネーブル信号ENでフリップフロップ5への入力に制限をかけることができる回路になっている。
しかしながら、従来は、RTLのソースコードを記述して回路を設計する段階では、設計の前提条件について記述する術がなかった。そのため、RTLのソースコードから論理合成を行なう場合において、論理的に等価でありかつ論理合成の制約に違反しなければ、途中の信号の変化タイミングについては、考慮されることはなかった。この結果、非同期クロックの論理回路間の信号の受け渡し時の制御信号が支配的でなくなる等、RTLのソースコードを記述した回路設計者の意図しないタイミングで変化する信号が伝搬する回路が合成されてしまう可能性があった。
具体的には、(RTL記述例1)で記述された論理回路データに対して、論理合成CADによって図4に示すような、設計者の意図とは異なるゲートレベルの回路データが生成されてしまうことがある。これは、以下に述べるように図4に示すような回路データも(RTL記述例1)に対応する論理式と論理的に等価であるからである。図4の回路構成に従ってセレクタ7から出力されてフリップフロップ5に入力される信号Zの論理式は以下のようになり、図3の信号Zと論理的には等価である。
Z=(EN・D1)・SEL'+(EN・D2)・SEL=EN・(D1・SEL'+D2・SEL)
Z=(EN・D1)・SEL'+(EN・D2)・SEL=EN・(D1・SEL'+D2・SEL)
即ち、図4のゲートレベルの回路データにおいては、RTL記述における設計者の意図に反して、信号SELがイネーブル信号ENの後段に入力されるように配置されている。即ち、図4のゲートレベルの回路データは図3のゲートレベルの回路データと論理的には等価であるものの、イネーブル信号ENの制限がなく、信号SELがフリップフロップ5へ入力される回路構成となっている。
図5は、第2の実施形態にかかる論理回路設計システム200の構成を示す図面である。本実施の形態においては、条件付きソースコード34およびタイミング制約情報36が図1の設計データ31に相当する。前処理部10Aは、ソースコード解析部13および論理データ生成部11Aを備える。ソースコード解析部13は、図1の制約条件抽出部12の機能を含んでおり、例えばRTLの設計言語の文法チェックなども行う。マッピング部21および回路最適化部22は、図1の最適化部20に相当する。マッピング部21は、半導体ベンダが提供するゲート回路やフリップフロップを定義してあるテクノロジライブラリを用いてゲートセルからトランジスタセルレベルへのマッピング(テクノロジライブラリマッピング)を実行する。回路最適化部22は、不要なトランジスタセルを削除するなどして処理速度や回路規模の適正化などのための最適化を実行して回路データ33を生成する。条件付きソースコード34は、例えば、図3のフリップフロップ5の動作を記述する以下のようなものである。
//受信FF
always(posedge@Clock)
#pragma(EN&SEL_OUT)
if(EN==1'b1) begin
Z<=SEL_OUT;
end else begin
Z<=1'b0;
End
assign SEL_OUT=SEL?D2:D1;
always(posedge@Clock)
#pragma(EN&SEL_OUT)
if(EN==1'b1) begin
Z<=SEL_OUT;
end else begin
Z<=1'b0;
End
assign SEL_OUT=SEL?D2:D1;
上記の条件付きソースコード34の中で、図3の論理積ゲート6を規定するのが、“always(posedge@Clock)”から“End”までの部分である。“always(posedge@Clock)”は、Clock(クロック)の立ち上がりエッジの度に、以下の“End”までを実行するという命令文である。そして、次の“#pragma(EN&SEL_OUT)”がソースコードに付加された条件である。この1行をソースコード34に追加することによりソースコード解析部13がイネーブル信号ENと他の信号SEL_OUTとの論理積(&)をフリップフロップ5の保持値とするという条件を抽出することが可能になる。
論理データ生成部11Aが、RTLの記述をコンパイルして論理データ32に変換するコンパイラとして機能する。“#pragma(EN&SEL_OUT)”の1行は、コンパイル前にプリプロセッサに相当するソースコード解析部13で解釈される行であり、RTLの記述を論理データ32に変換する際には無視される行である。このようにして、設計者はRTL記述の中に設計意図に基づいた条件を埋め込む。なお、“#pragma”の表記はC言語におけるプリプロセッサへの表記方法を引用した例であり、RTL記述の中において設計意図に基づいた条件を示す方法はこの例に限定されるものではない。
“#pragma(EN&SEL_OUT)”以降の if(EN==1'b1) begin からEnd までの記述は、イネーブル信号ENが1ビット信号で値「1」をとるならば、ZにSEL_OUTを代入(Z<=SEL_OUT)し、それ以外の場合は、Zに1ビット信号の値「0」を代入(Z<=1'b0)することを意味している。
その後、1行空行を挟んだ後の“assign SEL_OUT=SEL?D2:D1;”の部分は、セレクタ7を規定している。これは、SELが真(1)の場合のSEL_OUTがD2で、偽(0)の場合のSEL_OUTがD1を意味する。即ち、SEL_OUT= D1・SEL'+D2・SELを意味する。従って、“assign SEL_OUT=SEL?D2:D1;”は以下の記載と同じ意味である。
if(SEL==1'b0) begin
SEL_OUT<=D1;
end else begin
SEL_OUT<=D2;
end
SEL_OUT<=D1;
end else begin
SEL_OUT<=D2;
end
ところで、設計者が“#pragma(EN&SEL_OUT)”で記述したように、イネーブル信号ENでフリップフロップ5への入力に制限をかける設計意図を持つ理由は、図3においてセレクタ7の出力信号であるSEL_OUTがマルチサイクルのタイミング制約を持つ信号だからである。すなわち、イネーブル信号ENは、マルチサイクルパスであるSEL_OUTと論理積演算される(ANDゲートをかけられる)。このようなマルチサイクルパスのタイミングの制約に関する情報であるタイミング制約情報36も論理合成CAD部40に提供される。
論理回路設計システム200による論理回路設計方法のフローチャートを図6に示す。まず、ソースコード解析部13が条件付きソースコード34から“#pragma(EN&SEL_OUT)”の部分を解釈して、イネーブル信号ENと他の信号SEL_OUTとの論理積(&)をフリップフロップ5の保持値にするという制約条件を抽出する(ステップS201)。ソースコード解析部13は、上述したようにここでは、一種のプリプロセッサとして機能する。次に、論理データ生成部11Aは、条件付きソースコード34の“#pragma(EN&SEL_OUT)”を除いた部分に基づいて論理データ32を生成する(ステップS202)。ここで、ソースコード解析部13は、上述した制約条件に基いてイネーブル信号ENと信号SEL_OUTの論理積をとる形式の論理データ32を生成するように論理データ生成部11Aに指示する。即ち、ソースコード解析部13は、論理データ生成部11Aに、
(EN・D1)・SEL'+(EN・D2)・SEL
ではなくて、
EN・(D1・SEL'+D2・SEL)
の形式の論理データ32を生成するように指示する。
(EN・D1)・SEL'+(EN・D2)・SEL
ではなくて、
EN・(D1・SEL'+D2・SEL)
の形式の論理データ32を生成するように指示する。
さらに、ソースコード解析部13が指定したイネーブル信号ENと信号SEL_OUTの論理積の部分は論理積ゲート6として固定するという条件のもとで、マッピング部21は、トランジスタセルレベルへのマッピングを実行し、回路最適化部22は最適化を実行して図3に相当する回路データ33を生成する(ステップS203)。なお、回路データ33の生成においては、タイミング制約情報36もマッピング部21に入力され、最適化において考慮される。
第2の実施形態によれば、ソースコード解析部13が、条件付きのソースコードから設計意図が反映された制約条件を抽出し、当該制約条件のもとで回路データの論理合成CADによる最適化が実行される。その結果、設計意図を反映した回路データを得ることができる。
(第3の実施形態)
図7は、第3の実施形態にかかる論理回路設計システム300の構成を示す図面である。本実施の形態においては、前処理部10Bは、ソースコード解析部13B、論理データ生成部11B、および非同期回路抽出部14を備える。ソースコード35が図1の設計データ31に相当し、非同期回路抽出部14が図1の制約条件抽出部12に相当する。マッピング部21Bおよび回路最適化部22は、図1の最適化部20に相当し、それぞれ第2の実施形態と同様な機能を有する。
図7は、第3の実施形態にかかる論理回路設計システム300の構成を示す図面である。本実施の形態においては、前処理部10Bは、ソースコード解析部13B、論理データ生成部11B、および非同期回路抽出部14を備える。ソースコード35が図1の設計データ31に相当し、非同期回路抽出部14が図1の制約条件抽出部12に相当する。マッピング部21Bおよび回路最適化部22は、図1の最適化部20に相当し、それぞれ第2の実施形態と同様な機能を有する。
図8のRTLで記述される回路は、2つのクロックCLK1およびCLK2それぞれにより駆動される論理ブロックの間でのデータ受け渡しが生じるクロックの乗り替え回路(CDC:Clock Domain Crossing)を含んでいる回路の例である。イネーブル信号ENはCLK2で駆動されており、RTLの設計意図は、データが有効であるタイミングを示すイネーブル信号EN=“1”のときに、”Latch_DO”の値を保持するフリップフロップに”DO”のデータを取り込むことである。それ以外のEN=“0”のタイミングでは、図9の信号タイムチャートに示すように”Latch_DO”の値は常に8ビットの値“0”で固定されていることが要求される。
このような場合に図8のRTLを記述した設計者が想定しているのは、図10に示すような回路である。図10の例では、RTLで記述された通り、”Latch_DO”の値を保持するフリップフロップ5の直前の論理積ゲート6にイネーブル信号ENがマッピングされる。このことにより、イネーブル信号EN=“0”のタイミングでは”Latch_DO”へ入力される信号は常に8ビットの値“0”となる。”Latch_DO”の値を論理式で示すと
Latch_DO=EN・(D1・SEL'+D2・SEL)
となる。しかし、EN・(D1・SEL'+D2・SEL)=((EN・D1)'・SEL'+(EN・D2)'・SEL)'なので、従来の論理合成CADにおいては、Latch_DO=((EN・D1)'・SEL'+(EN・D2)'・SEL)'の論理形式を反映した、図11に示すような回路が合成される可能性があった。
Latch_DO=EN・(D1・SEL'+D2・SEL)
となる。しかし、EN・(D1・SEL'+D2・SEL)=((EN・D1)'・SEL'+(EN・D2)'・SEL)'なので、従来の論理合成CADにおいては、Latch_DO=((EN・D1)'・SEL'+(EN・D2)'・SEL)'の論理形式を反映した、図11に示すような回路が合成される可能性があった。
しかし、図11が表現するLatch_DO=((EN・D1)'・SEL'+(EN・D2)'・SEL)'は論理式としては図10と等価であるものの、EN=“0”とすると、Latch_DO=(SEL'+SEL)'となる。この場合、論理的には(SEL'+SEL)'=0となるが、実際の回路において信号SELが変化するタイミングと、信号SELの反転信号である信号SEL'が変化するタイミングとの間にタイムラグが生じて、SEL'+SELが“1”を維持できずに“0”となってしまう期間が発生する可能性がある。即ち、図12に示すように、信号SELの信号変化が生じると上記タイムラグに応じた期間の幅でLatch_DO=(SEL'+SEL)'=“1”となるグリッチを生み出す可能性がある。その結果、”Latch_DO”=(SEL'+SEL)'の値が“0”を維持できない期間が発生することがある。
この問題の原因は、設計者がLatch_DOの直前の論路回路に、制御信号としてイネーブル信号ENが入力されるようにRTLを記述したにも関わらず、従来の論理合成CADにおいては、タイミング・面積等の最適化の結果として、その設計意図に反して論理式の最適化が行われて、この意図が反映されない回路を合成してしまうことにある。
上記のような問題を解決するために、論理回路設計システム300は、RTL設計の段階で記述したソースコード35のブロックを論理合成における仮想的なグループとして維持する。そして各グループ内の論理ブロックの中で、CDCの完全同期回路ではない箇所を推定し、この箇所を分離して固定することにより設計者の意図に反した論理合成が行なわれることを防止する。ここで言うブロックとは、例えば、Verilogの記述ならば、always文の”begin”から”end”までの範囲や、assign文のセミコロン”;”までの範囲などを指す。本実施の形態にかかる論理回路設計システム300の非同期回路抽出部14は、上記した設計意図をソースコード35から抽出する。
次に、図7,8,13,14を用いて本実施の形態にかかる論理回路設計システム300の論理回路設計方法を説明する。図13は、論理回路設計システム300による論理回路設計方法のフローチャートを示す図である。まず、図8に示したソースコード35は、ソースコード解析部13Bによる文法チェックなど経て複数のブロックに分離される。論理データ生成部11Bは、各ブロックについて、図14に示すような断片化された部分ごとの論理セルに変換する(ステップS301)。ここで変換されるのは、最終的な論理データ32の全体ではなく、その前段階で作成されグループごとに断片化された部分ごとの論理データであって論理データ32の一部である。
即ち、論理合成CAD部40Bは、ソースコード35に記載された全てのRTL記述を解析し、RTL記述のブロックに従い仮想的なグループを設け、その中で記述される論理ブロックを対象に論理合成CAD用の論理セルに変換していく。またこの際には、RTLの記述の優先順位に従って、論理セルに変換する。例えば、if文であれば一番外のネストが、回路の最終段に来るように論理セルに変換する。
具体的には、図8のRTL記述のブロックAは、図14の論理データの一部であるグループAに変換され、図8のRTL記述のブロックBは、図14の論理データの一部であるグループBに変換され、図8のRTL記述のブロックCは、図14の論理データの一部であるグループCに変換される。
ところで、図14に示されるように、ここで生成されたグループごとに断片化された部分ごとの論理データには各信号を駆動するクロックの情報も含まれている。非同期回路抽出部14は、この部分ごとの論理データにおいて、複数の異なるクロックでそれぞれ駆動される複数の信号が混在して入力されるグループを抽出する。即ち、非同期回路抽出部14は、完全同期回路ではない非同期回路のグループをこの後の最適化において回路構成を固定すべき制約条件として抽出する(ステップS302)。即ち、図14のブロックBにおいて、CLK1で駆動される信号DOとCLK2で駆動されるイネーブル信号ENは、フリップフロップ5に入力される論理積ゲート6に入力されなければならないという制約条件が抽出される。従って、制約条件は複数の異なるクロックでそれぞれ駆動される複数の信号が混在している非同期回路の箇所の情報を含んでいる。具体的には、RTL記述のブロックに従って図8で示されるRTL記述からマッピングされた図14で示される断片化された部分ごとの論理データのグループのうち、複数のクロックであるCLK1およびCLK2で動作する複数の論理ブロックが含まれるグループBについては、これ以降の処理では、回路構成が固定化される。すなわち、グループBについては、論理回路の最適化が行われないような固定化の属性を付加する。
非同期回路抽出部14は、この制約条件に基いて、イネーブル信号ENと信号DOとの論理積をフリップフロップ5の保持値とするという論理表現を有する論理データ32を生成するように論理データ生成部11Bに指示する。そして論理データ生成部11Bは、この制約条件に基づいて、論理データ32を生成する(ステップS303)。
さらに、非同期回路抽出部14が指示したイネーブル信号ENと信号DOの論理積の演算部分は論理積ゲート6として固定するという条件のもとで、マッピング部21Bは、トランジスタセルレベルへのマッピングを実行し、回路最適化部22は最適化を実行する。即ち、図15に示すように、ステップS302で固定化の属性が付加されたXの論理回路は固定化され、それ以外の部分は完全な同期回路とみなし、速度・面積・消費電力の観点から、従来通り論理の最適化を実行する。その結果、図15に示すように、Xの部分の回路構成を固定した状態で最適化が施された回路データ33が生成される(ステップS304)。
なお、マッピング部21Bにおけるマッピングにおいては、テクノロジライブラリにAND・OR/NAND・NORのセルがあれば、設計者が意図した論理として直接マッピングすることが可能であるが、テクノロジライブラリに所望のセルがない場合もあり得る。そのような場合であっても、最終的にはテクノロジライブラリに存在する何らかのセルを選択する必要がある。例えば、上述したような制約条件が存在する場合は、最終的な回路データ33において、グリッチが発生しないような組み合わせ論理となるセルを選択するようにする。すなわち、開始端での信号の立ち上り(Rise)、または立ち下り(Fall)の変化から、終了端での立ち上りパスと立ち下りパスの両方が発生するような冗長な論理回路を生成させないことが可能となる。例えば、A・B=A・(A'+B)の関係から、A・Bの論理をA・(A'+B)の論理で構成することにより、A・A'によってAからの立ち上りパスとA'の立ち下りパスの両経路が発生してしまうことを防ぐことが可能となる。
第3の実施形態によれば、非同期回路抽出部14が、論理データの中から複数のクロックが混在している非同期な回路を抽出して制約条件とする。そして当該制約条件のもとで回路データの論理合成CADによる最適化が実行される。その結果、設計意図を反映した回路データを得ることができる。
(第4の実施形態)
次に図16を用いて、第4の実施形態にかかる論理回路設計方法を説明する。図16は、第4の実施形態にかかる論理回路設計システム400の構成を示す図面である。本実施の形態においては、前処理部10Cは、ソースコード解析部13C、論理データ生成部11C、および制約条件抽出部12Cを備える。ソースコード35およびタイミング制約情報36が図1の設計データ31に相当する。マッピング部21Cおよび回路最適化部22は、図1の最適化部20に相当し、それぞれ第2の実施形態と同様な機能を有する。
次に図16を用いて、第4の実施形態にかかる論理回路設計方法を説明する。図16は、第4の実施形態にかかる論理回路設計システム400の構成を示す図面である。本実施の形態においては、前処理部10Cは、ソースコード解析部13C、論理データ生成部11C、および制約条件抽出部12Cを備える。ソースコード35およびタイミング制約情報36が図1の設計データ31に相当する。マッピング部21Cおよび回路最適化部22は、図1の最適化部20に相当し、それぞれ第2の実施形態と同様な機能を有する。
本実施の形態におけるソースコード35は、図17に示した内容である。設計者がソースコード35で意図しているのは図18に示す回路である。この回路においては、クロック信号としてCLKで駆動されるDATA1[7:0]([7:0]は、ビット桁が0ビットの桁から7ビットの桁までの計8桁、即ち8ビットのデータであることを意味する)およびDATA2[7:0]に対して、加算器9による加算結果ADD_ANS[8:0]は、DATA1[7:0]およびDATA2[7:0]の値が変化する時点からCLKの2サイクル以内に結果が出ればよいマルチサイクルパスになっている。これは、加算器9による演算が1サイクル以内に終了しないからである。一般に演算器の処理を1サイクル以内に終了させようとすると回路規模が増大してしまう。従って、適切な回路規模で加算器9を実現すると演算が1サイクル以内に終了しなくなる。
従って、セレクタ7の出力は、CLKの2サイクルに1回“1”となる計算可能信号CALC_READYによってフリップフロップ5への転送が許可される。計算可能信号CALC_READYは、DATA1,2の計算結果であるセレクタ7の出力をフリップフロップ5へ転送することを許可する信号である。即ち、図18は、マルチサイクルパスである加算器9の出力ADD_ANS[8](ADD_ANS[8:0]の8ビット目)のタイミング制約が、論理積ゲート6に入力される計算可能信号CALC_READYによって与えられた回路である。
フリップフロップ5への入力信号のタイミングを計算可能信号CALC_READYによって制御する意図で記載されたRTLの記述は、図17に示したソースコードのブロックDの記述である。従って、本実施の形態においても、第3の実施形態と同様に、if文の一番外のネスト(if(CALC_READY==1'b1)beginからそれに対応するendまで)が、回路の最終段に来るようにセルがマッピングされることが望まれる。しかし、図18の回路においてはクロック信号がCLKの1つだけなので、ソースコード35を論理データ生成部11Cがクロック情報を含んだグループごとに断片化された部分的な論理データに変換したとしても、第3の実施形態のようにそこから固定すべき回路の箇所を抽出することは出来ない。そこで、本実施の形態においては、上述したタイミング制約を指定したタイミング制約情報36をソースコード35と共に前処理部10Cに与える。
次に、図19を用いて第4の実施形態にかかる論理回路設計方法を説明する。図19は論理回路設計システム400による論理回路設計方法のフローチャートである。まず、ソースコード35と共にタイミング制約情報36が前処理部10Cに与えられる(ステップS401)。具体的には、ソースコード35はソースコード解析部13Cに与えられ、タイミング制約情報36は制約条件抽出部12Cに与えられる。タイミング制約情報36の具体的な記載は、例えば以下のような記載である。
set_multicycle_path -through ADD_ANS[8:0]
これによりマルチサイクルパスである加算器9の出力ADD_ANS[8:0]を指定する。
set_multicycle_path -through ADD_ANS[8:0]
これによりマルチサイクルパスである加算器9の出力ADD_ANS[8:0]を指定する。
次に、ソースコード解析部13Cを経たソースコード35が、論理データ生成部11Cによりブロックごとに断片化された部分ごとの論理データに変換される(ステップS402)。具体的には、図17のRTL記述のブロックAは、図18のグループAに対応する論理データの一部に変換され、図17のRTL記述のブロックBは、図18のグループBに対応する論理データの一部に変換される。図17のRTL記述のブロックCは、図18のグループCに対応する論理データの一部に変換され、図17のRTL記述のブロックDは、図18のグループDに対応する論理データの一部に変換される。ちなみに、図17のRTL記述のブロックEは、ブロックBで用いられる加算器の関数を定義しているので図18との対応はない。
そして、制約条件抽出部12Cはタイミング制約箇所を制約条件として抽出する(ステップS403)。具体的には、上記したタイミング制約情報36に基づいて、マルチサイクルパスである加算器9の出力ADD_ANS[8:0]が入力となっている論理表現のグループを抽出する。即ち、ADD_ANS[8:0]が入力となっている図18のグループDで示したTMP_FF_boundaryに相当する論理表現のグループについては、今後、固定化して論理の最適化が行われないような属性を付加する。
制約条件抽出部12Cは、この制約条件に基いて、計算可能信号CALC_READYとセレクタ7との論理積をフリップフロップ5の保持値とするという論理表現を有する論理データ32を生成するように論理データ生成部11Cに指示する(ステップS404)。
さらに、制約条件抽出部12Cが指示した計算可能信号CALC_READYとセレクタ7との論理積の演算部分は論理積ゲート6として固定するという条件のもとで、マッピング部21Cは、トランジスタセルレベルへのマッピングを実行し、回路最適化部22は最適化を実行する。即ち、ステップS403で固定化の属性が付加された図18のグループDの部分は固定化され、それ以外の部分は完全な同期回路とみなし、速度・面積・消費電力の観点から、従来通り論理の最適化を実行する。その結果、図18に示すように、グループDのTMP_FF_boundaryの回路構成を固定した状態で最適化が施された回路データ33が生成される(ステップS405)。
なお、マッピング部21Cにおけるマッピングにおいては、テクノロジライブラリにAND・OR/NAND・NORのセルがあれば、設計者が意図した論理として直接マッピングすることが可能であるが、テクノロジライブラリに所望のセルがない場合もあり得る。そのような場合であっても、最終的にはテクノロジライブラリに存在する何らかのセルを選択する必要がある。上述したような制約条件が存在する場合は、最終的な回路データ33において、グリッチが発生しないような組み合わせ論理となるセルを選択するようにする。すなわち、開始端での信号の立ち上り(Rise)、または立ち下り(Fall)の変化から、終了端での立ち上りパスと立ち下りパスの両方が発生するような冗長な論理回路を生成させないことが可能となる。例えば、A・B=A・(A'+B)の関係から、A・Bの論理をA・(A'+B)の論理で構成することにより、A・A'によってAからの立ち上りパスとA'の立ち下りパスの両経路が発生してしまうことを防ぐことが可能となる。
第4の実施形態によれば、マルチサイクルパスの信号へタイミング制約をかけるための信号が入力される箇所をタイミング制約情報として論理合成CADに与える。この制約情報に基づいた制約条件のもとで回路データの論理合成CADによる最適化が実行される。その結果、設計意図を反映した回路データを得ることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 入力部、2 出力部、5 フリップフロップ、6 論理積ゲート、7 セレクタ、10 前処理部、20 最適化部、30 記憶部、40 論理合成CAD部、100,200,300,400 論理回路設計システム。
Claims (18)
- レジスタトランスファレベルの記述を含んだ設計データに基づいて、前記レジスタトランスファレベルの記述に対応する論理データを生成する工程と、
前記設計データに基づいて、前記論理データと論理的に等価な複数のゲートレベルの回路データの中から所定の条件を満たす回路データを指定する制約条件を生成する工程と、
前記制約条件のもとで、前記論理データに基づいてゲートレベルの回路データを生成する工程と、
を備える論理回路設計方法。 - 前記設計データは、前記レジスタトランスファレベルの記述の中に前記制約条件を示す記述を含む、
請求項1に記載の論理回路設計方法。 - 前記レジスタトランスファレベルの記述のブロックに対応する部分ごとの論理データを生成する工程を更に備え、
前記制約条件を生成する工程は、前記部分ごとの論理データに基づいて、前記制約条件を生成する
請求項1に記載の論理回路設計方法。 - 前記制約条件は、前記部分ごとの論理データにおいて複数の異なるクロックでそれぞれ駆動される複数の信号が混在している箇所の情報を含み、
前記回路データを生成する工程は、前記箇所を最適化の対象としないで前記回路データを生成する
請求項3に記載の論理回路設計方法。 - 前記レジスタトランスファレベルの記述のブロックに対応する部分ごとの論理データを生成する工程を更に備え、
前記設計データは、マルチサイクルパスの信号を指定するタイミング制約情報を含み、
前記制約条件は、前記部分ごとの論理データにおいて前記マルチサイクルパスの信号が入力されている箇所の情報を含み、
前記回路データを生成する工程は、前記箇所を最適化の対象としないで前記回路データを生成する
請求項1に記載の論理回路設計方法。 - 前記制約条件により指定される前記所定の条件を満たす回路データにおいては、当該回路データの第1論理回路に入力される信号を出力する第2論理回路に、前記制約条件で指定された信号が入力される
請求項1〜5のいずれか1項に記載の論理回路設計方法。 - 電子計算機に実行させるためのプログラムであって、
レジスタトランスファレベルの記述を含んだ設計データに基づいて、前記レジスタトランスファレベルの記述に対応する論理データを生成する手順と、
前記設計データに基づいて、前記論理データと論理的に等価な複数のゲートレベルの回路データの中から所定の条件を満たす回路データを指定する制約条件を生成する手順と、
前記制約条件のもとで、前記論理データに基づいてゲートレベルの回路データを生成する手順と、
を備える論理回路設計プログラム。 - 前記設計データは、前記レジスタトランスファレベルの記述の中に前記制約条件を示す記述を含む、
請求項7に記載の論理回路設計プログラム。 - 前記レジスタトランスファレベルの記述のブロックに対応する部分ごとの論理データを生成する手順を更に備え、
前記制約条件を生成する手順は、前記部分ごとの論理データに基づいて、前記制約条件を生成する
請求項7に記載の論理回路設計プログラム。 - 前記制約条件は、前記部分ごとの論理データにおいて複数の異なるクロックでそれぞれ駆動される複数の信号が混在している箇所の情報を含み、
前記回路データを生成する手順は、前記箇所を最適化の対象としないで前記回路データを生成する
請求項9に記載の論理回路設計プログラム。 - 前記レジスタトランスファレベルの記述のブロックに対応する部分ごとの論理データを生成する手順を更に備え、
前記設計データは、マルチサイクルパスの信号を指定するタイミング制約情報を含み、
前記制約条件は、前記部分ごとの論理データにおいて前記マルチサイクルパスの信号が入力されている箇所の情報を含み、
前記回路データを生成する手順は、前記箇所を最適化の対象としないで前記回路データを生成する
請求項7に記載の論理回路設計プログラム。 - 前記制約条件により指定される前記所定の条件を満たす回路データにおいては、当該回路データの第1論理回路に入力される信号を出力する第2論理回路に、前記制約条件で指定された信号が入力される
請求項7〜11のいずれか1項に記載の論理回路設計プログラム。 - レジスタトランスファレベルの記述を含んだ設計データに基づいて、前記レジスタトランスファレベルの記述に対応する論理データを生成する論理データ生成部と、
前記設計データに基づいて、前記論理データと論理的に等価な複数のゲートレベルの回路データの中から所定の条件を満たす回路データを指定する制約条件を生成する制約条件抽出部と、
前記制約条件のもとで、前記論理データに基づいてゲートレベルの回路データを生成する最適化部と、
を備える論理回路設計システム。 - 前記設計データは、前記レジスタトランスファレベルの記述の中に前記制約条件を示す記述を含む、
請求項13に記載の論理回路設計システム。 - 前記論理データ生成部は、前記レジスタトランスファレベルの記述のブロックに対応する部分ごとの論理データを生成し、
前記制約条件抽出部は、前記部分ごとの論理データに基づいて、前記制約条件を生成する
請求項13に記載の論理回路設計システム。 - 前記制約条件は、前記部分ごとの論理データにおいて複数の異なるクロックでそれぞれ駆動される複数の信号が混在している箇所の情報を含み、
前記最適化部は、前記箇所を最適化の対象としないで前記回路データを生成する
請求項15に記載の論理回路設計システム。 - 前記設計データは、マルチサイクルパスの信号を指定するタイミング制約情報を含み、
前記論理データ生成部は、前記レジスタトランスファレベルの記述のブロックに対応する部分ごとの論理データを生成し、
前記制約条件は、前記部分ごとの論理データにおいて前記マルチサイクルパスの信号が入力されている箇所の情報を含み、
前記最適化部は、前記箇所を最適化の対象としないで前記回路データを生成する
請求項13に記載の論理回路設計システム。 - 前記制約条件により指定される前記所定の条件を満たす回路データにおいては、当該回路データの第1論理回路に入力される信号を出力する第2論理回路に、前記制約条件で指定された信号が入力される
請求項13〜17のいずれか1項に記載の論理回路設計システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013108384A JP2014041598A (ja) | 2012-07-23 | 2013-05-22 | 論理回路設計方法、論理回路設計プログラム、および論理回路設計システム |
US13/947,302 US8898601B2 (en) | 2012-07-23 | 2013-07-22 | Logic circuit design method, logic circuit design program, and logic circuit design system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012163017 | 2012-07-23 | ||
JP2012163017 | 2012-07-23 | ||
JP2013108384A JP2014041598A (ja) | 2012-07-23 | 2013-05-22 | 論理回路設計方法、論理回路設計プログラム、および論理回路設計システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014041598A true JP2014041598A (ja) | 2014-03-06 |
Family
ID=50067187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013108384A Pending JP2014041598A (ja) | 2012-07-23 | 2013-05-22 | 論理回路設計方法、論理回路設計プログラム、および論理回路設計システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8898601B2 (ja) |
JP (1) | JP2014041598A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014142743A (ja) * | 2013-01-23 | 2014-08-07 | Nec Corp | データ処理装置、データ処理システム、データ処理方法、及びデータ処理プログラム |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111931445B (zh) * | 2020-10-09 | 2020-12-29 | 芯华章科技股份有限公司 | 用于调试逻辑系统设计的方法、仿真器及存储介质 |
CN113158260B (zh) * | 2021-03-30 | 2023-03-31 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | SoC芯片内部数据分级防护电路 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173435B1 (en) * | 1998-02-20 | 2001-01-09 | Lsi Logic Corporation | Internal clock handling in synthesis script |
US6836877B1 (en) * | 1998-02-20 | 2004-12-28 | Lsi Logic Corporation | Automatic synthesis script generation for synopsys design compiler |
JP2001297125A (ja) | 2000-04-11 | 2001-10-26 | Nec Eng Ltd | 論理合成・遅延解析システム |
US7500205B2 (en) * | 2001-12-06 | 2009-03-03 | Synopsys, Inc. | Skew reduction for generated clocks |
US6658628B1 (en) * | 2001-12-19 | 2003-12-02 | Lsi Logic Corporation | Developement of hardmac technology files (CLF, tech and synlib) for RTL and full gate level netlists |
JP2003216672A (ja) | 2002-01-21 | 2003-07-31 | Ricoh Co Ltd | 半導体回路設計支援装置及び方法、並びに半導体回路設計支援プログラム |
US7134106B2 (en) * | 2004-04-09 | 2006-11-07 | Incentia Design Systems Corp. | Method and system for providing fast design for testability prototyping in integrated circuit designs |
US7962886B1 (en) * | 2006-12-08 | 2011-06-14 | Cadence Design Systems, Inc. | Method and system for generating design constraints |
JP4886559B2 (ja) | 2007-03-15 | 2012-02-29 | 株式会社リコー | 半導体設計支援装置、半導体設計支援方法および半導体設計支援プログラム |
US8042085B2 (en) * | 2008-09-08 | 2011-10-18 | Atrenta, Inc. | Method for compaction of timing exception paths |
US8010920B2 (en) * | 2008-12-11 | 2011-08-30 | Advanced Micro Devices, Inc. | Constraint management and validation for template-based circuit design |
-
2013
- 2013-05-22 JP JP2013108384A patent/JP2014041598A/ja active Pending
- 2013-07-22 US US13/947,302 patent/US8898601B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014142743A (ja) * | 2013-01-23 | 2014-08-07 | Nec Corp | データ処理装置、データ処理システム、データ処理方法、及びデータ処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20140047400A1 (en) | 2014-02-13 |
US8898601B2 (en) | 2014-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101061864B1 (ko) | 동기 회로 설계 표현과 비동기 회로 설계 표현간의 자동 변환을 수행하기 위한 시스템 및 방법 | |
US20140165022A1 (en) | Relative timing architecture | |
JP5910108B2 (ja) | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 | |
US9953120B2 (en) | Relative timing characterization | |
US7917882B2 (en) | Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof | |
JP2009520287A (ja) | マルチサイクル・クロック・ゲーティングのための方法および装置 | |
US8281269B2 (en) | Method of semiconductor integrated circuit device and program | |
JP5063511B2 (ja) | クロック駆動の論理回路においてタイミング・クロージャを達成するために制御ロジックのマルチソース・ネットワークを効率的に利用する方法およびシステム | |
US9223910B1 (en) | Performance and memory efficient modeling of HDL ports for simulation | |
JP2014041598A (ja) | 論理回路設計方法、論理回路設計プログラム、および論理回路設計システム | |
US8904334B2 (en) | Footprint-based optimization performed simultaneously with other steps | |
JP4221730B2 (ja) | 回路連言標準形生成方法及び回路連言標準形生成装置並びにハザードチェック方法及びハザードチェック装置 | |
JP5830955B2 (ja) | 検証装置、検証方法及び検証プログラム | |
JP2008299464A (ja) | 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置 | |
US20230110701A1 (en) | Techniques for design verification of domain crossings | |
JP2015230726A (ja) | 設計方法及び設計システム | |
JP5849973B2 (ja) | データ処理装置、データ処理システム、データ処理方法、及びデータ処理プログラム | |
JP2006201825A (ja) | 集積回路の遅延解析方法及び遅延解析プログラム | |
US20230205969A1 (en) | Techniques for modeling and verification of convergence for hierarchical domain crossings | |
US11023637B1 (en) | Hybrid deferred assertion for circuit design | |
CN110110362B (zh) | 一种使用嵌入式命令设计芯片的方法 | |
JP5531479B2 (ja) | 回路設計方法、及び回路設計プログラム | |
JP2010140147A (ja) | 半導体集積回路の設計手法 | |
WO2019216077A1 (ja) | 回路記述変換システムおよび回路記述検索システム | |
Frantskevich | Physical prototyping of microprocessor devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20151102 |