Microsoft Word - HW06K doc

Size: px
Start display at page:

Download "Microsoft Word - HW06K doc"

Transcription

1 完了した CP:1~19( 合計 19 個 ) 未達成の CP:20 [ 要旨 目的 ] CPU の製作を行う CPU の製作を通じて ハードウェア設計の流れを理解する CPU の構造について 理解を深める CPU 製作第 3 回の実験では 最終的なCPUの完成を目指す [ 原理 理論 ] まずは CPU の構造設計から行う 全体の構成は次のようになる 下の図では モニター回路は含まれない chattering killer +1 branch adr reg mux mux mux Controller program counter mem_buf re adr wdata we dataout memory [15:12] inst_reg [11:0] zero chk accumulator mux ALU CPU 回路の全体図

2 まず 図の中で MUX とあるが これはマルチプレクサで いずれも入力 2 出力 1 で 図の中の Controller からの出力をセレクタとし 出力の値を決めている この入力 2 出力 1 マルチプレクサは 入出力のビット数を外部からのパラメータで設定できるようになっている よって このマルチプレクサの Verilog コードは次のようになる module mux2x1 ( a, b, y, sel ); parameter n = 1; input [n-1:0] a, b; input sel; output [n-1:0] y; reg [n-1:0] y; or b or sel) case(sel) 1'd0 : y = a; 1'd1 : y = b; default : y = 'bx; case 次に 各レジスタ (branch adr reg program counter mem_buf inst_reg accumulator) は 名前は異なっているが いずれも同じもので ロード信号が入ったら 入力の値を内部に記憶し出力するレジスタである branch adr reg(branch address register) は 関数コールのときの戻り番地を格納しておくレジスタである branch adr reg の Verilog コードは次のようになる module branch_adr_reg ( in, out, clk ); input [15:0] in; input clk; output [15:0] out; reg [15:0] out; clk)

3 out = in; 次に program counter は プログラム実行のアドレスを保持するレジスタで 通常は値が1づつ増えていくが 適当なアドレスをロードすることによって 分岐などをすることが可能になる 図の中では 戻り値アドレス PC + 1 ジャンプアドレスのいずれかを マルチプレクサで選択してロードし 保持している よって program counter の Verilog コードは次のようになる module pc ( in, out, clk ); input [15:0] in; input clk; output [15:0] out; reg [15:0] out; clk) out = in; 次の mem_buf(memory buffer) は メモリからの出力を一時的に記憶するためのものである これはメモリからの値の読み出しに時間がかかるためである ハードウェアはクロックを基準に動いており 次のレジスタまで 1 クロック以内に処理が終わらなければ データが失われてしまう ここで もし mem_buf がなければ メモリからの出力が直接 inst_reg と もう一方はマルチプレクサ ALU を通過して accumulator に値が書き込まれる inst_reg のほうは問題ないが ALU を通過するほうは メモリからのデータの読み出しに 0.8 クロックかかったとしたら ALU では 0.2 クロック弱で計算を終え accumulator にデータを送らなければ期待した結果が得られない このため mem_buf でいったんデータを記憶し そこから ALU は 1 クロックで計算を行い データを送ることができれば期待した結果を得ることができる mem_buf の Verilog コードは次のようになる module mem_buf ( in, out, clk );

4 input [15:0] in; input clk; output [15:0] out; reg [15:0] out; clk) out = in; 次の inst_reg(instruction register) は メモリから読み出した命令を 記憶するレジスタで CPU はこのレジスタからの出力をデコードして 命令を実行する この inst_reg の Verilog コードは次のようになる module inst_reg ( in, out, clk ); input [15:0] in; input clk; output [15:0] out; reg [15:0] out; clk) out = in; 次の accumulator は ALU の演算結果を記憶するところである また accumulator の出力は ALU のオペランドにもなっている この accumulator の Verilog コードは次のようになる module accumulator ( in, out, clk ); input [15:0] in;

5 input clk; output [15:0] out; reg [15:0] out; clk) out = in; 次は メモリモジュールである このメモリは 16 ビット幅 64 ワードのメモリである 入力は 読み出し / 書き込みアドレス 書き込みデータ 読み出しと書き込みの制御信号 ( アドレスを読み出しと書き込みで共有しているため ) 初期化信号である 出力は 読み出しデータである それとメモリモニタ用に もうひとつの入力アドレスと出力データがある このメモリモジュールの Verilog コードは次のようになる module memory ( address, writedata, readdata, read, write, ld, address2, readdata2 ); input [5:0] address, address2; input [15:0] writedata; input read, write, ld; output [15:0] readdata, readdata2; reg [15:0] mem [0:63]; reg [15:0] readdata, readdata2; or read or write or address) if( ld == 1'b1 ) mem[0] <= 16'h3000; mem[1] <= 16'h2015; mem[2] <= 16'h2016; mem[3] <= 16'h3001; mem[4] <= 16'h2017;

6 mem[5] <= 16'h300a; mem[6] <= 16'h2018; mem[7] <= 16'h600a; mem[8] <= 16'hf000; mem[9] <= 16'h0000; mem[10] <= 16'h1016; mem[11] <= 16'h8017; mem[12] <= 16'h2016; mem[13] <= 16'h8015; mem[14] <= 16'h2015; mem[15] <= 16'h1016; mem[16] <= 16'h9018; mem[17] <= 16'h5013; mem[18] <= 16'h400a; mem[19] <= 16'h1015; mem[20] <= 16'h7000; mem[21] <= 16'h0000; mem[22] <= 16'h0000; mem[23] <= 16'h0000; mem[24] <= 16'h0000; else if ( write == 1'b1 ) mem[ address ] <= writedata; else readdata <= mem[ address ]; readdata2 <= mem[ address2 ];

7 次は ALU の設計を行う この ALU では 次の表の演算を行う ADD 加算 acc = acc + op SUB 減算 acc = acc - op XOR 排他的論理輪 acc = acc ^ op AND 論理積 acc = acc & op SRL 左シフト演算 acc = acc << op SRR 右シフト演算 acc = acc >> op LDA メモリからの値をロード acc = op LDI 即値をロード acc = op ここで 右シフト演算であるが これは 講義資料では算術シフトになっている したがって この演算は acc の値を左にシフトし 空いたところに シフト前の値の符号ビット (MSB) で埋めることになるが この演算は Verilog が論理シフト演算しかサポートしていないため Verilog の演算子では実装できない ここでは 右シフトだけのバレルシフタを実装し 算術右シフト演算を実現する よって ALU の Verilog コードは次のようになる `define ADD 4'h8 `define SUB 4'h9 `define AND 4'ha `define XOR 4'hb `define SRL 4'hc `define SRR 4'hd `define LDA 4'h1 `define LDI 4'h3 `define STA 4'h2 `define JMP 4'h4 `define JPZ 4'h5 `define JL 4'h6 `define RET 4'h7 `define NOP 4'h0 `define HALT 4'hf module alu ( opcode, acc, operand, out ); input [15:0] acc, operand; input [3:0] opcode;

8 output [15:0] out; wire [15:0] sa, sb, sc, shiftout; reg [15:0] out; assign sa = (operand[3] == 1'b1)? {{8{acc[15]}}, acc[15:8]}: acc; assign sb = (operand[2] == 1'b1)? {{4{sa[15]}}, sa[15:4]}: sa; assign sc = (operand[1] == 1'b1)? {{2{sb[15]}}, sb[15:2]}: sb; assign shiftout = (operand[0] == 1'b1)? {sc[15], sc[15:1]}: sc; or acc or operand or shiftout) case(opcode) `ADD : out = acc + operand; `SUB : out = acc - operand; `XOR : out = acc ^ operand; `AND : out = acc & operand; `SRL : out = acc << operand[3:0]; `SRR : out = shiftout; `LDA : out = operand; `LDI : out = operand; default :; case 最後に CPU の動作設計と Controller の設計を行う Controller はこの CPU の制御回路で 今まで設計してきた各モジュールの動作を制御する この CPU は 8 クロックで 1 つの命令を実行する このため制御回路には クロック入力がある また この CPU の各状態が次のように遷移するものとする ADR_SET アドレスセットアップ ( 命令 ) PC をメモリのアドレスとしてセット INST_FET 命令フェッチ メモリから読み出したデータを memory buffer に記憶する INST_SET 命令セット memory buffer からのデータを

9 instruction register に記憶する INST_DEC 命令デコード instruction register からのデータをデコードし Controller で各モジュールの制御信号を生成する ADR_SET2 アドレスセットアップ ( オペランド ) メモリから被演算数のデータを読み出すため メモリにアドレスをセットし PC の値を書き換える OP_FET 被演算数フェッチ メモリから読み出したデータを memory buffer に記憶する EXE 命令実行 ALU で命令を実行する WR 書き込み ALU での演算結果をアキュームレータ またはメモリに書き込む CPU は 上の表の状態を順番に実行し WR が終わったら また ADR_SET に戻る ここで本来なら この状態遷移を回路にしなければならないが これは 3 ビットのカウンタで代用し 000~111(0~7) までの 8 個の状態の順序回路とし クロックの立ち上がりでカウンタの値を 1 増やし 状態遷移する カウンタが 111 のときに クロックの立ち上がりが入ると 1000 になるが カウンタは 3 ビットなのでまた 000 に戻る Controller の使用は 入力に クロック入力 (1 ビット ) アキュームレータの値がゼロかを調べるゼロチェック (1 ビット ) 命令コード(4 ビット ) の 3 つで 出力は アドレスのセレクタ (1 ビット ) オペランドのセレクタ (1 ビット ) プログラムカウンタのセレクタ(2 ビット ) と memory buffer のロード信号 (1 ビット ) instruction register のロード信号 (1 ビット ) program counter のロード信号 (1 ビット ) branch address register のロード信号 (1 ビット ) accumulator のロード信号 (1 ビット ) メモリの書き込みを制御する write enable 信号 (1 ビット ) の 9 個である 次に出力がどのようなパターンになるかを説明する まずアドレスのセレクタ (sel_memadr) は CPU の状態が ADR_SET~INST_DEC の間は プログラムカウンタの下位 6 ビット ( メモリの番地が 0~63 まで ) を選択し sel_memadr の値は 0 とする それ以外の ADR_SET2~WR までのときは 命令レジスタの下位 6 ビットを選択し sel_memadr の値は 1 とする 次に オペランドのセレクタ (sel_operand) は 命令がシフト演算か即値ロード命令のときは 命令レジスタの下位 12 ビットを 16 ビットに符号拡張した値を選択し sel_operand の値は 0 とする それ以外は メモリからロードしたデータをオペランドとし sel_operand の値は 1 とする プログラムカウンタのセレクタ (sel_pc) は 1 ビット目は 命令がジャンプ ゼロジャンプ 関数コールのときは ジャンプアドレスを選択し sel_pc[0] の値は 1 とする それ以外は PC+1 を選択し sel_pc[0] の値は 0 とする また プログラムカウンタのセレクタの 2 ビット目は 命令がリターン命令のときは 戻り値アドレスを選択し sel_pc[1] の値は 1 とする それ以外は 前段のマルチプレクサの出力 (PC+1 ジャンプアドレスのいずれか) を選択し sel_pc[1] の値は 0 とする レジスタ mem_buf のロード信号 (ld_mem_buf) は 命令実行フェーズが

10 INST_FET か OP_FET のときに値をロードするので そのときに値を 1 にし それ以外は 0 にする instruction register のロード信号 (ld_ir) は 命令実行フェーズが INST_SET のときに値をロードするので そのときに値を 1 にし それ以外は 0 にする accumulator のロード信号 (ld_acc) は 命令実行フェーズが WR で かつ命令が ADD SUB AND XOR SRL SRR LDA LDI のいずれかのときに結果を書き込むので そのときに値を 1 にし それ以外は 0 にする program counter のロード信号 (ld_pc) は 命令実行フェーズが ADR_SET2 で かつ命令が HLT でないときに値をロードするので そのときに値を 1 にし それ以外は 0 にする HLT 命令の後の命令を実行させないように プログラムカウンタの値を更新しないようにする これによって HLT 命令以後 CPU は クロック信号が入ってきても ずっと HLT 命令の実行フェーズを実行し続ける branch address register のロード信号 (ld_bar) は 命令が RET のときに戻り値アドレスをロードするので そのときに値を 1 にし それ以外は 0 にする 最後にメモリの書き込み信号 (we) は 命令実行フェーズが WR でかつ命令が STA のときに値を書き込むので そのときに値を 1 にし それ以外は 0 にする したがって この CPU の制御回路 (controller) の Verilog コードは次のようになる この controller には 現在の命令実行フェーズを外部に出力する信号が含まれている `define ADR_SET `define INST_FET `define INST_SET `define INST_DEC `define ADR_SET2 `define OP_FET `define EXE `define WR 3'h0 3'h1 3'h2 3'h3 3'h4 3'h5 3'h6 3'h7 `define ADD 4'h8 `define SUB 4'h9 `define AND 4'ha `define XOR 4'hb `define SRL 4'hc `define SRR 4'hd `define LDA 4'h1 `define LDI 4'h3 `define STA 4'h2 `define JMP 4'h4 `define JPZ 4'h5 `define JL 4'h6

11 `define RET 4'h7 `define NOP 4'h0 `define HALT 4'hf module controller ( opcode, clk, phase, ld_mem_buf, ld_ir, sel_memadr, sel_operand, ld_acc, ld_pc, we, sel_pc, zero, ld_bar); input clk, zero; input [3:0] opcode; output [3:0] phase; output ld_mem_buf, ld_ir, ld_acc, ld_pc, sel_memadr, sel_operand, we, ld_bar; output [1:0] sel_pc; reg [2:0] cnt; assign phase = cnt; assign we = ((opcode == `STA) && (cnt == `WR))? 1 : 0; assign ld_mem_buf = ((cnt == `INST_FET) (cnt == `OP_FET))? 1 : 0; assign ld_ir = (cnt == `INST_SET)? 1 : 0; assign ld_acc = (((opcode == `ADD) (opcode == `SUB) (opcode == `AND) (opcode == `XOR) (opcode == `SRL) (opcode == `SRR) (opcode == `LDA) (opcode == `LDI)) && (cnt == `WR))? 1 : 0; assign ld_pc = ((cnt == `ADR_SET2) &&!(opcode == `HALT))? 1 : 0; assign ld_bar = (opcode == `JL)? 1 : 0; assign sel_memadr = ((cnt == `INST_DEC) (cnt == `INST_SET) (cnt == `INST_FET) (cnt == `ADR_SET))? 0 : 1; assign sel_operand = ((opcode == `SRR) (opcode == `SRL) (opcode == `LDI))? 0 : 1; assign sel_pc[0] = ((opcode == `JMP) (opcode == `JPZ && zero == 1'b1) (opcode == `JL))? 1 : 0; assign sel_pc[1] = (opcode == `RET)? 1 : 0; clk)

12 cnt = cnt + 1; 以上の設計より この CPU のトップモジュールは 次のようになる ただし このモジュールには メモリモニタ レジスタモニタの回路が含まれている module cpu ( seg, sel, clk, psw ); output [7:0] seg; output [4:0] sel; input clk; input [3:0] psw; reg [5:0] adr; wire [15:0] accout, instout, aluout, pcout, memout; wire [3:0] sw; wire [7:0] regdata, memdata; wire [4:0] regsel, memsel; wire mclk, incadr, ld_program; wire [2:0] phase; wire ld_mem_buf, ld_ir, ld_acc, ld_pc, sel_memadr, sel_operand, we, zero, ld_bar; wire [1:0] sel_pc; wire [15:0] membout, operand, memo, prog_cnt, prog_cnt2, barout; wire [5:0] memadr; assign mclk = sw[1]; assign seg = sw[2]? memdata : regdata; assign sel = sw[2]? memsel : regsel; assign incadr = (sw[2] == 1'b1)? sw[3] : 0; assign ld_program = sw[0] & sw[1] & sw[2] & sw[3]; assign zero = (accout == 0)? 1 : 0; chattering_killer #(4,13) ck(.in(psw),.out(sw),.clk(clk)); memory mem(memadr, accout, memout, 1'b1, we, ld_program, adr, memo);

13 mux2x1 #(6) mux0(pcout[5:0], instout[5:0], memadr, sel_memadr); mux2x1 #(16) mux1({{4{instout[11]}},instout[11:0]}, membout, operand, sel_operand); mux2x1 #(16) mux2(pcout + 1, {4'b0000, instout[11:0]}, prog_cnt, sel_pc[0]); mux2x1 #(16) mux3(prog_cnt, barout, prog_cnt2, sel_pc[1]); controller cntr(instout[15:12], mclk, phase, ld_mem_buf, ld_ir, sel_memadr, sel_operand, ld_acc, ld_pc, we, sel_pc, zero, ld_bar); pc pc(prog_cnt2, pcout, ld_pc); branch_adr_reg bar(pcout + 1, barout, ld_bar); mem_buf memb(memout, membout, ld_mem_buf); inst_reg ireg(membout, instout, ld_ir); accumulator acc(aluout, accout, ld_acc); alu alu(instout[15:12], accout, operand, aluout); monitor i3( accout, membout, pcout, instout, {5'b00000,phase}, regdata, regsel, clk, sw[0]); mem_monitor mm( memo, adr, memdata, memsel, clk); incadr) adr = adr + 1; `define SEG_S0 `define SEG_S1 `define SEG_S2 `define SEG_S3 5'b1_0111 5'b1_1011 5'b1_1101 5'b1_1110 メモリモニタ

14 `define SEG_LED 5'b0_1111 module mem_monitor ( mem, adr, seg, sel, clk ); input [15:0] mem; input [5:0] adr; input clk; output [4:0] sel; output [7:0] seg; reg [2:0] cnt; wire [3:0] valbin; wire [6:0] val; wire segsel = (cnt == 4)? 1 : 0; mux4x1 #(4) mux3(mem[3:0], mem[7:4], mem[11:8], mem[15:12], valbin, cnt[1:0]); dec7seg dec(valbin, val); mux5x1 #(5) mux5(`seg_s0, `SEG_S1, `SEG_S2, `SEG_S3, `SEG_LED, sel, cnt); mux2x1 #(8) mux2({1'b1, val}, {2'b00,adr}, seg, segsel); clk) if(cnt >= 4) cnt = 0; else cnt = cnt + 1; `define IDC_ACC `define IDC_BREG `define IDC_PC `define IDC_INST 4'b1000 4'b0100 4'b0010 4'b0001 レジスタモニタ `define SEG_S0 5'b1_0111

15 `define SEG_S1 `define SEG_S2 `define SEG_S3 `define SEG_LED 5'b1_1011 5'b1_1101 5'b1_1110 5'b0_1111 module monitor ( acc, b_reg, pc, inst, led, seg, sel, clk, psw ); input [15:0] acc, b_reg, pc, inst; input [7:0] led; input clk, psw; output [4:0] sel; output [7:0] seg; reg [1:0] cnt1; reg [2:0] cnt2; wire [3:0] muxdp; wire [15:0] muxval; wire dp; wire [3:0] valbin; wire [6:0] val; wire muxsel = (cnt2 == 4)? 1 : 0; mux4x1 #(4) mux0(`idc_acc, `IDC_BREG, `IDC_PC, `IDC_INST, muxdp, cnt1); mux4x1 #(16) mux1(acc, b_reg, pc, inst, muxval, cnt1); mux4x1 #(1) mux2(muxdp[0], muxdp[1], muxdp[2], muxdp[3], dp, cnt2[1:0]); mux4x1 #(4) mux3(muxval[3:0], muxval[7:4], muxval[11:8], muxval[15:12], valbin, cnt2[1:0]); dec7seg dec(valbin, val); mux2x1 #(8) mux4({dp, val}, led, seg, muxsel); mux5x1 #(5) mux5(`seg_s0, `SEG_S1, `SEG_S2, `SEG_S3, `SEG_LED, sel, cnt2); psw)

16 if(cnt1 >= 3) cnt1 = 0; else cnt1 = cnt1 + 1; clk) if(cnt2 >= 4) cnt2 = 0; else cnt2 = cnt2 + 1; チャタリングキラー module chattering_killer ( in, out, clk ); parameter n = 1; parameter m = 16; input [n-1:0] in; input clk; output [n-1:0] out; reg [n-1:0] out; reg [m-1:0] cnt; clk) cnt = cnt + 1; clk) if(cnt == 0) out = ~in; 7セグデコーダー module dec7seg ( segin, segout ); input [3:0] segin; output [6:0] segout;

17 reg [6:0] segout; segin ) case ( segin ) 4'h0 : segout = 7'b011_1111; 4'h1 : segout = 7'b000_0110; 4'h2 : segout = 7'b101_1011; 4'h3 : segout = 7'b100_1111; 4'h4 : segout = 7'b110_0110; 4'h5 : segout = 7'b110_1101; 4'h6 : segout = 7'b111_1101; 4'h7 : segout = 7'b000_0111; 4'h8 : segout = 7'b111_1111; 4'h9 : segout = 7'b110_1111; 4'ha : segout = 7'b111_0111; 4'hb : segout = 7'b111_1100; 4'hc : segout = 7'b101_1000; 4'hd : segout = 7'b101_1110; 4'he : segout = 7'b111_1001; 4'hf : segout = 7'b111_0001; default : segout = 7'bxxx_xxxx; case 3x1 マルチプレクサ module mux3x1 ( a, b, c, y, sel ); parameter n = 1; input [n-1:0] a, b, c; input [1:0] sel; output [n-1:0] y; reg [n-1:0] y;

18 or b or c or sel) case(sel) 2'd0 : y = a; 2'd1 : y = b; 2'd2 : y = c; default : y = 'bx; case 4x1 マルチプレクサ module mux4x1 ( a, b, c, d, y, sel ); parameter n = 1; input [n-1:0] a, b, c, d; input [1:0] sel; output [n-1:0] y; reg [n-1:0] y; or b or c or d or sel) case(sel) 2'd0 : y = a; 2'd1 : y = b; 2'd2 : y = c; 2'd3 : y = d; default : y = 'bx; case 5x1 マルチプレクサ module mux5x1 ( a, b, c, d, e, y, sel ); parameter n = 1; input [n-1:0] a, b, c, d, e;

19 input [2:0] sel; output [n-1:0] y; reg [n-1:0] y; or b or c or d or e or sel) case(sel) 3'd0 : y = a; 3'd1 : y = b; 3'd2 : y = c; 3'd3 : y = d; 3'd4 : y = e; default : y = 'bx; case [ 実験機材 ] FPGA41 [ 設計情報 ] 原理 理論に同じ [ 実験結果 ] 動作確認には次の検証プログラムを用いる 検証プログラム (1~10 までの和を計算するプログラム ) mem[0] <= 16'h3000; //LDI 0 mem[1] <= 16'h2015; //STA #20 mem[2] <= 16'h2016; //STA #21 mem[3] <= 16'h3001; //LDI 1 mem[4] <= 16'h2017; //STA #22 mem[5] <= 16'h300a; //LDI 10 mem[6] <= 16'h2018; //STA #23 mem[7] <= 16'h600a; //JL #010 mem[8] <= 16'hf000; //HALT

20 mem[9] <= 16'h0000; //NOP mem[10] <= 16'h1016; //LDA#21 mem[11] <= 16'h8017; //ADD#22 mem[12] <= 16'h2016; //STA#21 mem[13] <= 16'h8015; //ADD#20 mem[14] <= 16'h2015; //STA#20 mem[15] <= 16'h1016; //LDA#21 mem[16] <= 16'h9018; //SUB#23 mem[17] <= 16'h5013; //JPZ#19 mem[18] <= 16'h400a; //JMP #010 mem[19] <= 16'h1015; //LDA#20 mem[20] <= 16'h7000; //RET mem[21] <= 16'h0000; //DC Total mem[22] <= 16'h0000; //DC 変数 i mem[23] <= 16'h0000; //DC 定数 1 : 刻み値 mem[24] <= 16'h0000; //DC 定数 50 : 終り値 検証プログラムを作成した CPU で動作させたら 最終的に 期待した結果 55(0x0037) がメモリに書き込まれ アキュームレータに出力され プログラムカウンタがアドレス 8 番地で停止した [ 考察 ] 期待した結果が確認できた [ 感想 資料 ] CPU を完成させられて よかった 完成させられなかったら ハードウェアの授業がつまらないと思って 終わっていたかもしれない

untitled

untitled 13 Verilog HDL 16 CPU CPU IP 16 1023 2 reg[ msb: lsb] [ ]; reg [15:0] MEM [0:1023]; //16 1024 16 1 16 2 FF 1 address 8 64 `resetall `timescale 1ns/10ps module mem8(address, readdata,writedata, write, read);

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2016 年度 5 セメスター クラス C3 D1 D2 D3 計算機工学 10. 組合せ回路 ( 教科書 3.4~3.5 節 ) 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 組合せ論理回路 x1 x2 xn 組合せ論理回路 y1 y2 ym y i = f i (x 1, x 2,, x

More information

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx 2019 年 4 月 26 日ハードウエア設計論 :3 ハードウエアにおける設計表現 ハードウエア設計記述言語 VerilogHDL ~ 種々の記述 ~ ALU の実装とタイミングに関して always @(A or B or C) Ubuntu を起動し verilog が実行できる状態にしておいてください 79 演習 4: 簡単な演算器 1 入力 A:8 ビット 入力 B:8 ビット 出力 O:8

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2018 年度クラス C3 D1 D2 D3 情報科学基礎 I 10. 組合せ回路 ( 教科書 3.4~3.5 節 ) 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 組合せ論理回路 x1 x2 xn 組合せ論理回路 y1 y2 ym y i = f i (x 1, x 2,, x n ), i

More information

untitled

untitled Verilog HDL Verilog HDL VerilogHDL veriloghdl / CPLD , 1bit 2 MUX 5 D,E) always) module MUX(out, a, b, sel); output out; input a, b, sel; A) IF module MUX(out, a, b, sel); output out; input a, b, sel;

More information

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

VelilogHDL 回路を「言語」で記述する 2. ソースを書く 数値表現 数値表現形式 : ss'fnn...n ss は, 定数のビット幅を 10 進数で表します f は, 基数を表します b が 2 進,o が 8 進,d が 10 進,h が 16 進 nn...n は, 定数値を表します 各基数で許される値を書くこ Verilog ビット幅 基数 2 進表現 1'b0 1 2 進 0 4'b0100 4 2 進 0100 4'd4 4

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2015 年度 5 セメスター クラス D 計算機工学 6. MIPS の命令と動作 演算 ロード ストア ( 教科書 6.3 節,6.4 節 ) 大学院情報科学研究科鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ レジスタ間の演算命令 (C 言語 ) c = a + b; ( 疑似的な MIPS アセンブリ言語 )

More information

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

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN 第 8 回中間試験前の演習 問.VHDL ソースコードを読む () 次の VHDL のソースコードが記述しているゲート回路の回路図を示せ. use IEEE.STD_LOGIC_64.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity Logic is port ( A : in std_logic_vector(3

More information

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

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE 差し替え版 第 7 回マイクロプロセッサの VHDL 記述 マイクロプロセッサ全体および主要な内部ユニットの,VHDL 記述の例を示す. 1)MPU(Micro Processor Uit) Module 1MPU のエンティティ記述とコントローラの例以下は, 簡単な MPU の VHDL 記述の例である ただし, アーキテクチャ部分は, 命令読み込みと実行の状態遷移のみを実現したステートマシンである

More information

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

ソフトウェア基礎技術研修 算術論理演算ユニットの設計 ( 教科書 4.5 節 ) yi = fi (x, x2, x3,..., xm) (for i n) 基本的な組合せ論理回路 : インバータ,AND ゲート,OR ゲート, y n 組合せ論理回路 ( 復習 ) 組合せ論理回路 : 出力値が入力値のみの関数となっている論理回路. 論理関数 f: {, } m {, } n を実現.( フィードバック ループや記憶回路を含まない

More information

計算機アーキテクチャ

計算機アーキテクチャ 計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1 授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ

More information

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

ディジタル回路 第1回 ガイダンス、CMOSの基本回路 POCO の 1 サイクルマイクロアーキテクチャ POCO は 作りながら学ぶコンピュータアーキテクチャ ( 倍風館 ) で使っている教育用の 16 ビット RISC である www.am.ics.keio.ac.jp/parthenon/pocobook/ も参照のこと POCO の構成 1 + + ext func[2:0] 2:0 THB ADD 00 01 10 comsel com S A

More information

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c 第 11 回機械語とアーキテクチャ コンピュータは, 記号で組み立てられ, 記号で動く機械 : ソフトウェアソフトウェア としても理解されなければならない ソフトウェアの最も下位レベルのしくみが ( 命令セット ) アーキテクチャ である 講義では命令符号 ( 機械語 ) の構成と種類についてまとめる また, 機械語を効率良く実行するために採用されている技術について紹介する 機械語とアセンブリ言語

More information

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

ディジタル回路 第1回 ガイダンス、CMOSの基本回路 1 前回教育用の RISC POCO を導入しました 今日はその Verilog 記述を紹介します まず この復習をやっておきましょう 2 最も重要な点は メモリの読み書きで レジスタ間接指定の理解です これはポインタと一緒なので 間違えないように修得してください 3 RISC なので 基本の演算はレジスタ同士でしかできません MV はレジスタ間のデータ移動なので気をつけてください 4 イミーディエイト命令は

More information

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

ソフトウェア基礎技術研修 マルチサイクルを用いた実現方式 ( 教科書 5. 節 ) マルチサイクル方式 () 2 つのデータパス実現方式 単一クロックサイクル : 命令を クロックサイクルで処理 マルチクロックサイクル : 命令を複数クロックサイクルで処理 単一クロックサイクル方式は処理効率が悪い. CLK 処理時間 命令命令命令命令命令 時間のかかる命令にクロック サイクル時間をあわさなければならない. 余り時間の発生 クロック

More information

Microsoft PowerPoint - Lec pptx

Microsoft PowerPoint - Lec pptx Course number: CSC.T341 コンピュータ論理設計 Computer Logic Design 10. シングルサイクルプロセッサのデータパス Datapath for Single Cycle Processor 吉瀬謙二情報工学系 Kenji Kise, Department of Computer Science kise _at_ c.titech.ac.jp www.arch.cs.titech.ac.jp/lecture/cld/

More information

Microsoft PowerPoint - Chap3 [Compatibility Mode]

Microsoft PowerPoint - Chap3 [Compatibility Mode] 計算機構成論 (Chap. 3) @C4 http://www.ngc.is.ritsumei.ac.jp/~ger/lectures/comparch22/index.html (user=ganbare, passwd = 初回の講義で言いました ) 講義に出るなら 分からないなら質問しよう 単位を取りたいなら 章末問題は自分で全部といておこう ( レポートと考えればいいんです!) ご意見 ご要望

More information

コンピュータ工学Ⅰ

コンピュータ工学Ⅰ コンピュータ工学 Ⅰ 中央処理装置 Rev. 2019.01.16 コンピュータの基本構成と CPU 内容 ➊ CPUの構成要素 ➋ 命令サイクル ➌ アセンブリ言語 ➍ アドレッシング方式 ➎ CPUの高速化 ➏ CPUの性能評価 コンピュータの構成装置 中央処理装置 (CPU) 主記憶装置から命令を読み込み 実行を行う 主記憶装置 CPU で実行するプログラム ( 命令の集合 ) やデータを記憶する

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンピュータアーキテクチャ 第 7 週命令セットアーキテクチャ ( 命令の表現 命令の実行の仕組 ) 2013 年 11 月 6 日 金岡晃 授業計画 第 1 週 (9/25) 第 2 週 (10/2) 第 3 週 (10/9) 第 4 週 (10/16) 第 5 週 (10/23) 第 6 週 (10/30) 第 7 週 (11/6) 授業概要 2 進数表現 論理回路の復習 2 進演算 ( 数の表現

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2019 年度クラス C D 情報科学基礎 I 6. MIPS の命令と動作 演算 ロード ストア ( 教科書 6.3 節,6.4 節命令一覧は p.113) 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ レジスタ間の演算命令 (C 言語 ) c = a + b; ( 疑似的な MIPS アセンブリ言語

More information

FPGAによる24時間時計回路

FPGAによる24時間時計回路 の設計 通信処理ネットワーク研究室 10ec062 志村貴大 1. まえがき今回 24 時間時計回路の設計を行った理由は FPGA を用いた論理回路設計の基礎を学ぶにあたり ハード及びソフト双方の基本技術を一度に習得できる題材であると推測したためである 24 時間時計を構成するモジュールの設計を終えた今 その推測は正しかったものと自負している 本レポートは 復習を兼ねた制作記録としてだけではなく 自分と同じ回路設計初心者が学習の参考にできるものにしたいと考えている

More information

コンピュータ工学Ⅰ

コンピュータ工学Ⅰ コンピュータ工学 Ⅰ Rev. 2018.01.20 コンピュータの基本構成と CPU 内容 ➊ CPUの構成要素 ➋ 命令サイクル ➌ アセンブリ言語 ➍ アドレッシング方式 ➎ CPUの高速化 ➏ CPUの性能評価 コンピュータの構成装置 中央処理装置 (CPU) 主記憶装置から命令を読み込み 実行を行う 主記憶装置 CPU で実行するプログラム ( 命令の集合 ) やデータを記憶する 補助記憶装置

More information

Microsoft PowerPoint - vlsi4.ppt [互換モード]

Microsoft PowerPoint - vlsi4.ppt [互換モード] (4) 工学部講義 坂井 修一 東京大学大学院情報理工学系研究科電子情報学専攻 東京大学工学部電子情報工学科 / 電気工学科 はじめに CPU の設計 (3) はじめに 本講義の目的 の基本を学ぶ : 機能 VLSI 対象者 : 工学部 4 年生以上 担当者 坂井修一 プロセッサ VLSI 池田誠 アルゴリズム VLSI 時間 場所 水曜日 8:30-10:15 工学部 2 号館 243 前提となる知識

More information

Verilog HDL による回路設計記述

Verilog HDL による回路設計記述 Verilog HDL 3 2019 4 1 / 24 ( ) (RTL) (HDL) RTL HDL アルゴリズム 動作合成 論理合成 論理回路 配置 配線 ハードウェア記述言語 シミュレーション レイアウト 2 / 24 HDL VHDL: IEEE Std 1076-1987 Ada IEEE Std 1164-1991 Verilog HDL: 1984 IEEE Std 1364-1995

More information

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

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ 第 4 回 VHDL 演習 2 プロセス文とステートマシン プロセス文を用いるステートマシンの記述について学ぶ 回路 6 バイナリカウンタ (Fig.4-1) バイナリカウンタを設計し, クロック信号に同期して動作する同期式回路の動作を学ぶ ⅰ) リスト 4-1 のコードを理解してから, コンパイル, ダウンロードする ⅱ) 実験基板上のディップスイッチを用いて, 発生するクロック周波数を 1Hz

More information

3 SIMPLE ver 3.2: SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE (main memo

3 SIMPLE ver 3.2: SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE (main memo 3 SIMPLE ver 3.2: 20190404 1 3 SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE 1 16 16 (main memory) 16 64KW a (C )*(a) (register) 8 r[0], r[1],...,

More information

Microsoft PowerPoint - 11Web.pptx

Microsoft PowerPoint - 11Web.pptx 計算機システムの基礎 ( 第 10 回配布 ) 第 7 章 2 節コンピュータの性能の推移 (1) コンピュータの歴史 (2) コンピュータの性能 (3) 集積回路の進歩 (4) アーキテクチャ 第 4 章プロセッサ (1) プロセッサの基本機能 (2) プロセッサの構成回路 (3) コンピュータアーキテクチャ 第 5 章メモリアーキテクチャ 1. コンピュータの世代 計算する機械 解析機関 by

More information

Microsoft Word - 実験4_FPGA実験2_2015

Microsoft Word - 実験4_FPGA実験2_2015 FPGA の実験 Ⅱ 1. 目的 (1)FPGA を用いて組合せ回路や順序回路を設計する方法を理解する (2) スイッチや表示器の動作を理解し 入出力信号を正しく扱う 2. スケジュール項目 FPGAの実験 Ⅱ( その1) FPGAの実験 Ⅱ( その2) FPGAの実験 Ⅱ( その3) FPGAの実験 Ⅱ( その4) FPGAの実験 Ⅱ( その5) FPGAの実験 Ⅱ( その6) FPGAの実験 Ⅱ(

More information

.,. 0. (MSB). =2, =1/2.,. MSB LSB, LSB MSB. MSB 0 LSB 0 0 P

.,. 0. (MSB). =2, =1/2.,. MSB LSB, LSB MSB. MSB 0 LSB 0 0 P , 0 (MSB) =2, =1/2, MSB LSB, LSB MSB MSB 0 LSB 0 0 P61 231 1 (100, 100 3 ) 2 10 0 1 1 0 0 1 0 0 100 (64+32+4) 2 10 100 2 5, ( ), & 3 (hardware), (software) (firmware), hardware, software 4 wired logic

More information

Microsoft PowerPoint - Chap2 [Compatibility Mode]

Microsoft PowerPoint - Chap2 [Compatibility Mode] 計算機構成論 (Chap. 2) @C http://www.ngc.is.ritsumei.ac.jp/~ger/lectures/comparch22/index.html (user=ganbare, passwd = 初回の講義で言いました ) 講義に出るなら 分からないなら質問しよう 単位を取りたいなら 章末問題は自分で全部といておこう ( レポートと考えればいいんです!) ご意見 ご要望

More information

2.5. Verilog 19 Z= X + Y - Z A+B LD ADD SUB ST (X<<1)+(Y<<1) X 1 2 LD SL ST 2 10

2.5. Verilog 19 Z= X + Y - Z A+B LD ADD SUB ST (X<<1)+(Y<<1) X 1 2 LD SL ST 2 10 2.5. Verilog 19 Z= X + Y - Z A+B LD 0 0001 0000 ADD 1 0110 0001 SUB 2 0111 0010 ST 2 1000 0010 (X

More information

Microsoft PowerPoint - ProcML-12-3.ppt

Microsoft PowerPoint - ProcML-12-3.ppt プロセッサと 年次前次前期 ( 第 回 ) 進数の加減算 (overflow( overflow) 演習 次の ビット演算の結果は overflow か? () + + () + + 答 答 中島克人 情報メディア学科 nakajima@im.dendai.ac.jp () - = + + 答 進数の加減算 (overflow( overflow) 演習 次の ビット演算の結果は overflow

More information

-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

-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 第 回マイクロプロセッサのしくみ マイクロプロセッサの基本的なしくみについて解説する. -1 マイクロプロセッサと周辺回路の接続 制御バス プロセッサ データ バス アドレス バス メモリ 周辺インタフェース バスの基本構成 Fig.-1 バスによる相互接続は, 現在のコンピュータシステムのハードウェアを特徴づけている. バス (Bus): 複数のユニットで共有される信号線システム内の データの通り道

More information

6. パイプライン制御

6. パイプライン制御 6. パイプライン制御 パイプライン (Pipelining) 命令のスループットをあげて性能を向上する Program eection order Time (in instrctions) lw $, ($) fetch 2 4 6 8 2 4 6 8 Data access lw $2, 2($) 8 ns fetch Data access lw $3, 3($) Program eection

More information

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要 C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要 1 コンピュータの構造 1.1 パーソナルコンピュータの構造 自分の ( 目の前にある ) コンピュータの仕様を調べてみよう パソコン本体 = CPU( 中央処理装置

More information

電卓の設計 1

電卓の設計 1 電卓の設計 1 FPGA Express と MAXPLUS2 に よる FPGA 設計 FPGA EXPRESS RTL circuit.edf circuit.acf RTL MAXPLUS2 FPGA circuit.acf circuit.sof, ttf, pof SRAM 2 どうして電卓なの? その場で 10 キーを使って動かせる プロセッサだと プログラムを考えたり メモリとのインタフェースが必要

More information

Microsoft PowerPoint - Sol7 [Compatibility Mode]

Microsoft PowerPoint - Sol7 [Compatibility Mode] ミニクイズ 4 E ハザード ( つ前の命令の結果を必要とする状況 ) が発生する条件を つ挙げよ. また それぞれの時に 制御線 ForwardA, ForwardB はどのように設定すれば良いか? ( 回答 ) E/.RegWrite= かつ E/.RegisterRd = ID/.RegisterRs この時,ForwardA = と制御すれば良い. E/.RegWrite= かつ E/.RegisterRd

More information

ex04_2012.ppt

ex04_2012.ppt 2012 年度計算機システム演習第 4 回 2012.05.07 第 2 回課題の補足 } TSUBAMEへのログイン } TSUBAMEは学内からのログインはパスワードで可能 } } } } しかし 演習室ではパスワードでログインできない設定 } 公開鍵認証でログイン 公開鍵, 秘密鍵の生成 } ターミナルを開く } $ ssh-keygen } Enter file in which to save

More information

スライド 1

スライド 1 順序回路 (2) 1 順序回路の設計 組合せ論理回路の設計法 構造や規則性に着目した手設計 ( 先人の知恵を使う ) 入力 出力の関係に基づく自動合成 ( カルノー図など ) 順序回路の設計法 構造や規則性に着目した手設計 ( 前回の各例 ) 入力 出力 状態の関係に基づく自動合成 2 同期式順序回路の入力 出力 状態の関係 x 1 x 2 組合せ回路 y 1 y 2 x n q 2 q p q 1

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 仮想マシン (2), コード生成 http://cis.k.hosei.ac.jp/~asasaki /lect/compiler/2007-1204.pdf ( 訂正版 ) 1 概要 仮想マシン 概要 ( 復習 ) 制御命令 出力命令 コード生成 式のコード生成 文 文の列のコード生成 記号表 2 演習で作るコンパイラの例 test.hcc Int main() { int i j; i = 3;

More information

main.dvi

main.dvi 20 II 7. 1 409, 3255 e-mail: namba@faculty.chiba-u.jp 2 1 1 1 4 2 203 2 1 1 1 5 503 1 3 1 2 2 Web http://www.icsd2.tj.chiba-u.jp/~namba/lecture/ 1 2 1 5 501 1,, \,", 2000 7. : 1 1 CPU CPU 1 Intel Pentium

More information

< B8CDD8AB B83685D>

< B8CDD8AB B83685D> () 坂井 修一 東京大学大学院情報理工学系研究科電子情報学専攻東京大学工学部電子情報工学科 / 電気電子工学科 はじめに アウトオブオーダ処理 工学部講義 はじめに 本講義の目的 の基本を学ぶ 場所 火曜日 8:40-0:0 工学部 号館 4 ホームページ ( ダウンロード可能 ) url: http://www.mtl.t.u-tokyo.ac.jp/~sakai/hard/ 教科書 坂井修一

More information

Microsoft PowerPoint - Chap4 [Compatibility Mode]

Microsoft PowerPoint - Chap4 [Compatibility Mode] 計算機構成論 (Chap. ) @C01 http://www.ngc.is.ritsumei.ac.jp/~ger/lectures/comparch2012/index.html (user=ganbare, passwd = 初回の講義で言いました ) 講義に出るなら 分からないなら質問しよう 単位を取りたいなら 章末問題は自分で全部といておこう ( レポートと考えればいいんです!) ご意見

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 仮想マシン () 仮想マシン 復習 仮想マシンの概要 hsm 仮想マシン プログラム言語の処理系 ( コンパイラ ) 原始プログラム (Source program) コンパイラ (Compiler) 目的プログラム (Object code) 原始言語 (Source language) 解析 合成 目的言語 (Object Language) コンパイルする / 翻訳する (to compile

More information

スライド 1

スライド 1 RL78/G13 周辺機能紹介安全機能 ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ 安全機能の概要 フラッシュ メモリ CRC 演算機能 RAM パリティ エラー検出機能 データの保護機能 RAM ガード機能 SFR ガード機能 不正メモリ アクセス機能 周辺機能を使用した安全機能 周波数検出機能 A/D

More information

Microsoft PowerPoint - NxLecture ppt [互換モード]

Microsoft PowerPoint - NxLecture ppt [互換モード] 011-05-19 011 年前学期 TOKYO TECH 命令処理のための基本的な 5 つのステップ 計算機アーキテクチャ第一 (E) 5. プロセッサの動作原理と議論 吉瀬謙二計算工学専攻 kise_at_cs.titech.ac.jp W61 講義室木曜日 13:0-1:50 IF(Instruction Fetch) メモリから命令をフェッチする. ID(Instruction Decode)

More information

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要 コンピュータの構造 1. パーソナルコンピュータの構造 自分の ( 目の前にある ) コンピュータの仕様を調べてみよう パソコン本体 = CPU( 中央処理装置 ):

More information

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx 2019 年 6 月 14 日ハードウエア設計論 :9 ハードウエアにおける設計表現 ハードウエア設計記述言語 VerilogHDL ~CPU: ハード & ソフト ~ Ubuntu を起動し verilog が実行できる状態にしておいてください 129 6/7, 6/14 の出欠は 本日正午 +δ までに WEB から課題 7-4 を提出する cpu.v と simcpu2.v 以下の部分を切り出して

More information

ディジタル電子回路 設計演習課題

ディジタル電子回路 設計演習課題 Arch 研究室スキルアップ講座 NEXYS4 による 24 時間時計 仕様書および設計例 1 実験ボード (NEXYS4) 外観 ダウンロード (USB) ケーブル接続端子 FPGA:Xilinx 社製 Artix7 XC7A100T-CSG324 7 セグメント LED8 個 LED16 個 リセット SW スライドスイッチ (16 個 ) 押しボタンスイッチ (5 個 ) 2 実験ボードブロック図

More information

Microsoft PowerPoint - arch5kai.ppt [互換モード]

Microsoft PowerPoint - arch5kai.ppt [互換モード] コンピュータアーキテクチャ 第 5 回 割 り 込 み その2 天 野 hunga@am.ics.keio.ac.jp ac 割 り 込 み(Interrupt) I/O 側 からCPUに 対 して 割 り 込 みを 要 求 CPUはこれを 受 け 付 けると 自 動 的 にPCを 割 り 込 み 処 理 ルーチンの 先 頭 に 変 更 戻 り 番 地 はどこかに 保 存 割 り 込 み 処 理 ルーチンを

More information

コンピュータの仕組み(1)ハードウェア

コンピュータの仕組み(1)ハードウェア Copyright 守屋悦朗 2005 コンピュータの仕組み (1) ハードウェア 2.1 CPU の基本原理 2 つの整数の和を出力するプログラムを考えよう main() { int a, b, c; /* 変数 a,b が整数値をとる変数であることを宣言する */ a = 1; /* a に 1 を代入する */ b = 2; /* b に 2 を代入する */ c = a+b; /* a と

More information

MIPSのマイクロアーキテクチャ

MIPSのマイクロアーキテクチャ 今回はパイプラインの動作を妨げるハザードとその対処法をやります 1 前回紹介した構造ハザードは 資源の競合により起こるハザードで回避は簡単 ( というか複製しか手がない ) でした 今回はハザードの中のハザード データハザードを紹介します 2 パイプライン処理では 直前の命令の結果がレジスタファイルに書き込まれないうちに 後続の命令が読み出しを行うため この命令間にデータの依存性があると 誤って更新前の値を読み出してしまいます

More information

主記憶の使われ方 システム領域 SP スタックポインタ システム用 スタック用 プログラム起動時に OS によって確 保される (SP が決められる ) プログラム用 メインルーチン プログラム領域 命令コードの列定数 変数用領域サブルーチン命令コードの列 先頭番地は リンク時に OS によって決め

主記憶の使われ方 システム領域 SP スタックポインタ システム用 スタック用 プログラム起動時に OS によって確 保される (SP が決められる ) プログラム用 メインルーチン プログラム領域 命令コードの列定数 変数用領域サブルーチン命令コードの列 先頭番地は リンク時に OS によって決め Copyright 守屋悦朗 2005 コンピュータの仕組み (2) ソフトウェア 3.3 アセンブラプログラミング (CASLⅡ) 情報処理技術者試験基本情報技術者試験 (http://www.jitec.jp/index.html) では 仮想コンピュータ (16ビットのワードマシン 主記憶容量 64KW)COMETⅡを定義し COMETⅡ のためのアセンブリ言語 CASLⅡを定めている COMETⅡとCASLⅡの仕様は情報処理技術者試験センターのウェブサイト

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2019 年度クラス C D 情報科学基礎 I 7. MIPS の命令と動作 分岐 ジャンプ 関数呼出し ( 教科書 7 章命令一覧は p.113) 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 分岐 ジャンプ命令 条件文や繰り返し文などを実現するには, 命令の実行順の制御が必要 (C 言語

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンピュータアーキテクチャ 第 11 週 制御アーキテクチャ メモリの仕組 2013 年 12 月 4 日 金岡晃 授業計画 第 1 週 (9/25) 第 2 週 (10/2) 第 3 週 (10/9) 第 4 週 (10/16) 第 5 週 (10/23) 第 6 週 (10/30) 第 7 週 (11/6) 授業概要 2 進数表現 論理回路の復習 2 進演算 ( 数の表現 ) 演算アーキテクチャ

More information

Microsoft PowerPoint - Lec ppt [互換モード]

Microsoft PowerPoint - Lec ppt [互換モード] 0 年後学期 アウトオブオーダ実行プロセッサの構成 計算機アーキテクチャ第二 (O) アウトオブオーダ実行プロセッサとバックエンド フロントエンド 命令ウィンドウ : 命令を格納するバッファ 命令ウィンドウ ALU レジスタファイル ALU スケジューラ等 Register Dispatch 命令フェッチ, デコード, リネーミング バックエンド アウトオブオーダ実行プロセッサの構成 ディスパッチ

More information

Microsoft PowerPoint - 01-VerilogSetup-2018.pptx

Microsoft PowerPoint - 01-VerilogSetup-2018.pptx 2018 年 4 月 13 日ハードウエア設計論 :2 ハードウエアにおける設計表現 ハードウエア設計記述言語 VerilogHDL ~ 状態遷移と順序機械 ~ TA2 名 : 古賀 杉山が担当します Ubuntu を起動し verilog が実行できる状態にしておいてください http://www.mos.t.u-tokyo.ac.jp/~ikeda/hwdesign/ 38 VerilogHDL

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 計算機基礎第 7 回 ノイマン型計算機 (2) 1 スタックの練習問題 逆ポーランド表記 ( 後置記法 : postfix notation) に変換してみよ 1+2*3+4 1 2 3 * + 4 + (1+2)*3+4 1 2 + 3 * 4 + 1+2*(3+4) 下の 3 番目と同じ 中置記法 (infix notation) に変換してみよ 1 2 + 3 * 4 + (1 + 2) *

More information

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

Microsoft PowerPoint - 3.3タイミング制御.pptx 3.3 タイミング制御 ハザードの回避 同期式回路と非同期式回路 1. 同期式回路 : 回路全体で共通なクロックに合わせてデータの受け渡しをする 通信における例 :I 2 C(1 対 N 通信 ) 2. 非同期式回路 : 同一のクロックを使用せず データを受け渡す回路間の制御信号を用いてデータの受け渡しをす 通信における例 :UART(1 対 1 通信 ) 2 3.3.1 ハザード 3 1 出力回路のハザード

More information

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

- VHDL 演習 ( 組み合せ論理回路 ) 回路 半加算器 (half adder,fig.-) 全加算器を構成する要素である半加算器を作成する i) リスト - のコードを理解してから, コンパイル, ダウンロードする ii) 実験基板上のスイッチ W, が, の入力,LED, が, の出力とな 第 回 VHDL 演習組み合せ論理回路 VHDL に関する演習を行う 今回は, 組み合せ論理回路の記述について学ぶ - 論理回路の VHDL 記述の基本 同時処理文を並べることで記述できる 部品の接続関係を記述 順番は関係ない process 文の内部では, 順次処理文を使う process 文 つで, つの同時処理文になる順次処理文は, 回路の動作を 逐次処理的 に ( 手続き処理型プログラム言語のように

More information

Microsoft PowerPoint - Chap5 [Compatibility Mode]

Microsoft PowerPoint - Chap5 [Compatibility Mode] 計算機構成論 (Chap. 5) @C306 http://www.ngc.is.ritsumei.ac.jp/~ger/lectures/comparch2012/index.html (user=ganbare, passwd = 初回の講義で言いました ) 講義に出るなら 分からないなら質問しよう 単位を取りたいなら 章末問題は自分で全部といておこう ( レポートと考えればいいんです!) ご意見

More information

計算機アーキテクチャ

計算機アーキテクチャ 計算機アーキテクチャ 第 18 回ハザードとその解決法 2014 年 10 月 17 日 電気情報工学科 田島孝治 1 授業スケジュール ( 後期 ) 2 回 日付 タイトル 17 10/7 パイプライン処理 18 10/17 ハザードの解決法 19 10/21 並列処理 20 11/11 マルチプロセッサ 21 11/18 入出力装置の分類と特徴 22 11/25 割り込み 23 12/2 ネットワークアーキテクチャ

More information

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

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ arduino プログラミング課題集 ( Ver.5.0 2017/06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイコンから伝える 外部装置の状態をマイコンで確認する 信号の授受は 入出力ポート 経由で行う (2) 入出力ポートとは?

More information

スライド 1

スライド 1 Dispatch 0 年後学期 計算機アーキテクチャ第二 (O) アウトオブオーダ実行プロセッサとバックエンド フロントエンド 命令ウィンドウ : 命令を格納するバッファ ALU Dispatch 命令フェッチ, デコード, リネーミング バックエンド ディスパッチ (dispatch) : 命令ウィンドウに命令を格納する動作 発行 (issue, fire) : 命令ウィンドウから, データ依存が解消された命令を機能ユニットに送り出す動作

More information

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

エンティティ : インタフェースを定義 entity HLFDD is port (, : in std_logic ;, : out std_logic ) ; end HLFDD ; アーキテクチャ : エンティティの実現 architecture RH1 of HLFDD is <= xor VHDL を使った PLD 設計のすすめ PLD 利用のメリット 小型化 高集積化 回路の修正が容易 VHDL 設計のメリット 汎用の設計になる ( どこのデバイスにも搭載可能 ) 1/16 2001/7/13 大久保弘崇 http://www.aichi-pu.ac.jp/ist/~ohkubo/ 2/16 設計の再利用が促進 MIL 記号の D での設計との比較 Verilog-HDL などでも別に同じ

More information

三菱電機マイコン機器ソフトウエア株式会社

三菱電機マイコン機器ソフトウエア株式会社 MU500-RX サンプル回路仕様書 三菱電機マイコン機器ソフトウエア株式会社 2012-5-9 1 概要 1.1 目的本仕様書は MU500-RX と MU500-RK で実現する 1 秒カウンタの仕様について記述するものである マイコンで 1 秒を生成し 表示は 7 セグメント LED を用いる また 開始 / 停止は Push-SW を使う 1.2 関連文書 MU500-RX

More information

「FPGAを用いたプロセッサ検証システムの製作」

「FPGAを用いたプロセッサ検証システムの製作」 FPGA 2210010149-5 2005 2 21 RISC Verilog-HDL FPGA (celoxica RC100 ) LSI LSI HDL CAD HDL 3 HDL FPGA MPU i 1. 1 2. 3 2.1 HDL FPGA 3 2.2 5 2.3 6 2.3.1 FPGA 6 2.3.2 Flash Memory 6 2.3.3 Flash Memory 7 2.3.4

More information

スライド 1

スライド 1 RL78/G13 周辺機能紹介 ADC A/D コンバータ ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ ADC の概要 ソフトウエア トリガ セレクト モード 連続変換モードのプログラム サンプル紹介 2 ADC の概要 3 ADC のブロック図 パワー オフが可能 入力 選択 記憶 比較 基準電圧 変換結果

More information

MIPSのマルチサイクル マイクロアーキテクチャ

MIPSのマルチサイクル マイクロアーキテクチャ MIPSのマルチサイクル マイクロアーキテクチャ 慶應義塾大学 天野 1 命令フォーマット 3種類の基本フォーマットを持つ 31 R-type opcode 31 I-type 21 20 rs 26 25 opcode 31 J-type 26 25 16 15 rt 21 20 rs 11 10 rd 5 16 15 rt 0 0 immediate 26 25 opcode 6 shift function

More information

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB) コンピュータ工学講義プリント (12 月 11 日 ) 今回は ローテイト命令を用いて 前回よりも高度な LED の制御を行う 光が流れるプログラム 片道バージョン( 教科書 P.119 参照 ) 0.5 秒ごとに 教科書 P.119 の図 5.23 の様に LED の点灯パターンが変化するプログラムを作成する事を考える この様にすれば 光っている点が 徐々に右に動いているように見え 右端まで移動したら

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2018 年度クラス C3 1 2 3 情報科学基礎 I 11. 順序回路の基礎 ( 教科書 4 章 ) 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 組合せ回路と順序回路 x1 x2 xn 組合せ回路 y1 y2 ym 組合せ回路 : 出力は, その時点の入力の組合せのみで決まる x1 x2

More information

スライド 1

スライド 1 RL78/G13 周辺機能紹介 SAU シリアル アレイ ユニット ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ SAU の概要 UART 通信機能のプログラム サンプル紹介 2 SAU の概要 3 SAU の機能 クロック同期式調歩同期式マスタ動作のみ チャネル 0: 送信チャネル 1: 受信 4 UART

More information

スライド 1

スライド 1 3. 演算命令を学ぼう 本稿の Web ページ http://www.mybook-pub-site.sakura.ne.jp/pic/index.html 1 ; ADD このソースファイルを各自打ち込んで下さい. EQU 0x0C ; at 0C 足し算を実行するプログラムの例です. MOVLW B 00000001 ; Load 0x01 to W ADDLW B'00000011' ; W

More information

0630-j.ppt

0630-j.ppt 5 part II 2008630 6/30/2008 1 SR (latch) 1(2 22, ( SR S SR 1 SR SR,0, 6/30/2008 2 1 T 6/30/2008 3 (a)(x,y) (1,1) (0,0) X Y XOR S (S,R)(0,1) (0,0) (0,1) (b) AND (a) R YX XOR AND (S,R)(1,1) (c) (b) (c) 6/30/2008

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt コード生成 (2) http://cis.k.hosei.ac.jp/~asasaki /lect/compiler/2007-1211.pdf 1 概要 宣言文と記号表 ( 配列 ) 今日はやりません 2 宣言 a = 1; b = a+2; putint(b); int main(){ int a; int b; a = 1; b = a+2; putint(b); } PUSH 0 26 LDC

More information

スライド 1

スライド 1 6.LED( 発光ダイオード ) の制御を学ぼう 本稿の Web ページ http://www.cmplx.cse.nagoya-u.ac.jp/~furuhashi/education/pic/index.html 1 5V R 4 SW 1 R 3 R 2 SW 2 SW 3 PIC16F84A 1 RA2 RA1 18 2 RA3 RA0 17 3 RA4 OSC1 16 4 MCLR OSC2

More information

目次 1. はじめに 1 2. マルチALUプロセッサ MAP MAP の構成 MAP 命令セットアーキテクチャ 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 次 Booth アルゴリズム 次 Bo

目次 1. はじめに 1 2. マルチALUプロセッサ MAP MAP の構成 MAP 命令セットアーキテクチャ 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 次 Booth アルゴリズム 次 Bo 目次 1. はじめに 1 2. マルチALUプロセッサ MAP 2 2.1 MAP の構成 2 2.2 MAP 命令セットアーキテクチャ 3 2.3 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 7 3.1 1 次 Booth アルゴリズム 7 3.2 2 次 Booth アルゴリズム 8 3.3 3 次 Booth アルゴリズム 10 4. シミュレーションによる並列化の評価

More information

Microsoft PowerPoint - 工学ゼミⅢLED1回_2018

Microsoft PowerPoint - 工学ゼミⅢLED1回_2018 工学ゼミ Ⅲ 安全 環境活動に役立つ LEDイルミネーションの製作 第 1 回 1. 概要 3~5 名の学生グループで安全 環境活動に役立つ LED イルミネーションを作製する 作品のデザイン画や部品リスト 回路図 動作フロー図等は事前に作成し 計画的に作業を行うことが求められる 2. 達成すべき目標 作品に係る資料を事前にまとめ それに基づいて製作が行える 集団の中で 自身の知識 技術を積極的に応用しながら

More information

VLD Kazutoshi Kobayashi

VLD Kazutoshi Kobayashi VLD Kazutoshi Kobayashi (kobayasi@kuee.kyoto-u.ac.jp) 2005 8 26-29 1, Verilog-HDL, Verilog-HDL. Verilog-HDL,, FPGA,, HDL,. 1.1, 1. (a) (b) (c) FPGA (d). 2. 10,, Verilog-HDL, FPGA,. 1.2,,,, html. % netscape

More information

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

卒業論文 巡回冗長検査 CRC32 のハード / ソフト最適分割の検討 氏名 : 伊藤大喜学籍番号 : 指導教員 : 山崎勝弘教授提出日 : 2009 年 2 月 19 日 立命館大学理工学部電子情報デザイン学科 卒業論文 巡回冗長検査 CRC32 のハード / ソフト最適分割の検討 氏名 : 伊藤大喜学籍番号 : 2260050004-3 指導教員 : 山崎勝弘教授提出日 : 2009 年 2 月 19 日 立命館大学理工学部電子情報デザイン学科 内容概要本論文では LSI 設計の主流となっているハードウェア記述言語の Verilog-HDL を用いて CRC32 回路を設計することで Vreilog-HDL

More information

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

ソフトウェア基礎技術研修 命令と命令表現 ( 教科書 3.1 節 ~3.4 節 ) プロセッサの命令と命令セット 命令 : プロセッサへの指示 ( プロセッサが実行可能な処理 ) 加算命令 減算命令 論理演算命令 分岐命令 命令セット : プロセッサが実行可能な命令の集合 ( プログラマから見えるプロセッサの論理仕様 ) プロセッサ A 加算命令分岐命令 プロセッサ B 加算命令減算命令 命令セットに含まれない命令は直接実行できない!

More information

TULを用いたVisual ScalerとTDCの開発

TULを用いたVisual ScalerとTDCの開発 TUL を用いた Visual Scaler と TDC の開発 2009/3/23 原子核物理 4 年 永尾翔 目次 目的と内容 開発環境 J-Lab におけるハイパー核分光 Visual Scaler TDC まとめ & 今後 目的と内容 目的 TUL, QuartusⅡ を用いて実験におけるトリガーを組めるようになる Digital Logic を組んでみる 内容 特徴 TUL,QuartusⅡ

More information

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

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用] 2007.11.12 集積回路工学 Matsuzawa Lab 1 集積回路工学 東京工業大学 大学院理工学研究科 電子物理工学専攻 2007.11.12 集積回路工学 Matsuzawa Lab 2 1. 1. ハードウェア記述言語 (VHDL で回路を設計 ) HDL 設計の手順や基本用語を学ぶ RTL とは? Register Transfer Level レジスタ間の転送関係を表現したレベル慣例的に以下のことを行う

More information

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

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の 計算機システム Ⅱ 演習問題学科学籍番号氏名 1. 以下の分の空白を埋めなさい. CPUは, 命令フェッチ (F), 命令デコード (D), 実行 (E), 計算結果の書き戻し (W), の異なるステージの処理を反復実行するが, ある命令の計算結果の書き戻しをするまで, 次の命令のフェッチをしない場合, ( 単位時間当たりに実行できる命令数 ) が低くなる. これを解決するために考案されたのがパイプライン処理である.

More information

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 =

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 = VHDL 2 1 VHDL 1 VHDL FPGA VHDL 2 HDL VHDL 2.1 D 1 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; regs.vhdl entity regs is clk, rst : in std_logic; clear : in std_logic; we

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 4 回目演算子 今日の講義で学ぶ内容 演算子とオペランド 式 様々な演算子 代表的な演算子の使用例 演算子とオペランド 演算子 演算の種類です例えば + - * / 掛け算の記号は ではなく *( アスタリスク ) を使います割り算の記号は ではなく /( スラッシュ ) を使います オペランド 演算の対象です例えば 5( 値 ) num( 変数 ) 式 演算子とオペランドの組み合わせにより構成される数式です式は演算結果をもちます

More information

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

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは? アルテラ FPGA 向け PLL リコンフィグの応用回路 1. PLL リコンフィグとは アルテラ FPGA は PLL 機能を内蔵しています PLL を利用して基本周波数を逓倍 分周したクロックを利用することができます 通常 FPGA 開発ツール Quartus2( 以下 Q2) の MegaWizard プラグインマネージャを利用して PLL を設定し 希望のクロック周波数を得ることができます

More information

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1 COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1 ここでは機械命令レベルプログラミングを学びます 機械命令の形式は学びましたね機械命令を並べたプログラムを作ります 2 その前に プログラミング言語について 4 プログラミング言語について 高級言語 (Java とか C とか ) と機械命令レベルの言語 ( アセンブリ言語 ) があります 5 プログラミング言語について

More information

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ 計算機システム Ⅱ キャッシュと仮想記憶 和田俊和 講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュと仮想記憶 ( 本日 ) 10. 命令レベル並列処理

More information

Microsoft PowerPoint - arc7

Microsoft PowerPoint - arc7 工学部講義 (7) 坂井 修一 東京大学大学院情報理工学系研究科電子情報学専攻東京大学工学部電子情報工学科 / 電気電子工学科 はじめに 基本 CPU の設計 はじめに 本講義の目的 の基本を学ぶ 時間 場所 火曜日 8:40-10:10 工学部 2 号館 241 ホームページ ( ダウンロード可能 ) url: http://www.mtl.t.u-tokyo.ac.jp/~sakai/hard/

More information

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

計数工学実験/システム情報工学実験第一 「ディジタル回路の基礎」 計数工学実験 / システム情報工学実験第一 ディジタル回路の基礎 ( 全 3 回 ) システム 8 研 三輪忍 参考資料 五島正裕 : ディジタル回路 ( 科目コード 400060) 講義資料 ( ググれば出てくる ) 高木直史 : 論理回路, 昭晃堂 Altera: Cyclone II FPGA スターター開発ボードリファレンス マニュアル Altera: Introduction to Quartus

More information

スライド 1

スライド 1 8. ステッピングモータの制御を学ぼう 秋月電子通商 PIC ステッピングモータドライバキット ( 小型モータ付き ) を参照しました. 回路製作の詳細は第 0 章を参照してください. 1 2 第 0 章図 28 より完成写真 ( マイコン回路 + ステッピングモータ駆動回路 ) PIC マイコンによるステッピングモータの制御 PIC16F84 R 1 R 2 RB6 RB0 ステッピングモータ S

More information

PowerPoint Presentation

PowerPoint Presentation マイクロプロセッサ ( 第 1 回 ) P. Ravindra S De Silva ravi@tut.jp 1 はじめに 情報 知能工学系学生実験サイト http://www.cs.tut.ac.jp/jikken/ 実験の説明資料などはWeb 上で公開中 http://www.icd.cs.tut.ac.jp/~ravi/mp/index.html 受け取りは メールにて行う 宛先は desilva.teaching@gmail.com

More information

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー 初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コード生成を利用したプログラム作成 ( ポート入力 ) P47 次回 ( 第 4 回 ) は, 以下の内容を予定しています

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2019 年度クラス C D 情報科学基礎 I 14. さらに勉強するために 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 0 と 1 の世界 これまで何を学んだか 2 進数, 算術演算, 論理演算 計算機はどのように動くのか プロセッサとメモリ 演算命令, ロード ストア命令, 分岐命令 計算機はどのように構成されているのか

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション マイコンプログラミング演習 I 第 04-05 回 LEDを用いたI/O 制御担当 : 植村 実験の目的 本実験ではマイコンシステムを用いた信号の入出力の制御方法を理解することを目的とし, マイコンのアーキテクチャを理解 実装するとともに, アセンブラによるプログラミング技術の習得を行う. 回路の構成として,PIC16F84A を用いてスイッチを入力とする LED の点灯 / 消灯の出力操作を行う回路ならびにアセンブラプログラムを実装する.

More information

1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが

1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが MPASM MPASM は Microchip Tecnology Inc. 社の開発した PIC のためのアセンブリ言語である ここでは MPASM の文法と使用法などについて記述する 1. 文法 ソースコードファイルは ASCII テキストファイルエディターを使って作成する そのように作られたソースコードは以下に示す基本的ガイドラインに従うべきである ソースファイルの各行は次の 4 つのタイプの情報を含んでよい

More information

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

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは? レジスタ アクセスの拡張機能 1. レジスタ アクセスの概要 Smart-USB Plus 製品で利用できるレジスタ アクセスとは FPGA 内にハードウエア レジスタを実装し ホスト PC の制御ソフトウエアから USB 経由でそれらのレジスタに値を設定したり レジスタの設定値を読み出すことができる機能です このレジスタ アクセス制御には USB バス仕様に基づく コントロール転送 を利用しています

More information

Microsoft PowerPoint - H2.ppt [互換モード]

Microsoft PowerPoint - H2.ppt [互換モード] 力装置はじめに マイクロプロセッサ ( 第 回 ) 担当 : 佐竹純二 情報 知能工学系学生実験サイト http://www.cs.tut.ac.jp/jikken/ 実験の説明資料などは Web 上で公開中 http://www.aisl.cs.tut.ac.jp/~satake/class/ 実験レポートの受け取りはMoodle 上で行う https://moodle.imc.tut.ac.jp/course/view.php?id=285

More information

ディジタルシステム設計

ディジタルシステム設計 Z80 Z80 Z80 Z80 ROM RAM I/O 8255 8251 Z80PIO Z80CTC Z80SIO R C L Tr OP TTL MCB Z MC Z Z80 Z80 TMPZ84015BF KL5C8012 64180 H8 H8 PIC Microchip Technology PIC Z80 F A A' ALU B D H C E L IX IY SP PC C E L

More information