|
論理設計上は全く問題なくとも、実際の物理的なチップにすることを前提に修正を加えることがある。これは論理的には全く等価だが、物理的には異なるということである。 あるチップ上の位置にある論理出力Aから、遠く離れた入力Bまで信号を伝えたい場合、並走する他の信号の影響を受けてしまうクロストークや、あまりにも距離が長過ぎると駆動能力が足りずに波形がなまってしまうことがある。 前者はCADが警告してくれるので、クロストークが起きる長さ未満で配線を迂回させるなどの手段があるが、長過ぎるのはどうしようもない。そこでA出力とB出力の間にバッファやインバータを挿入して駆動能力を上げ、配線の距離をかせぐ。これをリピータと言う。 リピータはモジュール設計をしている場合、他の設計チームが担当しているモジュール内を通ることが多い。他人の土地を横断するようなものである。そこでリピータを挿入する場合は、リピータが入るモジュールの入力と出力をきちんと定義してあげなくてはならない。 ありがちな間違いが論理の反転や複数のリピータの繋ぎ間違いである。これらは形式的論理検証ツールで修正に間違いがないかどうがを確認することができる。 同期式回路の動作周波数の上限は前段のFFの出力から後段のFFの入力までのディレイに支配される。あるFFの出力のファンアウトが大きくなり過ぎた場合はバッファを入れることがあるが、ディレイを大きくしたくないためにバッファすら挿入できないことがある。 このようなときは同じ入力を持つFFを複数持ち、それぞれの出力を後段で使用する。これをコピーFFという。コピーFF同士はまったく同じ状態でなければならない。この手法は動作は同じでも論理が等価とは言えないので、形式的論理検証ではエラーとなる。ただし形式的論理検証のツール側でコピーFFを指定できるものもある。 他にはもっとドラスティックな変更方法もある。RAMセルを例えば4x4から2x8にする等、仕様書のレベルでは同等でも全く違う論理に入れ替えてしまう方法があるが、これは主にディレイの問題で他にどうしようもない場合の手段である。 FPGAやCPLDには基本的にはこれらを意識することはない。ツール(論理合成コンパイラ)が自動的に対処してくれるためである。スタンダードセルで設計する場合は常に論理設計とその実装である物理設計を意識しないといけない。 |
| << 前記事(2007/12/12) | トップへ | 後記事(2008/02/23)>> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2007/12/12) | トップへ | 後記事(2008/02/23)>> |