lsiシステム設計...検証(1) 大規模なシステム lsi...
TRANSCRIPT
![Page 1: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/1.jpg)
LSIシステム設計
第10回 設計の流れ(2)
電気電子工学専攻 大畠賢一
![Page 2: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/2.jpg)
検証(1) 大規模なシステムLSIでは、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)
動的検証 テストパターンを入力して、正しい出力が得られるかをチェック 全ての場合を網羅できない
静的検証(形式的検証) プロパティ検証(順序回路のチェックに向いている) プロパティ(回路が満足すべき性質)を羅列して、 満足しているかどうかを調べる 全てのプロパティを網羅することが難しい 等価性検証(組合せ論理回路のチェックに向いている) 論理的に等価であるかをチェックする BDD(Binary Decision Diagram)を利用する
![Page 3: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/3.jpg)
検証(2) BDD(Binary Decision Diagram)
論理式を2分木グラフで表現する
例題: 半加算器をBDDで表すと?
半加算器は、S = AB + AB, C = AB
A
B
1
B
0
1 0
1 0
1 0
A
B
1 0
1 0
0 1
S = AB + AB C = AB
![Page 4: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/4.jpg)
検証(3) 等価性検証
RTLとそこから論理合成した論理回路を比較する
両者をそれぞれBDDへ変換する
BDDが一致すれば論理合成が誤りなく行われている
組合せ論理回路に対しては、この方法で対応可能 順序論理回路については、適用が難しい
![Page 5: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/5.jpg)
検証(4) タイミング検証
動的タイミング検証 テストパターンを入力して、出力までの遅延時間を計算 論理シミュレータを使用
静的タイミング検証 回路図上の全ての信号経路に沿って、遅延時間を加算 テストパタン不要 実際には信号が伝搬しない経路についても遅延時間を算出してしまう
![Page 6: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/6.jpg)
ハードウェア/ソフトウェア協調検証 システムLSIはハードウェアとソフトウェアが一体となって機能する ハードウェアとソフトウェアを組み合わせて検証しないとチェックにならない
コシミュレーション ハードウェア: ビヘイビアモデル、RTL ソフトウェア: そのまま 両者をシミュレータを用いて動作させ検証 容易に実行できるが、実行速度は遅い
コエミュレーション ハードウェア: FPGA ソフトウェア: システムLSIで使用するのと同じCPUで実行 実行速度が高速 準備に時間がかかる
![Page 7: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/7.jpg)
検証のまとめ
各設計ステップで検証を実施することで、ミスによる手戻りを最小限に抑える
![Page 8: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/8.jpg)
製造テスト(1) チップの製造が完了すると、設計通りにトランジスタや配線が製造できたか否か、LSIが仕様通りに動作するかを調べる必要がある。これを製造テストという。
配線 断線
LSIの電子顕微鏡写真
縮退故障 短絡により電源か接地に電圧が固定される ブリッジ故障 短絡により他の信号線と接続される オープン故障 断線により信号を伝達できなくなる 遅延故障 配線が細くなるなどして抵抗が上がり遅延 時間が増加する
LSIの入力信号を変化させて、出力信号を観測することでこれらの故障の有無をテストする
全ての故障を検出するには全てのノードの論理値を変化させる必要があり膨大な時間がかかる
設計段階からテストが容易にできる仕組みを備えておく(テスト容易化設計)
![Page 9: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/9.jpg)
製造テスト(2) テスト容易化設計
BIST(Built-In Self Test) LSI内部にテストパタンの発生回路と判定回路を内蔵する テストパターンの入力端子が不要、高速テストが可能
スキャンテスト FFとFFの間の組合せ論理回路のテストを直接的に行う。
① スキャン入力からテストデータをFFにセットしていく。このときFFはシフトレジスタとして動作している。
② 組合せ論理を動作させ出力を確定させる ③ 組合せ論理の出力値をFFに取り込み、再びシフトレジスタとして動作させ、スキャン出力
からFFのデータを取り出す。
① ②
![Page 10: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/10.jpg)
システムLSI設計の実例(1)
y = a + b + c
![Page 11: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/11.jpg)
システムLSI設計の実例(2)
reset
001 -> 010 010 -> 100 100 -> 010
![Page 12: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/12.jpg)
システムLSI設計の実例(3)
y = 0 tmp = a + b y = tmp + c
加算器は1個しか使用しない 2回に分けて計算する
![Page 13: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/13.jpg)
システムLSI設計の実例(4)
![Page 14: LSIシステム設計...検証(1) 大規模なシステム LSI では、設計ミスや要求仕様の解釈誤りが必ず発生 → 検証が必須(各設計ステップで検証を実施)](https://reader033.vdocuments.pub/reader033/viewer/2022041917/5e6a25f1ef38950ce32347d4/html5/thumbnails/14.jpg)
レポート
1. システム仕様が計算機処理可能な言語で書かれた場合の利点を述べよ。ま
た、欠点についても考察せよ。
2. 全加算器のBDDを作成せよ。できるだけ頂点の数を減らすこと。
次回の講義で提出のこと。