<4D F736F F F696E74202D C190DD B A CB48D65208E DC58F49205B8CDD8AB B83685D>

Similar documents
Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor

Microsoft Word - 実験4_FPGA実験2_2015

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

VelilogHDL 回路を「言語」で記述する

Verilog HDL による回路設計記述

Microsoft PowerPoint LC_15.ppt

Microsoft PowerPoint - ARTD 2.3new_datasheet.ppt

計算機アーキテクチャ

統合的高信頼化設計のためのモデル化と検出 訂正 回復技術 研究代表者安浦寛人九州大学大学院システム情報科学研究院 DVLSI 領域会議 (2011/7/2) DVLSI 安浦チーム 1 研究の目標 さまざまな種類のエラー ( 製造故障 ソフトエラー タイミングエラー 設計誤り 不完全な仕様に基づく誤

Microsoft PowerPoint - 01_Vengineer.ppt

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

機能検証トレーニング コース一覧

ハード・ソフト協調検証サービス

SimscapeプラントモデルのFPGAアクセラレーション

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

TopSE並行システム はじめに

ソフトウェア基礎技術研修

Presentation Title

目次 ペトリネットの概要 適用事例

スライド 1

リソース制約下における組込みソフトウェアの性能検証および最適化方法

CSPの紹介

Microsoft PowerPoint - 3.3タイミング制御.pptx

- VHDL 演習 ( 組み合せ論理回路 ) 回路 半加算器 (half adder,fig.-) 全加算器を構成する要素である半加算器を作成する i) リスト - のコードを理解してから, コンパイル, ダウンロードする ii) 実験基板上のスイッチ W, が, の入力,LED, が, の出力とな

智美塾 ゆもつよメソッドのアーキテクチャ

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

電卓の設計 1


問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

2015 TRON Symposium セッション 組込み機器のための機能安全対応 TRON Safe Kernel TRON Safe Kernel の紹介 2015/12/10 株式会社日立超 LSIシステムズ製品ソリューション設計部トロンフォーラム TRON Safe Kernel WG 幹事

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

スライド 1

はじめに : ご提案のポイント

スライド 1

「電子政府推奨暗号の実装」評価報告書

ソフトウェア基礎技術研修

フリップフロップ

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

コンテンツセントリックネットワーク技術を用いた ストリームデータ配信システムの設計と実装

< B8CDD8AB B83685D>

PowerPoint プレゼンテーション

計数工学実験/システム情報工学実験第一 「ディジタル回路の基礎」

モータ HILS の概要 1 はじめに モータ HILS の需要 自動車の電子化及び 電気自動車やハイブリッド車の実用化に伴い モータの使用数が増大しています 従来行われていた駆動用モータ単体のシミュレーション レシプロエンジンとモータの駆動力分配制御シミュレーションの利用に加え パワーウインドやサ

スライド 1

インターリーブADCでのタイミングスキュー影響のデジタル補正技術

PRONETA

講義の進め方 第 1 回イントロダクション ( 第 1 章 ) 第 2 ~ 7 回第 2 章 ~ 第 5 章 第 8 回中間ミニテスト (11 月 15 日 ) 第 9 回第 6 章 ~ 第 回ローム記念館 2Fの実習室で UML によるロボット制御実習 定期試験 2

CMOS リニアイメージセンサ用駆動回路 C10808 シリーズ 蓄積時間の可変機能付き 高精度駆動回路 C10808 シリーズは 電流出力タイプ CMOS リニアイメージセンサ S10111~S10114 シリーズ S10121~S10124 シリーズ (-01) 用に設計された駆動回路です セン

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

if clear = 1 then Q <= " "; elsif we = 1 then Q <= D; end rtl; regs.vhdl clk 0 1 rst clear we Write Enable we 1 we 0 if clk 1 Q if rst =

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

<4D F736F F F696E74202D D4C82F08A B582BD A A F2E707074>

Microsoft PowerPoint - 2-4_matsunaga

スライド 1

Microsoft Word - r0703.doc

電気的特性 (Ta=25 C) 項目 記号 条件 Min. Typ. Max. 単位 読み出し周波数 * 3 fop khz ラインレート * Hz 変換ゲイン Gc ゲイン =2-5 - e-/adu トリガ出力電圧 Highレベル Vdd V -

0630-j.ppt

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

言語プロセッサ2005

卒業論文 巡回冗長検査 CRC32 のハード / ソフト最適分割の検討 氏名 : 伊藤大喜学籍番号 : 指導教員 : 山崎勝弘教授提出日 : 2009 年 2 月 19 日 立命館大学理工学部電子情報デザイン学科

f2-system-requirement-system-composer-mw

Using VectorCAST/C++ with Test Driven Development

2) では, 図 2 に示すように, 端末が周囲の AP を認識し, 認識した AP との間に接続関係を確立する機能が必要である. 端末が周囲の AP を認識する方法は, パッシブスキャンとアクティブスキャンの 2 種類がある. パッシブスキャンは,AP が定期的かつ一方的にビーコンを端末へ送信する

スライド 1

Microsoft Word _C2H_Compiler_FAQ_J_ FINAL.doc

スライド 1

Microsoft PowerPoint - Chap1 [Compatibility Mode]

プロジェクトマネジメント知識体系ガイド (PMBOK ガイド ) 第 6 版 訂正表 - 第 3 刷り 注 : 次の正誤表は PMBOK ガイド第 6 版 の第 1 刷りと第 2 刷りに関するものです 本 ( または PDF) の印刷部数を確認するには 著作権ページ ( 通知ページおよび目次の前 )

Pervasive PSQL v11 のベンチマーク パフォーマンスの結果

次世代 LSI 設計ツール DesignPrototyper のご紹介 2000 年 12 月 フューチャーデザインオートメーション株式会社

Microsoft PowerPoint - 7.Arithmetic.ppt

Quartus II クイック・スタートガイド

Report Template

No43 テレビ放送電波はどんな形?(その1・概説)

スイッチ ファブリック

NSW キャリア採用募集職種一覧 2018/8/16 現在 求人番号 職種対象業務必要とするスキル 経験 資格等勤務地 1 営業スペシャリスト金融 ( 損保 生保 クレジット ) 業でのソリューション営業 IT 業界での営業経験 金融業界 IT 業界での人脈がある方尚可 渋谷 2 プロジェクトマネー

Smarter Vision のための最もスマートな選択

Microsoft PowerPoint - Chap4 [Compatibility Mode]

NEC 製PC サーバ『Express5800 R120f-1E』とSanDisk『ioMemory SX /SX 』検証報告書

Microsoft PowerPoint ppt

スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD 経済産業省, 独立行政法人情報処理推進機構

Virtex-6 Clocking

JTAG バウンダリスキャンテストの容易化設計を支援する OrCAD Capture の無償プラグイン 21 July 2017 ( 富士設備 / 浅野義雄 )

05-scheduling.ppt

CLEFIA_ISEC発表

SimulinkによるReal-Time Test環境の構築

IBIS Quality Framework IBIS モデル品質向上のための枠組み

PowerPoint プレゼンテーション

GTR Board

Microsoft PowerPoint - 9.Analog.ppt

PowerPoint プレゼンテーション

15288解説_D.pptx

PowerPoint Presentation

__________________

並列・高速化を実現するための 高速化サービスの概要と事例紹介

VHDL

設計現場からの課題抽出と提言 なぜ開発は遅れるか?その解決策は?

Transcription:

今さら聞けない高位合成 ~ 一から学ぶ高位合成 ~ シャープ株式会社電子デバイス事業本部副参事山田晃久 1

ハードウェア設計と抽象度 要求仕様 動作仕様設計制約 ( コスト 性能 消費電力 ) システムの実現方式を決定システム設計 ( 動作レベル設計 ) ( アーキテクチャ アルゴリズム ) システム分割 (HW/SW) 機能ブロック RTL 記述 機能設計 (RTL 設計 ) 論理合成 ハードウェアの処理を設計 ( データ処理回路と制御回路 ) クロックレベルのタイミング設計 ゲートレベル記述 論理設計 論理素子 (AND/OR/NOT など ) と記憶素子 ( フリッフ フロッフ ) による回路設計 レイアウト設計 フロアプラン決定配置配線 2

ハードウェア設計と抽象度 要求仕様 動作仕様設計制約 ( コスト 性能 消費電力 ) 動作レベル記述 RTL 記述ゲートレベル記述 システムの実現方式を決定システム設計 ( 動作レベル設計 ) ( アーキテクチャ アルゴリズム ) システム分割 (HW/SW) 機能ブロック高位合成 ( 動作合成 ) ハードウェアの処理を設計機能設計 (RTL 設計 ) ( データ処理回路と制御回路 ) クロックレベルのタイミング設計論理合成 論理設計 論理素子 (AND/OR/NOT など ) と記憶素子 ( フリッフ フロッフ ) による回路設計 レイアウト設計 フロアプラン決定配置配線 3

動作レベル設計と RTL 設計 動作レベル設計 動作 ( アルゴリズム ) を設計 How のみを設計 ハードウェアによる実装とは独立 RTL(Register Transfer Level) 設計 クロック毎のレジスタ間のデータ転送を設計 How と When と by What を設計 レジスタや演算回路とそれらの制御を設計 ( ある程度ハードウェアが見えている ) 4

高位合成とは 設計対象の回路の動作 アルゴリズムか らレジスタ転送レベル (RTL) の回路を自 動で合成する技術 High level synthesisの和訳 動作合成 (Behavioral synthesis) とも 呼ばれる 5

高位合成処理 HDL 中の演算の 1. 実行するサイクルを決定し ( スケジュー リング ) 2. 各演算を演算器に割り当て 必要に応 じて接続し ( アロケーション ) 3. それらの回路要素を制御する回路を 生成する ( 制御回路生成 ) 6

スケジューリング Y = a * b * c * d; データフローグラフ Step 0 a b a bc d * * * Mult Step 1 * c d 1 Step 2 * 1 Step 3 * 1 Reg 2 3 2 1 リソース制約 : 使用できる乗算器数は 1 個 7

アロケーション Step 0 a b Mult Reg Step 1 * c d 1 Step 2 * 1 Step 3 * 1 2 3 2 b a c d s1 s2 s3 Q R1 Q R2 Q R3 s4 s5 * 1 データパスの構成 スケジューリング結果 演算器やレジスタなどの演算資源をどのように割当て 共有するか ( リソースシェアリング ) を決定 8

制御回路生成 Step 0 a b Mult Reg 2 Step 1 * c d 1 3 Step 2 * 1 2 Step 3 * 1 1 スケジューリング結果 b a c d s1 s2 s3 Q R1 Q R2 Q R3 s4 s5 * s1 s2 s3 s4 s5 R1 R2 R3 Step 0 1 0 X X X 1 1 0 Step 1 0 1 0 0 0 1 1 1 Step 2 X X 1 1 1 0 0 1 Step 3 X X X 0 1 0 0 1 9

RTL 設計 設計の焦点 クロック毎のレジスタ間のデータ転送をどのように するか?( 同期設計 ) レジスタ間のデータ処理と制御を検討 設計手法 RT レベルのハードウェア記述言語を使用 論理合成を利用 - コストや性能の制約にもとづいてさまざまな組合せ回路 を合成 ( レジスタ構造は固定 ) 10

RTL 記述 レジスタや演算回路とそれらの制御を記述 クロック毎のレジスタ間のデータ転送を記述 レジスタ レジスタ 外部入力 組合せ回路 クロックク外部出力データ処理回路 ( データパス ) 制御回路 ( 状態遷移機械 ) 11

動作レベル設計 設計の焦点 どのようなアルゴリズムで機能を実現するか? データフローを検討 設計手法 システム全体をまとまった機能ブロックに分割 動作レベルのハードウェア記述言語を使用 高位合成を利用 - コストや性能の制約 入出力の制約 ( 順序制約やタイミング制約 ) を与えてさまざまな構成の回路を合成 12

設計抽象度の差 (1) 動作レベル Y = a * b * c * d; RT レベル 動作レベルではハードウェア実装を意識しない Q Q Q Q * * * Q Q Q コントローラ * 回路 1 回路 n 13

設計抽象度の差 (2) 動作レベル architecture t behavior of MUL4 is begin MULT:process(a,b,c,d) begin y <= a * b * c * d; end process ; end behavior; 7 行 行数で数 ~10 倍 architecture RTL1 of MUL4 is signal aa, bb, cc, dd: unsigned(7 downto 0); begin MULT:process(CLK) begin if CLK event and CLK = 1 then aa <= a; bb <= b; cc <= c; dd <= d; y <= (aa * bb) * (cc * dd); end if; end process ; 11 行 end RTL1; RT レベル architecture RTLn of MUL4 is signal mul: unsigned(7 downto 0); signal m1, m2: unsigned(7 ( downto 0);.. begin MULT:process(CLK) begin if CLK event and CLK = 1 then mul <= m1 * m2; end if; end process ; SEL1:process(CLK) begin if CLK event and CLK = 1 then if stage = 1 then m1 <= a; else 48 行 m1 <= mul; end if; ; end if; end process ;. y <= mul; end RTLn; 14

動作レベル設計と RTL 設計 動作レベル設計 How のみを設計 RTL 設計 どのような処理を行うか? How と When と by What を設計 いつその処理を どの演算器がその処理を 行うか? 行うか? スケジューリング アロケーション 15

Cベース設計 C HW/SW 分割 ( アルゴリズム / 仕様設計 ) HW 仕様 C (SW) Cコンハ イラ RTL 記述 オフ シ ェクトコート 論理合成 SoC 16

Cベース設計 C HW/SW 分割 ( アルゴリズム / 仕様設計 ) C (HW) HW/SW 検証 C (SW) Cコンハ イラ RTL 記述 オフ シ ェクトコート 論理合成 SoC 17

Cベース設計 C HW/SW 分割 ( アルゴリズム / 仕様設計 ) 高位合成 C (HW) HW/SW 検証 C (SW) Cコンハ イラ RTL 記述 オフ シ ェクトコート 論理合成 SoC 18

Cベース設計 C ( アルゴリズム / 仕様設計 ) C ベースの動作レベル設計 HW/SW 分割 高位合成 C (HW) HW/SW 検証 C (SW) Cコンハ イラ RTL 記述 オフ シ ェクトコート 論理合成 SoC 19

C ベースの動作レベル設計のメリット 期待できるメリット 記述量が少なくなる 高速に機能検証が行える 検証した機能がそのまま回路になる 早い段階で回路規模 性能が見積もれる たくさんの C プログラム資産が利用できる 20

高位合成のターゲット回路 外部入力 データ処理用の回路 ( データパス ) 外部出力 演算結果 制御信号 制御回路 21

高位合成技術の適用範囲 (1) 入力処理 1 処理 2 出力 イベントハンドラ 疑問 : どの部分に高位合成を適用すべきか? 22

高位合成技術の適用範囲 (2) 各ブロックの処理が簡単な場合 入力処理 1 処理 2 出力 一つの動作で記述して高位合成 イベントハンドラ 各ブロックの処理が複雑な場合 別々のブロックにした方が考えやすい 23

シャープでの取り組み システムの並行性を CSP (Communicating Sequential Processes) として表現 各逐次プロセスを高位合成技術で合成 入力 処理 1 par 入力 ; 処理 2 出力 処理 1; 処理 2: 出力 ; イベント イベントハンドラ ; ハンドラ 24

上流設計の考え方 設計対象を CSP として表現 ( 設計者の仕事 ) 各ブロックの高位合成ブロック間の接続 ( 計算機の仕事 ) 入力処理 1 動作仕様 処理 2 出力 イベントハンドラ 論理合成可能な RTL 回路 このような上流設計が可能となる設計環境を構築する 25

Bach システム Bach C 言語 Bach コンパイラ 入力処理 1 動作仕様 処理 2 出力 イベントハンドラ 論理合成可能な RTL 回路 Bach C シミュレータ サイクル精度 C シミュレータ 26

Bach を用いた設計フロー 仕様 Bachシステム Untimed 検証動作の確認 Bachシミュレーションション Bach C 記述テ ハ ック 入出力のチェック高位合成 (Bachコンパイ Timed 検証ラ ) サイクル精度 C 回路スペックの確認シミュレーションサイクル精度 RTL 記述スループット RTLシミュレーション C 記述レイテンシのチェックテ ハ ック 既存 RTL 記述 RTL シミュレーション 既存設計手法 論理合成 レイアウト LSI 27

適用事例 MPEG-4 コーデック LSI IrSimple フォトアダプタ用画像処理エンジン CCD カメラ CMOS センサカメラ用 DSP ワンセグ受信用マルチメディア処理 LSI 28

フレームレート変換 LSI 設計への適用 60 フレーム / 秒の入力動画を 120 フレーム / 秒に変換 60 フレーム / 秒 120 フレーム / 秒 外部仕様 入力 :60 フレーム / 秒 出力 :120 フレーム / 秒 中間のフレームを生成 画像サイズ : フルスペック HD (1920 x 1080) 29

FRC LSI の設計 / 検証フロー R&D 部門 アルゴリズム検証 C シミュレーションションテ ハ ック C ソース デバイス開発部門 Untimed 検証 Bach C シミュレーションテ ハ ック BachC 記述 Bach システム Timed 検証 RTL シミュレーション RTL 記述 高位合成 既存設計手法 エミュレーション 既存 RTL 記述 RTL 検証 論理合成 レイアウト LSI 30

動作レベル設計 (C Bach C) 1. C 言語で設計する部分とそれ以外の切り分け C 言語で設計しなかった回路 - アナログ回路 - 単相片エッジのクロックで動作しない回路 - 既設計の回路 - テスト回路 2. 全体のデータ 制御の流れを決定 C 言語ベース設計といえどもトップダウンのアプローチは必要 31

FRC アルゴリズム Motion vector estimation Input 60p Pre-processing Motion vector estimation Interpolation Frame interpolation Up-converted output 120p 32

動作レベル設計 (C Bach C) 1. C 言語で設計する部分とそれ以外の切り分け C 言語で設計しなかった回路 - アナログ回路 - 単相片エッジのクロックで動作しない回路 - 既設計の回路 - テスト回路 2. 全体のデータ 制御の流れを決定 C 言語ベース設計といえどもトップダウンのアプローチは必要 3. サブモジュールの詳細化 固定小数点化 ビット幅指定 並列化 33

FRC LSI の設計 / 検証フロー R&D 部門 アルゴリズム検証 C シミュレーションションテ ハ ック C ソース デバイス開発部門 Untimed 検証 Bach C シミュレーションテ ハ ック BachC 記述 Bach システム Timed 検証 RTL シミュレーション RTL 記述 高位合成 既存設計手法 エミュレーション 既存 RTL 記述 RTL 検証 論理合成 レイアウト LSI 34

Bach C RT レベル回路 1. Bach C レベルで untimed な検証 2. 高位合成 3. 単体でRT レベル検証し 処理サイクルを確認 4. スループット 回路規模のチューニングが必要なら Bach C コードを修正し 1 へ 5. システム全体で RT レベル検証 35

各工程の検証時間 Original ANSI C Bach C Emulator RTL simulator 79 秒 49 秒 45 秒 228 時間 ( 見積もり ) 入力 5フレーム分の検証時間 CPU: インテル Xeon5160 36

FRC LSI の設計 / 検証フロー R&D 部門 機能検証テストテ ータ コート カハ レーシ 100% 機能カハ レーシ 100% アルゴリズム検証 C シミュレーションションテ ハ ック C ソース デバイス開発部門 Untimed 検証 Bach C シミュレーションテ ハ ック BachC 記述 Bach システム Timed 検証 RTL シミュレーション RTL 記述 高位合成 出力結果の完全一致 1.. 2.. 3.. 4.. チェックリスト (500 項目以上 ) を作成して確認 エミュレーション 出力タイミンク 仕様 既存 RTL 記述 アサーションヘ ース検証で一致を確認 RTL 検証 論理合成 レイアウト 既存設計手法 一発動作 LSI 37

設計結果 回路全体の 90% 以上を Bach C 言語で設計 アルゴリズムが Fix してから約 2 ヶ月でテープアウト完了 38

設計工程 アルゴリズム設計 (C 言語 ) アルゴリズムと回路の並行開発 動作レベル設計 (Bach C 言語 ) 論理合成 RTL 検証 仮レイアウト 本レイアウト 時間 レイアウトまで含めた並行開発 時間 39

設計結果 回路全体の 90% 以上を Bach C 言語で設計 アルゴリズムが Fix してから約 2 ヶ月でテープアウト完了 リスピンなしで量産化 当社製アクオスに搭載し フレームレート変換機能付きフル スペック HD 液晶テレビを 世界で初めて 商品化 40

C+ 高位合成を使った設計の課題 タイミング収束 高位合成時の見積り精度 静的検証 動作レベルと RT レベル等価性検証 ECO への対応 抽象度と解析容易性のトレードオフ 記述スタイルの確立 41

C+ 高位合成を使った設計での注意点 すべての回路を C 言語で設計するのが良いと は限らない 良い合成ツールがあれば良い回路ができるわ けではない C 言語を使えば高速に検証できるわけではない 42