パイプラインプロセッサ3

プロジェクト実習
LSIの設計と実現
パイプラインプロセッサの設計3
修正
• t.v
– clock_mem の記述を追加
• \\cad104\public\ProjectPractice\PCPU_templat
e\t.v
おさらい
•
•
•
•
•
配線はwire、レジスタはreg
配線の接続は assign (alwaysの外で)
レジスタへの代入は alwaysの中で <=
代入時は両辺のビット幅を合わせる
各ステージでは
– 前段のパイプラインレジスタを読み込む
– 後段のパイプラインレジスタに書き込む
ソースコード
•
•
•
•
•
IF/IDパイプラインレジスタの宣言
IFステージのalways
ID/EXパイプラインレジスタの宣言
IDステージのalways
EX/MEMパイプラインレジスタの宣言
– 以下同様
• 宣言を全部上にまとめて書いても良い
各ステージ
• always @(posedge clock or negedge reset) begin
•
if (reset == 1'b0) begin
•
全部のreg <= 初期化;
•
end else begin
•
case (???)
•
ADD: begin
•
いろんなreg<=値
•
end
•
LDIH: begin
•
end
どんな条件でもすべてのregに1回だけ
•
end
値が代入されていることを確認!!
• end
プログラム
•
•
•
•
•
•
•
•
•
LDIH r1, 0, 1
LDIH r2, 0, 2
LDIH r3, 0, 3
LDIH r4, 0, 4
LDIH r5, 0, 5
LDIH r6, 0, 6
LDIH r7, 0, 7
ADD r1, r2, r3
SUB r4, r5, r6
目標
• 例題を実行できるようにする
• LOAD/STOREを考える
– EXステージでアドレス計算
– MEMステージでメモリの読み書き
中島研の学生は
• 今日中に完成すること