VLSI設計論第4回 アキュムレータマシンと 仮遅延シミュレーション

Slides:



Advertisements
Similar presentations
2008インターンシップ 株式会社DNPエル・エス・アイ・デザイン. ・ 志望動機 LSI設計にとても興味があり、LSIについてより多くの知識を習得したい為。 また、大学では学ぶことのできない内容を学習したい。 ・ 実習の目的 大学で学ぶことのできない知識を学び、大学で学んだことがある 内容をいかに応用して実習の課題をこなして自分の知識として.
Advertisements

CPU設計と パイプライン.
計算機工学特論A 10/17  テキスト内容 1.1~1.4.
07. 値予測 五島 正裕.
第10回 電力見積もりと省電力設計 慶應義塾大学 理工学部 天野.
5.3 各種カウンタ 平木.
高性能コンピューティング学講座 三輪 忍 高性能コンピューティング論2 高性能コンピューティング論2 第4回 投機 高性能コンピューティング学講座 三輪 忍
Verilog設計演習 Ⅰ 入 門 編 広島県立西部工業技術センター
Handel-C基礎 および 7セグとマウスのハンドリング
Verilog HDL 12月21日(月).
テープ(メモリ)と状態で何をするか決める
4. 順序回路 五島 正裕.
オリジナルなCPUの開発 指導教授:笠原 宏 05IE063 戸塚 雄太 05IE074 橋本 将平 05IE089 牧野 政道
計算機構成 第7回 サブルーチンコールとスタック テキストp85-90
ロジック回路学習ボード MLCTB-BASE 説明書 NAND 7400 NOT 7404 AND 7408 OR 7432
VLSI設計論第2回 組み合わせ回路の記述と 論理シミュレーション
4.2.2 4to1セレクタ.
計算機構成 第9回 POCOの性能評価と論理合成 テキスト7章
7. 順序回路 五島 正裕.
8. 順序回路の簡単化,機能的な順序回路 五島 正裕.
集積回路 2. VLSIの設計から製造まで 松澤 昭 2004年 9月 月 新大 集積回路.
2005年11月2日(木) 計算機工学論A 修士1年 No, 堀江準.
第7回 2006/6/12.
計算機工学特論A 第4回 論理合成 山越研究室 増山 知東 2007年11月7日 .
VLSI設計論 慶應義塾大学 理工学部 情報工学科 山﨑 信行
計算機入門I ハードウェア(1) 計算機のハードウェア構成 ~計算機のハードウェアとは何か~
生産実習(インターンシップ) 株式会社DNPエル・エス・アイ・デザイン 設計本部第1部第1課 日本大学 生産工学部
ハードウェア記述言語による 論理回路設計とFPGAへの実装 2
計算機構成 第1回 ガイダンス VerilogHDLのシミュレーション環境
汎用テストベンチ作成ツール を用いた シミュレーションからテストまで
OpenMPハードウェア動作合成システムの検証(Ⅰ)
計算機工学特論A   テキスト内容 5.6.
第6回 dc_shellを使った論理合成 慶應義塾大学 理工学部 天野.
各種波形フォーマット変換 / タイミングダイアグラム描画ツール
ディジタル回路 6. 順序回路の実現 五島 正裕.
Advanced Computer Architecture
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
第6回 6/4/2011 状態遷移回路とシングルサイクルCPU設計
計算機構成 第6回 分岐命令とプログラムの実行 テキスト第5章
第二部  回路記述編 第3章 文法概略と基本記述スタイル 3.1 文法を少々 3.1.1~3.1.3.
ディジタル回路の設計と CADによるシステム設計
計算機構成 第2回 ALUと組み合わせ回路の記述
4点FFT設計 ファイヤー和田 知久 琉球大学・工学部・情報工学科 教授
コンピュータアーキテクチャ 第 7 回.
コンピュータアーキテクチャ 第 7 回.
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
計算機構成 第4回 アキュムレータマシン テキスト第3章
VLSI設計論第3回 順序回路の記述と論理合成
計算機構成 第8回 POCOの構造とVerilog記述 テキスト第5章-第6章
計算機構成 第11回 マルチサイクルCPU 慶應大学 天野英晴.
計算機構成 第5回 RISCの命令セットアーキテクチャ テキスト第4章
信号伝搬時間の電源電圧依存性の制御 による超伝導単一磁束量子回路の 動作余裕度の改善
コンピュータアーキテクチャ 第 10 回.
09. メモリ・ディスアンビギュエーション 五島 正裕.
Fire Tom Wada IE dept. Univ. of the Ryukyus
コンピュータアーキテクチャ 第 9 回.
計算機工学特論 スライド 電気電子工学専攻 修士1年 弓仲研究室 河西良介
コンピュータアーキテクチャ 第 10 回.
コンピュータアーキテクチャ 第 5 回.
8. 順序回路の実現 五島 正裕.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
コンピュータアーキテクチャ 第 9 回.
計算機工学論A P46~P49 クロック、リセット、クロック・イネーブルのセット 状態の出力値の指定 ステート・トランジョンの指定
コンピュータアーキテクチャ 第 5 回.
ディジタル回路 8. 機能的な順序回路 五島 正裕.
コンピュータ工学基礎 マルチサイクル化とパイプライン化 テキスト9章 115~124
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
信号伝搬時間の電源電圧依存性の制御 による超伝導単一磁束量子回路の 動作余裕度の改善
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
Presentation transcript:

VLSI設計論第4回 アキュムレータマシンと 仮遅延シミュレーション 慶應義塾大学 理工学部 情報工学科 天野

アキュムレータマシン 合成部分 ir ALU accum ‘1’ pc + Instruction Memory Data Memory op.code ALU ‘1’ accum pc operand + idata aout ddata we_ Instruction Memory Data Memory iadr dadr

状態遷移 Instruction Execution Fetch pc←pc+1 ir ← idata rst_ BEQ: if (accum == 0) pc← ir[3:0] BNQ: if (accum != 0) pc← ir[3:0] ST: we_ = L else: accum ← ALU出力

アキュムレータの記述(1) `include "my1.h" `define STNUM 2 `define IF `STNUM'b01 `define EX `STNUM'b10 `define EX_BIT 1'b1 module accum(clock, rst_, ddata, idata, iadr, dadr, acout, we_); input clock, rst_; input [`DataBus] ddata; input [`InstBus] idata; output [`DataBus] iadr; output [`DataBus] dadr; output [`DataBus] acout; output we_; reg [`DataBus] accum; // Accumulator reg [`DataBus] pc;        // Program Counter reg [`InstBus] ir; // Instruction Register reg [`STNUM-1:0] stat; // State register wire [`DataBus] alu_y; assign acout = accum; assign iadr = pc; assign dadr = ir[3:0]; assign we_ = ~(stat[`EX_BIT] & ir[7:4] == `ST) ; alu alu0(.ina(accum), .inb(ddata), .com(ir[6:4]), .y(alu_y));

アキュムレータの記述(2) この記述は命令により様々なレジスタを 制御している リソースシュアリングが 可能だが、やりすぎると always@(posedge clock) begin if(rst_ == `Enable_) begin stat <= `IF; pc <= 4'b0000; end else case (stat) //Case文 `IF: begin ir <= idata; pc <= pc+1; stat <= `EX; end `EX: begin case (ir[7:4])   //Case文入れ子 `BEQ: if (accum == 4'b0000) pc <= ir[3:0]; `BNE: if (accum != 4'b0000) pc <= ir[3:0]; default: if(ir[7]==1'b0) accum <= alu_y; endcase stat <= `IF; end end endmodule この記述は命令により様々なレジスタを 制御している リソースシュアリングが 可能だが、やりすぎると バグの元なので注意!

テストベンチ(1) `include "my1.h" `timescale 1ns/1ps module datapat_test; parameter STEP = 10; reg rst_, clk; reg [`DataBus] dmem[`MemSize]; reg [`InstBus] imem[`MemSize]; wire [`DataBus] acout, ddata; wire [`InstBus] idata ; wire [`AdrBus] iadr, dadr; wire we_; accum ac0( .clock( clk ), .rst_( rst_ ), .ddata( ddata ), .idata( idata ), .iadr( iadr ), .dadr( dadr ), .acout (acout), .we_ (we_) );

テストベンチ(2) always #( STEP / 2 ) begin clk <= ~clk; end assign idata = imem[iadr]; always @(posedge clk ) if (!we_) dmem[dadr] <= acout; assign ddata = dmem[dadr]; initial begin #0 clk <= `Low; rst_ <= `Enable_; #(STEP/4) #(STEP) rst_ <= `Disable_; #(STEP*100) $finish; always @( negedge clk ) begin $display( "stat = %b pc = %x ir = %x, accum = %x", ac0.stat, iadr, ac0.ir, acout); $readmemb("imem.dat", imem); $readmemb("dmem.dat", dmem); $shm_open(); $shm_probe("AC");

design_visionによる最適化 accmu.vとalu.vをReadする

クロックと面積の指定 create_clock –period 100 clock set_max_area 0 100nsecに設定(非常にゆっくり) set_max_area 0 面積は最小を指定 Design → Compile Designで合成 Design → Report Cellsで使用セル数 Timing → Report Timing Pathで遅延を見る

面積重視の合成

速度重視の設定 create_clock –period 2 clock 2nsecに設定(非常に高速) フリップフロップ間の遅延とセットアップ時間がクロック周期より小さくなるようにがんばってくれる Design → Compile Designで合成 Design → Report Cellsで使用セル数 Timing → Report Timing Pathで遅延を見る

速度重視の合成

クリティカルパス上の信号名をクリックすると表示してくれる 回路の解析 クリティカルパス上の信号名をクリックすると表示してくれる

Highlight -> Critical Pathでクリティカルパス全体を表示してくれる クリティカルパスの表示 Highlight -> Critical Pathでクリティカルパス全体を表示してくれる

合成後Verilogファイルの保存 File→Save As→Formatでverilogを指定 名前を付けて保存する(ソースファイルと重なっては駄目:ここではaccum_s.v) accum_s.vを表示してみよう AND, ORなどのゲートの形になっていることがわかる 合成後のシミュレーション(仮遅延シミュレーション) verilog accum_test.v accum.v -v /usr/local/vdec/lib/rohm/cadence/rohm06.v

仮遅延シミュレーション 遅延があるのがわかる

演習 アキュムレータにイミィデエイト命令を付け、テストし、合成、速度重視の最適化を行え。 シミュレーションして結果を確認、合成してゲート数を確認の上、天野(hunga@am.ics.keio.ac.jp)までソースとクリティカルパス長をメールのこと