計算機構成 第 1 回 ガイダンス veriloghdl のシミュレーション環境
DESCRIPTION
計算機構成 第 1 回 ガイダンス VerilogHDL のシミュレーション環境. 情報工学科 天野英晴. いまさらだが、、、. コンピュータは IT 社会の基盤部品 ノートブック、スマートフォーン、タブレット サーバー、クラウド、スーパーコンピュータ ビデオ機器、テレビ、ゲーム機器 ネットワーク機器 冷暖房、冷蔵庫、電気釜、洗濯機、掃除機だって制御はコンピュータ. しかし、概観の話は「計算機基礎」でやっている. 何をやるか?. CPU (中央処理装置)の設計をやり、シミュレーションをやりながら、内部構成を理解する。 - PowerPoint PPT PresentationTRANSCRIPT
計算機構成 第 1回ガイダンス
VerilogHDLのシミュレーション環境
情報工学科天野英晴
いまさらだが、、、
• コンピュータは IT社会の基盤部品–ノートブック、スマートフォーン、タブレット
–サーバー、クラウド、スーパーコンピュータ–ビデオ機器、テレビ、ゲーム機器–ネットワーク機器–冷暖房、冷蔵庫、電気釜、洗濯機、掃除機だって制御はコンピュータ
しかし、概観の話は「計算機基礎」でやっている
何をやるか?• CPU(中央処理装置)の設計をやり、シミュレーションをやりながら、内部構成を理解する。
• RISC (Reduced Instruction Set Computer)の命令セット、構成を中心に据える
• ハードウェア記述言語でのディジタル回路設計を学ぶ• 設計した CPUは秋学期の実験で使う• FPGAでも ASICでも実装可能
– Verilog-HDLの記述方式、シミュレーション方法– 演算回路– ALUと選択構文– CPUのデータパス、レジスタとメモリ– プログラム格納型計算機– RISCの命令セットアーキテクチャ– 分岐命令– サブルーチンコールとスタック– 論理合成と設計最適化
授業のやり方• テキスト:「作りながら学ぶコンピュータアーキテクチャ」
天野、西村著 培風館• 授業資料は http://www.am.ics.keio.ac.jpに掲示• 授業を 90分、演習を 90分→ 3単位はやや単位効率が悪いがその分調整する
• 演習は TAが面倒見てくれる。• 6時 15分には基本的に終わる。多くの人は 6時前に帰る。• 成績の付け方
– 試験+演習(各回 5点、間違うと 0点)により付ける– 休んだ場合、後から提出してもよい– この科目は楽に単位が取れるという意味で楽勝科目ではないが、
Aの比率は高い→普通に演習を提出し、試験前にちょっと勉強すれば Aが取れる!
コンピュータアーキテクチャ
情報工学実験第 2 ( I/Oを含んだマイクロプロセッサ)
VLSI設計論 (MIPSの設計、レイアウト)
マイクロプロセッサアーキテクチャ特論 コンピュータアーキテクチャ特論
SoC設計論 SoC設計演習
3年春
3年秋
4年春
大学院
ディジタル回路 計算機構成同演習
授業の流れ 計算機基礎
2年秋
2年春
コンピュータの構成
CPU
MemorySystem
Bridge
Disk
Key
Display
SystemBus
I/O Bus
コンピュータの3要素
この授業でやるところ
コンピュータのクラス
100 10000 100万 1億 100億
価格帯
性能
組み込みプロセッサ
デスクトップ、ラップトップ
タブレットスマートフォン
サーバー
データセンター用クラスタ
スーパーコンピュータ
特定のプログラムのみ動作コスト、消費電力が重要
最新の CPUを利用性能価格比グラフィック性能が重要
信頼性重視スループット重視
数値計算用特殊コンピュータ
コンピュータの歴史2度の大変革
性能
年1960 1970 1980 1990 2000 2010
×1.3/年
×1.5/年
×1.22/年
単体コアの性能向上
ムーアの法則
メインフレームの時代
マイクロプロセッサ性能爆発時代
マルチコアの時代
ハードウェア記述言語• HDL (Hardware Description Language)• 「計算機基礎」で習ったゲート接続図を使ったハードウェア設計は今は使われない– スケマティック設計と呼ばれる
• Verilog-HDLと VHDLの二つが標準– 最近は多くの CAD (Computer Aided Design)が両方を受け付ける
– CADによる論理合成、圧縮によってゲート接続図(ネットリスト)に変換される
• 最近は Cレベル設計も一般化– 将来は用途によって使い分けられるだろう– 大学院の授業で紹介、演習もある
Verilogと VHDL
Verilog-HDL VHDL
出自 論理シミュレーション記述
仕様書
標準化 デファクトスタンダード
国際標準
記述 Pacal風(嘘) PL/I→ADA
特徴 広い範囲でシミュレーションは可能
記述が厳格
情報工学科では Verilog HDLを採用
Verilogの基本文法
/* 1bit adder */
module adder (
input a,b, output s);
assign s = a+b; // add a,b
endmodule
コメントは C言語と同じ日本語キャラクタはトラブルの元なので止めて下さい
ハードウェアモジュールはモジュール文で定義、パラメータの書き方は C言語と似ている。
なぜかセミコロンが要る
assign文は信号の「接続」「出力」を示す。
endmoduleで終わるここにはセミコロンをつけてはダメ
adder.v: 拡張子は .v、ファイル名はトップモジュール名と同じにする
テストベンチ (test.v)
• シミュレーション制御のための記述module test; parameter STEP=10; reg ina, inb; wire outs; adder adder_1(.a(ina), .b(inb), .s(outs)); initial begin $dumpfile(“adder.vcd”); $dumpvars(0,adder_1); ina <= 1’b0; inb <= 1’b0; #STEP $display(“a:%b b:%b s:%b”, ina,inb,outs); ina <= 1’b0; inb <= 1’b1; #STEP…
テストベンチの記述
parameter STEP=10;
reg ina, inb;
wire outs;
adder adder_1(.a(ina), .b(inb), .s(outs));
parameter文は後に述べるdefine文と似ているがより柔軟
reg文での宣言では値を記憶できる。wire文は信号に名前を付けるだけ。これは後の授業で紹介する。
別ファイルで宣言したモジュール名インスタンス名
入出力への接続ピリオド以下はローカルな名前を使う
シミュレーションの制御initial begin $dumpfile(“adder.vcd”); $dumpvars(0,adder_1); ina <= 1’b0; inb <= 1’b0; #STEP $display(“a:%b b:%b s:%b”, ina,inb,outs); ina <= 1’b0; inb <= 1’b1; #STEP
initial文はシミュレーションを一回実行
波形ファイルを指定
記録する範囲を指定
reg文にはブロッキング代入 <=(これも後に紹介する)ここでは入力を制御時間消費
値の表示、プリント文と似ている%bで 2進数表示リターンは自動的に入る
Verilog-HDLのシミュレーション
• Ikarus Verilogを利用〇コンパイラ型のフリーソフトウェア
• Linux, Windowsマシンにインストール可能• iverilog XX.vでコンパイル、必要なファイルを全部書く• vvp a.outで実行、かなり高速
〇 Verilog2000に対応×遅延付シミュレーションができない
• 波形 Viewerは gtkwave〇フリーソフトウェア
Linux,Windowsマシンにインストール可能gtkwave XX.vcdで起動基本的な Viewerの機能は全て持つ
×他の Viewerに比べて少し使いにくいかも、、
後は実際にやってみよう演習加算を論理 AND(&)に置き換えてシミュレーションを実行しよう
andは予約語なので注意Webから tar fileを取って来る
tar xvf 1kai.tarで解凍提出は[email protected]: PARTHENON 学籍番号 名前名前はローマ字で書いてください