24
富士通セミコンダクター株式会社 システムLSIカンパニー SoC設計センター フロントエンド設計部 立岡真人 高集積・低電力の実現に向けた高位設計 ~配線混雑解消のための高位設計事例~ Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED CDN Live Japan 2014.07.18

高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

富士通セミコンダクター株式会社 システムLSIカンパニー SoC設計センター フロントエンド設計部 立岡真人

高集積・低電力の実現に向けた高位設計 ~配線混雑解消のための高位設計事例~

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

CDN Live Japan

2014.07.18

Page 2: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

アジェンダ カスタムSoC(ASIC)ソリューション紹介

背景

現状の高位設計フローにおける配線混雑問題

配線混雑を考慮した高位設計フロー

配線混雑の検出及びその改善事例

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED 1

Page 3: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

富士通セミコンダクター カスタムSoC(ASIC)ソリューション

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED 2

Page 4: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

はじめに

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

富士通セミコンダクターは、お客様の開発されるカスタムSoCにおいて、 「カスタムSoCソリューション」を提供します。

「カスタムSoCソリューション」をご利用いただくことにより、高性能、高品質かつ低消費電力のSoCを短期間で開発することが可能になります。

カスタムSoC ソリューション

ご提案

開発手法

・フルカスタム

・プラットフォームベース

3

Page 5: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

カスタムSoCソリューション プラットフォームベース開発

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

ベースプラットフォームからのカスタマイズで開発期間短縮

事前評価・検証により

開発期間短縮・リメークリスク低減に貢献

4

Page 6: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

Cedar®はお客様の開発を支援するサービス

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

Cedar ®-SPEC Cedar-Specification 仕様書レベルの品質向上と検証項目抽出サービス ・仕様書の品質向上 ・検証項目の抽出

Cedar®-SIM Cedar-Simulation ランダム技術とアサーション技術を駆使した シミュレーションベースの検証サービス ・アサーションを挿入することによるインタフェース検証 ・ランダム手法による 網羅的検証 ・Cedar-SPEC検証項目による 機能検証

Cedar®-EMU Cedar-Emulation エミュレータを活用した大規模デザイン、 長大データによる検証と消費電力見積りサービス ・性能確認と消費電力測定 ・ソフトウェアを含むシステム検証

Cedar®-ESL Cedar-Electronic System Level 仮想プラットフォームを活用した性能評価環境 およびソフトウェア先行開発環境構築サービス ・性能評価モデルによるアーキティクチャ設計 ・高速モデルによるソフトウェアの早期開発

Cedar : C-based Effective Design-Flow Apply to Real Design

Cedar®-PROT Cedar-Prototyping ハードウェア動作検証を実現するプロトタイプボード 開発サービス ・ハードウェア動作確認 ・ソフトウェアを含むシステム検証

Cedar®-HLS Cedar-High Level Synthesis 高位合成サポートサービス ・上流記述の最適化 ・上流記述向けASICハンドオフ

検証資産 (再利用/継承) システム要件

アーキテクチャ設計

システム 設計

仕様書起案

アーキテクチャ 探索

ES開発

プロトタイプボード 開発

製品検証

協調検証

性能 評価

高位 合成

ブロック 実装

システム 組上げ

ブロック 設計

ソフトウェア 設計

ソフトウェア 先行 開発

システム検証

ブロック検証

Cedar-SIM

性能 見積

Cedar-SPEC Cedar-ESL

Cedar-EMU

Cedar-PROT

Cedar-HLS

Σ +

5

Page 7: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

背景

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED 6

Page 8: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

Motivation (背景)

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

配線混雑の問題がテクノロジの微細化によって顕著に 先端プロセスでは配線混雑が発生する傾向がある。 配線混雑がおきると、PPA (Performance/Power/Area)が劣化してしまう 配線混雑を考慮した合成ツールや設計フローの確立が重要

高位合成技術の普及

適用規模が増大、単体モジュールからサブシステムへ、数十万ゲートから数千万ゲートへ拡大

回路意識せずにアルゴリズムの近い記述で回路品質の保証が困難 • 配線混雑の問題もRTL設計より発生しやすい

配線混雑を考慮した高位合成技術はまだ確立されていない

配線混雑を考慮した高位設計フローを確立したい

ケイデンスと協力して配線混雑を考慮した高位設計フローを試行 実設計へ適用

7

Page 9: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

2. 論理構造起因の混雑 • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている

• 例:サイズの大きなデータセレクタ • 実際のフロアプランの情報がなくても、確認可能 • 論理設計フェーズの解決すべき問題

配線混雑の問題の起因

1.フロアプラン起因の混雑 • フロアプラン時に発生される配線混雑 • よくある例として、メモリの配置などによる配線混雑 • 論理設計チームと相談して配置などを改善すれば解消可能 • 実際のレイアウトを実施しないと確認困難

Multiplexer(MUX)/Demultiplexer(DMUX)

8

Page 10: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

現状の高位設計フローの課題

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED 9

Page 11: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

従来の高位設計フロー

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

アルゴリズム開発

C/C++ ①アルゴリズム

C/C++ SystemC

コード書き換え

RTL

高位合成 Tech Lib

Netlist

論理合成 Tech Lib

②書き換え後C’

RTL Style Check RTL Rule Set

(2)等価性検証 高位合成

論理合成

(1)等価性検証

RTL-Sim/(FPGA)

配置配線

(3)等価性検証 性能検証

③高位合成結果のRTL

④論理合成結果のNetlist フロントエンド

バックエンド

フロントエンドの設計と バックエンドの設計は 完全に分業化、配線混雑はバックエンド工程で初めて検出

配線 混雑 品質劣化

10

Page 12: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

高位合成の導入メリット

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

Micro-Architecture Designs

Schedule & Allocations

SystemC and C++ Behavioral Models

RTL

抽象度の高いSystemC/C++記述でアルゴリズムに近いモデルを実現可能

ソースコードを変更せず、コマンドや制約でハード実装を選択可能

レイテンシの自動挿入、ステートマシンの自動生成、リソース共有、レジスタ共有により優れたPPA(Performance/Power/Area)の実現

従来のRTLと比べると、遥かに短期間で ハードウェアの論理設計が実現可能、しかし…

11

Page 13: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

高位合成と配線混雑の問題

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

回路品質が記述スタイルに強く依存

配線混雑しやすい回路をRTL設計よりも容易に作ってしまう

特に高位合成の初心者(RTL設計の熟練者でも)

アーキテクチャの選択も配線混雑の一因に

回路イメージが明確になっていなければ問題深刻

ツールのアーキ選択自動化も問題の複雑化を助長

アグレッシブなリソース・レジスタ共有も時には配線混雑の原因に

面積を小さくするために設計者がリソース共有の最大化を求める傾向がある

しかし、現状の設計フローは配線混雑の問題に対応していない

12

Page 14: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

簡単な事例

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

実設計で発生したコーディング例で配線混雑が発生

さて、何が問題でしょうか?

sc_in<int> in; sc_in<int> in2[16]; int array [16]; int a, b, c; void init() { a = 0; b = 1; c = in.read(); LOOP: for (i = 0; i < 16; i++) { array[i] = in2[i].read(); } }

SystemCコード

CtoSコマンドで ループをブレークするように指定 つまり16サイクルをかけて、配列の 要素に入力の値を代入する

13

Page 15: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

配列のインデックス・アクセス

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

配列のアクセスに大きなDEMUX/MUX発生

人手のRTL以上に配線混雑の回路を作りやすい

sc_in<int> in; sc_in<int> in2[16]; int array [16]; int a, b, c; void init() { a = 0; b = 1; c = in.read(); LOOP: for (i = 0; i < 16; i++) { array[i] = in2[i].read(); } }

① ②

… 32ビット

32ビット

16個の配列array[i]に代入

4ビット

① 16x32のDEMUX発生

32 bits

32 bits

16入力

4 bits

②16x32のMUX発生

14

Page 16: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

配線混雑を考慮した高位設計フロー

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

アルゴリズム開発

C/C++ ①アルゴリズム

C/C++ SystemC

コード書き換え

RTL

高位合成 Tech Lib

Netlist

論理合成 Tech Lib

②書き換え後C’

RTL Style Check RTL Rule Set

(2)等価性検証

高位合成

論理合成

(1)等価性検証

RTL-Sim/(FPGA)

配置配線

(3)等価性検証 性能検証

③高位合成結果のRTL

④論理合成結果のNetlist

フロントエンド

バックエンド

フロンドエンド設計に配線混雑検出及び改善フェーズを導入し、論理起因の配線混雑を早期解消

配線混雑検出

改善

物理 Tech Lib

品質向上

15

Page 17: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

配線混雑の改善例

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED 16

面積及び配線混雑ともに改善した例

Page 18: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

配線混雑の検出及び改善事例-1

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

パラメータ 値

Utilization 70% CtoS Clock Freq. 200MHz Ratio 1.0 (正方形)

合成用のパラメータ

項目 値

配線混雑度 H: 8.55% V: 4.28% Long Path違反数 (50段超) 4,786 配線混雑MUX数 8,620 Total Length (um) 15,816,331 RC Area (CA) 42,697,674

RCPのCongestion Map 実行結果

かなり大きい

回路品質もよくない

H:水平方向の配線混雑 V:垂直方向の配線混雑

17

Page 19: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

混雑場所の特定

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

switch(idx){ case 0: start = 0; end = 1; break; case 1: start = 1; end = 5; break; … } … sc_uint<5> i=start; BREAK_LOOP: do{ 102: STR.A[i] =0; 103: STR.B[i] =0; 104: STR.C[i] =0; … i++; }while(i<end); …

ループBreak

4.'memwrite_STR_A_ln102' : 以下省略 : :

6.'memwrite_STR_B_ln103' : 以下省略 :

8.'memwrite_STR_A_ln104' : 以下省略 :

混雑MUXのレポート

場所特定

18

Page 20: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

配線混雑改善ためのコード変更例

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

switch(idx){ case 0: start = 0; end = 1; break; case 1: start = 1; end = 5; break; … } … sc_uint<5> i=start; BREAK_LOOP: do{ STR.A[i] =0; STR.B[i] =0; STR.C[i] =0; … i++; }while(i<end); …

ループBreak

switch(idx){ case 0: start = 0; end = 1; UNROLL1: for (i = start; i <= end_pu; i++) { STR.A[i] =0; STR.B[i] =0; STR.C[i] =0; … } break; case 1: start = 1; end = 5; UNROLL1: for (i = start; i <= end; i++) { STR.A[i] =0; STR.B[i] =0; STR.C[i] =0; … } break; …

ループ展開

ループ展開

配列アクセスための DeMuxを削除

改善前 改善後

… 32

32

16

4

32

16

19

Page 21: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

改善結果

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

項目 改善前 改善後_1 改善後_2

配線混雑度 H: 8.55% V: 4.28% H: 1.79% V: 2.95% H:017% V:0.81%

Long Path違反数 4,786 76 472

配線混雑MUX数 8,620 5,158 (-40%↓) 4,982 (-42%↓)

Total Length 15,816,331 15,415,309 (-2%↓) 13,594,980 (-14%↓)

RC Area (CA) 42,697,674 29,955,645 (-29%↓) 33,149,970(-22%↓)

改善前 改善後_1

• 改善_1: 難易度の低い3種類のみ修正 (短時間対応可能)

• 改善_2:難易度の高い修正の一部も実施 (改善方法のノウハウ必要)

改善後_2

20

Page 22: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

まとめ

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

配線混雑の問題が設計の品質低下を招く

従来の高位設計フローで配線混雑を考慮していない

配線混雑を考慮した新しい高位設計フローを提案

配線混雑の判断及び改善をフロントエンドフェーズに導入

実プロジェクトに適用中

検出について確認済

レイアウト後との品質劣化との相関も確認済

今後配線混雑の改善を実施し、レイアウト後の改善結果も確認

21

Page 23: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

ツールへの期待

Copyright 2014 FUJITSU SEMICONDUCTOR LIMITED

物理考慮した高位合成ツールの製品化 • 配線混雑の場所の特定をもっと分かりやすく • 配線混雑の改善方法についてコマンドの導入 • レジスタ、リソース共有も配線混雑を考慮 • 配線混雑を考慮したスケジューリング • SystemCコードに細工なしで可能に

22

Page 24: 高集積・低電力の実現に向けた高位設計 · • 論理の構造によって引き起こされる配線混雑 • 設計起因で引き起こしている • 例:サイズの大きなデータセレクタ

Copyright 2010 FUJITSU LIMITED 23