特許第6089728号(P6089728)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソシオネクストの特許一覧

特許6089728半導体装置の設計方法、プログラム及び設計装置
<>
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000002
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000003
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000004
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000005
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000006
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000007
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000008
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000009
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000010
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000011
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000012
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000013
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000014
  • 特許6089728-半導体装置の設計方法、プログラム及び設計装置 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6089728
(24)【登録日】2017年2月17日
(45)【発行日】2017年3月8日
(54)【発明の名称】半導体装置の設計方法、プログラム及び設計装置
(51)【国際特許分類】
   G06F 17/50 20060101AFI20170227BHJP
   H01L 21/82 20060101ALI20170227BHJP
   H01L 21/822 20060101ALI20170227BHJP
   H01L 27/04 20060101ALI20170227BHJP
【FI】
   G06F17/50 658V
   G06F17/50 668X
   G06F17/50 658K
   G06F17/50 666V
   G06F17/50 668S
   H01L21/82 W
   H01L27/04 D
【請求項の数】8
【全頁数】17
(21)【出願番号】特願2013-15030(P2013-15030)
(22)【出願日】2013年1月30日
(65)【公開番号】特開2014-146220(P2014-146220A)
(43)【公開日】2014年8月14日
【審査請求日】2015年10月1日
(73)【特許権者】
【識別番号】514315159
【氏名又は名称】株式会社ソシオネクスト
(74)【代理人】
【識別番号】100092152
【弁理士】
【氏名又は名称】服部 毅巖
(72)【発明者】
【氏名】浅野 宏昇
【審査官】 合田 幸裕
(56)【参考文献】
【文献】 特開2005−050500(JP,A)
【文献】 国際公開第2008/012899(WO,A1)
【文献】 特開2006−277557(JP,A)
【文献】 特開2008−118098(JP,A)
【文献】 特開2011−151100(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/50
H01L 21/82
H01L 21/822
H01L 27/04
IEEE Xplore
CiNii
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計方法であって、
プロセッサが、前記トランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、前記バックバイアス制御部からの距離と前記ノイズ量との関係を示す第1の情報を、前記プロセッサがアクセス可能な記憶装置に格納し、
前記プロセッサが、前記第1の情報に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、前記ジッタの増加量を示す第2の情報を前記記憶装置に格納し、
前記プロセッサが、前記第2の情報と、前記回路部におけるジッタの許容値を示す情報に基づき、前記回路部と前記クロック経路を配置する、
ことを特徴とする半導体装置の設計方法。
【請求項2】
前記プロセッサが、前記第1の情報を用いて、前記クロック経路に含まれるクロックバッファでのクロックの遅延量と、前記ノイズ量に基づいて、前記ジッタの増加量を求めることを特徴とする請求項1に記載の半導体装置の設計方法。
【請求項3】
前記プロセッサが、前記第1の情報を用いて、前記クロック経路に含まれる複数のクロックバッファの段数と、前記ノイズ量に基づいて、前記ジッタの増加量を求めることを特徴とする請求項1に記載の半導体装置の設計方法。
【請求項4】
前記プロセッサが、前記第1の情報を用いて、前記回路部に接続される前記クロック経路に含まれる複数のクロックバッファのうち、前記バックバイアス制御部からの距離が最短のものに含まれるトランジスタに対する前記制御信号のノイズ量に基づき、前記クロック経路での前記ジッタの増加量を求めることを特徴とする請求項1乃至3の何れか一項に記載の半導体装置の設計方法。
【請求項5】
前記ジッタの増加量には、前記バックバイアス制御部によってバックバイアスが制御されるトランジスタを含み、前記クロック経路にクロックを供給するクロック供給部において、前記バックバイアス制御部との距離に応じた前記ノイズ量に応じて発生するジッタ量が加算される、ことを特徴とする請求項1乃至4の何れか一項に記載の半導体装置の設計方法。
【請求項6】
前記回路部及び前記クロック経路の配置は、前記ジッタの増加量に基づいて求められる、前記回路部への入力クロックのジッタ量が前記ジッタの許容値を超えないように、行われることを特徴とする請求項1乃至5の何れか一項に記載の半導体装置の設計方法。
【請求項7】
回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計処理であって、
前記トランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、
前記バックバイアス制御部からの距離と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、
前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、
処理をコンピュータに実行させるプログラム。
【請求項8】
回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計処理を行う演算処理部を有し、
前記演算処理部は、
チップ内のトランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、
前記バックバイアス制御部からの距離と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、
前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、
ことを特徴とする設計装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置の設計方法、プログラム及び設計装置に関する。
【背景技術】
【0002】
SoC(System-on-a-Chip)は、様々な信号処理を1チップで行う。そのため、SoCは、たとえば、高速インタフェースI/O(Input/Output)、ADC(Analog to Digital Converter)/DAC(Digital to Analog Converter)など、様々なIP(Intellectual Property)マクロを有する。IPマクロを動作させる入力クロックの供給元として、PLL(Phase Locked Loop)が使用されるが、PLLから各IPマクロへのクロック配線は複雑となっており、それに伴い消費電力も増加している。
【0003】
近年、低電圧で動作するDDC(Deeply Depleted Channel)トランジスタが注目されている。DDCトランジスタは、たとえば、チャージポンプ回路によりバックバイアスの制御が行われることで、リーク電流を抑えつつ低電圧動作が可能となる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−277557号公報
【特許文献2】特開2008−118098号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、各IPマクロの入力クロックには、許容できるジッタの制約があり、この制約を満たすようにクロック経路が設けられる。しかしながら、クロック経路のクロックバッファに含まれるDDCトランジスタのバックバイアスの制御ノイズにより、ジッタ量が増加し、許容できるジッタの制約を満たさなくなってしまうことが懸念される。
【課題を解決するための手段】
【0006】
発明の一観点によれば、回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計方法であって、前記トランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、前記バックバイアス制御部からの距離と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、半導体装置の設計方法が提供される。
【0007】
また、発明の一観点によれば、回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計処理であって、前記トランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、前記バックバイアス制御部と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、処理をコンピュータに実行させるプログラムが提供される。
【0008】
また、発明の一観点によれば、回路部と、前記回路部にクロックを入力するクロック経路と、少なくとも前記クロック経路に含まれるトランジスタのバックバイアスを制御するバックバイアス制御部とを含む半導体装置の設計処理を行う演算処理部を有し、前記演算処理部は、チップ内のトランジスタのバックバイアスを制御するバックバイアス制御部からの距離と、前記バックバイアス制御部から出力される制御信号のノイズ量との関係を求め、前記バックバイアス制御部と前記ノイズ量との関係に基づいて、前記回路部に接続されるクロック経路での、前記ノイズ量によるジッタの増加量を求め、前記ジッタの増加量と、前記回路部におけるジッタの許容値に基づき、前記回路部と前記クロック経路を配置する、設計装置が提供される。
【発明の効果】
【0009】
開示の半導体装置の設計方法、プログラム及び設計装置によれば、ジッタ制約違反の発生を抑制できる。
【図面の簡単な説明】
【0010】
図1】第1の実施の形態の半導体装置の設計方法の一例を説明する図である。
図2】第1の実施の形態の半導体装置の設計方法を実行する設計装置の一例を示す図である。
図3】本実施の形態の半導体装置の設計方法を実行する設計装置(コンピュータ)のハードウェア例を示す図である。
図4】第2の実施の形態の半導体装置の設計方法の一例の流れを示すフローチャートである。
図5】ステップS10の処理の一例を説明する図である。
図6】バックバイアスVbbの変動量のシミュレーション結果の一例を示す図である。
図7】IPマクロの配置例を示す図である。
図8】クロックバッファに供給するノイズを含むバックバイアスの例を示す図である。
図9】クロックバッファの段数を変化させる例を説明する図である。
図10】ジッタ解析処理のシミュレーション結果の一例を示す図である。
図11】IPマクロの種類ごとのジッタ許容値の一例を示す図である。
図12】入力許容ジッタの算出結果を示すテーブル例を示す図である。
図13】PLLの一例を示す図である。
図14】判定結果がOKになるように最適化されたチップ内の配置例を示す図である。
【発明を実施するための形態】
【0011】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の半導体装置の設計方法の一例を説明する図である。
【0012】
また、図2は、第1の実施の形態の半導体装置の設計方法を実行する設計装置の一例を示す図である。
設計装置10は、演算処理部11、記憶部12を有する。演算処理部11は、記憶部12に格納されているプログラムやデータをもとに、図1に示すような半導体装置(たとえば、SoC)の設計方法を実行する。演算処理部11は、たとえば、後述するようなプロセッサである。
【0013】
まず、チップ内のトランジスタ(前述したDDCトランジスタ)のバックバイアスを制御するバックバイアス制御部1からの距離と、バックバイアス制御部1から出力される制御信号のノイズ量との関係が見積もられる(ステップS1)。バックバイアス制御部1から出力される制御信号を、以下バックバイアス制御信号と呼ぶ。なお、バックバイアス制御部1は、チップ内の全てのDDCトランジスタに対してではなく、一部のDDCトランジスタに対してバックバイアス制御信号を供給するものであってもよい。
【0014】
バックバイアス制御信号のノイズは、バックバイアスの変動量となり、バックバイアス制御部1からの距離が離れるほど小さくなる。図1に示すように、たとえば、距離L1では、ノイズ量(noise)はN1であり、距離L2(>L1)では、noise=N2(<N1)であり、距離L3(>L2)では、noise=N3(<N2)である。ノイズ量の見積もりは、配線抵抗とトランジスタの寄生容量をもとにしたシミュレーションモデルを用いて行われる(詳細は後述する)。
【0015】
次に、演算処理部11は、所望の機能を実現するための処理を実行する回路部(以下IPマクロという)に接続されるクロック経路での、ステップS1の処理で得られたノイズ量によるジッタの増加量を見積もる(ステップS2)。クロック経路には、バックバイアスが制御されるトランジスタを有するクロックバッファが設けられている。クロックバッファは、クロックの振幅を所定の大きさに保つために設けられる。
【0016】
ステップS2の処理では、たとえば、上記の距離L1〜L3に対応したノイズ量であるN1〜N3によるジッタの増加量が求められる。このとき、クロック経路による遅延(またはクロックバッファの段数)によるジッタの増加量を含めるようにしてもよい(詳細は後述する)。
【0017】
そして、演算処理部11は、ジッタの増加量と、IPマクロにおけるジッタの許容値に基づき、IPマクロとクロック経路の配置を行う(ステップS3)。
図1には、バックバイアス制御部1、IPマクロ2、トランジスタTrを有するクロックバッファ3とクロック供給部(たとえば、PLL)4の配置例が示されている。
【0018】
トランジスタTrは、DDCトランジスタである。DDCトランジスタは、たとえば、3つの領域を有したチャネル構造を有している。3つの領域とは、不純物がほとんど含まれない領域と、閾値を設定するオフセット領域と、電荷を遮蔽するスクリーニング領域である。トランジスタTrでは、バックバイアス制御部1からのバックバイアス制御信号により、閾値が設定される。
【0019】
図1の例では、バックバイアス制御部1に近い位置(たとえば、距離L1の位置)にクロックバッファ3が配置され、それに応じた位置にIPマクロ2が配置されているときの、トータルのジッタ量がjt1+Δjtaであることが示されている。jt1は、クロック供給部4によるジッタ量、Δjtaは、バックバイアス制御信号のノイズによるクロック経路でのジッタ増加量を示している。なお、クロック供給部4によるジッタ量は、バックバイアス制御部1とクロック供給部4との距離によって変わるが、その点に関しては後述する。
【0020】
演算処理部11は、図1のようにジッタ量jt1+Δjtaが、IP2マクロのジッタの許容値以上である(または許容値より大きい)場合、ジッタ量が許容値より小さくなる(または許容値以下となる)位置にIPマクロ2とクロックバッファ3を配置する。
【0021】
図1の例では、バックバイアス制御部1からより離れた位置(たとえば、距離L3の位置)にクロックバッファ3が配置され、それに応じた位置にIPマクロ2が配置されているとき、トータルのジッタ量がjt1+Δjtbとなり、許容値より小さくなっている。
【0022】
上記の半導体装置の設計方法のように、バックバイアス制御部1からの距離に応じて異なるバックバイアス制御信号のノイズ量を考慮して回路とクロック経路の配置を行うことで、バックバイアス制御信号のノイズに起因したジッタ制約違反の発生を抑制できる。
【0023】
また、従来の設計方法では、各IPマクロの配置は製品の使用方法によってSoC内の配置が決まっていたが、クロック経路や各IPマクロへの入力クロックのジッタについて検証しておらず、問題が発覚するのは設計後のSoCの実機確認の際となっていた。そのため、問題が発覚した場合、手戻りが大きくなってしまっていたが、本実施の形態の半導体装置の設計方法では、ジッタを考慮しながら回路とクロック経路の配置を行うために、手戻りが少なく、設計期間の増大を抑制できる。
【0024】
(第2の実施の形態)
以下、半導体装置の設計方法をより詳細に説明する。
図3は、本実施の形態の半導体装置の設計方法を実行する設計装置(コンピュータ)のハードウェア例を示す図である。
【0025】
コンピュータ20は、プロセッサ21によって装置全体が制御されている。プロセッサ21には、バス29を介してRAM(Random Access Memory)22と複数の周辺機器が接続されている。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ21は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0026】
RAM22は、コンピュータ20の主記憶装置として使用される。RAM22には、プロセッサ21に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM22には、プロセッサ21による処理に必要な各種データが格納される。
【0027】
バス29に接続されている周辺機器としては、HDD(Hard Disk Drive)23、グラフィック処理装置24、入力インタフェース25、光学ドライブ装置26、機器接続インタフェース27及びネットワークインタフェース28がある。
【0028】
HDD23は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD23は、コンピュータ20の補助記憶装置として使用される。HDD23には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0029】
グラフィック処理装置24には、モニタ24aが接続されている。グラフィック処理装置24は、プロセッサ21からの命令に従って、画像をモニタ24aの画面に表示させる。モニタ24aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0030】
入力インタフェース25には、キーボード25aとマウス25bとが接続されている。入力インタフェース25は、キーボード25aやマウス25bから送られてくる信号をプロセッサ21に送信する。なお、マウス25bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0031】
光学ドライブ装置26は、レーザ光などを利用して、光ディスク26aに記録されたデータの読み取りを行う。光ディスク26aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク26aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0032】
機器接続インタフェース27は、コンピュータ20に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース27には、メモリ装置27aやメモリリーダライタ27bを接続することができる。メモリ装置27aは、機器接続インタフェース27との通信機能を搭載した記録媒体である。メモリリーダライタ27bは、メモリカード27cへのデータの書き込み、またはメモリカード27cからのデータの読み出しを行う装置である。メモリカード27cは、カード型の記録媒体である。
【0033】
ネットワークインタフェース28は、ネットワーク28aに接続されている。ネットワークインタフェース28は、ネットワーク28aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0034】
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した設計装置10(図2参照)も、図3に示したコンピュータ20と同様のハードウェアにより実現することができる。
【0035】
コンピュータ20は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。コンピュータ20に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ20に実行させるプログラムをHDD23に格納しておくことができる。プロセッサ21は、HDD23内のプログラムの少なくとも一部をRAM22にロードし、プログラムを実行する。またコンピュータ20に実行させるプログラムを、光ディスク26a、メモリ装置27a、メモリカード27cなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ21からの制御により、HDD23にインストールされた後、実行可能となる。またプロセッサ21が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0036】
図4は、第2の実施の形態の半導体装置の設計方法の一例の流れを示すフローチャートである。
以下に示す各ステップは、たとえば、図3に示したコンピュータ20において、プロセッサ21が、HDD23内に格納されている半導体装置の設計プログラムを読み出して実行することによって行われる。
【0037】
ステップS10,S11の処理では、バックバイアス制御信号のノイズ量の見積もりが行われる。まず、ステップS10の処理では、抵抗容量算出処理が行われる。抵抗容量算出処理では、使用予定のクロックバッファのトランジスタの寄生容量(ウェル容量)と、そのトランジスタとバックバイアス制御信号を生成するチャージポンプとの距離に応じた配線抵抗が算出される。チャージポンプは、図1に示したバックバイアス制御部1の機能を実行する回路であり、図1に示したバックバイアス制御部1の一例である。
【0038】
図5は、ステップS10の処理の一例を説明する図である。
チップ30内に、チャージポンプ31が配置され、チャージポンプ31からの距離が異なる、抵抗R1,R2,R3と容量C1を有するモデルM1,M2,M3が求められた例が示されている。容量C1は、使用予定のクロックバッファのトランジスタのウェル容量である。トランジスタがpチャネル型である場合には、容量C1は、Nウェルの容量であり、nチャネル型である場合には、容量C1は、Pウェルの容量である。
【0039】
抵抗R1〜R3は、チャージポンプ31からの距離に応じた配線抵抗であり、R1<R2<R3である。
プロセッサ21は、たとえば、HDD23に格納されている素子情報や配線情報をもとに、上記のような距離に応じた、容量と抵抗を算出し、たとえば、HDD23またはRAM22に格納する。
【0040】
次のステップS11の処理では、電圧解析処理が行われる。電圧解析処理では、チップ内において、チャージポンプからの距離に応じたバックバイアス制御信号のノイズ量が求められる。
【0041】
図6は、バックバイアスVbbの変動量のシミュレーション結果の一例を示す図である。図6では、図5に示したモデルM1〜M3を用いたときの、バックバイアスVbbの様子が示されている。横軸は、時間t(ms)であり、縦軸は、バックバイアスVbbの電圧(単位はVまたはmV)である。
【0042】
バックバイアスVbbは、DDCトランジスタがnチャネル型である場合には、負の電圧となり、DDCトランジスタがpチャネル型である場合には、電源電圧VDDよりも大きい電圧となる。
【0043】
VNW_M1(単位はV)は、モデルM1において、容量C1をNウェルのウェル容量とした場合の、バックバイアスVbbである。VPW_M1(単位はmV)は、モデルM1において、容量C1をPウェルのウェル容量とした場合の、バックバイアスVbbである。
【0044】
VNW_M2(単位はV)は、モデルM2において、容量C1をNウェルのウェル容量とした場合の、バックバイアスVbbである。VPW_M2(単位はmV)は、モデルM2において、容量C1をPウェルのウェル容量とした場合の、バックバイアスVbbである。
【0045】
VNW_M3(単位はV)は、モデルM3において、容量C1をNウェルのウェル容量とした場合の、バックバイアスVbbである。VPW_M3(単位はmV)は、モデルM3において、容量C1をPウェルのウェル容量とした場合の、バックバイアスVbbである。
【0046】
なお、モデルM1は、チャージポンプ31との距離が0であり、モデルM2は、チャージポンプ31から1.4mm離れており、モデルM3は、チャージポンプ31から5.6mm離れているものとして、抵抗R1〜R3が求められている。なお、容量C1は、チップ30が、7×7mmの大きさであるものとして求められている。
【0047】
モデルM1において、VNW_M1の変動量n1は、23mV程度であり、VPW_M1の変動量n2は、50mV程度であった。また、モデルM2において、VNW_M2の変動量n3は、8mV程度であり、VPW_M2の変動量n4は、12mV程度であった。また、モデルM3において、VNW_M3の変動量n5は、6mV程度であり、VPW_M3の変動量n6は、8mV程度であった。これらの変動量n1〜n6が、バックバイアス制御信号のノイズ量を表している。
【0048】
プロセッサ21は、ステップS10の処理で求められたチャージポンプ31からの距離に応じた容量と抵抗の情報をもとに、シミュレーションを実施し、上記のようなチャージポンプ31からの距離とノイズ量との関係を見積もる。そして、プロセッサ21は、求めた情報を、たとえば、HDD23またはRAM22に格納する。
【0049】
次に、ステップS12のジッタ解析処理が行われ、クロック経路におけるジッタ増加量が見積もられる。ジッタ解析処理では、使用予定のクロックバッファと、ステップS11の処理で求められたチャージポンプ31からの距離とノイズ量の関係の情報をもとに、IPマクロに接続されるクロック経路でのジッタの増加量の見積もりが行われる。
【0050】
図7は、IPマクロの配置例を示す図である。
チップ40には、チャージポンプ31、PLL42、IPマクロ43,44,45,46が配置されている。なお、チャージポンプ31やPLL42もIPマクロの一つではあるが、本実施の形態の例では、クロック供給部であるPLL42からクロックを受ける回路部をIPマクロと表記している。
【0051】
IPマクロ43〜46は、高速インタフェースI/O、ADC、DACなどである。IPマクロ43に接続されるクロック経路は、クロックバッファb1,b2,b3を含む。IPマクロ43には、クロックバッファb1〜b3を介してPLL42からクロックが入力される。IPマクロ44に接続されるクロック経路は、クロックバッファb4,b5,b6を含む。IPマクロ44には、クロックバッファb4〜b6を介してPLL42からクロックが入力される。IPマクロ45に接続されるクロック経路は、クロックバッファb7,b8,b9を含む。IPマクロ45には、クロックバッファb7〜b9を介してPLL42からクロックが入力される。IPマクロ46に接続されるクロック経路は、クロックバッファb10,b11,b12を含む。IPマクロ46には、クロックバッファb10〜b12を介してPLL42からクロックが入力される。
【0052】
プロセッサ21は、ステップS11の処理で求められた、チャージポンプ31からの距離とノイズ量の関係情報から、当該ノイズ量によるクロック経路でのジッタの増加量をシミュレーションで求める。
【0053】
プロセッサ21は、IPマクロ43に接続されるクロック経路での、ノイズ量によるジッタの増加量を求める際には、たとえば、クロックバッファb1〜b3のうち、チャージポンプ31との距離が最短であるクロックバッファb2と、チャージポンプ31の距離d1を用いる。そして、プロセッサ21は、距離d1でのノイズ量を各クロックバッファb1〜b3内の図示しないトランジスタに適用して、IPマクロ43に接続されるクロック経路でのジッタの増加量を求める。プロセッサ21は、各クロックバッファb1〜b3のチャージポンプ31との距離に応じてジッタの増加量を求めるのではなく、バックバイアス制御信号のノイズ量が最も大きくなる最短の距離d1を用いてジッタの増加量を求めることで、計算量を減らすことができる。
【0054】
図8は、クロックバッファに供給するノイズを含むバックバイアスの例を示す図である。縦軸はバックバイアスVbbの大きさを示し、横軸は時間tを示している。
プロセッサ21は、ステップS11の処理で求めた情報をもとに、距離d1に応じたノイズ量n(変動量)をもつバックバイアスVbbを生成して、クロックバッファb1〜b3内の図示しないトランジスタに印加する。プロセッサ21は、これによって、増加するジッタ量を求める。
【0055】
プロセッサ21は、他のIPマクロ44〜46に接続されるクロック経路においても同様の処理を行う。
さらに、プロセッサ21は、クロックバッファの段数を変化させて、それによるジッタ増加量を求める。
【0056】
図9は、クロックバッファの段数を変化させる例を説明する図である。
直列に接続されたクロックバッファb1,b2,…,bn−1,bnに、チャージポンプ31が接続されている様子が示されている。クロックバッファb1〜bnの数が多いほど、ジッタが増加する。プロセッサ21は、クロックバッファb1〜bnの数を変化させてシミュレーションを行う。
【0057】
図10は、ジッタ解析処理のシミュレーション結果の一例を示す図である。横軸はクロックバッファによる遅延[ps]、縦軸はジッタ[ps]である。
特性50は、バックバイアスVbbの変動量を60mVとした場合の、クロックバッファによる遅延とジッタの関係を示している。特性51は、バックバイアスVbbの変動量を30mVとした場合の、クロックバッファによる遅延とジッタの関係を示している。特性52は、バックバイアスVbbの変動量を15mVとした場合の、クロックバッファによる遅延とジッタの関係を示している。
【0058】
図10に示されているように、バックバイアスVbbの変動量が大きいほどジッタが大きくなり、クロックバッファによる遅延が大きいほど(クロックバッファの段数が多いほど)ジッタが大きくなる。クロックバッファによる遅延を考慮してジッタ増加量を求めることで、IPマクロの入力クロックのジッタ量をより正確に見積もることができ、ジッタ制約違反の発生を防げる。
【0059】
プロセッサ21は、上記処理結果をもとに、チャージポンプとクロックバッファ間の距離(たとえば、図7に示した距離d1)とクロックバッファによる遅延とジッタの関係を、HDD23またはRAM22に格納する。
【0060】
次に、図4に示したフローチャートにおいて、ステップS13の入力許容ジッタ算出処理が行われる。
本実施の形態では、入力許容ジッタは、各IPマクロにおいて予め決められている入力クロックにおけるジッタの許容値(ジッタ制約)から、PLLから出力されるクロックがIPマクロに到達したときに生じているジッタ量を引いた値を示すものとする。
【0061】
プロセッサ21は、たとえば、HDD23に記憶してあるPLLの回路情報や、各IPマクロの入力クロックにおけるジッタ許容値と、ステップS11,S12で生成された情報などをもとにシミュレーションを行い、入力許容ジッタを求める。
【0062】
図11は、IPマクロの種類ごとのジッタ許容値の一例を示す図である。
図11では、IPマクロIP1,IP2,…,IP6におけるジッタ許容値の一例が示されている。図11の例では、IPマクロIP1のジッタ許容値は50ps、IPマクロIP2のジッタ許容値は156ps、IPマクロIP6のジッタ許容値は2000psとなっている。
【0063】
IPマクロIP1〜IP6の例としては、HDMI(High Definition Multimedia Interface)、USB(Universal Serial Bus)2.0、DAC、DDR3 SDRAM(Double-Data-Rate3 Synchronous Dynamic Random Access Memory)などがある。
【0064】
図12は、入力許容ジッタの算出結果を示すテーブル例を示す図である。
このようなテーブルは、プロセッサ21によって作成され、たとえば、HDD23またはRAM22に格納される。以下では、前述の図7と、図12を用いて、IPマクロ43における入力許容ジッタを求める例を説明する。
【0065】
入力許容ジッタは、たとえば、チャージポンプ31とPLL42間の距離と、PLL42とIPマクロ43間の距離ごとに算出される。
チャージポンプ31とPLL42間の距離が長くなるとジッタ量が減るのは、距離が長くなるほど、PLL42に含まれるトランジスタへ供給されるバックバイアス制御信号のノイズ量が小さくなるからである。クロック供給部であるPLL42において、上記ノイズ量に応じて生じるジッタ量を、クロック経路でのジッタ増加量に加えることで、より精度よく、図12に示したような入力クロックのジッタ量を求めることができる。
【0066】
図13は、PLLの一例を示す図である。
PLL42は、位相比較器60、ループフィルタ61、電圧制御発振器62、分周器63を有する。
【0067】
入力端子INから入力された基準クロックは、位相比較器60に入力され、分周器63から出力されるフィードバッククロックと位相が比較される。位相比較結果(電圧値)はループフィルタ61を介して電圧制御発振器62に供給され、電圧制御発振器62にて端子OUTから出力されるクロックの発振周波数が制御される。
【0068】
このようなPLL42において、位相比較器60、ループフィルタ61、電圧制御発振器62、分周器63に含まれる図示しないトランジスタには、チャージポンプ31からのバックバイアス制御信号が供給される。そして、バックバイアス制御信号には、前述したように、チャージポンプ31からの距離に応じた量のノイズが含まれる。
【0069】
また、図12において、PLL42とIPマクロ43間の距離が長くなるとジッタ量が増えるのは、距離が長くなるほど、クロックバッファb1〜b3の段数が増え、遅延が大きくなるため図10に示したようにジッタが大きくなるからである。なお、ここでは、クロックバッファb1〜b3とチャージポンプ31の距離(図7に示した距離d1)は、ある一定の値として、ジッタ量が算出される。
【0070】
図12の例では、IPマクロ43のジッタ許容値は200psとなっている。チャージポンプ31とPLL42間距離が2mmで、PLL42とIPマクロ43間の距離が1mmであった場合には、シミュレーションの結果、ジッタ量は100psであったことが示されている。このとき、入力許容ジッタは200ps−100ps=100psとなる。このように、入力許容ジッタが正の値、すなわち、ジッタ量がジッタ許容値よりも小さい場合には、IPマクロ43の入力クロックがジッタ制約を満たす可能性が高いので、プロセッサ21は判定結果をOKとして、図12に示すようなテーブルに書き込む。
【0071】
また、図12には、チャージポンプ31とPLL42間距離が2mmで、PLL42とIPマクロ43間の距離が2mmであった場合には、シミュレーションの結果、ジッタ量は150psであったことが示されている。このとき、入力許容ジッタは200ps−150ps=50psとなる。入力許容ジッタが正の値であるので、プロセッサ21は判定結果をOKとして、図12に示すようなテーブルに書き込む。
【0072】
また、図12には、チャージポンプ31とPLL42間距離が1mmで、PLL42とIPマクロ43間の距離が1mmであった場合には、シミュレーションの結果、ジッタ量は200psであったことが示されている。このとき、入力許容ジッタは200ps−200ps=0psとなる。入力許容ジッタが0であるので、シミュレーションで考慮しなかった要因などにより、IPマクロ43の入力クロックがジッタ制約を満たさなくなる可能性がある。そのため、プロセッサ21は判定結果をエラーとして、図12に示すようなテーブルに書き込む。
【0073】
また、図12には、チャージポンプ31とPLL42間距離が1mmで、PLL42とIPマクロ43間の距離が2mmであった場合には、シミュレーションの結果、ジッタ量は250psであったことが示されている。このとき、入力許容ジッタは200ps−250ps=−50psとなる。入力許容ジッタが負の値であるので、IPマクロ43の入力クロックがジッタ制約を満たさない。そのため、プロセッサ21は判定結果をエラーとして、図12に示すようなテーブルに書き込む。
【0074】
ステップS14のIPマクロの配置決定処理と、ステップS15のクロックバッファ配置配線決定処理では、ステップS13の処理で求められたテーブルに基づいて、IPマクロの配置とクロックバッファの配置配線が決定される。
【0075】
プロセッサ21は、図7に示したようなIPマクロ43を配置するときは、図12に示したようなテーブルに基づき、たとえば、チャージポンプ31とPLL42間距離が2mmの場合、PLL42とIPマクロ間距離が1mmまたは2mmになるようにする。
【0076】
また、図12に示したテーブルで、判定結果がエラーとなる配置であっても、クロックバッファとチャージポンプ31間距離を、ステップS13の処理で使用した距離よりも長くすることで、トータルのジッタ量が減り、入力許容ジッタが正の値となる場合がある。
【0077】
そのため、プロセッサ21は、IPマクロや、チャージポンプ、PLLの配置に制約があるが、判定結果がエラーとなる場合には、ステップS15の処理で、クロックバッファの配置を変更する。そして、プロセッサ21は、ステップS16の処理で、入力許容ジッタを求め、判定結果がエラーとなるかOKとなるか検証する。
【0078】
判定結果がエラーの場合には、ステップS13からの処理に戻り、たとえば、PLLをバックバイアス制御信号のノイズによるジッタ量の増加が少ないものに変更したり、クロックバッファの段数を減らしたりして、判定結果がOKになるような変更を行う。
【0079】
図14は、判定結果がOKになるように最適化されたチップ内の配置例を示す図である。
図7に示したチップ40内の配置例と比べると、図14では、IPマクロ44,45が図7に示した例よりもチャージポンプ31から離れている。また、IPマクロ44とPLL42の間に設けられているクロックバッファb4〜b6、IPマクロ45とPLL42の間に設けられているクロックバッファb7〜b9も、図7に示した例よりもチャージポンプ31から離れて配置されている。
【0080】
ステップS16の処理で判定結果がOKとなると、プロセッサ21は、クロック配線(ステップS17)や自動配置配線(ステップS18)を行う。そして、プロセッサ21は、論理検証など各種検証(ステップS19)を行って許容できる検証結果が得られた場合(OKの場合)には設計処理を終了する。許容できる検証結果が得られなかった場合(エラーの場合)、プロセッサ21は、たとえば、ステップS17の処理(またはステップS18の処理)に戻り、適宜配線や配置の変更を行う。
【0081】
以上のような半導体装置の設計方法によれば、チャージポンプからの距離に応じて異なるバックバイアス制御信号のノイズ量を考慮して各回路部やクロック経路の配置を行うことで、バックバイアス制御信号のノイズに起因したジッタ制約違反の発生を抑制できる。
【0082】
また、本実施の形態の半導体装置の設計方法では、ジッタを考慮しながら回路とクロック経路の配置を行うために、SoCの設計時に問題を検出することが可能となり、SoCの実機確認前にジッタの影響による問題を解決できる。そのため、SoC開発の手戻りが少なく、設計期間の増大を抑制できる。
【0083】
以上、実施の形態に基づき、本発明の半導体装置の設計方法、プログラム、設計装置の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【0084】
たとえば、IPマクロに供給されるバックバイアス制御信号のノイズ量によるジッタ量を考慮して、IPマクロやクロック経路の配置を決めるようにしてもよい。
【符号の説明】
【0085】
1 バックバイアス制御部
2 回路部(IPマクロ)
3 クロックバッファ
4 クロック供給部
Tr トランジスタ
10 設計装置
11 演算処理部
12 記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14