第6章 高位合成
6.1 高位合成の流れ
6.1 高位合成の流れ
与え 動作記述
コン ー ータ ー
CDFG, Control/Data-Flow Graph 表現
CDFG(Control/Data-Flow Graph) 生成
スケジューリング
CDFG 現 各演算操作
時刻 実行 ュー 決
各時刻 演算操作 割 当 こ ュー ン いう 時刻: ッ サ
コン ー ッ
制約 最適化 目標 決
与え 制約
最適 ュー 求
スケジューリング
ALAP ュー ン ASAP ュー ン
バインディング
ン ン
ュー ン さ CDFG 現 各演算操作や変数
具体的 演算器や タ
割 当 処理
バインディング
バインディング
3つのレジスタが必要 レジスタR1, R2, R3
バインディング
RTL 回路記述生成
チ サ方式 方式
割 当 演算器や タ間 結線 実現
こ ータ 生成
生成さ ータ
CDFG 動作 実現
制御信号 生成 コン ー 生成
RTL 回路記述生成
チ サ方式
演算器や タ間 結線 実現
こ ータ 生成
RTL 回路記述生成
6.2 コントロール/データフローグラフ
6.2 コントロール/データフローグラフ
6.3 スケジューリング
ュー ン 行う あ
CDFG 現 演算 実現
う 種類 演算器 け使う 決
加算 い 加算器 加減算器 ALU
乗算 い 並列乗算器 ン乗算器
そ ビッ 幅 処理速度 遅延時間 面積 等々 含 演算器 種類 そ 個数 選ぶ
こ う 演算器 ソー 種類 個数 決 こ
ソー ー ョン いう
6.3 スケジューリング
6.3 スケジューリング
ソー
遅延時間 6 ns 処理 加算器 16 ns 乗算器 選
演算器 遅延時間以外 遅延時間
チ サ タ 遅延時間
考慮
ッ サ 加算や乗算 完了
ッ サ 20 ns 設定
ASAP ALAP
加算器や乗算器 個数
制約 ュー ン こ 考え
考慮 い いけ い
CDFG 示さ 演算 順序 依存関係 け
先 処理
ASAP (As Soon As Possible) ュー ン
け後 処理
ALAP(As Late As Possible) ュー ン
ASAP スケジューリング
ALAP スケジューリング
ASAP vs. ALAP
ALAP ュー ン
乗算器 個 減 加算器 個必要
最小 ッ サ 数 実現
ッ サ 20 ns 全体 60 ns ASAP ュー ン
乗算器 個必要
面積制約(1乗算器、1加算器)
乗算器 個 加算器 個 いう制約 考え
最小 ッ サ 数
ュー ン
ッ サ
ッ サ 増え
面積 最小 い
全体 時間 80 ns 長
面積制約(2乗算器、1加算器)
制約 変え
乗算器 2個 加算器 個
制約
時間最小 ュー
ッ サ 数 減
A1A5 加算器 一 減
多サイクル演算、制約(1乗算器、1加算器)
複数 ッ サ
実行 演算 多サ (multi-cycle)演算
ッ サ 10 ns
乗算器 個,加算器 個
いう制約
時間最小 ュー
乗算 ッ サ
演算器数 最小
時間 8 ッ サ
多サイクル演算、制約(2乗算器、1加算器)
ッ サ 10 ns 乗算器 個 加算器 個
制約
時間最小 ュー
ッ サ
全体 時間 50 ns
こ 考え 中
時間最小
最 ォー ン 良い
ュー
比較、制約(2乗算器、1加算器)
制約 乗算器 個 加算器 個
制約 乗算器 個 加算器 個
多サ 演算 考え こ 同 面積制約 短い時間
ュー 求 こ
チェイニング
多サ 演算 ッ サ 時間 短縮
一 演算 複数 ッ 渡 実行 対
反対 ッ サ 時間 延
ッ サ 内 複数 演算 連続 実行
チェ ニン (chaining)
演習問題
動作記述 )FG 対
y = ((a*b)+c)+(d*e)-(f+g)
各制約 ュー ン 行え
。1) 乗算器 個 加減算器 個
演算 時刻 実行可能 。2) 乗算器1個 加算器2個 減算器 個
乗算器 実行 時刻 チサ 演算
。3) 乗算器 個 加算器 個 減算器 個
乗算器 実行 時刻 チサ 演算
演習問題1((1)解答例)
y = ((a*b)+c)+(d*e)-(f+g)
。1) 乗算器 個 加減算器 個
演算 時刻 実行可能
ッ サ 20 ns
サ 80ns
*
a b
+
−
+ c d e f g
y +
*
演習問題1((2)解答例1)
y = ((a*b)+c)+(d*e)-(f+g)
。2) 乗算器1個 加算器2個 減算器 個
乗算器 実行 時刻 チサ 演算
ッ サ 10 ns 6サ 60ns
*
a b
+
−
+
*
c d e f g
+
演習問題1((2)解答例2)
y = ((a*b)+c)+(d*e)-(f+g) = ((a*b)+(c+((d*e)-(f+g)))
。2) 乗算器1個 加算器2個 減算器 個
乗算器 実行 時刻 チサ 演算
ッ サ 10 ns 5サ 50ns
*
a b
+
+
−
+
*
c d e f g
演習問題1((2)解答例3)
y = ((a*b)+c)+(d*e)-(f+g) = ((a*b)+c)-(f+g)+(d*e)
。2) 乗算器1個 加算器2個 減算器 個
乗算器 実行 時刻 チサ 演算
ッ サ 10 ns 5サ 50ns
*
a b
+
+
−
+
*
c f g d e
演習問題1((3)解答例)
y = ((a*b)+c)+(d*e)-(f+g)
。3) 乗算器 個 加算器 個 減算器 個
乗算器 実行 時刻 チサ 演算
ッ サ 10 ns 4サ 40ns
*
a b
+
+
−
+
*
c d e f g
y
6.4 バインディング
演算 必要 入力 ータ
そ 演算 行わ い 間そ 値 保持 そ 演算結果 値
そ ッ サ 終了時 保持 必要 あ
こ 値 保持
タや ー ー
記憶回路 行う
CDFG い
演算 使わ 入力や演算結果 変数 表
スケジュールされたDFG
レジスタのライフタイム
レジスタのバインディング
同 時刻
一 タ 一 内部変数
割 当 こ い
少 タ 必要
タR1, R2, R3
R : し1, し5 R : し2, し4 R : し3
演算器のバインディング
ュー さ 各演算
ソー ー ョン 選択
演算器 割 当
ン ン
乗算器 : oた1, oた3 乗算器 : oた2, oた4
ン ン
乗算器 : oた1, oた4 乗算器 : oた2, oた3
演算器のバインディング
データパスの構成
ン ン
タR1, R2, R3 び
乗算器 乗算器
加算器 配置
データパスの構成
タ 演算器 び
入力a, b, c, d, e, f 出力x, y 間
接続関係
ュー さ DFG ン ン 情報
求 い
乗算器 い
接続関係 求
R : し1, し5
乗算器 接続関係
演算器 ン ン
タ ン ン
データパスの構成
データパスの構成
乗算器 : 左入力 a, e 右入力 b, f 出力 R1
データパスの構成
い
乗算器 い
接続関係 求
R2: し2, し4
乗算器 接続関係
乗算器 :左入力 c 右入力 d, h3 出力 R2
ュー さ )FG
データパスの構成
演算器 ン ン
タ ン ン
データパスの構成
R2: し2, し4 R3: し3
し3 = R3
データパスの構成
い
加算器 い
接続関係 求
タ ン ン R1: し1, し5 R2: し2, し4 R3: し3
データパスの構成
左入力 a, し1, し5) = 。a, R1) 右入力 b, し2, し4) = 。b, R2) 左入力 a, し1, し4) = 。a, R1, R2) 右入力 b, し2, し5) = 。b, R2, R1)) 出力 し4, し3) = 。R2, R3)
加算器: 左入力 a, R1 右入力 b, R2
出力 R2, R3
データパスの構成
乗算器 : 左入力 a, e 右入力 b, f 出力 R1 乗算器 : 左入力 c 右入力 d, R3 出力 R2
加算器: 左入力 a, R1 右入力 b, R2 出力 R2, R3
求
次 各 タ い 接続関係 求
データパスの構成
タ ン ン R1: し1, し5 R2: し2, し4 R3: し3
データパスの構成
R :入力 乗算器 。oた1,oた3) 出力 加算器左入力。し1,し5)
タ ン ン R1: し1, し5 R2: し2, し4 R3: し3
データパスの構成
R :入力 乗算器 。oた1,oた3) 出力 加算器左入力。し1,し5)
R2:入力 乗算器 。oた2), 加算器 出力 加算器右入力。し2,し4), と
タ ン ン R1: し1, し5 R2: し2, し4 R3: し3
データパスの構成
R :入力 乗算器 。oた1,oた3) 出力 加算器左入力。し1,し5)
R2:入力 乗算器 。oた2), 加算器 出力 加算器右入力。し2,し4), と
R3:入力 加算器
出力 乗算器右入力。し3) で
データパスの構成
R :入力 乗算器
出力 加算器左入力
R2:入力 乗算器 , 加算器 出力 加算器右入力, と
R3:入力 加算器
出力 乗算器右入力, で
データパスの構成
コントローラの構成
コン ー
ータ 内
チ サや タ
制御信号 発生 FSM 設計
チ サ 制御信号
m1, m2, m3, m4
タ 値 取 込 制御信号 r1, r2, r3
コントローラの構成
時刻 状態S チ サ 制御信号
m1=0, m2=0 他 ン
コントローラの構成
時刻 状態S チ サ 制御信号
コントローラの構成
時刻 状態S2 チ サ 制御信号
m1=0, m2=0 保持 タR1, R2 演算結果 取 込 r1=1, r2=1m4=0, r1=1, r2=1
コントローラの構成
時刻 状態S2 チ サ 制御信号
m1=0, m2=0 保持 タR1, R2 演算結果
62
コントローラの構成
時刻3 状態S3 チ サ 制御信号
タR1, R2 値 保持 r1=0, r2=0 乗算器 入力 e, f 選ぶ m1=1,
加算器 入力 a,b 選ぶ m3=0, 加算結果 R3 取 込 r3=1
コントローラの構成
時刻3 状態S3 チ サ 制御信号
タR1, R2 値 保持 r1=0, r2=0 乗算器 入力 e, f 選ぶ m1=1,
加算器 入力 a,b 選ぶ m3=0,
コントローラの構成
演習問題2
動作記述 )FG 対
y = ((a*b)+c)+(d*e)-(f+g)
制約 得 ュー 対 ン ン 行い
ータ コン ー 生成
。1) 乗算器 個 加減算器 個
演算 時刻 実行可能
演習問題2
y = ((a*b)+c)+(d*e)-(f+g)
ュー 結果 乗算器 個 加減算器 個
ン ン 行い ータ コン ー 生成